bygfoot-2.3.2/0000755000175000017500000000000011225071373012144 5ustar eliaseliasbygfoot-2.3.2/ReleaseNotes0000755000175000017500000000034211225071373014462 0ustar eliaseliasBygfoot Football Manager UNKNOWN_VERSION AUTHORS: Gyozo Both Mark Lawrenz (mark@bygfoot.com) http://bygfoot.sourceforge.net This release has some new fetures and contains new coutry definitons. See the ChangeLog for details. bygfoot-2.3.2/config.h.in0000644000175000017500000000410711225071373014171 0ustar eliaselias/* config.h.in. Generated from configure.in by autoheader. */ #undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef GETTEXT_PACKAGE #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Gettext package. */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* gstreamer */ #undef HAVE_GSTREAMER /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* 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 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_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 /* Name of package */ #undef PACKAGE /* 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 version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION bygfoot-2.3.2/configure0000755000175000017500000100072211225071373014055 0ustar eliaselias#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 # PATH needs CR # 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_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 if (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 # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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. 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); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. 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 # Name of the executable. 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'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF 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 : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF 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_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, 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= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="configure.in" # 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 HAVE_GSTREAMER GST_LIBS GST_CFLAGS LOCALEDIR MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES DATADIRNAME CATOBJEXT CATALOGS XGETTEXT GMSGFMT MSGFMT_OPTS MSGFMT USE_NLS GETTEXT_PACKAGE PACKAGE_LIBS PACKAGE_CFLAGS PKG_CONFIG EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM 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_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_gstreamer with_localedir ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PACKAGE_CFLAGS PACKAGE_LIBS GST_CFLAGS GST_LIBS' # 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}' 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=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_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } 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_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } 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_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } 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_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } 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_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } 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_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $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_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } 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 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 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_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # 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_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } 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 this package 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/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then 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-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-gstreamer use GStreamer for media Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-localedir[=DIR] install locale data under specified dir 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 C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PACKAGE_CFLAGS C compiler flags for PACKAGE, overriding pkg-config PACKAGE_LIBS linker flags for PACKAGE, overriding pkg-config GST_CFLAGS C compiler flags for GST, overriding pkg-config GST_LIBS linker flags for GST, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _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 configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 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 $as_me, which was generated by GNU Autoconf 2.63. 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) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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 cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX 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:$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= ;; #( *) $as_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 cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX 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 cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX 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 cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX 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'; { (exit 1); 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 # 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 # 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 ac_site_file1=$CONFIG_SITE 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 -r "$ac_site_file"; then { $as_echo "$as_me:$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" 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. if test -f "$cache_file"; then { $as_echo "$as_me:$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:$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:$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:$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:$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:$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:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$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_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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 am__api_version='1.10' 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_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } 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. # 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:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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:$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' { $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 $as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 $as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P 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. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; 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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:$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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; 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:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 $as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=bygfoot VERSION=0.1 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then 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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$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:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$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:$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 fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" { $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { $as_echo "$as_me:$LINENO: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= 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 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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$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:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$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:$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:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$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 test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$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:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$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:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* 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" 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&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 depcc="$CC" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_strerror=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" 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 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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$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:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$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:$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:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$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 test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$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:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$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:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* 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" 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&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 depcc="$CC" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= 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 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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$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:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$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:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$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:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$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:$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:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$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 test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$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:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$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:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* 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" 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&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 depcc="$CC" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc 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:$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 test "${ac_cv_prog_CPP+set}" = set; 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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:$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } 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:$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 test "${ac_cv_path_GREP+set}" = set; 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" { test -f "$ac_path_GREP" && $as_test_x "$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 ac_count=`expr $ac_count + 1` 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_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; 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" { test -f "$ac_path_EGREP" && $as_test_x "$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 ac_count=`expr $ac_count + 1` 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_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 rm -f 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : 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 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi pkg_modules="gtk+-2.0 >= 2.6 glib-2.0 >= 2.12" if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$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 PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:$LINENO: checking for PACKAGE" >&5 $as_echo_n "checking for PACKAGE... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PACKAGE_CFLAGS"; then pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS" else if test -n "$PKG_CONFIG" && \ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\"") >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$PACKAGE_LIBS"; then pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS" else if test -n "$PKG_CONFIG" && \ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\"") >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$pkg_modules"` else PACKAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$pkg_modules"` fi # Put the nasty error message in config.log where it belongs echo "$PACKAGE_PKG_ERRORS" >&5 { { $as_echo "$as_me:$LINENO: error: Package requirements ($pkg_modules) were not met: $PACKAGE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 $as_echo "$as_me: error: Package requirements ($pkg_modules) were not met: $PACKAGE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." >&5 $as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } else PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } : fi GETTEXT_PACKAGE=bygfoot cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ALL_LINGUAS="de nl fr pl pt_PT pt_BR ro bg zh es da sv it" # 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` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in locale.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$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:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then am_cv_val_LC_MESSAGES=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_val_LC_MESSAGES=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LC_MESSAGES 1 _ACEOF fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= if test "${ac_cv_header_libintl_h+set}" = set; then { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 $as_echo_n "checking for libintl.h... " >&6; } if test "${ac_cv_header_libintl_h+set}" = set; then $as_echo_n "(cached) " >&6 fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 $as_echo "$ac_cv_header_libintl_h" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5 $as_echo_n "checking libintl.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5 $as_echo_n "checking libintl.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$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:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 $as_echo_n "checking for libintl.h... " >&6; } if test "${ac_cv_header_libintl_h+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_header_libintl_h=$ac_header_preproc fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 $as_echo "$ac_cv_header_libintl_h" >&6; } fi if test "x$ac_cv_header_libintl_h" = x""yes; then gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then gt_cv_func_ngettext_libc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_ngettext_libc=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then gt_cv_func_dgettext_libc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_dgettext_libc=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_intl_bindtextdomain=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_bindtextdomain=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_intl_ngettext=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_ngettext=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then { $as_echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_intl_dgettext=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dgettext=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:$LINENO: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_intl_ngettext=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_ngettext=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_intl_dcgettext=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dcgettext=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { ($as_echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then CATOBJEXT=.gmo DATADIRNAME=share else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 case $host in *-*-solaris*) { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 $as_echo_n "checking for bind_textdomain_codeset... " >&6; } if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. For example, HP-UX 11i declares gettimeofday. */ #define bind_textdomain_codeset innocuous_bind_textdomain_codeset /* System header to define __stub macros and hopefully few prototypes, which can conflict with char bind_textdomain_codeset (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef bind_textdomain_codeset /* 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 bind_textdomain_codeset (); /* 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_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset choke me #endif int main () { return bind_textdomain_codeset (); ; return 0; } _ACEOF 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:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_func_bind_textdomain_codeset=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_bind_textdomain_codeset=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 $as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES # Check whether --enable-gstreamer was given. if test "${enable_gstreamer+set}" = set; then enableval=$enable_gstreamer; case "${enableval}" in yes) ENABLE_GST=yes ;; no) ENABLE_GST=no ;; *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-gstreamer" >&5 $as_echo "$as_me: error: bad value ${enableval} for --enable-gstreamer" >&2;} { (exit 1); exit 1; }; } ;; esac else ENABLE_GST=no fi LOCALEDIR="$datadir/locale" # Check whether --with-localedir was given. if test "${with_localedir+set}" = set; then withval=$with_localedir; LOCALEDIR="${withval}" fi if test x$ENABLE_GST = xyes; then HAVE_GSTREAMER=0 GST_MAJORMINOR=0.8 GSTREAMER_REQUIRED=0.8 pkg_failed=no { $as_echo "$as_me:$LINENO: checking for GST" >&5 $as_echo_n "checking for GST... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GST_CFLAGS"; then pkg_cv_GST_CFLAGS="$GST_CFLAGS" else if test -n "$PKG_CONFIG" && \ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ gstreamer-\$GST_MAJORMINOR >= \$GSTREAMER_REQUIRED\"") >&5 ($PKG_CONFIG --exists --print-errors "\ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GST_CFLAGS=`$PKG_CONFIG --cflags "\ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GST_LIBS"; then pkg_cv_GST_LIBS="$GST_LIBS" else if test -n "$PKG_CONFIG" && \ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ gstreamer-\$GST_MAJORMINOR >= \$GSTREAMER_REQUIRED\"") >&5 ($PKG_CONFIG --exists --print-errors "\ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GST_LIBS=`$PKG_CONFIG --libs "\ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "\ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED"` else GST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "\ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED"` fi # Put the nasty error message in config.log where it belongs echo "$GST_PKG_ERRORS" >&5 { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } HAVE_GSTREAMER=0 elif test $pkg_failed = untried; then HAVE_GSTREAMER=0 else GST_CFLAGS=$pkg_cv_GST_CFLAGS GST_LIBS=$pkg_cv_GST_LIBS { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } HAVE_GSTREAMER=1 fi if test "x$HAVE_GSTREAMER" = "x0"; then { { $as_echo "$as_me:$LINENO: error: you need gstreamer development packages installed !" >&5 $as_echo "$as_me: error: you need gstreamer development packages installed !" >&2;} { (exit 1); exit 1; }; } fi cat >>confdefs.h <<_ACEOF #define HAVE_GSTREAMER $HAVE_GSTREAME _ACEOF { $as_echo "$as_me:$LINENO: result: GStreamer" >&5 $as_echo "GStreamer" >&6; } fi ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile.in" 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:$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= ;; #( *) $as_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 test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$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= 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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${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:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_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 # PATH needs CR # 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_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 if (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 # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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. 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); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. 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 # Name of the executable. 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'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 # 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 $as_me, which was generated by GNU Autoconf 2.63. 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 from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, 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_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 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' MKDIR_P='$MKDIR_P' 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=$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 ;; --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"` ;; esac CONFIG_FILES="$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 CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --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_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _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" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # 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=' ' 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 {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } 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_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } 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_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } 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 >>"\$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 >>"\$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 < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// 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 >"$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_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } 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_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } 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_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[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="$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_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$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:$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 >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { 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_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } 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 ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; 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:$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 s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { 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_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # 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 || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi bygfoot-2.3.2/bygfoot-update0000744000175000017500000006077211225071373015035 0ustar eliaselias#!/bin/bash #################################################### # Bygfoot Football Manager # # AUTHOR: Gyozo Both (gyboth@bygfoot.com) # # http://bygfoot.sourceforge.net # #################################################### # Skript that updates src packages of the Bygfoot Football Manager # using wget to retrieve patches from the homepage # version number version="2.0.0" # the bygfoot release version the script is shipped with relversion=2.3.2 # the current release version on the server packversion= # exit codes EXITOK=0 EXITNOPROG=1 EXITNOREV=2 EXITABORT=3 EXITWGETFAIL=4 EXITUSR=6 EXITNEWSCRIPT=7 EXITCOUNTRY=8 EXITDEBIAN=10 # variables # a variable we sometimes read something into tempvar= # the directory containing the Bygfoot src package packdir= # a directory we can write to and read from tmpdir= # destination for the country files countrydir= # the Bygfoot package type, stable or unstable type_stable=stable type_unstable=unstable type= # the current revision number of the user's package revnr= # revision numbers fetched from the homepage newrevnr= # number of new revisions found found=0 # the arguments for the script args="$*" # which cvs version to get cvs_version1=bygfoot-unstable cvs_version2=bygfoot2-unstable cvs_version= # whether we use zenity use_zenity= # The file we redirect dialog output to input_file=$PWD/bygfoot-update-dialog.tmp # The file containing all output log_file=$PWD/bygfoot-update.log # options # whether all new patches should be applied automatically apply_all=0 # whether we should skip some queries and assume standard values auto=0 # whether we recompile automatically after patching recompile=0 # whether we check for auxiliary programs and # newer update script versions check=1 # SourceForge.Net username (for cvs checkout) cvs_user= # whether we show the log file before terminating # if so, the file doesn't get deleted by cleanup() show_log=0 # operation modes # source update mode_src=0 # country file download mode_country=1 # package download mode_pack=2 # get cvs version mode_cvs=3 mode= # print a help text function print_help() { cat <> $log_file | tee -a $log_file } # show log file before exiting if the option is set function my_exit() { if [ $show_log -eq 1 ]; then if [ -r $log_file ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update Log" --text-info --filename=$log_file else dialog --title "Bygfoot Online Update" --textbox $log_file 22 75 fi else echo "** WARNING: log file $log_file not readable." fi fi cleanup exit $1 } # parse arguments function parse_args() { TEMP=`getopt -o aAbcB:C:hlnNp:rRt:T:uU:vZ --long apply-all,\ auto,branch:,country-files,country-dir:,cvs,,help,new-package,no-check,\ package-dir:,recompile,no-recompile,show-log,temp-dir:,type:,update,username:\ version,no-zenity -- $*` if [ $? != 0 ]; then my_echo "** b-u: There was an error parsing the arguments." my_echo "** b-u: The arguments will be ignored." return fi eval set -- "$TEMP" while true; do case "$1" in -a|--apply-all) apply_all=1; shift ;; -A|--auto) auto=1; apply_all=1; shift ;; -b|--cvs) mode=$mode_cvs; shift ;; -B|--branch) set_branch $2; shift 2 ;; -c|--country-files) mode=$mode_country; shift ;; -C|--country-dir) pushd $2 &> /dev/null; countrydir=$PWD; popd &> /dev/null; shift 2 ;; -h|--help) print_help; exit $EXITOK ;; -l|--show-log) show_log=1; shift ;; -n|--new-package) mode=$mode_pack; shift ;; -N|--no-check) check=0; shift ;; -p|--package-dir) pushd $2 &> /dev/null; packdir=$PWD; popd &> /dev/null; shift 2 ;; -r|--recompile) recompile=1; shift ;; -R|--no-recompile) recompile=-1; shift ;; -t|--temp-dir) pushd $2 &> /dev/null; tmpdir=$PWD; popd &> /dev/null; shift 2 ;; -T|--type) type=$2; shift 2 ;; -u|--update) mode=$mode_src; shift ;; -U|--username) cvs_user=$2; shift 2 ;; -v|--version) print_version; exit $EXITOK ;; -Z|--no-zenity) use_zenity=0; shift ;; --) shift; break ;; esac done } # clean up in the temp dir function cleanup() { my_echo my_echo "** b-u: Removing output file $input_file." rm -rfv $input_file 2>> $log_file | tee -a $log_file if [ ! -z $tmpdir ]; then if [ $mode -ne $mode_pack ]; then my_echo "** b-u: Cleaning up in the temp directory." rm -rfv 2>> $log_file | tee -a $log_file fi fi if [ $show_log -eq 0 ]; then my_echo "** b-u: Removing log file $log_file." rm -rfv $log_file fi } # wget something, exit if it doesn't work function my_wget() { if ! wget -v $1 2>> $log_file | tee -a $log_file; then my_echo my_echo "** b-u: wget failure." my_exit $EXITWGETFAIL fi } # wrapper for zenity function my_zenity() { zenity "$@" 1> $input_file exitval=$? if [ $exitval -eq 255 ]; then my_echo "** b-u: zenity error." read a elif [ $exitval -eq 1 ]; then my_echo "** b-u: User abort." my_exit $EXITUSR fi } # check for high enough version of zenity function check_zenity() { my_echo -n "** b-u: checking for zenity..." if ! which zenity &> /dev/null; then my_echo " not installed. I'm going to use dialog." else zenver=$(zenity --version) zenver1=$(echo $zenver |sed "s/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/g") zenver2=$(echo $zenver |sed "s/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/g") zenver3=$(echo $zenver |sed "s/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/g") if [ $zenver1 -ge 2 -a $zenver2 -ge 9 -a $zenver3 -ge 0 ]; then my_echo " $zenver1.$zenver2.$zenver3 found." use_zenity=1 else my_echo " $zenver1.$zenver2.$zenver3 not good enough. I'm going to use dialog." use_zenity=0 fi fi } # check for the programs needed function check_progs() { if [ $check -eq 0 ]; then return fi my_echo for i in sed tar bzip2 wget patch svn; do my_echo -n "** b-u: checking for $i... " if which $i &> /dev/null; then my_echo "ok" else my_echo "failed" my_echo my_echo "** WARNING: Didn't find working $i, maybe it's not in your PATH." my_echo "** WARNING: You might not be able to use all bygfoot-update features." read a fi done if [ -z $use_zenity ]; then check_zenity fi } function read_input() { if [ $? -eq 1 ];then my_echo "** b-u: User abort." my_exit $EXITUSR fi if [ -r $input_file ]; then tempvar=$(cat $input_file) else tempvar= fi my_echo "** b-u: User input: $tempvar" my_echo } # get team definitions function get_team_defs() { if [ ! -d teams ]; then mkdir teams fi pushd teams &> /dev/null rm -vf team_defs 2>> $log_file | tee -a $log_file my_wget http://bygfoot.sourceforge.net/revisions/team_defs while read key value; do if [ ! -z $key ]; then if [ $key = "end_section" ]; then file_name=$(echo $uri | sed "s/.*\(team_.*bz2\)/\1/g" | sed "s/\.bz2//g") def_name=$(echo $file_name | sed "s/team_//g" | sed "s/\..*//g") if [ -e $file_name.xml ]; then mv $file_name.xml $file_name.xml.old fi if [ -e $file_name.png ]; then mv $file_name.png $file_name.png.old fi my_wget $uri tar xfj $file_name.bz2 rm -rfv $file_name.bz2 2>> $log_file | tee -a $log_file echo $PWD read a if [ -d $country ]; then pushd $country &> /dev/null team_found=0 for league in league*xml; do for team in "$team_name1" "$team_name2"; do if grep "$team" $league &> /dev/null; then team_found=1 cp -f $league $league.bak my_echo " + Adding $team to $league..." perl -0777 -pe "s+(team_name\>$team\)[\n\t ]*\[^\<]*\[\n\t ]*+\1\n+g" $league.bak | perl -0777 -pe "s+([\t ]*)(\$team\)+\1\2\n\1\$def_name\+g" > $league fi done done if [ $team_found -eq 0 ]; then echo " ** $team_name1 / $team_name2 not found in any of the leagues! **" fi popd &> /dev/null else my_echo "Country directory $country not found." fi team_name1= team_name2= uri= country= else case $key in uri) uri=$value ;; team_name1) team_name1="$value" ;; team_name2) team_name2="$value" ;; country) country=$(find .. -type d -name $value | tail -n 1);; esac fi fi done < team_defs rm -vf team_defs 2>> $log_file | tee -a $log_file popd &> /dev/null } # get country files with official team names function get_country_files() { my_echo my_echo "** b-u: Fetching official team names and" my_echo "** b-u: team definitions files." pushd $countrydir &>/dev/null my_wget http://bygfoot.sourceforge.net/revisions/official_names while read -d : oldname && read newname do if [ "$oldname" = "League" ]; then DIRNAME=$(find . -type d -name $newname | tail -n 1) if [ ! $DIRNAME = "" ]; then my_echo " + Adding official team names to $DIRNAME..." fi else if [ ! $DIRNAME = "" ]; then oldname="${oldname## }" newname="${newname%% }" perl -i -pe "s?>$oldname$newname> $log_file | tee -a $log_file get_team_defs popd &> /dev/null my_echo "** b-u: done." my_exit $EXITCOUNTRY } # get the paths for a temp directory and # the location of the user's bygfoot src package function get_paths() { if [ $mode -eq $mode_src ]; then if [ -z $packdir ]; then if [ $auto -eq 0 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Select source package directory" \ --file-selection --directory else dialog --title "Bygfoot Online Update" \ --inputbox "Source package directory" 22 80 $PWD 2> $input_file fi read_input pushd $tempvar &> /dev/null; packdir=$PWD; popd &> /dev/null else packdir=$PWD fi my_echo my_echo "** b-u: Package dir set to" my_echo "** b-u: $packdir" fi fi if [ $mode -ne $mode_country ]; then if [ -z $tmpdir ]; then if [ $auto -eq 0 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Select temporary directory" \ --file-selection --directory else dialog --title "Bygfoot Online Update" \ --inputbox "Temporary directory\n(you need read/write permissions there)" \ 22 80 /tmp 2> $input_file fi read_input if [ ! -z $tempvar ]; then pushd $tempvar &> /dev/null ; tmpdir=$PWD; popd &> /dev/null else tmpdir=/tmp fi else tmpdir=/tmp fi my_echo my_echo "** b-u: Temp dir set to" my_echo "** b-u: $tmpdir" fi fi if [ $mode -eq $mode_country ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --info \ --text="If you use the binary version of Bygfoot, you should specify './support_files/definitions' as country dir. If you use an installed version, you should specify '$HOME/.bygfoot-X/definitions' (X being the version number you use)." else dialog --title "Bygfoot Online Update" --msgbox "If you use the binary version of Bygfoot, you should specify './support_files/definitons' as country dir. If you use an installed version, you should specify '$HOME/.bygfoot-X/definitions' (X being the version number you use)." \ 22 80 2> $input_file fi if [ -z $countrydir ]; then if [ $auto -eq 0 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Definitions dir (right click to show hidden)" \ --file-selection --directory else dialog --title "Bygfoot Online Update" \ --inputbox "Directory containing definitions directory" \ 22 80 $HOME/.bygfoot/definitions 2> $input_file fi read_input if [ ! -z $tempvar ]; then pushd $tempvar &> /dev/null; countrydir=$PWD; popd &> /dev/null else countrydir=$HOME/.bygfoot/definitions fi else countrydir=$HOME/.bygfoot/definitions fi my_echo my_echo "** b-u: Country dir set to" my_echo "** b-u: $countrydir" fi fi } # find out revision number and type function get_rev_type() { echo if [ ! -e $packdir/revision_number ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --error \ --text="I couldn't find the file containing your current revision number and type ($packdir/revision_number)." else dialog --title "Bygfoot Online Update" --msgbox \ "I couldn't find the file containing your current revision number and type ($packdir/revision_number).\nFailure." \ 22 80 2> $input_file fi read_input my_exit $EXITNOREV fi type=$(cat $packdir/revision_number | sed s/[0-9]*//g) revnr=$(cat $packdir/revision_number | sed s/[a-z]*//g) my_echo "** b-u: Your current revision is: $type $revnr." } function apply_rev() { my_echo my_echo "** b-u: Applying patch revision_$type$newrevnr" cd $packdir if [ -e $newrevdir/prepatch ]; then $newrevdir/prepatch 2>> $log_file | tee -a $log_file fi patch -p1 < $newrevdir/patch* 2>> $log_file | tee -a $log_file if [ -e $newrevdir/postpatch ]; then $newrevdir/postpatch 2>> $log_file | tee -a $log_file fi cd $tmpdir/bygfoot-update-tmp } # fetch a revision archive from the homepage and # patch the src package function get_revision() { local newrevdir=$tmpdir/bygfoot-update-tmp/revision_$type$newrevnr my_echo my_echo "** b-u: Retrieving revision_$type$newrevnr.tar.bz2." my_wget http://bygfoot.sourceforge.net/revisions/$type/revision_$type$newrevnr.tar.bz2 mkdir $newrevdir cd $newrevdir tar xfjv ../revision_$type$newrevnr.tar.bz2 2>> $log_file | tee -a $log_file if [ $use_zenity -eq 1 ]; then my_zenity --title="Patch README" --text-info --filename=README else dialog --title "Bygfoot Online Update" --textbox README 22 75 fi if [ $apply_all -eq 0 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --list \ --text="Apply patch? (You can't apply newer ones if you don't apply this one because they depend on each other." \ --radiolist --column "" --column "" --column "" \ TRUE 1 Yes \ FALSE 2 No \ FALSE 3 All else dialog --title "Bygfoot Online Update" --menu \ "Apply patch?\n(You can't apply newer ones if you don't apply this one because they depend on each other.)" \ 22 80 10 \ 1 Yes \ 2 No \ 3 All 2> $input_file fi read_input if [ ! -z $tempvar ]; then if [ $tempvar -eq 3 ]; then apply_all=1 elif [ $tempvar -ne 1 ]; then my_echo my_echo "** b-u: User abort." my_exit $EXITUSR fi fi fi apply_rev } # look for new revisions function get_revs() { my_echo cd $tmpdir my_echo "** b-u: Cleaning up old update directories and creating a new one..." rm -rfv bygfoot-update-tmp 2>> $log_file | tee -a $log_file mkdir -v bygfoot-update-tmp 2>> $log_file | tee -a $log_file cd bygfoot-update-tmp my_echo my_echo "** b-u: Fetching revision list..." my_wget http://bygfoot.sourceforge.net/revisions/$type/revisions_$type for i in $(cat revisions_$type); do my_echo newrevnr=$(echo $i | sed s/'[a-z_]*\([0-9]*\).*'/'\1'/g) if [ $newrevnr -gt $revnr ]; then found=$[found + 1] get_revision else my_echo "** b-u: $i is older than your revision..." fi done } # clean up etc. function update_end() { my_echo if [ $found -ge 1 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --info \ --text="$found new revisions found. Your new revision number should be $[revnr + found]. Have a look at the files README, ChangeLog and ReleaseNotes to see the changes that were made." else dialog --title "Bygfoot Online Update" --msgbox "$found new revisions found.\nYour new revision number should be $[revnr + found].\nHave a look at the files README, ChangeLog and ReleaseNotes to see the changes that were made." 2> $input_file fi if [ $recompile -eq 0 -a $auto -eq 0 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --question --text="Would you like me to execute 'configure && make' ?" else dialog --title "Bygfoot Online Update" --yesno "Would you like me to execute 'configure && make' ?" 22 80 2> $input_file fi read_input fi if [ $recompile -ne -1 ]; then cd $packdir ./configure && make 2>> $log_file | tee -a $log_file fi else if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --info \ --text="No new revisions found.\nYour package seems to be up-to-date." else dialog --title "Bygfoot Online Update" --msgbox "No new revisions found.\nYour package seems to be up-to-date." 22 80 2> $input_file fi fi my_echo my_echo "** b-u: done." my_exit $EXITOK } # set cvs branch from command line option function set_branch() { if [ $1 -eq 1 ]; then cvs_version=$cvs_version1; else cvs_version=$cvs_version2; fi } # ask for the package type (stable/unstable) function get_type() { if [ ! -z $type ]; then return fi if [ $auto -ne 1 ];then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --list \ --text="Specify package type:" \ --radiolist --column "" --column "" --column "" \ TRUE 1 Stable \ FALSE 2 Unstable else dialog --title "Bygfoot Online Update" --menu "Specify package type" \ 22 80 10 \ 1 "Stable" \ 2 "Unstable" 2> $input_file fi read_input if [ $tempvar -eq 2 ]; then type=$type_unstable else type=$type_stable fi else type=$type_stable fi } function get_latest_versions() { pushd $tmpdir &> /dev/null rm -rfv bygfoot-update-tmp 2>> $log_file | tee -a $log_file mkdir -v bygfoot-update-tmp cd bygfoot-update-tmp my_wget http://bygfoot.sourceforge.net/packages/$type/versions packlist=`cat versions` if [ $auto -eq 1 ]; then return fi if [ $use_zenity -eq 1 ]; then zencmd="zenity --title=Bygfoot_Online_Update --list --text=Select_package.Your_version_is_$relversion(as_far_as_I_know). --radiolist --print-column 2" zencmd="$zencmd --column - --column - --column Package" cnt=1 for package in $packlist; do if [ $cnt -eq 1 ]; then zencmd="$zencmd TRUE $cnt $package" else zencmd="$zencmd FALSE $cnt $package" fi cnt=$[cnt + 1]; done selected_package=$($zencmd) if [ $? -eq 1 ];then my_echo "** b-u: User abort." my_exit $EXITUSR fi else dialcmd="dialog --title Bygfoot_Online_Update --menu Select_package.Your_version_is_$relversion(as_far_as_I_know). 22 80 10" for package in $packlist; do dialcmd="$dialcmd $package -" done $dialcmd 2> $input_file read_input selected_package=$tempvar fi } function get_new_package() { my_wget http://bygfoot.sourceforge.net/packages/$type/$selected_package if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --info \ --text="You can find the package $selected_package in the directory $PWD." else dialog --title "Bygfoot Online Update" \ --msgbox "You can find the package $selected_package\nin the directory $PWD." \ 22 80 2> $input_file fi my_echo "** b-u: Done." my_exit $EXITOK } # download a bygfoot package function get_package() { get_type get_latest_versions get_new_package } function get_mode() { if [ ! -z $mode ]; then return fi if [ $auto -eq 1 ]; then mode=$mode_src return fi if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --list \ --text="Main Menu" \ --radiolist --column "" --column "" --column "" \ TRUE 1 "Download the latest Bygfoot release" \ FALSE 2 "Get official team names and team definitions" \ FALSE 3 "Get CVS version (11+ MB)" else dialog --title "Bygfoot Online Update" --menu "Main Menu" 22 80 10 \ 1 " Download the latest Bygfoot release" \ 2 " Get official team names and team definitions" \ 3 " Get CVS version (11+ MB)" 2> $input_file fi read_input if [ -z $tempvar ]; then mode=$mode_pack return fi if [ $tempvar -eq 1 ]; then mode=$mode_pack elif [ $tempvar -eq 2 ]; then mode=$mode_country else mode=$mode_cvs fi } function get_cvs() { if [ -z $cvs_version ];then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --list \ --text="Specify CVS version" \ --radiolist --column "" --column "" --column "" \ FALSE 1 " 1.8 branch" \ TRUE 2 " 2.0 branch" else dialog --title "Bygfoot Online Update" --menu "Specify CVS version" 22 80 10 \ 1 " 1.8 branch" \ 2 " 2.0 branch" 2> $input_file fi read_input if [ $tempvar -eq 2 ]; then cvs_version=$cvs_version2 else cvs_version=$cvs_version1 fi fi if [ -z $cvs_user ];then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --entry \ --text="If you'd like to check out as a developer, enter your SourceForge.net username. Leave empty to check out anonymously." else dialog --title "Bygfoot Online Update" --inputbox "If you'd like to check out as a developer, enter your\nSourceForge.net username. Press RETURN to download anonymously." 22 80 2> $input_file fi read_input if [ -z $tempvar ]; then cvs_command="svn co https://bygfoot.svn.sourceforge.net/svnroot/bygfoot bygfoot/trunk/bygfoor/trunk" else cvs_command="svn --username=$tempvar co https://bygfoot.svn.sourceforge.net/svnroot/bygfoot bygfoot/trunk/bygfoor/trunk" fi else if [ $cvs_user = "A" ]; then cvs_command="svn co https://bygfoot.svn.sourceforge.net/svnroot/bygfoot bygfoot/trunk/bygfoor/trunk" else cvs_command="svn --username=$cvs_user co https://bygfoot.svn.sourceforge.net/svnroot/bygfoot bygfoot/trunk/bygfoor/trunk" fi fi cd $tmpdir $cvs_command checkout $cvs_version 2>> $log_file | tee -a $log_file if [ $recompile -eq 0 -a $auto -eq 0 ]; then if [ $use_zenity -eq 1 ]; then my_zenity --title="Bygfoot Online Update" --question \ --text="Would you like me to execute 'autogen.sh && make' ?" else dialog --title "Bygfoot Online Update" \ --yesno "Would you like me to execute 'autogen.sh && make' ?" 22 80 2> $input_file fi read_input fi if [ $recompile -ne -1 ]; then cd $cvs_version ./autogen.sh && make 2>> $log_file | tee -a $log_file fi my_exit $EXITOK } parse_args $* print_version echo "Bygfoot Online Update $version log file" > $log_file echo "Don't forget to remove this file if you don't need it anymore." >> $log_file check_progs get_mode get_paths # what to do when user presses Ctrl-C trap 'my_echo; my_echo "** b-u: User abort." & my_exit $EXITABORT' 2 if [ $mode -eq $mode_country ]; then get_country_files elif [ $mode -eq $mode_pack ]; then get_package elif [ $mode -eq $mode_cvs ]; then get_cvs else get_rev_type get_revs update_end fi bygfoot-2.3.2/TODO0000644000175000017500000000032411225071373012633 0ustar eliaseliasBygfoot Football Manager UNKNOWN_VERSION AUTHOR: Gyozo Both Mark Lawrenz (mark@bygfoot.com) http://bygfoot.sourceforge.net See this forum at the homepage: http://bygfoot.sourceforge.net/phpBB2/viewforum.php?f=3 bygfoot-2.3.2/README0000644000175000017500000000260311225071373013025 0ustar eliaseliasBygfoot Football Manager 2.3.2 AUTHORS: Gyozo Both Mark Lawrenz (mark@bygfoot.com) http://bygfoot.sourceforge.net DESCRIPTION Bygfoot is a small and simple graphical football (a.k.a. soccer) manager game featuring many international leagues and cups. You manage a team from one such league: you form the team, buy and sell players, get promoted or relegated and of course try to be successful. INSTALLATION AND UPDATE See INSTALL for instructions on how to install Bygfoot. Have a look at UPDATE for instructions on how to keep your Bygfoot version up-to-date easily. BUG REPORTS AND PRAISE If you like the game and have suggestions on how to improve it (keep in mind that the game is kept simple on purpose, so don't suggest something like 'each player should have separate skill-values for their right and left foot and you should add the colour of their eye, too') or find bugs, write me to the above address or submit a report on the website. You should describe the circumstances of the occurence of the bug and whether you can reproduce it or not. If there's an output, attaching it (unless it's a simple, hateful, embarrassing segfault) might be helpful, too. If it's reproducible, it'd be very helpful to attach a savegame. Another way you can contribute to Bygfoot is to write a country file and send me the result. See the forums at http://bygfoot.sourceforge.net/forum on help and advice. bygfoot-2.3.2/missing0000755000175000017500000002557711225071373013563 0ustar eliaselias#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2006-05-10.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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 2, 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: bygfoot-2.3.2/po/0000755000175000017500000000000011225071373012562 5ustar eliaseliasbygfoot-2.3.2/po/nl.po0000644000175000017500000026311011225071373013536 0ustar eliaselias# Dutch translation of Bygfoot. # License: GPL # This file is distributed under the same license as the Bygfoot package. # Arne Deprez & Tobe Deprez , 2005. 2006, 2007 # Vincent van Adrighem , 2005. # # msgid "" msgstr "" "Project-Id-Version: Bygfoot 2.1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-06-26 12:29+0200\n" "Last-Translator: Mihai \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Goals/Match %.1f Reddingen %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Goals/Match %.1f Schoten %%%.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Je kan ook een mail sturen naar de auteurs:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Dochters" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " &, zonen" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (VT)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (NOOT: Als je het niet aanneemt is het spel over voor jou.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (OG)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (P)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Heenmatch" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Te herspelen matchen" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Terugmatch" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Assoc." #: src/options_interface.c:329 msgid " Autosave files " msgstr " Auto-opslaan bestanden " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bank" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Bros." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Chemie" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Communiecaties" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Company" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Systemen" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energie" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Financial" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Gelukkig heeft hij een neef die je team kan helpen." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Group" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holding" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industries" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laberatoria" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petroleum" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Producten" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restauranten" #: src/interface.c:1220 msgid " Round " msgstr " Ronde " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Wetenschappen" #: src/interface.c:1200 msgid " Season " msgstr " Seizoen " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Systemen" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Technologieën" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telecomunicatie" #: src/interface.c:1210 msgid " Week " msgstr " Week " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " n.v." #: src/callback_func.c:466 msgid " less" msgstr " minder" #: src/options_interface.c:527 msgid " months" msgstr " maanden" #: src/callback_func.c:464 msgid " more" msgstr " meer" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " P." #: src/misc_interface.c:934 msgid " seats" msgstr " plaatsen" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f maanden / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d n.v." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d p." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d training kampen over dit seizoen" #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (T) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (verwachte terugkeer binnen %d weken)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Groep %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s accepteert uw aanbod." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s en %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s en %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s had niet genoeg geld om %s te kopen of was zijn team vol." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s ontslaat je wegens financieel mismanagement.\n" "Je vindt een nieuwe job met %s in de %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s ontslaat je wegens onsuccesvolheid.\n" "Je vindt een nieuwe job met %s in de %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s werd op de transferlijst gezet voor %d weken." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s heeft je team verlaten omdat zijn contract verlopen is." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s van %s heeft uw aanbieding (%s / %s) afgeslagen. Hij was niet tevreden " "met het loon dat je hem aanbood." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s of %s heeft uw offer afgeslagen omdat uw team teveel ster spelers " "bevat'Een speler van mijn kaliber speelt geen tweede viool,' zei hij." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s bieden je een job aan in de %s.\n" "Je neemt de uitdaging aan en verlaat %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s wijst je aanbod af en wil niet meer met je onderhandelen. Je moet hem " "verkopen voordat zijn contract afloopt (anders verlaat hij je team)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s wijst je bod af. Je mag nog %d aanbiedingen doen." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s zal de penalties en de vrije schoppen schieten waneer hij speelt." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s wilt %s kopen. Ze bieden %s voor hem, wat %s is dan de waarde van de " "speler. Accepteren?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "%ss contract loopt af binnen %.1f jaren." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "%ss blessure was zo erg dat hij geen voetbal meer kan spelen op " "proffesioneel niveau. Hij verlaat je team." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (geen limiet)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d weken\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(start in week %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- een simpele en verslavende GTK2 voetbal manager" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 jaar" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 jaar" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 jaar" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 jaar" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (U)" #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Er was brand\n" "in het stadion" #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Er waren rellen in\n" "het stadion." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Er waren technische problemen\n" "in uw stadion." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Huidige " "weddenschappen" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Recente " "weddenschappen" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Week %d Ronde %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Er is een niewe jeugdspeler in uw jeugd academie geregistreerd" #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Er wou een nieuwe jeugdspeler toetreden tot uw academie, maar er was geen " "plaats voor hem." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "LAATSTE MATCH TOEVOEGEN" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "SUPERAANVALLEND" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "SUPERVERDEDIGEND" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "MINDER" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "AANVALLEND" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Over" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Accepteren" #: src/game_gui.c:818 msgid "Accept?" msgstr "Accepteren?" #: src/interface.c:1035 msgid "Add last match" msgstr "Voeg laatste match toe" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Voeg de laatste opgenomen match bij de memorabele matchen toe." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Voeg gebruiker toe" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Wijzig terugbetalings schema?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Leeftijd" #: src/options_interface.c:735 msgid "Age " msgstr "Leeftijd " #: src/window.c:399 msgid "All Files" msgstr "Alle bestanden" #: src/interface.c:502 msgid "All Out Attack" msgstr "Superaanvallend" #: src/interface.c:478 msgid "All Out Defend" msgstr "Super verdedigend" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Toon het nieuws scherm na een matchdag" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "Altijd opslaan/herstellen van uw standaard team" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "Altijd opslaan/herstellen van uw standaard team voor/na een wedstrijd" #: src/interface.c:692 msgid "Anti" msgstr "Minder" #: src/interface.c:658 msgid "Any" msgstr "Elke" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Weergave" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Wil je solliciteren voor deze job?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Ten minste een speler heeft deze week niet gespeeld. Doorgaan?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Op het Bygfoot forum kan je bugs rapporteren, vragen voor hulp en over het " "spel discussiëren:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Aanvallend" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Opkomst\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Attributen " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Automatische lening terugbetaling" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Automatische popup" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Automatische terugbetaling" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Automatische vervangingen" #: src/options_interface.c:443 msgid "Autosave" msgstr "Auto-opslaan" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Auto-opslaan interval " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "gem. kwaliteiten: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "gem. kwaliteiten: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Gem.Kwal." #: src/treeview2.c:516 msgid "Av.skill" msgstr "gem. kwaliteiten" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Beschikbare teams" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "gemiddelde" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Gemiddelde opkomst" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Gemiddelde opkomst %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Gemiddelde kwaliteiten" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Gem. kwaliteiten:" #: src/treeview.c:1851 msgid "Away" msgstr "Uit" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "GEBALANCEERD" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "BAN(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Terug naar het hoofdmenu (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Terug naar het splashscreen" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Slecht" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Balans" #: src/interface.c:490 msgid "Balanced" msgstr "Gebalanceerd" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Geschorst\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Begin een nieuwe week (Spatie)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Best" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Beste defensieve teams" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Topscorestand" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Beste keepers" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Beste offensieve teams" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Wedden" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "" "Wedden - Klik met de linkermuisknop op een winstcijfer om een bod te zetten " "of te verwijderen" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Twee-wekelijkse balans" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Twee-wekelijkse balans\n" "(Week %d en %d)" #: src/interface.c:669 msgid "Boost" msgstr "Motivatie" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Extra Motivatie kan niet gebruikt worden in dit land bestand." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Motivatie is veranderd naar %s (%d kosten per minuut)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Motivatie is veranderd naar %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Motivatiekosten" #: src/player.c:1430 msgid "Broken ankle" msgstr "Gebroken enkel" #: src/player.c:1433 msgid "Broken arm" msgstr "Gebroken arm" #: src/player.c:1427 msgid "Broken leg" msgstr "Gebroken been" #: src/player.c:1424 msgid "Broken rib" msgstr "Gebroken rib" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Gebroken schouder" #: src/interface.c:842 msgid "Browse players" msgstr "Bekijk spelers" #: src/interface.c:745 msgid "Browse teams" msgstr "Bekijk teams" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Bygfoot Memorabele Matchen" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoot Nieuws" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoot Opgeslagen bestanden" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Bygfoot constanten" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Het Bygfoot debug venster. Als je hier per ongeluk terechtgekomen bent, " "SLUIT ONMIDDELLIJK (anders zal je processor vernietigd worden door " "oververhitting)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot is een zeer intuitief en simpel spel, er is niet veel documentatie. " "Maar als je problemen hebt zijn er een paar plaatsen waar je uitleg kunt " "krijgen.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "HPos" #: src/options_interface.c:665 msgid "CPos " msgstr "HPos " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "Hkw" #: src/options_interface.c:679 msgid "CSkill " msgstr "HKwal " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Bereken begin van de week" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Bereken wekelijkse terugbetaling" #: src/training_interface.c:84 msgid "Camp points" msgstr "Kamppunten" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capaciteit (plaatsen)" #: src/options_interface.c:728 msgid "Cards " msgstr "Kaarten " #: src/treeview.c:2182 msgid "Career values" msgstr "Carrièrewaarden" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Verander de hoeveelheid commentaar. Als je deze waarde verhoogd kan je meer " "gebeurtenissen zien." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Verander live match snelheid. Hoe hoger de waarde, hoe sneller de live match." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Verander de ticket prijs" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Kies een land" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Kies een bestand" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Kies spel taal (misshien werkt dit niet in Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Te gebruiken klasse" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Kies een team" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Kies een gebruikersnaam" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Klik op OK om te solliciteren voor deze job en klik op Annuleren om het " "venster te sluiten." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Klik op een gebruiker om hem uit het spel te verwijderen." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Klik op een gebruiker om hem te verwijderen." #: src/options_interface.c:1640 msgid "Close" msgstr "Sluit af" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" "Sluit dit scherm. De wijzigingen worden enkel bewaard voor deze sessie " "tenzij u ook opslaat naar een bestand" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Comentaar" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "De commentaargebeurtenis om te testen; laat dit open om alle " "commentaargebeurtenissen te testen" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Commentaarbestandsnaam (mag in een supportmap zijn)" #: src/treeview.c:3017 msgid "Company" msgstr "Bedrijf" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Ontslagvergoedingen" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Competitie" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Comprimeren van opgeslagen spel..." #: src/player.c:1409 msgid "Concussion" msgstr "Hersenschudding" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Bevestig het terugbetalingsschema" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Vraag afsluiten wanneer niet opgeslagen" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Vraag voor verwijderen van jeugdspelers" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Vraag wanneer onfit" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Bevestig!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Constanten bestand" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Contract" #: src/options_interface.c:763 msgid "Contract " msgstr "Contract " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contract / Geld" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Contract lengte\n" "(Maanden)" #: src/window.c:937 msgid "Contract offer" msgstr "Contract aanbod" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Je kan geen contracten maken in dit land." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Makers" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "%s aan het kopiëeren" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Kosten" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Kan de tekening %s niet vinden" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Land" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Creëer beker nieuws" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Creëer klasse nieuws" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Creëer gebruiker nieuws" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Bekerwinnaar" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Cup heeft geen tabellen" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Huidige capaciteit" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Huidig bestand" #: src/treeview.c:2829 msgid "Current league" msgstr "Huidige klasse" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Huidige intrest voet op de markt" #: src/treeview.c:2165 msgid "Current position" msgstr "Huidige postitie" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Huidige veiligheid" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Huidige instellingen:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Huidige kwaliteit" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "V" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "VERDEDIGEND" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Lening (betaal terug in %d weken)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Debug" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Wordt later beslist" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Standaard hotel" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Standaard ontspanning:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Standaard training:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Standaard bod" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Verdedigend" #: src/interface.c:640 msgid "Defenders" msgstr "Verdedigers" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Wist je dat?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Kan bestand 'bygfoot_help' niet vinden." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Wil je deze speler echt uit de academie zetten?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Laad geen defenities" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Laad geen team defenities" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Klaar." #: src/treeview2.c:396 msgid "Draw" msgstr "Gelijk" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Krediet opening" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "Dw" #. draw #: src/team.c:1150 msgid "Dw " msgstr "Dw " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Dw %d - %d" #: src/options_interface.c:742 msgid "ETal " msgstr "HTal " #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTEREN" #: src/options_interface.c:432 msgid "Edit" msgstr "Wijzig" #: src/interface.c:829 src/interface.c:2038 msgid "Edit name" msgstr "Wijzig de naam" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "Wijzig de constanten van het spel" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Tik uw structuur. De som van de cijfers moet 10 zijn." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Vul een eigen structuur in" #: src/window.c:865 msgid "Erm..." msgstr "Erm..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Enter / Spatie" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Geschat Talent" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "HTal" #: src/treeview.c:2378 msgid "Event" msgstr "Gebeurtenis" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Verwachte duur" #: src/treeview.c:1704 msgid "Expenses" msgstr "Uitgaven" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/interface.c:398 msgid "F_igures" msgstr "Stat_istieken" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Transfersom" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "Het bestand met live match codes (mag in een supportmap staan)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Bestand dat instellingen van het spel bevatten. VERANDER DIT NIET TENZIJ JE " "ECHT WEET WAT JE AAN HET DOEN BENT." #: src/interface.c:928 msgid "Fin_Stad" msgstr "_Financiën" #: src/cup.c:1105 msgid "Final" msgstr "Finale" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "De financiën kunnen niet gebruikt worden in dit land" #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Ontslaan" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Eerste getal: gemiddelde van de huidige kwaliteiten van de eerste 11 spelers." "Tweede getal: gemiddelde kwaliteiten van alle spelers" #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Eersteklas hotel" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Fit" #: src/treeview.c:2168 msgid "Fitness" msgstr "Fitheid" #: src/options_interface.c:693 msgid "Fitness " msgstr "Fitheid " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Matchen (competities)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Matchen (week)" #: src/options_interface.c:1541 msgid "Float" msgstr "Float" #: src/options_interface.c:379 msgid "Font name" msgstr "Naam van het lettertype" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Lettertype gebruikt in lijsten" #: src/interface.c:652 msgid "Forwards" msgstr "Aanvallers" #: src/treeview.c:840 msgid "Fouls" msgstr "Fouten" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Gebroken enkel" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "K" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GT" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "GB" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GV" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Ma" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Gameplay" #: src/treeview_helper.c:931 msgid "Games" msgstr "Matchen" #: src/options_interface.c:700 msgid "Games " msgstr "Matchen " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Matchen/Goals\n" #: src/options_interface.c:486 msgid "Global" msgstr "Globaal" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Go" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Ga terug naar het splashscherm" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Go/Ma" #: src/treeview.c:1775 msgid "Goalie" msgstr "Keeper" #: src/interface.c:634 msgid "Goalies" msgstr "Keepers" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Goals" #: src/options_interface.c:714 msgid "Goals " msgstr "Goals " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Goals (regulier)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Goed" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Goed hotel" #: src/player.c:1418 msgid "Groin injury" msgstr "Liesblessure" #: src/player.c:1415 msgid "Hamstring" msgstr "Hamstringblessure" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Kijk eens op de transferlijst, er is een bod gedaan op %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Krantenkop" #: src/treeview.c:2171 msgid "Health" msgstr "Gezondheid" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Help" #: src/treeview.c:1849 msgid "Home" msgstr "Thuis" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Hoeveel commentaren er per gebeurtenis moeten gegenereerd worden" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Hoe veel cijfers achter de komma er zijn voor kwaliteiten, ..." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Hoeveel auto-opslaan bestanden er gemaakt worden" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Hoeveel je standaard gokt" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Hoe vaak het spel automatisch wordt opgeslagen" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Hoe vaak de spelerslijst wordt herladen tijdens een live match (in live " "match minuten)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "BLE(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Als dit aangevinkt wordt, worden de weken zonder matchen van een gebruiker " "automatisch berekend (zonder dat de gebruiker 'nieuwe week' moet drukken)" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Als je deze sponsers niet wilt, kan je een aantal weken zonder sponsers " "spelen en wachten voor nieuwe aanbiedingen" #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importeer bestand" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Inporteer de matchen van een memorabele matchen bestand" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Verbetering bezig.\n" "%d plaatsen en %d%% veiligheid nog te doen.\n" "Verwacht einde: %d weken." #: src/treeview.c:1703 msgid "Income" msgstr "Inkomsten" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Verhoog" #: src/treeview.c:843 msgid "Injuries" msgstr "Blessures" #: src/options_interface.c:1527 msgid "Integer" msgstr "Integer" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "" "Het is te laat in het seizoen om nog automatische terugbetaling te gebruiken." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Aanbieding" #: src/interface.c:370 msgid "Job offers" msgstr "Aanbiedingen" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Job aanbiedingen %s" #: src/treeview.c:1527 msgid "Journey costs" msgstr "Reis kosten" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Zet uit de academie" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "L" #. lost #: src/team.c:1154 msgid "L " msgstr "V " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "V %d - %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "L_aad laatste opgeslagen spel" #: src/options_interface.c:436 msgid "Language" msgstr "Taal" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Te gebruiken taal (een code zoals 'nl')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Laatste %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Bestand 'Last save' niet gevonden" #: src/treeview.c:1898 msgid "Latest results" msgstr "Laatste resultaten" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Klasse" #: src/options_interface.c:770 msgid "League " msgstr "Klasse " #: src/treeview.c:2590 msgid "League champions" msgstr "Kampioen" #: src/interface.c:991 msgid "League stats" msgstr "Competitiestatistieken" #: src/league_table_interface.c:39 msgid "League table" msgstr "Klassement" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "" "Klik met de linkermuisknop om een aanbieding te doen. Klik met de " "rechtermuisknop om de aanbieding te verwijderen." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Klik met de linkermuisknop om spelers van en naar de jeugdacademie de " "verplaatsen; klik met de rechtermuisknop om het contextmenu te tonen." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Klik links om de matchen te tonen" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Klik links om de tabel te tonen." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Linkermuisknop: lenen; Middelstemuisknop: stadion venster; Rechtermuisknop: " "lening terugbetalen" #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lijst 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Lijst 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Live match" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Live match %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "live match snelheidsfactor" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Hoeveelheid commentaar in live match" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Laad spel (Ctrl+O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Laad laatste opgeslagen spel" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Laad alleen de speler namen in de defenities" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Laad team defenities" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Laad de teams van defenitie bestanden (NOOT: De Officiele bygfoot pakketten " "bevatten geen defnities van teams, je moet ze van de webpagina halen of via " "het bygfoot-update-script)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Laden Beker: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Joblijst aan het laden..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Laden klasse: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Competities en bekers aan het laden..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Laden rest" #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Laden nieuwsberichten..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Laden opties..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Laden competitiestatestieken" #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Laden transferlijst..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Laden gebruikers..." #: src/callback_func.c:397 msgid "Loan" msgstr "Lening" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Maak aanbod" #: src/interface.c:1047 msgid "Manage matches" msgstr "Pas matchen aan" #: src/interface.c:917 msgid "Manage users" msgstr "Pas gebruikers aan" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximaliseer hoofdvenster" #: src/user.c:1214 msgid "Memorable match added." msgstr "Memorabele match toegevoegd" #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Memorabele matchen" #: src/treeview.c:1777 msgid "Midfield" msgstr "Middenveld" #: src/interface.c:646 msgid "Midfielders" msgstr "Middenvelders" #: src/treeview.c:1629 msgid "Money" msgstr "Geld" #: src/interface.c:1296 msgid "Money " msgstr "Geld " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Geld (ongeveer)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Geld / week" #: src/interface.c:2092 msgid "Move to team" msgstr "Zet in team" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Zet in de jeugd academie" #: src/interface.c:438 msgid "My league results" msgstr "Mijn competitieresultaten" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Naam" #: src/options_interface.c:658 msgid "Name " msgstr "Naam " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Neutraal stadion" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Nieuwe contract\n" "aanbiedingen" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nieuwe instellingen:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Nieuws" #: src/misc3_interface.c:315 msgid "Next" msgstr "Volgende" #: src/interface.c:1434 msgid "Next (W)" msgstr "Volgende (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Volgende competitie/beker (2)" #: src/interface.c:895 msgid "Next user" msgstr "Volgende gebruiker" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "De volgende week zal je hem verkopen en een nieuwe aannemen." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Geen automatische popup" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Geen verbeteringen bezig." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Er is geen match opgeslagen." #: src/treeview2.c:600 msgid "No news available." msgstr "Geen nieuws beschikbaar" #: src/misc_callbacks.c:468 msgid "None" msgstr "Geen" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Geen goede Bygfoot Memorabele matchen bestandsnaam." #: src/window.c:882 msgid "Numbers..." msgstr "Nummers..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "NORMAAL" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "EXTRA" #: src/interface.c:686 msgid "Off" msgstr "Normaal" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Bied nieuw contract aan" #: src/interface.c:680 msgid "On" msgstr "Extra" #: src/misc_interface.c:211 msgid "Only names" msgstr "Alleen namen" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Open een memorabele matchen bestand" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Tegenstander" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Spelerslijst tegenstander" #: src/window.c:914 msgid "Options" msgstr "Opties" #: src/treeview.c:1904 msgid "Overall results" msgstr "Globale resultaten" #: src/interface.c:379 msgid "Overwrite" msgstr "Overschrijf" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Overschrijven %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "PL" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PTN" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pauzeer bij rust" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pauzeer bij blessure" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pauzeer bij rode kaart" #: src/callback_func.c:427 msgid "Payback" msgstr "Terugbetalen" #: src/treeview.c:839 msgid "Penalties" msgstr "Penalties" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Penalty/vrije schop schieter gedeselecteerd." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Kine" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "speler accepteert nieuwe aanbiedingen" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Nauwkeurigheid van spelersattributen" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Spelers attributen getoont" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Speler onderhandelt niet meer met u" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Spelerlijst" #: src/interface.c:1363 msgid "Player list 1" msgstr "Spelerlijst 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Spelerlijst 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Spelerslijst herlaad interval" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Speelstijl" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Popup voor gebruiker nieuws" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos " #: src/treeview.c:2164 msgid "Position" msgstr "Positie" #: src/treeview.c:838 msgid "Possession" msgstr "Balbezit" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Verkies berichten" #: src/interface.c:354 msgid "Preferences" msgstr "Voorkeuren" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Zeer goed hotel" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Vorige" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Vorige (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Vorige competitie/beker (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Vorige gebruiker" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Prijs per tiket" #: src/treeview.c:1517 msgid "Prize money" msgstr "Prijzengeld" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Verrokken spier" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Zet speler op de transfelijst" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Kwart-finale" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Afsluiten (Ctrl+Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "VERWIJDEREN" #: src/treeview2.c:68 msgid "REPLAY" msgstr "HERSPELEN" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Random teams in ploegen" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Kies de volgorde van de team in de bekers. Dit veranderd alleen iets aan de " "internationale defenities waar de verdeling van de teams is vast gelegd " "zoals de Wereldbeker." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Plaats" #: src/interface.c:1281 msgid "Rank " msgstr "Plaats" #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Klaar" #: src/interface.c:728 msgid "Rearrange team" msgstr "Herschik team" #: src/training_interface.c:98 msgid "Recreation" msgstr "Recreatie" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Rekruterings voorkeuren" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Rode kaarten" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Niet accepteren" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Herlaad" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Herladen en sluiten" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" "Herlaad constanten bestand. Dit zal alle veranderingen die je in deze game " "sessie maakte overschrijven." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "Herlaad van bestand" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Herlaat matchen van bestand" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Herlaat de matchen van het bestand en sluit af" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Herlaad de constanten bestand" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Verwijder speler van de transferlijst" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Wilt u gebruiker %s van het spel verwijderen?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Herspeel, verwijder of voeg memorabele matchen toe." #: src/interface.c:712 msgid "Reset player list" msgstr "Herstel spelerlijst" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Herstel de spelerlijst naar de formatie aan het begin van de live match " "pauze (rechtermuisknop drukken op de spelerslijst)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Resultaat" #: src/treeview.c:2013 msgid "Results" msgstr "Resultaten" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Doorgaan" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Enter / Spatie" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Rechter- en linkermuisknop om extra motivatiestatus te veranderen" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Klik met rechter- en linkermuisknop om uw speelstijl te veranderen" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Klik met de rechter muisknop om de job te aanvaarden, klik met de " "linkermuisknop om de teaminformatie te bekijken." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Klik met de rechtermuisknop om op 0 te zetten" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ro" #: src/cup.c:1094 msgid "Round robin" msgstr "Groepsfase" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Veiligheid (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Veiligheid verbetering te hoog, herstel tot de hoogst mogelijke waarde." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Gered %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Opslaan en sluiten" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Sla de veranderingen op en sluit af" #: src/options_interface.c:1581 msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Bestand dat instellingen van het spel bevat. VERANDER DIT NIET TENZIJ JE " "ECHT WEET WAT JE AAN HET DOEN BENT." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Opslaan (Ctrl+S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Sla instellingen op" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Opslaan overschrijven" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Sla sinstellingen als standaard op" #: src/options_interface.c:1595 msgid "Save to file" msgstr "Sla op naar bestand" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Sla gebruikersinstellingen op" #: src/interface.c:389 msgid "Save window geometry" msgstr "Sla venster instellingen op" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Sla de grote, de positie van het verster op." #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Jobaanbiedingen aan het opslaan..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Competities en bekers aan het opslaan..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Opslaan rest..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Opslaan nieuwberichten" #: src/load_save.c:79 msgid "Saving options..." msgstr "Opslaan opties..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Opslaan competitiestatestieken" #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Opslaan transferlijst..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Opslaan gebruikers" #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Scout" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sei" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Seizoen %d" #: src/interface.c:1002 msgid "Season history" msgstr "Seizoen geschiedenis" #: src/interface.c:449 msgid "Season results" msgstr "Seizoen resultaten" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Selecteer " #: src/cup.c:1108 msgid "Semi-final" msgstr "Halve-finale" #: src/interface.c:664 msgid "Set investment" msgstr "Kies investering" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Kies het pecentage van uw incomen dat je in de jeugd academie wilt " "investeren." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Zet op 0 om de waarschuwing af te zetten" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Sch" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Schiet penalty's" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Schoten %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Schoten" #: src/options_interface.c:707 msgid "Shots " msgstr "Schoten " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Toon alle competities in het 'matchen' venster" #: src/interface.c:879 msgid "Show coming matches" msgstr "Toon de komende matchen" #: src/interface.c:935 msgid "Show finances" msgstr "Toon financiën" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Toon informatie" #: src/interface.c:758 msgid "Show job exchange" msgstr "Toon job aanbiedingen" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Toon de job aanbiedingen" #: src/interface.c:857 msgid "Show last match" msgstr "Toon laatste match" #: src/interface.c:868 msgid "Show last match stats" msgstr "Toon laatste match statistieken" #: src/options_interface.c:576 msgid "Show live game" msgstr "Toon live match" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Toon matchen van alle competities" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Toon matchen van bekers" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Toon het nieuws na een match dag waarop nieuw gebruiker nieuws was gemaakt" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Toon alleen mijn recente weddenschappen" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Toon alleen het recente nieuws" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Toon matchen/goals" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Toon vooruitgansbalktekeningen" #: src/interface.c:946 msgid "Show stadium" msgstr "Toon stadion" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Toon spelverloopbalk" #: src/interface.c:972 msgid "Show the betting window" msgstr "Toon weddenschapsvenster" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Toon de lijst van beschikbare jobs" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Toon de transferlijst (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "" "Toon een waarschuwing wanneer het spelerscontract minder lang duurt dan " #: src/interface.c:589 msgid "Show youth academy" msgstr "Toon jeugd academie" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Kw" #: src/treeview.c:2166 msgid "Skill" msgstr "Kwaliteiten" #: src/options_interface.c:686 msgid "Skill " msgstr "Kwal " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Sla weken zonder gebruikersmatchen over" #: src/misc_interface.c:249 msgid "Space" msgstr "Spatie" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "Kies de extra bestanden map (heeft voorrang over de standaard mappen)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Snelheid" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponser" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsers" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Aanbiedingen sponsers" #: src/interface.c:977 msgid "St_ats" msgstr "St_ats" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadion" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Stadioncapaciteit" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Stadion uitgaven" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Staduim aanpassingen is uitgeschakeld in dit land." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Veiligheid stadion" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Stadion status" #: src/misc_interface.c:266 msgid "Start" msgstr "Start" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Start _nieuw spel" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Start in week" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Start in week" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statestieken" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Status" #: src/options_interface.c:721 msgid "Status " msgstr "Status " #: src/misc_interface.c:951 msgid "Status:" msgstr "Status:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Vorm" #: src/options_interface.c:1555 msgid "String" msgstr "String" #: src/main.c:99 msgid "String id of the country to load" msgstr "String id van het te laden land" #: src/callbacks.c:936 msgid "Structure" msgstr "Structuur" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Verwisseling verandert structuur" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Systeem" #: src/interface.c:427 msgid "Tables" msgstr "Klassementen" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talent %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Team" #: src/options_interface.c:777 msgid "Team " msgstr "Team " #: src/treeview.c:1892 msgid "Team structure" msgstr "Team structuur" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Speelstijl veranderd naar %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Team1" #: src/treeview2.c:399 msgid "Team2" msgstr "Team2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Test een XML commentaarbestand" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "De bank leent u geen geld meer uit." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Het weddenschapsbureau staat u niet toe om meer dan %s in te zetten." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Het huidige spel is niet opgeslagen en zal verloren zijn. Doorgaan?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Wanneer dit getal hoger is zal je meer commentaar zien." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "De lijst word om de %d weken vernieuwd." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Wanneer deze waarde lager is zal het commentaar in een live match sneller " "gaan." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "De eigenaars van %s accepteren uw sollicitatie." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "De eigenaars van %s accepteren uw sollicitatie. Maar als u niet succesvol " "genoeg bent zullen de eigenaars van %s je direct ontslagen worden en zal je " "de rest van het seizoen in de tuin moeten zitten." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "De eigenaars van %s zijn zeer gecharmeerd door uw succes bij %s en willen u " "als manager. Hier is een beetje informatie over %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "De eigenaars van %s zijn niet tevreden met de laatste gebeurtenissen rond " "het team. Er zijn geruchten dat ze een nieuwe coach zoeken." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "De eigenaars van %s hebben je aanbieding (%s / %s) voor %s afgeslagen. De " "transfersom en het loon waren te laag, zeggen ze." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "de eigenaars van %s hebben je aanbieding (%s / %s) voor %s afgeslagen. De " "eigenaars waren niet tevreden met de tranfersom." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "De eigenaars van %s hebben je aanbieding afgeslagen (%s / %s) voor %s. er " "was een betere aanbieding voor de speler dan die van jou." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "De eigenaars van %s slaan uw sollicitatie beleeft af. Je bent niet succesvol " "genoeg in hun ogen." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "De speler vind dat hij geen toekomst meer heeft in dit sterren team. Hij " "wilt niet meer onderhandelen." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "De speler staat al op de transferlijst." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "De speler is geblockeerd (de teameigenaars zijn momenteel aan het " "onderhandelen voor een offer)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "De speler staat niet op de transferlijst" #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "De speler is in een minder goede periode" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "De speler is in een goede periode" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "De speler is te oud voor de jeugd academie." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "De speler wil geen contract meer" #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "De structuurwaarde %d is ongeldig." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "De teameigenaars zijn heel blij met uw financiëel beheer. Omdat het team " "veel winst maakt, hebben ze besloten om de helft van de inkomsten aan goede " "doelen te schenken." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "De team eigenaars hebben je ontslagen vanwege uw slecht finacieel " "management. Gelukkig hebben de eigenaars van %s van uw ontslag gehoord en " "bieden u een job aan. Hier is wat informatie over %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "De team eigenaars hebben je ontslagen omdat je onsuccesvol was. Gelukkig " "hebben de eigenaars van %s van uw ontslag gehoord en bieden u een nieuwe job " "aan. Hier is een beetje informatie over %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "De transfermarkt is gesloten." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Er zijn een aantal bedrijven geintereseerd om uw team te sponseren. Kies er " "een:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Er zijn geblesserde of geschorste spelers in een team van een speler. " "Doorgaan?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Er zijn geen competieties in dit lan (alleen bekers)" #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Er zijn geen competieties of bekers met standen in dit land." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Er is nog geen seizoensgeschiedenis opgeslagen." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Er zijn een aantal offer voor spelers die je hebt afgewezen of de voldende " "week wou zien" #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Er is geen plaats in uw jeugd academie." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Er zijn te veel spelers gewisseld. Er zijn maar 3 wissels toegestaan. De " "wissels zijn ongedaan gemaakt." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Recette" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Belangrijk ligament beschadigd" #: src/training_interface.c:117 msgid "Training" msgstr "Training" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Trainingskamp" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Trainingskampen zijn uitgeschakeld in dit land." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "De transfer deadline is op week %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Transfer aanbod" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transfers" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Transfers zijn uitgeschakeld in dit land." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Probeer de spelende spelers op hun favoriete plaatsen te zetten en sorteer " "de vervangers (Ctrl-R of middelste muisknop)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "uitpakken van opgeslagen spel..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Gebruiker %s heeft je offer nog niet bekeken." #: src/interface.c:1013 msgid "User history" msgstr "Gebruikers geschiedenis" #: src/window.c:945 msgid "User management" msgstr "Gebruikers beheren" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Gebruikers -- klik om te verwijderen" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Waarde" #: src/options_interface.c:749 msgid "Value " msgstr "Waarde " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Hoeveelheid Comentaar" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "W" #. won #: src/team.c:1157 msgid "W " msgstr "W " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "W %d - %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "loon" #: src/options_interface.c:756 msgid "Wage " msgstr "Loon " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Bod" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Bod/\n" "Winst/Verlies" #: src/treeview.c:1522 msgid "Wages" msgstr "Lonen" #. Week #: src/treeview2.c:208 msgid "We" msgstr "We" #: src/treeview.c:2350 msgid "Week" msgstr "Week" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Week %d Ronde %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Week %d Ronde %d\n" "Cup ronde %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Wekelijkse investering." #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Wekelijkse betaling:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Wekom in Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Of 'opslaan' het huidige opgeslagen spel moet overschrijfven of een 'opslaan " "als' venster toont" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Of er een bevestigingsdialoog moet getoont worden wanneer een speler uit de " "jeugdacademie zet" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Of het spel moet starten met een gemaximaliseerd hoofdvenster (werkt niet " "met alle window managers)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Of in het wekelijke overzicht van de matchen alle klasses moeten getoont " "worden" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Of het verwisselen van twee spelers de team structuur aanpast aan de " "spelersposities" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "" "Of de live match moet gepauzeerd worden bij de rust en voor verlangingen" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "" "Of de live match moet gepauseerd worden wanneer een speler geblesserd is" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "" "Of de live match moet gepauzeerd worden wanneer een speler van een gebruiker " "van het veld gezonden wordt" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Of de vervangingen (bv. voor geblesseerde spelers) gemaakt worden door de " "computer. Dit wordt automatisch gedaan wanneer de live match af staat." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Of het spel regelmatig automatisch opgeslagen wordt" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Of de instellingen moeten opgeslagen worden in een bestand (zodat ze geladen " "worden de volgende keer dat je een nieuw spel start)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Of de gebruikersinstellingen opgeslagen moeten worden in een bestan (zodat " "ze worden herladen de volgende keer dat deze gebruiker een nieuw spel start)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Of er een bevestigingsvenster moet getoont worden als een team van een " "gebruiker geblesseerde of geschorste spelers heeft" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Of er een bevestigingsdialoog moet getoont worden wanneer je afsluit maar " "niet opgeslagen hebt" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Toon bekermatchen in het weddenschapsvenster" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Toon de bekermatchen. Gebruik het optievenster om dit permanent te " "veranderen." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "" "Of er jobaanbiedingen moeten getoont worden wanneer een gebruiker succesvol " "is" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Toon matchen van alle competities in het weddenschapsvenster" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Toon de matchen van alle competities. Gebruik het optiemenu om dit permanent " "aan te passen." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Toon alleen uw weddenschappen in de lijst van recente weddenschappen" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Toon foto's boven de vooruitgangsbalk wanneer er resultaten opgeslagen, " "geladen of berkerend moeten worden" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "" "Of de spelers matchen/goals waarden in alle competities moeten getoont worden" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Of het spel waarschuwingen moet tonen in het berichten vak wanneer mogelijk" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Win1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Win2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "GK" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Gele kaarten (limiet)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Gele kaarten" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Je bent kampioen van de %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Je hebt geen schulden." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Je bent bezig met een aanbod te doen op %s. Uw vorige waarden voor loon en " "transfersom zijn ingevuld" #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Je bent bezig met een aanbod te doen op %s. Je waarden die zijn aanbevolen " "door de scout zijn ingevuld" #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Je bent met %s aan het onderhandelen voor een nieuw contract. Denk na voor " "je het contract aanbied; als je geen overeenkomst hebt gesloten binnen %d " "aanbiedingen, zal hij je team verlaten nadat zijn contract afgelopen is (of " "tot dat je hem verkoopt).\n" "Het loon dat wordt aanbevolen door uw scout is ingevult:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Je hebt geen schulden." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Je hebt geen schulden" #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "" "Je bent op uitkomst %d met een winstbedrag van %.2f aan het wedden. Hoeveel " "zet u in?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Je kan maximaal %s terugbetalen" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Je kan maximaal %s lenen." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "Je kan een job in het buitenland aannemen als er meer dan 1 speler is." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Je kan niet meer dan %d speler in uw team hebben." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Je kan geen speler verplaatsen, er zijn te wijnig spelers in uw team." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "Je kan geen nieuw contract aanbieden. Het oude is nog boven de 2 jaar." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Je kan Bygfoot niet spelen zonder gebruikers!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Je kan een geschorste speler niet wisselen." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Je hebt niet genoeg geld om %s van %s te kopen." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "Je had niet genoeg geld om %s te kopen of uw team was vol." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Je hebt niet genoeg geld om dit bedrag terug te betalen." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Je hebt niet genoeg geld." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Je eindigt het seizoen met %s op plaats %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Je promoveert naar de %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Je degradeert naar de %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Je hebt nog %d weken om de rest van je lening terug te betalen." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Je hebt nog %d weken om je lening terug te betalen." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Je bent week te ver negatief gegaan op uw bankrekening. Denk eraan dat je na " "de vierde keer ontslagen wordt.\n" "De team eigenaars geven je %d om terug boven uw kredietopening te raken." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Je zit te ver negatief op uw bankrekening. De team eigenaars geven je %d " "weken om boven uw kredietopening te raken." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Je moet je lening deze week terugbetalen." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Je hebt geen aanbieding gedaan op deze speler." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Je hebt geen speler geselecteerd." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Je verliest de %s finale tegen %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Je hebt een transfersom van %s en een loon van %s voor %s aangebode. De " "eigenaars en de spelers zijn opgetogen met uw aanbod. Wil je de speler nog " "steeds kopen?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Je bereikt de %s (ronde %s) van de %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Je start het spel met %s in de %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Je moet nog wat zaken op de transferlijst regelen." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Je wilt %s ontslaan. Zijn contract zal afgelopen binnen %.1f jaar, hij wil " "een vergoedingvan %s. Wil je de speler ontslaan?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Je wint de %s finale tegen %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Je hebt alle %d training kampen voor dit seizoen." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "Je bankrekening moet volgende week boven de kredietopening zijn." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Uw huidige sponser is blij met uw resultaten en zou graag het contract " "willen vernieuwen. Nu betalen ze u %d per week." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Uw schuld:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Uw volgende tegenstander" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Uw bod voor %s is aangenomen. Als je hem nog steeds wilt kopen, ga dan naar " "de transferlijst en klik met de linkermuisknop op de speler" #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Uw aanbieding is verwijderd." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Uw aanbod is veranderd." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Er zal volgende week over uw aanbod gesproken worden." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Uw globaal resultaat" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Je kan niet meer spelers hebben. Je hebt niet genoeg geld." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Uw resultaat" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "" "Je hebt geen plaats meer in je team. Je kan geen spelers meer bijkopen." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Je kan niet meer spelers hebben. Je kan %s van %s niet kopen." #: src/window.c:890 msgid "Your stadium" msgstr "Uw stadion" #: src/treeview2.c:91 msgid "Your team" msgstr "Uw team" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Je team kan niet minder dan 11 spelers hebben." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Uw team heeft al genoeg training kampen deze week." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Jeugtspeler %s dacht dat hij oud genoeg was voor een echt contract en heeft " "uw jeugd academie verlaten." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Jeugtspeler %s zal binnenkort te oud zijn voor uw academie. Neem hem in uw " "team op of zet hem uit de academie. Anders zal hij mogelijk naar een ander " "team zoeken om bij te spelen" #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Jeugt acad. invest." #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Jeugt academie" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "De jeugdacademie kan niet gebruikt worden in dit land." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Jeugt coach" #: src/interface.c:304 msgid "_File" msgstr "_Bestand" #: src/interface.c:1059 msgid "_Help" msgstr "_Help" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Laad spel" #: src/interface.c:347 msgid "_Options" msgstr "_Opties" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pauze" #: src/interface.c:766 msgid "_Player" msgstr "S_peler" #: src/misc_interface.c:685 msgid "_Resume" msgstr "Speel ve_rder" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "Speel ve_rder met het vorige spel" #: src/interface.c:460 msgid "_Team" msgstr "_Team" #: src/interface.c:850 msgid "_User" msgstr "Gebr_uiker" #: src/treeview.c:1644 msgid "interest rate" msgstr "Intrest voet" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Als je iets gevonden hebt in het spel dat moet gedeeld worden, kan je het " #~ "op de Bygfoot Wiki zetten:\n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Bygfoot Opgeslagen bestaden" #~ msgid "Debug level to use" #~ msgstr "Te gebruiken 'debug level'" #~ msgid "Improve!" #~ msgstr "Verbeter!" #~ msgid "Load the last game that was saved or loaded." #~ msgstr "Laad het spel dat het laatste opgeslagen of geladen is." #~ msgid "Loading cups..." #~ msgstr "Laden bekers" #~ msgid "Misc." #~ msgstr "Andere" #~ msgid "Saving cups..." #~ msgstr "Opslaan bekers..." #~ msgid "Show history" #~ msgstr "Toon geschiedenis" #~ msgid "There are no offers for the player." #~ msgstr "Er zijn geen aanbieding gedaan op deze speler." #~ msgid "This is your first season." #~ msgstr "Dit is uw eerste seizoen." #~ msgid "Username" #~ msgstr "Naam van gebruiker" bygfoot-2.3.2/po/de.po0000644000175000017500000026510111225071373013517 0ustar eliaselias# translation of de.po to Deutsch # German translations for bygfoot package # German messages for bygfoot. # Copyright (C) 2005 THE bygfoot'S COPYRIGHT HOLDER # This file is distributed under the same license as the bygfoot package. # # # Gyözö Both , 2005. # Michael Trent , 2005. # Mark Lawrenz , 2007 msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-03-24 20:12+0100\n" "Last-Translator: Gyözö Both \n" "Language-Team: Deutsch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Tore/Spiel %.1f Abgewehrt %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Tore/Spiel %.1f Schüsse %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Du kannst auch den Autoren mailen:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Töchter" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr "& Söhne" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (FS)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr "(BEMERKUNG: Wenn Du ablehnst, ist das Spiel vorbei für Dich.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (ET)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (E)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Hinspiel" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr "-- Wiederholungsspiele" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Rückspiel" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Holding" #: src/options_interface.c:329 msgid " Autosave files " msgstr "" "Dateien für\n" "Auto-Speichern" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bank" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Gebr." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Chemie" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Ges." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Kommunikation" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Gesellschaft" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " AG" #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Datensysteme" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energie" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ges." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Finanzen" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr "Glücklicherweise hat er einen Cousin, der einspringen kann." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Gruppe" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Logistik" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Pharma" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Labore" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " GmbH" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petroleum" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Produkte" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Gaststätten" #: src/interface.c:1220 msgid " Round " msgstr " Runde " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Scientific" #: src/interface.c:1200 msgid " Season " msgstr " Saison " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Systeme" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Technologien" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telekommunikation" #: src/interface.c:1210 msgid " Week " msgstr " Woche " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " n.V." #: src/callback_func.c:466 msgid " less" msgstr " weniger" #: src/options_interface.c:527 msgid " months" msgstr " Monaten" #: src/callback_func.c:464 msgid " more" msgstr " mehr" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " i.E." #: src/misc_interface.c:934 msgid " seats" msgstr " Plätze" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f Monate / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d n.V." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d n.E." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d Trainingslager verbleiben für diese Saison." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (H) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (erwartete Genesung in %d Wochen)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Gruppe %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s akzeptiert Dein Angebot." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s und %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s und %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "" "%s konnte sich %s nicht leisten, oder er hatte keinen Platz mehr in der " "Mannschaft." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s feuert Dich wegen wirtschaftlicher Unfähigkeit.\n" "Du bekommst eine neue Arbeit mit %s in der %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s feuert Dich wegen Erfolglosigkeit.\n" "Du bekommst eine neue Arbeit mit %s in der %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s wurde für %d Wochen auf die Transferliste gesetzt." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s hat Deine Mannschaft verlassen, da sein Vertrag auslief." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s von %s hat dein Angebot (%s / %s) abgelehnt. Er war mit dem angebotenen " "Gehalt unzufrieden." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s von %s hat dein Angebot abgelehnt, da dein Team schon zuviele Stars hat. " "Zitat: \"Ein Spieler meines Kalibers spielt nicht die zweite Geige.\"" #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s bieten dir einen neuen Job in der %s.\n" "Du nimmst die Herausforderung an und verlässt %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s lehnt Dein Angebot ab und will nicht mehr mit Dir verhandeln. Du solltest " "ihn verkaufen, bevor sein Vertrag ausläuft (andernfalls wird er Deine " "Mannschaft einfach verlassen)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s lehnt Dein Angebot ab. Du kannst noch %d Angebote abgeben." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s wird Elfmeter und Freistöße schießen wenn er spielt." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s möchte %s kaufen. Sie bieten %s, was %s ist als der Wert des Spielers. " "Nimmst Du an?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "%ss Vertrag läuft in %.1f Jahren aus." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "%ss Verletzung war so schwerwiegend, dass er nicht mehr Profi-Fußball " "spielen kann. Er verlässt Deine Mannschaft." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (keine Obergrenze)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d Wochen\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(ab Woche %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- ein einfacher Fußballmanager mit Suchtgefahr" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 Jahr" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 Jahre" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 Jahre" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 Jahre" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (A) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Es gab ein Feuer\n" "im Stadion." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Es gab Ausschreitungen\n" "im Stadion" #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Es gab technische Probleme\n" "im Stadion." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Aktuelle Wetten" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Letzte Wetten" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Woche %d Runde %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Ein neuer Nachwuchsspieler ist zu deiner Nachwuchsmannschaft gestoßen." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Ein neuer Nachwuchsspieler wollte in deine Nachwuchsmannschaft aufgenommen " "werden, aber es gab keinen Platz für ihn." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "LETZTES SPIEL HINZUFÜGEN" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "BRECHSTANGE" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "BETONVERTEIDIGUNG" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ANGRIFF" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Über" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Annehmen" #: src/game_gui.c:818 msgid "Accept?" msgstr "Einverstanden?" #: src/interface.c:1035 msgid "Add last match" msgstr "Letzes Spiel hinzufügen" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Das letzte Spiel zur 'Unvergessliche Spiele'-Datei hinzufügen" #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Benutzer hinzufügen" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Tilgungsplan anpassen?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Alt" #: src/options_interface.c:735 msgid "Age " msgstr "Alter " #: src/window.c:399 msgid "All Files" msgstr "Alle Dateien" #: src/interface.c:502 msgid "All Out Attack" msgstr "Brechstange" #: src/interface.c:478 msgid "All Out Defend" msgstr "Betonverteidigung" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Zeige Zeitung nach jedem Spieltag" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Egal" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Erscheinung" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Möchten Sie den Job annehmen?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Mindestens ein Benutzer ist noch nicht drangewesen. Fortfahren?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "In den Bygfoot-Foren kannst Du Fehler melden, nach Hilfe fragen und über das " "Spiel diskutieren:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Angriff" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Zuschauer\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Eigenschaft" #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Automatische Tilgung" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Automatischer Popup" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Automatische Tilgung" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Autoauswechslungen" #: src/options_interface.c:443 msgid "Autosave" msgstr "Auto-Speichern" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "" "Intervall für\n" "Auto-Speichern" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Durchschn. Fäh." #: src/interface.c:1320 msgid "Av. skills: " msgstr "Durchschn. Fäh." #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Du.Fäh." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Durchschn. Fäh." #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Verfügbare Mannschaften" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Durchschnitt" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Zuschauerschnitt" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Zuschauerschnitt %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Durchschnittl. Fähigkeit" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Durchschnittl. Fähigkeit:" #: src/treeview.c:1851 msgid "Away" msgstr "Auswärts" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "AUSGEGLICHEN" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "SP(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Zurück zum Hauptmenü (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Zurück zu Splash" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Mies" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Bilanz" #: src/interface.c:490 msgid "Balanced" msgstr "Ausgeglichen" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Gesperrt\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Starte neue Woche (Leertaste)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Der König" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Beste Abwehr" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Beste Torschützen" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Beste Torhüter" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Bester Angriff" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Wetten" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "" "Wetten - Links auf Gewinnchance klicken um zu wetten oder Wette zu entfernen" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Zweiwöchige Bilanz" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "Zweiwöchige Bilanz (Woche %d und %d)" #: src/interface.c:669 msgid "Boost" msgstr "Boost" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Boost AN ist in dieser Länderdefinition ausgeschaltet." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Boost auf %s gesetzt (kostet %d pro MInute)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Boost auf %s gesetzt." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Boostkosten" #: src/player.c:1430 msgid "Broken ankle" msgstr "Knöchelbruch" #: src/player.c:1433 msgid "Broken arm" msgstr "Armbruch" #: src/player.c:1427 msgid "Broken leg" msgstr "Beinbruch" #: src/player.c:1424 msgid "Broken rib" msgstr "Rippenbruch" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Gebrochene Schulter" #: src/interface.c:842 msgid "Browse players" msgstr "Spieler durchstöbern" #: src/interface.c:745 msgid "Browse teams" msgstr "Mannschaften durchstöbern" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Bygfoot -- Unvergessliche Spiele" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoot Save-Dateien" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Bygfoot-Konstanten" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Bygfoot Debug-Fenster. Wenn Du zufällig hierhergekommen bist, SCHLIESSE " "SOFORT (ansonsten wird Dein Prozessor durch Überhitzen zerstört)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot ist ein äußerst intuitives und einfaches Spiel, weswegen es keine " "ausgewachsene Dokumentation dazu gibt. Es gibt allerdings einige Plätze, an " "denen man seine Probleme loswerden kann:\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "APos" #: src/options_interface.c:665 msgid "CPos " msgstr "APos" #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "AFä" #: src/options_interface.c:679 msgid "CSkill " msgstr "AFÄhig " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Berechne Startwoche" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Berechne Rate" #: src/training_interface.c:84 msgid "Camp points" msgstr "Trainingspunkte" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Kapazität (Plätze)" #: src/options_interface.c:728 msgid "Cards " msgstr "Karten " #: src/treeview.c:2182 msgid "Career values" msgstr "Karrierewerte" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Ausführlichkeit des Kommentars ändern. Je höher der Wert, desto mehr " "Kommentare kannst Du sehen." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Geschwindigkeit des Livespiels ändern. Je niedriger der Wert, desto " "schneller läuft das Livespiel ab." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Eintrittspreis ändern" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Wähle Land" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Datei auswählen" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Sprache wählen (funktioniert in Windows-Version womöglich nicht ganz)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Wähle Liga, in der Du beginnst" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Wähle Mannschaft" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Wähle Benutzernamen" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Klicke OK um den Job anzunehmen oder auf CANCEL um das Fenster zu schließen." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Klicke auf einen Benutzer, um ihn aus dem Spiel zu entfernen." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Klicke auf einen Benutzer, um ihn zu entfernen." #: src/options_interface.c:1640 msgid "Close" msgstr "Schließen" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" "Fenster schließen. Änderungen werden nur für die aktuelle Sitzung " "gespeichert, wenn du sie nicht in die Datei speicherst." #: src/misc_interface.c:573 msgid "Commentary" msgstr "Kommentar" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Kommentar-Ereignis für Testzwecke; einfach weglassen, um alle Kommentare zu " "testen" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Dateiname für Kommentare (befindet sich im support-Verzeichnis) " #: src/treeview.c:3017 msgid "Company" msgstr "Firma" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Abfindungen" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Wettbewerb" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Komprimiere Datei" #: src/player.c:1409 msgid "Concussion" msgstr "Gehirnerschütterung" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Bestätigen & Tilgungsplan erstellen" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Schließen bestätigen wenn nicht gespeichert" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Bestätige Rauswurf von Nachwuchsspielern" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Bestätigen wenn nicht fit" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Bestätigen!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Konstanten-Datei" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Vertrag" #: src/options_interface.c:763 msgid "Contract " msgstr "Vertrag " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Vertrag / Zahlungen" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Vertragslaufzeit\n" "(Monate)" #: src/window.c:937 msgid "Contract offer" msgstr "Vertragsangebot " #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Verträge sind in dieser Länderdefinition ausgeschaltet." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Mitwirkende" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Kopiere %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Kosten" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Konnte Pixmap-Datei nicht finden: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Land" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Erstelle Pokalneuigkeiten" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Erstelle Liga-Neuigkeiten" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Erstelle Benutzerneuigkeiten" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Strg-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Strg-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Strg-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Pokalsieger" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Pokal hat keine Tabellen." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Aktuelle Kapazität" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Aktuelle Datei" #: src/treeview.c:2829 msgid "Current league" msgstr "Aktuelle Liga" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Aktueller Marktzins" #: src/treeview.c:2165 msgid "Current position" msgstr "Aktuelle Position" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Aktuelle Sicherheit" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Aktuelle Einstellungen:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Aktuelle Fähigkeit" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "V" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "VERTEIDIGEN" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Schulden (Rückzahltermin in %d Wochen)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Debug" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Später entscheiden" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Standardhotel" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Standarderholung" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Standardtraining" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Standardwette" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Verteidigen" #: src/interface.c:640 msgid "Defenders" msgstr "Verteidiger" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Wussten Sie schon?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Konnte Datei 'bygfoot_help' nicht finden." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "" "Willst du den armen Jungen wirklich aus der Nachwuchsmannschaft werfen?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Lade keine Definitionen" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Lade überhaupt keine Mannschaftsdefinitionen" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Fertig." #: src/treeview2.c:396 msgid "Draw" msgstr "U" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Dispokredit" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "U" #. draw #: src/team.c:1150 msgid "Dw " msgstr "U " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "U %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "GTal" #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTIEREN" #: src/options_interface.c:432 msgid "Edit" msgstr "Bearbeiten" #: src/interface.c:829 src/interface.c:2038 msgid "Edit name" msgstr "Bearbeite Namen" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "Bearbeite die Konstanten, die im Spiel verwendet werden" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Spielsystem eingeben. Die Ziffern müssen sich zu 10 aufsummieren." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Eigenes Spielsystem eingeben" #: src/window.c:865 msgid "Erm..." msgstr "Äh..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Return / Leertaste" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Geschätztes Talent" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "GTal" #: src/treeview.c:2378 msgid "Event" msgstr "Ereignis" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Erwartete Dauer" #: src/treeview.c:1704 msgid "Expenses" msgstr "Ausgaben" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/interface.c:398 msgid "F_igures" msgstr "Z_ahlen" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Ablösesumme" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Datei mit Textblöcken für das Live-Spiel (befindet sich im support-" "Verzeichnis)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Datei mit Einstellungen, die viele Aspekte des Spielverhaltens bestimmen. " "NICHT ÄNDERN ES SEI DENN DU WEISST GENAU WAS DU TUST." #: src/interface.c:928 msgid "Fin_Stad" msgstr "Fin_Stad" #: src/cup.c:1105 msgid "Final" msgstr "Endspiel" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Finanzen sind in dieser Länderdefinition ausgeschaltet." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Feuern" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Erster Wert: durchschnittliche aktuelle Fähigkeit der ersten Elf. Zweiter " "Wert: durchschnittliche Fähigkeit aller Spieler." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "First-Class Hotel" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Fit" #: src/treeview.c:2168 msgid "Fitness" msgstr "Fitness" #: src/options_interface.c:693 msgid "Fitness " msgstr "Fitness " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Spielplan (Wettbewerbe)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Spielplan (wöchentlich)" #: src/options_interface.c:1541 msgid "Float" msgstr "Gleitkomma" #: src/options_interface.c:379 msgid "Font name" msgstr "Schriftart" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Schriftart, die in den Ansichten verwendet wird" #: src/interface.c:652 msgid "Forwards" msgstr "Angreifer" #: src/treeview.c:840 msgid "Fouls" msgstr "Fouls" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Angeknackster Knöchel" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "T" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "KT" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "TD" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "ET" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Sp" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Gameplay" #: src/treeview_helper.c:931 msgid "Games" msgstr "Spiele" #: src/options_interface.c:700 msgid "Games " msgstr "Spiele " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Spiele/Tore\n" #: src/options_interface.c:486 msgid "Global" msgstr "Global" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "To" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Zum Splashscreen zurückkehren" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "To/Sp" #: src/treeview.c:1775 msgid "Goalie" msgstr "Torhüter" #: src/interface.c:634 msgid "Goalies" msgstr "Torhüter" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Tore" #: src/options_interface.c:714 msgid "Goals " msgstr "Tore " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Tore (normale)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Gut" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Gutes Hotel" #: src/player.c:1418 msgid "Groin injury" msgstr "Leistenverletzung" #: src/player.c:1415 msgid "Hamstring" msgstr "Sehnenverletzung" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Schau mal auf die Transferliste, es gibt ein Angebot für %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Schlagzeile" #: src/treeview.c:2171 msgid "Health" msgstr "Gesundheit" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Hilfe" #: src/treeview.c:1849 msgid "Home" msgstr "Heim" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Wieviele Kommentare sollen pro Ereignis erzeugt werden" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Wie viele Nachkommastellen gezeigt werden bei Fähigkeitswerten etc." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Wie viele Dateien das Auto-Speichern benutzt" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Wieviel soll normalerweise eingesetzt werden" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Wie oft das Spiel automatisch gespeichert wird" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Wie oft die Spielerliste aktualisiert wird während eines Livespiels (in " "Livespiel-Minuten)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "VERL(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Wenn ausgewählt, Wochen ohne Benutzermannschaftenbeteiligung werden " "automatisch berechnet (ohne dass man auf 'Neue Woche' klicken muss)" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Wenn Du keinen der Angebote schätzt, kannst Du einige Wochen ohne Sponsor " "bleiben und auf neue Angebote warten." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Datei importieren" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importiere die Spiele aus einer 'Unvergessliche Spiele'-Datei" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Verbesserung wird vollführt.\n" "%d Plätze und %d%% Sicherheit noch fertigzustellen.\n" "Erwartetes Ende: %d Wochen." #: src/treeview.c:1703 msgid "Income" msgstr "Einnahmen" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Erhöhen" #: src/treeview.c:843 msgid "Injuries" msgstr "Verletzungen" #: src/options_interface.c:1527 msgid "Integer" msgstr "Ganzzahl" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Die Saison ist schon zu sehr fortgeschritten für automatische Tilgung" #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Jobangebot" #: src/interface.c:370 msgid "Job offers" msgstr "Jobangebote" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Jobangebote %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Reisekosten" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Rauswerfen" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "V" #. lost #: src/team.c:1154 msgid "L " msgstr "V " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "V %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "L_ade letzten Spielstand" #: src/options_interface.c:436 msgid "Language" msgstr "Sprache" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Festlegung der Sprache (ein Sprachcode, z.b. 'de')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Letzte %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Letzte Spielstandsdatei nicht gefunden." #: src/treeview.c:1898 msgid "Latest results" msgstr "Letzte Ergebnisse" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga " #: src/treeview.c:2590 msgid "League champions" msgstr "Meisterschaftsgewinner" #: src/interface.c:991 msgid "League stats" msgstr "Liga-Statistiken" #: src/league_table_interface.c:39 msgid "League table" msgstr "Liga-Tabelle" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "" "Linksklick um ein Angebot abzugeben. Rechtsklick um Angebot zu annullieren." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Linksklick, um Spieler zwischen den Mannschaften zu bewegen; Rechtsklick für " "Kontextmenü." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Linksklick, um Spielplan zu zeigen" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Linksklick, um Tabelle zu zeigen" #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Linksklick: Kredit aufnehmen; Rechtsklick: Kredit zurückzahlen; mittlere " "Maustaste: Stadionfenster." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Liste 1" #: src/options_interface.c:1028 msgid "List 2" msgstr "Liste 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Livespiel" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Livespiel %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Livespiel Geschwindigkeitsfaktor" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Livespiel Ausführlichkeit" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Lade Spielstand (Strg-O)" #: src/main.c:94 msgid "Load last savegame" msgstr "L_ade letzten Spielstand" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Lade nur Spielernamen aus den Definitionsdateien" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Lade Mannschaftsdefinitionen" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Lade Mannschaften aus Definitionsdateien (beachte dass das offizielle " "Bygfoot-Paket keine Mannschaftsdefinitionen enthält, Du musst sie von der " "Homepage runterladen oder mit dem bygfoot-update Skript)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Lade Pokal: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Zeige Jobangebote ..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Lade Liga: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Lade Ligen ..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Lade Diverses..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Lade Zeitung..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Lade Einstellungen..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Lade Saisonstatistiken..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Lade Transferliste..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Lade Benutzer..." #: src/callback_func.c:397 msgid "Loan" msgstr "Kredit" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Angebot abgeben" #: src/interface.c:1047 msgid "Manage matches" msgstr "Spiele verwalten" #: src/interface.c:917 msgid "Manage users" msgstr "Benutzer verwalten" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximiere Hauptfenster" #: src/user.c:1214 msgid "Memorable match added." msgstr "Unvergessliches Spiel hinzugefügt." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Unvergessliche Spiele" #: src/treeview.c:1777 msgid "Midfield" msgstr "Mittelfeld" #: src/interface.c:646 msgid "Midfielders" msgstr "Mittelfeldspieler" #: src/treeview.c:1629 msgid "Money" msgstr "Kontostand" #: src/interface.c:1296 msgid "Money " msgstr "Kontostand " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Kontostand (ungefähr)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Zahlung / Woche" #: src/interface.c:2092 msgid "Move to team" msgstr "In die Profi-Mannschaft aufnehmen" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "In die Nachwuchsmannschaft aufnehmen" #: src/interface.c:438 msgid "My league results" msgstr "Meine Ligaergebnisse" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Name" #: src/options_interface.c:658 msgid "Name " msgstr "Name " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Neutrales Stadion" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Neue\n" "Vertragsangebote" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Neue Einstellungen" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Zeitung" #: src/misc3_interface.c:315 msgid "Next" msgstr "Nächster" #: src/interface.c:1434 msgid "Next (W)" msgstr "Nächster (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Nächste(r) Liga/Pokal" #: src/interface.c:895 msgid "Next user" msgstr "Nächster Benutzer" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Nächste Woche feuerst Du ihn und stellst einen neuen ein." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Kein automatischer Popup" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Zur Zeit keine Verbesserungen im Gange." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Kein Spiel gespeichert." #: src/treeview2.c:600 msgid "No news available." msgstr "Keine Neuigkeiten" #: src/misc_callbacks.c:468 msgid "None" msgstr "Kein" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Dies ist kein Name einer Unvergessliche-Spiele-Datei." #: src/window.c:882 msgid "Numbers..." msgstr "Zahlen..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "AUS" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "EIN" #: src/interface.c:686 msgid "Off" msgstr "Aus" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Biete neuen Vertrag" #: src/interface.c:680 msgid "On" msgstr "Ein" #: src/misc_interface.c:211 msgid "Only names" msgstr "Nur Namen" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Öffne eine 'Unvergessliche Spiele'-Datei" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Gegner" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Gegnerische Spielerliste" #: src/window.c:914 msgid "Options" msgstr "Einstellungen" #: src/treeview.c:1904 msgid "Overall results" msgstr "Gesamtergebnisse" #: src/interface.c:379 msgid "Overwrite" msgstr "Überschreiben" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Überschreiben %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "SP" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PKT" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Unterbrechung bei Pause" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Unterbrechung bei Verletzung" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Unterbrechung bei roter Karte" #: src/callback_func.c:427 msgid "Payback" msgstr "Rückzahlung" #: src/treeview.c:839 msgid "Penalties" msgstr "Elfmeter" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Elfmeter/Freistoßschütze abgewählt." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Physio" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Spieler akzeptiert neue Vertragsangebote" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Spielereigenschaftspräzision" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Sichtbare Spielereigenschaften" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Spieler verhandelt nicht mehr" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Spielerliste" #: src/interface.c:1363 msgid "Player list 1" msgstr "Spielerliste 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Spielerliste 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Aktualisierungsrate der Spielerliste" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Spielstil" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Popup bei Benutzerneuigkeiten" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos " #: src/treeview.c:2164 msgid "Position" msgstr "Position" #: src/treeview.c:838 msgid "Possession" msgstr "Ballbesitz" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Bevorzuge Nachrichten" #: src/interface.c:354 msgid "Preferences" msgstr "Einstellungen" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Premium Hotel" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Voriger" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Voriger (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Voriger (Liga/Pokal) (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Vorheriger Benutzer" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Eintrittspreis" #: src/treeview.c:1517 msgid "Prize money" msgstr "Preisgeld" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Muskelfaserriss" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Setze auf Transferliste" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Viertelfinale" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Beenden (Strg-Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "ENTFERNEN" #: src/treeview2.c:68 msgid "REPLAY" msgstr "ABSPIELEN" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Teams zufällig auf Wettkämpfe verteilen" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Teams im Wettkampf zufällig verteilen. Das macht nur Sinn in " "internationalen Wettkämpfen (z.B. WM), in denen die Reihenfolge der " "Mannschaften festgelegt ist." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Rang" #: src/interface.c:1281 msgid "Rank " msgstr "Rang " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Bereit" #: src/interface.c:728 msgid "Rearrange team" msgstr "Sortiere Mannschaft" #: src/training_interface.c:98 msgid "Recreation" msgstr "Regeneration" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Anwerbepräferenz" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Rote K." #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Erstmal überlegen" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Neu laden" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Lade neu und schließe" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" "Konstantendatei neu laden. Die Änderungen, die du in der aktuellen Sitzung " "gemacht hast, gehen verloren." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "Neuladen aus Datei" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Lade die Spiele aus der Datei neu" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Lade die Spiele aus der Datei neu und schließe" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Lade die Konstanten-Datei neu" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Entferne von Transferliste" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Entferne Benutzer %s aus dem Spiel?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Unvergessliche Spiele abspielen, löschen oder hinzufügen" #: src/interface.c:712 msgid "Reset player list" msgstr "Spielerliste zurücksetzen" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Setzt die Spielerliste zurück auf den Stand bei Beginn der Livespiel-Pause " "(Rechtsklick auf die Spielerliste)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Ergebnis" #: src/treeview.c:2013 msgid "Results" msgstr "Ergebnisse" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Return" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Return / Leertaste" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Rechtsklick und Linksklick um den Boost zu verändern" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Rechtsklick und Linksklick, um den Spielstil zu verändern" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Rechtsklick, um Dich sofort zu bewerben, Linksklick, um die Mannschafts-Info " "zu sehen." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Rechtsklick, um auf 0 zu setzen" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ru" #: src/cup.c:1094 msgid "Round robin" msgstr "Gruppenphase" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Sicherheit (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Sicherheitsverbesserung ist zu hoch, setze zurück auf größtmöglichen Wert." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Abgewehrt (%)" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Speichere und schließe" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Speichere Änderungen in Datei und schließe" #: src/options_interface.c:1581 msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Speichert die Änderungen in die Konstantendatei. UNTERLASS ES, AUSSER DU " "WEISST WIRKLICH, WAS DU TUST." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Speichern (Strg-S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Speichere globale Einstellungen in Datei" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Speichern überschreibt" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Speichere Einstellungen als Standard" #: src/options_interface.c:1595 msgid "Save to file" msgstr "Speichere in Datei" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Speichere Benutzereinstellungen in Datei" #: src/interface.c:389 msgid "Save window geometry" msgstr "Hauptfenstereinstellungen speichern" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Speichert die Fenstergröße, -position und den vertikalen Trenner" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Jobangebote speichern ..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Speichere Ligen und Wettkämpfe ..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Speichere Diverses..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Speichere Zeitung..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Speichere Einstellungen..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Speichere Saisonstatistiken..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Speichere Transferliste..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Speichere Benutzer..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Spielerbeobachter" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sai" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Saison %d" #: src/interface.c:1002 msgid "Season history" msgstr "Saisonhistorie" #: src/interface.c:449 msgid "Season results" msgstr "Saisonergebnisse" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Schriftart auswählen" #: src/cup.c:1108 msgid "Semi-final" msgstr "Halbfinale" #: src/interface.c:664 msgid "Set investment" msgstr "Förderung" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Setze den Prozentsatz Deines Einkommens fest, der der Nachwuchsarbeit zugute " "kommt." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Setze auf 0 um die Warnung auszuschalten" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Schü" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Schießt Elfer" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Schuss %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Schüsse" #: src/options_interface.c:707 msgid "Shots " msgstr "Schüsse" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Zeige alle Ligen im Spielplan" #: src/interface.c:879 msgid "Show coming matches" msgstr "Zeige die nächsten Spiele" #: src/interface.c:935 msgid "Show finances" msgstr "Zeige Finanzen" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Zeige Info" #: src/interface.c:758 msgid "Show job exchange" msgstr "Zeige Jobangebote" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Zeige Jobangebote" #: src/interface.c:857 msgid "Show last match" msgstr "Zeige letzes Spiel" #: src/interface.c:868 msgid "Show last match stats" msgstr "Zeige Statistiken d. letzten Spiels" #: src/options_interface.c:576 msgid "Show live game" msgstr "Zeige Livespiel" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Spiele aus allen Ligen zeigen" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Spiele aus allen Wettkämpfen zeigen" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Zeige Zeitung nach einem Spieltag, wenn Benutzerneuigkeiten erstellt wurden" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Nur die letzten Wetten zeigen" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Nur die letzten Neuigkeiten anzeigen" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Zeige alle Spiele/Tore" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Zeige Bilder über Fortschrittsbalken" #: src/interface.c:946 msgid "Show stadium" msgstr "Zeige Stadion" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Zeige Tendenzbalken" #: src/interface.c:972 msgid "Show the betting window" msgstr "Zeige Fenster für Wetteingaben" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Liste der verfügbaren Jobangebote zeigen" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Zeige Transferliste (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Zeige Warnung wenn ein Spielervertrag abläuft in" #: src/interface.c:589 msgid "Show youth academy" msgstr "Zeige Nachwuchsmannschaft" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Fä" #: src/treeview.c:2166 msgid "Skill" msgstr "Fähigkeit" #: src/options_interface.c:686 msgid "Skill " msgstr "Fähigkeit " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Überspringe Wochen ohne Benutzerspiele" #: src/misc_interface.c:249 msgid "Space" msgstr "Leertaste" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "Zusätzliches Support-Verzeichnis angeben (erhält höhere Priorität als die " "Standardverzeichnisse)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Geschwindigkeit" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsor" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Sponsorenangebote" #: src/interface.c:977 msgid "St_ats" msgstr "St_ats" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadion" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Stadionkapazität" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Stadion-Ausgaben" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Stadionmanagement ist in dieser Länderdefinition ausgeschaltet." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Stadionsicherheit" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Stadion-Status" #: src/misc_interface.c:266 msgid "Start" msgstr "Los!" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "_Neues Spiel" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Ab Woche" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Ab Woche:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statistiken" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Stat" #: src/options_interface.c:721 msgid "Status " msgstr "Status " #: src/misc_interface.c:951 msgid "Status:" msgstr "Status:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Lauf" #: src/options_interface.c:1555 msgid "String" msgstr "Text" #: src/main.c:99 msgid "String id of the country to load" msgstr "String id des Landes das geladen werden soll" #: src/callbacks.c:936 msgid "Structure" msgstr "Spielsystem" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Spielerwechsel passt System an" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "System" #: src/interface.c:427 msgid "Tables" msgstr "Tabellen" #: src/treeview2.c:517 msgid "Talent %" msgstr "GTal %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Mannschaft" #: src/options_interface.c:777 msgid "Team " msgstr "Mannschaft " #: src/treeview.c:1892 msgid "Team structure" msgstr "Spielsystem" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Spielstil verändert zu %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Mannschaft 1" #: src/treeview2.c:399 msgid "Team2" msgstr "Mannschaft 2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "XML-Kommentardatei testen" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Die Bank gewährt keinen weiteren Kredit." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Das Wettbüro erlaubt nicht mehr als %s zu setzen." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "" "Der aktuelle Spielstand ist nicht gespeichert und geht verloren. Fortfahren?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Je höher dieser Wert, desto mehr Kommentare siehst Du." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "Das Aktualisierungsintervall für Jobangebote beträgt %d Wochen." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "Je niedriger dieser Wert, desto schneller läuft das Spiel ab." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "%s akzeptiert Dein Angebot." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "%s akzeptiert dein Angebot. Da %s keine lahme Ente behalten möchte, wirst du " "fristlos gekündigt und kannst den Rest der Saison in deinem Garten " "verbringen." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Die Vereinsführung von %s ist zutiefst von Deinen Erfolgen mit %s " "beeindruckt und würde Dich gerne verpflichten. Hier sind einige Daten zu %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Das Management von %s ist unzufrieden mit den letzten Leistungen der " "Mannschaft. Es gibt Gerüchte, wonach ein neuer Trainer gesucht wird." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Die Verantwortlichen von %s haben Dein Angebot (%s / %s) für %s abgelehnt. " "Weder die Ablösesumme, noch das Gehalt war akzeptabel, sagen sie." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Die Verantwortlichen von %s haben Dein Angebot (%s / %s) für %s abgelehnt. " "Sie waren mit der Ablösesumme unzufrieden." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Die Verantwortlichen von %s haben Dein Angebot (%s / %s) für %s abgelehnt. " "Es gab ein besseres Angebot." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "%s lehnt dein Angebot höflich ab. Du bist in ihren Augen nicht erfolgreich " "genug." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Der Spieler sieht keine Zukunft für sich in deinem mit Stars gespickten " "Team. Er lehnt Verhandlungsgespräche ab." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Der Spieler ist bereits auf der Liste." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "Keine Angebote möglich (die Besitzer verhandeln gerade ein anderes Angebot)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Der Spieler ist nicht auf der Liste." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Der Spieler ist ausser Form" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Der Spieler hat einen Lauf" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Der Spieler ist zu alt für die Nachwuchsmannschaft." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Der Spieler verhandelt nicht mehr." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Der Wert %d ist ungültig." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Die Teamverantwortlichen sind sehr zufrieden mit deinem Finanzmanagement. Da " "die Einnahmen sehr positiv waren in letzter Zeit, entschließen sie sich, die " "Hälfte für wohltätige Zwecke zu spenden." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Die Vereinsführung hat Dich wegen wirtschaftlicher Unfähigkeit entlassen. " "Zum Glück haben die Verantwortlichen von %s von Deiner Entlassung gehört und " "bieten Dir einen Vertrag an. Hier sind einige Daten zu %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Die·Vereinsführung·hat·Dich·wegen·Erfolglosigkeit·entlassen." "·Zum·Glück·haben·die·Verantwortlichen·von·%" "s·von·Deiner·Entlassung·gehört·und·bieten·Dir·einen·Vertrag·an." "·Hier·sind·einige·Daten·zu·%s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Die Transferfrist ist vorbei." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Es gibt einige Firmen, die Sponsor Deines Teams werden möchten. Bitte " "auswählen:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Es gibt verletzte oder gesperrte Spieler in einer der Benutzermannschaften " "Fortfahren?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Es gibt keine Ligen in dieser Länderdefinition (nur Pokale)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "" "Es gibt keine Ligen oder Pokale mit Tabellen in dieser Länderdefinition." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Es sind noch keine Historie-Seiten gespeichert." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Es gibt einige Angebote für den Spieler; du hast sie abgelehnt oder wirst " "sie nächste Woche auf dem Tisch haben." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Es gibt keinen Platz in der Nachwuchsmannschaft." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Es gab zuviele Auswechslungen. Pro Spiel sind nur 3 erlaubt. Spielerliste " "zurückgesetzt." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Kartenverkauf" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Kreuzbandriss" #: src/training_interface.c:117 msgid "Training" msgstr "Training" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Trainingslager" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Das Trainingslager ist in dieser Länderdefinition ausgeschaltet." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Die Transferfrist läuft in Woche %d ab." #: src/window.c:968 msgid "Transfer offer" msgstr "Transferangebot" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transfers" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Transfers sind in dieser Länderdefinition ausgeschaltet." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Versucht, die ersten 11 auf ihre bevorzugten Positionen zu setzen und " "sortiert die Auswechselspieler (Strg-R oder mittlere Maustaste)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Entpacke Datei..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Der Benutzer %s hat dein Angebot noch nicht angesehen." #: src/interface.c:1013 msgid "User history" msgstr "Benutzerhistorie" #: src/window.c:945 msgid "User management" msgstr "Benutzerverwaltung" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Benutzer -- Anklicken um zu entfernen" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Wert" #: src/options_interface.c:749 msgid "Value " msgstr "Wert " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Ausführlichkeit" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "G" #. won #: src/team.c:1157 msgid "W " msgstr "G " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "G %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Gehalt" #: src/options_interface.c:756 msgid "Wage " msgstr "Gehalt " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Einsatz" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Einsatz/\n" "Gewinn/Verlust" #: src/treeview.c:1522 msgid "Wages" msgstr "Gehälter" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Wo" #: src/treeview.c:2350 msgid "Week" msgstr "Woche" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Woche %d Runde %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Woche %d Runde %d\n" "Pokalrunde %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Wochenrate" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Wochenrate" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Willkommen zu Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Ob 'Speichern' die aktuelle Speicherdatei überschreibt oder ein 'Speichern " "unter'-Fenster anzeigt" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Ob ein Bestätigungsfenster gezeigt wird, wenn Du einen Nachwuchsspieler aus " "der Nachwuchsmannschaft wirfst" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Ob das Hauptfenster in maximiertem Zustand erscheint (klappt nicht mit allen " "Fenstermanagern)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "Ob im Wochenspielplan alle Ligen erscheinen oder nur die Benutzerliga" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Ob das Vertauschen zweier Spieler automatisch das Spielsystem an die " "Spielerpositionen anpasst" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Ob das Livespiel bei Halbzeit und Verlängerung pausiert" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Ob das Livespiel pausiert wenn ein Benutzerspieler verletzt ist" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "" "Ob das Livespiel pausiert wenn ein Benutzerspieler vom Platz gestellt wird" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Ob Auswechslungen (etwa verletzter Spieler) vom Computer vorgenommen werden. " "Dies wird automatisch eingeschaltet, wenn das Livespiel abgestellt ist." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Ob das Spiel regelmäßig automatisch gespeichert wird" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Ob die globalen Einstellungen in die Datei geschrieben werden (so dass sie " "beim nächsten Mal, wenn Du ein neues Spiel beginnst, geladen werden)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Ob die Benutzereinstellungen in die Datei geschrieben werden (so dass sie " "geladen werden, wenn dieser Benutzer nächstes Mal ein neues Spiel beginnt)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Ob ein Bestätigungsfenster gezeigt wird, wenn eine Benutzermannschaft einen " "verletzten oder gesperrten Spieler unter den ersten 11 hat" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Ob ein Bestätigungsfenster gezeigt wird, wenn auf Beenden geklickt wird und " "der Spielstand nicht gespeichert wird" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Spiele aus Wettkämpfen im Wettfenster anzeigen" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Spiele aus Wettkämpfen anzeigen. Unter \"Optionen\" dauerhaft einstellen." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Ob Jobangebote kommen wenn ein Benutzer erfolgreich ist" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Spiele aus allen Ligen im Wettfenster anzeigen" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Spiele aus allen Ligen zeigen. Unter \"Optionen\" dauerhaft einstellen." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Nur die eigenen Wetten in der Liste der letzten Wetten anzeigen" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Beim Laden/Speichern oder bei der Berechnung der Ergebnisse Bilder über dem " "Fortschrittsbalken zeigen" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Ob die Spiele/Tore der Spieler aus allen Wettbewerben angezeigt werden" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Ob Warnungen und ähnliches im Nachrichtenbereich des Hauptfensters angezeigt " "werden, wenn möglich" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Gewinn 1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Gewinn 2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "GK" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Gelbe Karten (Obergrenze)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Gelbe K." #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Du bist Meister der %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Du bist schuldenfrei." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "Du bietest erneut für %s. Dein vorheriges Angebot ist voreingestellt." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Du bietest für %s. Die Empfehlungen Deines Spielerbeobachters sind " "voreingestellt." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Du verhandelst mit %s über einen neuen Vertrag. Sei bei der Sache: wenn Du " "Dich nicht innerhalb von %d Verhandlungsrunden mit ihm einig wirst, wird er " "deine Mannschaft nach Ablaufen seines Vertrags verlassen (es sei denn Du " "verkaufst ihn). Du darfst nur VOR Deinem ersten Angebot abbrechen.\n" "Die Empfehlungen deines Spielerbeobachters sind voreingestellt:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Du hast keine Schulden." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Du hast keine Schulden." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "" "Sie setzen auf das Ergebnis %d mit einer Gewinnchance von %.2f. Wieviel " "möchten Sie setzen?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Du kannst höchstens %s zurückzahlen." #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Du kannst höchstens %s leihen." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Du kannst dich nicht ins Ausland bewerben, wenn es ausser Dir noch einen " "Benutzer gibt." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Du kannst nicht mehr als %d Spieler in der Mannschaft haben." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "" "Du kannst den Spieler nicht bewegen, es sind zu wenige Spieler in der " "Mannschaft." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Du kannst keinen neuen Vertrag aushandeln wenn die Laufzeit des alten " "Vertrages über 2 Jahre beträgt." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Du kannst Bygfoot nicht ohne Benutzer spielen!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Du kannst keinen gesperrten Spieler auswechseln." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Du hattest nicht genügend Geld, um %s von %s zu kaufen." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Du hattest nicht genügend Geld um %s zu kaufen, oder Deine Mannschaft kann " "keine neuen Spieler mehr aufnehmen." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Du hast nicht genügend Geld um zurückzuzahlen." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Du hast nicht genügend Geld." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Du beendest die Saison in der %s auf Rang %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Du steigst in die %s auf." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Du steigst in die %s ab." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Du hast %d Wochen, um den restlichen Kredit zurückzuzahlen." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Du hast noch %d Wochen, um Deinen Kredit zurückzuzahlen." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Du hast Dein Konto erneut überzogen. Bedenke, dass Du nach dem vierten Mal " "gefeuert wirst.\n" "Die Verantwortlichen geben Dir %d Wochen, um wieder Deine Dispokreditgrenze " "zu erreichen." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Du hast Dein Konto überzogen. Die Verantwortlichen geben Dir %d Wochen, um " "Deine Dispokreditgrenze zu erreichen." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Du musst Deinen Kredit diese Woche zurückzahlen." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Du hast kein Angebot für den Spieler abgegeben." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Du hast keinen Spieler ausgewählt." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Du verlierst das %s-Finale gegen %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Du hast eine Ablösesumme von %s und ein Gehalt von %s für %s geboten. Die " "Besitzer und der Spieler sind zufrieden mit Deinem Angebot. Willst Du den " "Spieler nun kaufen?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Du erreichst das %s (Runde %s) des %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Du beginnst das Spiel mit %s in der %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Du hast noch Transferangelegenheiten zu erledigen." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Du willst %s feuern. Da sein Vertrag in %.1f Jahren ausläuft, verlangt er %s " "Abfindung. Einverstanden?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Du gewinnst das %s Finale gegen %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Du hast die Obergrenze von %d Trainingslager pro Saison erreicht." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "Dein Konto muss nächste Woche Deinen Dispokredit übersteigen." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Dein gegenwärtiger Sponsor ist zufrieden mit Deinen Ergebnissen und würde " "die Zusammenarbeit gerne fortsetzen. Er zahlt zur Zeit %d wöchentlich." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Deine Schulden:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Dein nächster Gegner" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Dein Angebot für %s wurde akzeptiert. Wenn Du ihn immer noch kaufen willst, " "gehe zur Transferliste und links-klicke auf den Spieler." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Dein Angebot wurde annulliert." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Dein Angebot wurde aktualisiert." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Dein Angebot wird nächste Woche verhandelt." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Deine Gesamtergebnisse" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Deine Mannschaft ist voll oder du hast nicht genügend Geld." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Deine Ergebnisse" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Es ist kein Platz mehr in Deiner Mannschaft für neue Spieler." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Deine Mannschaft ist voll. Du konntest %s nicht von %s kaufen." #: src/window.c:890 msgid "Your stadium" msgstr "Dein Stadion" #: src/treeview2.c:91 msgid "Your team" msgstr "Deine Mannschaft" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Deine Mannschaft kann nicht weniger als 11 Spieler haben." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Deine Mannschaft hatte schon genug Trainingslager diese Woche." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Der Nachwuchsspieler %s dachte, es sei an der Zeit für einen Profivertrag " "und hat Deine Nachwuchsmannschaft verlassen." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Der Nachwuchsspieler %s wird bald zu alt für Deine Nachwuchsmannschaft. Nimm " "ihn in deine Profimannschaft auf oder wirf ihn aus der Nachwuchsmannschaft, " "sonst verlässt er wahrscheinlich deine Nachwuchsmannschaft bald." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Nachwuchsförderung" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Nachwuchsmannschaft" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Nachwuchsmannschaft ist in dieser Länderdefinition ausgeschaltet." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Nachwuchstrainer" #: src/interface.c:304 msgid "_File" msgstr "_Datei" #: src/interface.c:1059 msgid "_Help" msgstr "_Hilfe" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Lade Spiel" #: src/interface.c:347 msgid "_Options" msgstr "_Einstellungen" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Unterbrechen" #: src/interface.c:766 msgid "_Player" msgstr "S_pieler" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Weiter" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "Letztes _Spiel laden" #: src/interface.c:460 msgid "_Team" msgstr "_Mannschaft" #: src/interface.c:850 msgid "_User" msgstr "_Benutzer" #: src/treeview.c:1644 msgid "interest rate" msgstr "Zins" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Wenn Du glaubst, etwas über das Spiel herausgefunden zu haben, das " #~ "unbedingt mitgeteilt werden muss, kannst Du's in der Bygfoot Wiki " #~ "loswerden:\n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Bygfoot Save-Dateien" #~ msgid "Calibrate the betting odds by simulating a lot of matches" #~ msgstr "Wettquoten durch Simulation vieler Spiele anpassen" #~ msgid "Debug level to use" #~ msgstr "Debuglevel, das benutzt wird" #~ msgid "How many matches to simulate per skill diff step" #~ msgstr "Wieviele Spiele sollen pro Talentunterschiedsstufe simuliert werden" #~ msgid "How many skill diff steps to take" #~ msgstr "Wieviele Talentunterschiedsstufen sollen verwendet werden" #~ msgid "Improve!" #~ msgstr "Verbessern!" #~ msgid "Load the last game that was saved or loaded." #~ msgstr "" #~ "Lade den Spielstand, der als letztes gespeichert oder geladen wurde." #~ msgid "Misc." #~ msgstr "Div." #~ msgid "Show history" #~ msgstr "Zeige Historie" #~ msgid "There are no offers for the player." #~ msgstr "Es liegen keine Angebote für den Spieler vor." #~ msgid "Username" #~ msgstr "Benutzername" bygfoot-2.3.2/po/Makefile.in.in0000644000175000017500000001765511225071373015252 0ustar eliaselias# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ libdir = @libdir@ localedir = $(libdir)/locale gnulocaledir = $(datadir)/locale gettextsrcdir = $(datadir)/glib-2.0/gettext/po subdir = po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ CC = @CC@ GENCAT = @GENCAT@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) SOURCES = POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = LINGUAS ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ $(POFILES) $(GMOFILES) $(SOURCES) POTFILES = \ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && $(GENCAT) $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ --add-comments --keyword=_ --keyword=N_ \ --flag=g_strdup_printf:1:c-format \ --flag=g_string_printf:2:c-format \ --flag=g_string_append_printf:2:c-format \ --flag=g_error_new:3:c-format \ --flag=g_set_error:4:c-format \ --flag=g_markup_printf_escaped:1:c-format \ --flag=g_log:3:c-format \ --flag=g_print:1:c-format \ --flag=g_printerr:1:c-format \ --flag=g_printf:1:c-format \ --flag=g_fprintf:2:c-format \ --flag=g_sprintf:2:c-format \ --flag=g_snprintf:3:c-format \ --flag=g_scanner_error:2:c-format \ --flag=g_scanner_warn:2:c-format \ --files-from=$(srcdir)/POTFILES.in \ && test ! -f $(GETTEXT_PACKAGE).po \ || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ case "$$cat" in \ *.gmo) destdir=$(gnulocaledir);; \ *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $$dir; \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ fi; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ fi; \ if test -r $$cat.m; then \ $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ else \ if test -r $(srcdir)/$$cat.m ; then \ $(INSTALL_DATA) $(srcdir)/$$cat.m \ $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ else \ true; \ fi; \ fi; \ done if test "$(PACKAGE)" = "glib"; then \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ done if test "$(PACKAGE)" = "glib"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) dist distdir: update-po $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ cd $(srcdir); \ catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done # POTFILES is created from POTFILES.in by stripping comments, empty lines # and Intltool tags (enclosed in square brackets), and appending a full # relative path to them POTFILES: POTFILES.in ( if test 'x$(srcdir)' != 'x.'; then \ posrcprefix='$(top_srcdir)/'; \ else \ posrcprefix="../"; \ fi; \ rm -f $@-t $@ \ && (sed -e '/^#/d' \ -e "s/^\[.*\] +//" \ -e '/^[ ]*$$/d' \ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ | sed -e '$$s/\\$$//') > $@-t \ && chmod a-w $@-t \ && mv $@-t $@ ) Makefile: Makefile.in.in ../config.status POTFILES cd .. \ && $(SHELL) ./config.status $(subdir)/$@.in # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bygfoot-2.3.2/po/da.po0000644000175000017500000026015511225071373013517 0ustar eliaselias# Danish translation Bygfoot Football Manager trunk. # Kristian Poul Herkild , 2007. # Joe Hansen , 2009. # msgid "" msgstr "" "Project-Id-Version: Bygfoot Football Manager - trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-07-05 03:09+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "MÃ¥l/kamp %.1f redninger %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "MÃ¥l/kamp %.1f skud %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Du kan ogsÃ¥ skrive en e-post til forfatterne:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Døtre" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Sønner" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr "(Frispark)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (NB: Hvis du ikke vælger en ny klub, er spillet ovre.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr "(SelvmÃ¥l)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr "(Straffe)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- 1. runde" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Afspil kampe igen" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- 2. runde" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Assoc." #: src/options_interface.c:329 msgid " Autosave files " msgstr " Automatisk gemte filer " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bank" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Brdr." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Chemicals" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Communications" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Company" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Data Systems" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energy" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Financial" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Heldigvis har han en fætter, som kan hjælpe din klub." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Group" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holdings" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industries" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Labs" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petroleum" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Products" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restauranter" #: src/interface.c:1220 msgid " Round " msgstr " Runde " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Scientific" #: src/interface.c:1200 msgid " Season " msgstr " Sæson " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Systems" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Technologies" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telecommunications" #: src/interface.c:1210 msgid " Week " msgstr " Uge " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " forl.sp." #: src/callback_func.c:466 msgid " less" msgstr " mindre" #: src/options_interface.c:527 msgid " months" msgstr " mÃ¥neder" #: src/callback_func.c:464 msgid " more" msgstr " mere" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " str." #: src/misc_interface.c:934 msgid " seats" msgstr " sæder" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f mÃ¥neder / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d forl.sp." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d str." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d træningslejre tilbage for denne sæson." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (H) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (forventet skadesfri om %d uger)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s, Gruppe %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s accepterer dit tilbud." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s og %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s og %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "" "%s kunne ikke købe %s, fordi han ikke havde eller ikke havde plads i truppen." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s har fyret dig pÃ¥ grund af økonomisk vanrygt.\n" "Du har fÃ¥et et nyt arbejde hos %s i %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s har fyret dig pÃ¥ grund af manglende succes.\n" "Du har fÃ¥et et nyt arbejde hos %s i %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s er blevet tilføjet transferlisten for %d uger." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s har forladt din klub, fordi kontrakten er udløbet." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s fra %s har afvist dit tilbud (%s / %s). Han var ikke tilfreds med lønnen, " "du tilbød." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s fra %s har afvist dit tilbud fordi dit hold allerede har for mange " "stjernespillere. »En spiller af min kaliber spiller ikke 2. violin«, er han " "blevet citeret for." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s tilbyder dig et job i %s.\n" "Du accepterer udfordringen og forlader %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s afviser dit tilbud og vil ikke forhandle mere med dig. Du bør sælge ham " "inden hans kontrakt udløber, da han ellers bare vil forlade din klub." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s afviser dit tilbud. Du kan stadig komme med %d tilbud." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s skyder straffe- og frispark, nÃ¥r han spiller." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s vil gerne købe spilleren %s. De tilbyder %s for ham, hvilket er %s end " "spillerens værdi. Accepterer du tilbudet?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "%s's kontrakt udløber om %.1f Ã¥r." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "%s's skade var sÃ¥ alvorlig, at han ikke længere kan spille fodbold pÃ¥ et " "professionelt niveau. He forlader derfor din klub." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (no limit)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d uger\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(startuge %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- en enkel og vanedannende GTK2-fodboldmanager" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 Ã¥r" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 Ã¥r" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 Ã¥r" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 Ã¥r" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (U) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Der var ildebrand\n" "pÃ¥ stadion." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Der var optøjer\n" "pÃ¥ stadion." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Der var tekniske problemer\n" "pÃ¥ stadion." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Nuværende væddemÃ¥l" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Seneste væddemÃ¥l" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Uge %d, runde %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "En ny ungdomsspiller er optaget pÃ¥ dit ungdomsakademi." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "En ny ungdomsspiller ville gerne optages pÃ¥ dit ungdomsakademi, men der var " "ikke plads til ham." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "Tilføj sidste kamp" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "ultraoffensivt" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "ultradefensivt" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "modsat" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "offensivt" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Om" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Acceptér" #: src/game_gui.c:818 msgid "Accept?" msgstr "Godkend?" #: src/interface.c:1035 msgid "Add last match" msgstr "Tilføj sidste kamp" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "" "Tilføj sidste optagede kamp til den nuværende fil for mindeværdige kampe." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Tilføj bruger" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Juster tilbagebetalingsplan?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Alder" #: src/options_interface.c:735 msgid "Age " msgstr "Alder " #: src/window.c:399 msgid "All Files" msgstr "Alle filer" #: src/interface.c:502 msgid "All Out Attack" msgstr "ultraoffensivt" #: src/interface.c:478 msgid "All Out Defend" msgstr "ultradefensivt" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Vis altid nyhedsvindue efter en kampdag" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "Gem/genopret altid dit standardhold" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "Gem/genopret altid dit standardhold før/efter en kamp" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Hvilken som helst" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Udseende" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Ansøge om jobbet?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Mindst en bruger brugte ikke sin tur denne uge. Fortsæt alligevel?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "I Bygfoot's forum kan du rapportere fejl, spørge om hjælp, og diskutere " "spillet:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Offensivt" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Tilskuertal:\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Egenskab " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Automatisk tilbagebetaling af lÃ¥n" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Automatisk pop op" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Automatisk tilbagebetaling" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Automatisk udskiftning" #: src/options_interface.c:443 msgid "Autosave" msgstr "Gem filer automatisk" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Interval for automatisk gem " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Gns. evner: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Gns. evner: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Gns. evne" #: src/treeview2.c:516 msgid "Av.skill" msgstr "Gns. evner" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Tilgængelig klubber" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Gennemsnitlig" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Gennemsnitlig tilskuerantal" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Gennemsnitlig tilskuerantal %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Gennemsnitlig evne" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Gennemsnitlig evne" #: src/treeview.c:1851 msgid "Away" msgstr "Ude" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "Afbalanceret" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "UDE(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Tilbage til hovedmenu (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Tilbage til velkomstskærmen" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "DÃ¥rlig" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Balance" #: src/interface.c:490 msgid "Balanced" msgstr "Afbalanceret" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Udelukket\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Begynd en ny uge (Mellemrumstast)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Bedst" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Bedste defensive hold" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Bedste angribere" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Bedste mÃ¥lmænd" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Bedste offensive hold" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "VæddemÃ¥l" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "VæddemÃ¥l -- venstreklik pÃ¥ odds for at tilføje eller fjerne væddemÃ¥l" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Fjortendagesbalance" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Fjortendagesbalance\n" "(Uge %d og %d)" #: src/interface.c:669 msgid "Boost" msgstr "Boost" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Boost Til er slÃ¥et fra i denne landedefinition." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Boost ændret til %s (koster %d pr. minut)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Boost ændret til %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Boost-udgifter" #: src/player.c:1430 msgid "Broken ankle" msgstr "Brækket ankel" #: src/player.c:1433 msgid "Broken arm" msgstr "Brækket arm" #: src/player.c:1427 msgid "Broken leg" msgstr "Brækket ben" #: src/player.c:1424 msgid "Broken rib" msgstr "Brækket ribben" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Brækket skulder" #: src/interface.c:842 msgid "Browse players" msgstr "Gennemse spillere" #: src/interface.c:745 msgid "Browse teams" msgstr "Gennemse klubber" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Bygfoots mindeværdige kampe" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoots nyheder" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoots gemte filer" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Bygfoots konstante størrelser" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Bygfoots fejlsøgningsvindue. Hvis du er havnet her ved et tilfælde, SÃ… LUK " "DET ØJEBLIKKELIGT (ellers vil din processor blive ødelagt af overophedning)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot er et meget indlysende og enkelt spil, sÃ¥ der er ikke nogen " "fuldstændig dokumentation. Men... hvis du har problemer, er der nogle fÃ¥ " "steder du kan fÃ¥ hjælp.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "Nuv. pos." #: src/options_interface.c:665 msgid "CPos " msgstr "Nuv. pos. " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "Nuv. evne" #: src/options_interface.c:679 msgid "CSkill " msgstr "Nuv. evne " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Kalkuler begyndelsesuge" # engelsk fejl? staves installment ikke instalment #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Kalkuler ugelig rate" #: src/training_interface.c:84 msgid "Camp points" msgstr "Lejrpoint" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Kapacitet (sæder)" #: src/options_interface.c:728 msgid "Cards " msgstr "Kort " #: src/treeview.c:2182 msgid "Career values" msgstr "Spillerstatistik" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "Ændr kommentarniveau. Jo højere værdi, des flere kommentarer." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Ændr hastighed for direkte kamp. Jo højere værdi, des hurtigere " "kampafvikling." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Ændr billetpris" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Vælg et land" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Vælg fil" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "" "Vælg sprog til at anvende i spillet (virker mÃ¥ske ikke i Windows-udgaver)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Vælg liga" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Vælg hold" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Vælg brugnavn" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Klik \"OK\" for at ansøge om jobbet. Klik \"ANNULÉR\" for at lukke vinduet." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Klik pÃ¥ en bruger for at fjerne denne fra spillet." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Klik pÃ¥ en bruger, for at fjerne denne." #: src/options_interface.c:1640 msgid "Close" msgstr "Luk" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" "Luk vindue. Ændringer vil kun blive gemt for den nuværende session, " "medmindre du ogsÃ¥ gemmer til en fil." #: src/misc_interface.c:573 msgid "Commentary" msgstr "Kommentarer" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Kommentarhændelse, der skal testes; lad stÃ¥ tom, hvis alle kommentarer skal " "testes" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Kommentarfilnavn (er muligvis i en hjælpemappe)" #: src/treeview.c:3017 msgid "Company" msgstr "Company" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Godtgørelse" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Konkurrence" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Pakker gemt spil..." #: src/player.c:1409 msgid "Concussion" msgstr "Hjernerystelse" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Bekræft & planlæg tilbagebetaling" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Bekræft afslutning, nÃ¥r der ikke er gemt" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Bekræft fjernelse af elever" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Bekræft, nÃ¥r ude af form" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Bekræft!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Konstantfil" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Kontrakt" #: src/options_interface.c:763 msgid "Contract " msgstr "Kontrakt" #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Kontrakt / Beløb" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Kontraktlængde\n" "(mÃ¥neder)" #: src/window.c:937 msgid "Contract offer" msgstr "Kontrakttilbud" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Kontrakter er fravalgt i denne landedefinition." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Bidragydere" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Kopierer %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Udgifter" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Kunne ikke finde pixmapfil: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Land" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Opret nyheder for cup" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Opret nyheder for liga" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Opret nyheder for bruger" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl+N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl+O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl+R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Cupvindere" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Cup har inge tabeller." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Nuværende stadionkapacitet" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Nuværende fil" #: src/treeview.c:2829 msgid "Current league" msgstr "Nuværende liga" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Nuværende markedsrente" #: src/treeview.c:2165 msgid "Current position" msgstr "Nuværende position" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Nuværende stadionsikkerhed" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Nuværende opsætning:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Nuværende evne" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "F" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "Defensivt" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Gæld (betal inden %d uger)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Fejlfinding" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Beslut senere" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Standardhotel" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Standardfritid:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Standardtræning:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Normal indsats" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "defensivt" #: src/interface.c:640 msgid "Defenders" msgstr "Forsvarere" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Dagens tip:" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Kunne ikke finde filen 'bygfoot_help'." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Vil du virkelig sparke den stakkels dreng ud af dit akademi?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Indlæs ikke definitioner" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Indlæs overhovedet ikke klubdefinitioner" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Færdig." #: src/treeview2.c:396 msgid "Draw" msgstr "Uafgjort" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Grænse for overtræk" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "U" #. draw #: src/team.c:1150 msgid "Dw " msgstr "U" #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "U %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "Ans. talent " #: src/treeview2.c:70 msgid "EXPORT" msgstr "Eksportér" #: src/options_interface.c:432 msgid "Edit" msgstr "Rediger" #: src/interface.c:829 src/interface.c:2038 msgid "Edit name" msgstr "Rediger navn" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "Rediger de konstante størrelser anvendt i spillet" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Indtast en formation. Summen af tallene skal give 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Indtast tilpasset formation" #: src/window.c:865 msgid "Erm..." msgstr "Hmm..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / retur / mellemrumstast" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "AnslÃ¥et talent" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "Ans. talent" #: src/treeview.c:2378 msgid "Event" msgstr "Begivenhed" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Forventet varighed" #: src/treeview.c:1704 msgid "Expenses" msgstr "Udgifter" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/interface.c:398 msgid "F_igures" msgstr "_Oversigt" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Gebyr" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Fil, der indeholder \"direkte kampe\"-tegn (er muligvis i en hjælpemappe)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Fil, der indeholder indstillinger, som bestemmer en masse aspekter i " "spillets opførsel. FORETAG INGEN ÆNDRINGER MED MINDRE DU VIRKELIG VED, HVAD " "DU FORETAGER DIG." #: src/interface.c:928 msgid "Fin_Stad" msgstr "_Økonomi & stadion" #: src/cup.c:1105 msgid "Final" msgstr "Finale" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Økonomi er fravalgt i denne landedefinition." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Fyr spiller" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Første værdi: gennemsnitlig nuværende evne for de første 11 spillere. Anden " "værdi: gennemsnitlig evne for alle spillere." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Førsteklasses hotel" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Form" #: src/treeview.c:2168 msgid "Fitness" msgstr "Form" #: src/options_interface.c:693 msgid "Fitness " msgstr "Form" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Resultater (dine turneringer)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Resultater (alle)" # (merk.: lÃ¥n) stifte, (papirer) emittere. # Mangler forklaring pÃ¥ hvad det her er. #: src/options_interface.c:1541 msgid "Float" msgstr "Stifte" #: src/options_interface.c:379 msgid "Font name" msgstr "Skrifttypenavn" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Skrifttype brugt ved trævisning" #: src/interface.c:652 msgid "Forwards" msgstr "Angribere" #: src/treeview.c:840 msgid "Fouls" msgstr "Frispark" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Forstuvet ankel" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "M" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "MÃ¥l imod" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "MÃ¥lforskel" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "MÃ¥l scoret" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Kampe" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Spil" #: src/treeview_helper.c:931 msgid "Games" msgstr "Kampe" #: src/options_interface.c:700 msgid "Games " msgstr "Spil" #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Kampe/mÃ¥ls\n" #: src/options_interface.c:486 msgid "Global" msgstr "Global" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "MÃ¥l" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "GÃ¥ tilbage til velkomstskærmen" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "MÃ¥l/kamp" #: src/treeview.c:1775 msgid "Goalie" msgstr "MÃ¥lmand" #: src/interface.c:634 msgid "Goalies" msgstr "MÃ¥lmænd" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "MÃ¥l" #: src/options_interface.c:714 msgid "Goals " msgstr "MÃ¥l" #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "MÃ¥l (almindelige)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "God" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Godt hotel" #: src/player.c:1418 msgid "Groin injury" msgstr "Lyskenskade" #: src/player.c:1415 msgid "Hamstring" msgstr "Beskadigede knæhaser" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Tag et kig pÃ¥ transferlisten. Der er et bud pÃ¥ %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Overskrift" #: src/treeview.c:2171 msgid "Health" msgstr "Helbred" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Hjælp" #: src/treeview.c:1849 msgid "Home" msgstr "Hjemme" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Hvor mange kommentarer, der skal genereres til hver event" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Hvor mange cifre, der skal være efter kommaet for evner m.m." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Hvor mange filer, der vil blive brugt, nÃ¥r der gemmes automatisk" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Hvor meget, du normalt satser" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Hvor ofte spillet skal gemmes automatisk" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Hvor ofte spillerlisten bliver opdateret under en direkte kamp (i " "kampminutter)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "SKA(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Hvis der er sat hak i fluebenet, vil uger uden brugerkampe blive beregnet " "automatisk (uden at brugeren skal trykke pÃ¥ 'Ny uge')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Hvis du ikke kan lide nogen af sponsorerne, kan du klare dig i nogle uger " "uden sponsor, og vente pÃ¥ nogle nye tilbud." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importér fil" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importér kampene fra en fil over mindeværdige kampe" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Forbedring i gang.\n" "%d sæder og %d%% sikkerhed mangler stadig.\n" "Forventet afslutning: %d uger." #: src/treeview.c:1703 msgid "Income" msgstr "Indtægter" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Forøg" #: src/treeview.c:843 msgid "Injuries" msgstr "Skader" #: src/options_interface.c:1527 msgid "Integer" msgstr "Helt tal" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Det er ikke for sent i sæsonen til automatisk tilbagebetaling af lÃ¥n." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Jobtilbud" #: src/interface.c:370 msgid "Job offers" msgstr "Jobtilbud" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Jobtilbud sat til %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Rejseomkostninger" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Smid ud fra akademi" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "T" #. lost #: src/team.c:1154 msgid "L " msgstr "T " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "T %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "Ind_læs sidste gemte spil" #: src/options_interface.c:436 msgid "Language" msgstr "Sprog" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Sprog, du ønsker at bruge (en kode som 'da')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Sidste %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Sidst gemte fil blev ikke fundet." #: src/treeview.c:1898 msgid "Latest results" msgstr "Seneste resultater" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga" #: src/treeview.c:2590 msgid "League champions" msgstr "Ligavindere" #: src/interface.c:991 msgid "League stats" msgstr "Ligastatistik" #: src/league_table_interface.c:39 msgid "League table" msgstr "Ligatabel" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Venstre klik for at give tilbud. Højreklik for at fjerne tilbud." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Højreklik for at flytte spillere til og fra ungdomsakademiet; venstreklik " "for at fÃ¥ en menu." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Venstreklik for at vise resultater." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Venstreklik for at vise tabel." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Venstreklik: optag lÃ¥n; Højreklik: betal tilbage; midterklik: " "stadionoversigt." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Liste 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Liste 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Direkte kamp" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Direkte kamp sat til %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Hastighedsfaktor for direkte kampe" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Kommentarniveau for direkte kampe" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Hent spil (Ctrl + O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Indlæs det sidst gemte spil" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Indlæs kun spillernavne fra definitionsfiler" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Indlæs klubdefinitioner" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Indlæs klubber fra definitionsfiler (bemærk, at den officielle Bygfootpakke " "ikke indeholder klubdefinitionsfiler - du er nødt til at hente dem fra " "hjemmesiden eller via bygfoot-update-scriptet)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Henter cup: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Indlæser jobskifte..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Henter ligaen: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Indlæser ligaer og pokalturneringer..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Indlæser forskellige..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Indlæser avis..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Indlæser valgmuligheder..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Indlæser sæsonstatistikker..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Indlæser transferliste..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Indlæser brugere..." #: src/callback_func.c:397 msgid "Loan" msgstr "LÃ¥n" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "Mi" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Giv et tilbud" #: src/interface.c:1047 msgid "Manage matches" msgstr "HÃ¥ndtér kampe" #: src/interface.c:917 msgid "Manage users" msgstr "HÃ¥ndtér brugere" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximér hovedvindue" #: src/user.c:1214 msgid "Memorable match added." msgstr "Mindeværdig kamp tilføjet." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Mindeværdige kampe" #: src/treeview.c:1777 msgid "Midfield" msgstr "Midtbane" #: src/interface.c:646 msgid "Midfielders" msgstr "Midtbanespillere" #: src/treeview.c:1629 msgid "Money" msgstr "Beløb" #: src/interface.c:1296 msgid "Money " msgstr "Beløb " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Beløb (ca.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Beløb / uge" #: src/interface.c:2092 msgid "Move to team" msgstr "Flyt til klub" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Flyt til ungdomsakademi" #: src/interface.c:438 msgid "My league results" msgstr "Mine ligaresultater" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Navn" #: src/options_interface.c:658 msgid "Name " msgstr "Navn " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Neutral bane" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Nye kontrakt-\n" "tilbud" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Ny opsætning:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Nyheder" #: src/misc3_interface.c:315 msgid "Next" msgstr "Næste" #: src/interface.c:1434 msgid "Next (W)" msgstr "Næste (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Næste liga/cup (2)" #: src/interface.c:895 msgid "Next user" msgstr "Bedste bruger" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Du fyrer ham næste uge, og hyrer en ny." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Ingen automatisk pop op" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Der foretages ingen forbedringer lige nu." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Ingen gemte kampe." #: src/treeview2.c:600 msgid "No news available." msgstr "Ingen nyheder tilgængelig." #: src/misc_callbacks.c:468 msgid "None" msgstr "Ingen" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Dette er ikke en gyldig fil for mindeværdige kampe i Bygfoot." #: src/window.c:882 msgid "Numbers..." msgstr "Numre..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "Fra" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "O.k." #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "Til" #: src/interface.c:686 msgid "Off" msgstr "Fra" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Tilbyd ny kontrakt" #: src/interface.c:680 msgid "On" msgstr "Til" #: src/misc_interface.c:211 msgid "Only names" msgstr "Kun navne" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Ã…ben en fil med mindeværdige kampe" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Modstander" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Modstanderens spillerliste" #: src/window.c:914 msgid "Options" msgstr "Valgmuligheder" #: src/treeview.c:1904 msgid "Overall results" msgstr "Resultater i alt" #: src/interface.c:379 msgid "Overwrite" msgstr "Overskriv" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Overskriv sat til %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "K" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "P" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pause ved halvleg" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pause ved skader" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pause ved rødt kort" #: src/callback_func.c:427 msgid "Payback" msgstr "Tilbagebetal" #: src/treeview.c:839 msgid "Penalties" msgstr "Straffespark" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Straffe- og frisparksskytte fravalgt." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Fysioterapeut" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Spilleren tager imod nye tilbud" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Præcision for spilleregenskaber" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Viste spilleregenskaber" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Spilleren forhandler ikke mere" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Spillerliste" #: src/interface.c:1363 msgid "Player list 1" msgstr "Spillerliste 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Spillerliste 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Opfriskningshastighed for spillerliste" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Spillestil" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Pop op vedrørende brugernyheder" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos." #: src/options_interface.c:672 msgid "Pos " msgstr "Pos. " #: src/treeview.c:2164 msgid "Position" msgstr "Position" #: src/treeview.c:838 msgid "Possession" msgstr "Boldbesiddelse" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Foretrækker beskeder" #: src/interface.c:354 msgid "Preferences" msgstr "Indstillinger" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Prima hotel" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Forrige" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Forrige (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Forrige liga/cup (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Forrige bruger" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Pris per billet" #: src/treeview.c:1517 msgid "Prize money" msgstr "Præmiepenge" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Forstrækket muskel" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Sæt pÃ¥ transferliste" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Kvartfinale" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Afslut (Ctrl + Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "Fjern" #: src/treeview2.c:68 msgid "REPLAY" msgstr "Afspil igen" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Bland hold tilfældigt i pokalturneringer" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Bland hold tilfældigt i pokalturneringer. Dette giver kun mening i " "internationale definitioner som VM, hvor holdsammensætningen er fastlÃ¥st." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Placering" #: src/interface.c:1281 msgid "Rank " msgstr "Placering " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Parat" #: src/interface.c:728 msgid "Rearrange team" msgstr "Omrokér spillere" #: src/training_interface.c:98 msgid "Recreation" msgstr "Rekreation" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Spillertype" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Røde kort" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Afvis for nu" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Genindlæs" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Genindlæs og luk" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" "Genindlæs filen for de konstante størrelser. Dette vil overskrive alle " "ændringer du har foretaget i det aktuelle spil." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "Genindlæs fra fil" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Genindlæs kampe fra fil" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Genindlæs kampe fra fil og luk" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Genindlæs konstantfil" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Fjern fra transferliste" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Fjern bruger %s fra spillet?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Afspil, slet eller tilføj mindeværdige kampe." #: src/interface.c:712 msgid "Reset player list" msgstr "Nulstil spillerliste" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Sæt spillerlisten til at være den samme som ved starten af pausen i den " "direkte kamp (højreklik pÃ¥ spillerlisten)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Resultat" #: src/treeview.c:2013 msgid "Results" msgstr "Resultater" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Retur" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Retur / mellemrumstast" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Brug højreklik eller venstreklik for at ændre boostniveau" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Brug højreklik eller venstreklik for at ændre din spillestil" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Højreklik for at ansøge om stilling; venstreklik for at se klubinformationer." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Højreklik for at nulstille" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Runde" #: src/cup.c:1094 msgid "Round robin" msgstr "PÃ¥ skift" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Sikkerhed (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "Sikkerhedsforbedring er for høj, sætter til højest mulige værdi." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Redninger %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Gem og luk" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Gem ændringer og luk" #: src/options_interface.c:1581 msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Gem ændringer til filen for konstante størrelser. GØR IKKE DETTE MED MINDRE " "DU VIRKELIG VED, HVAD DU FORETAGER DIG." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Gem spil (Ctrl + S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Gem globale indstillinger i fil" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Overskriv ved gemning" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Gem opsætning som standard" #: src/options_interface.c:1595 msgid "Save to file" msgstr "Gem til fil" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Gem brugerindstillinger i fil" #: src/interface.c:389 msgid "Save window geometry" msgstr "Gem vinduesgeometri" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Gem vinduesstørrelse, position og lodret skillelinie" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Gemmer jobskifte..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Gemmer ligaer og pokalturneringer..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Gemmer forskellige..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Gemmer avis..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Gemmer valgmuligheder..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Gemmer sæsonstatistikker..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Gemmer transferliste..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Gemmer brugere..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Spion" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sæson" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Sæson %d" #: src/interface.c:1002 msgid "Season history" msgstr "Sæsonhistorik" #: src/interface.c:449 msgid "Season results" msgstr "Sæsonresultater" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Vælg skrifttype" #: src/cup.c:1108 msgid "Semi-final" msgstr "Semifinale" #: src/interface.c:664 msgid "Set investment" msgstr "Sæt investeringsniveau" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Sæt procentdelen af dine indtægter, som du vil bruge pÃ¥ dit ungdomsakademi." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Sæt til 0 for at slÃ¥ advarsel fra" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Skud" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Skyder straffespark" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Skud %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Skud" #: src/options_interface.c:707 msgid "Shots " msgstr "Skud " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Vis alle ligaer i resultatoversigt" #: src/interface.c:879 msgid "Show coming matches" msgstr "Vis kommende kampe" #: src/interface.c:935 msgid "Show finances" msgstr "Vis økonomi" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Vis info" #: src/interface.c:758 msgid "Show job exchange" msgstr "Vis jobskifte" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Vis jobtilbud" #: src/interface.c:857 msgid "Show last match" msgstr "Vis sidste kamp" #: src/interface.c:868 msgid "Show last match stats" msgstr "Vis statistik for sidste kamp" #: src/options_interface.c:576 msgid "Show live game" msgstr "Vis 'direkte' kamp" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Vis kampe fra alle ligaer" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Vis kampe fra pokalturneringer" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "Vis nyhedsvindue efter en kampdag nÃ¥r nye brugernyheder oprettes" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Vis kun mine seneste væddemÃ¥l" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Vis kun de seneste nyheder" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Vis alle typer kampe/mÃ¥l" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Vis billeder til statuslinje" #: src/interface.c:946 msgid "Show stadium" msgstr "Vis stadion" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Vis tendensbjælke" #: src/interface.c:972 msgid "Show the betting window" msgstr "Vis væddemÃ¥lsvindue" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Vis liste over tilgængelige managerstillinger" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Vis transferliste (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Vis advarsel, hvis en spillerkontrakt kommer under " #: src/interface.c:589 msgid "Show youth academy" msgstr "Vis ungdomsakademi" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Evne" #: src/treeview.c:2166 msgid "Skill" msgstr "Evne" #: src/options_interface.c:686 msgid "Skill " msgstr "Evne " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Spring over uger uden kampe for brugere" #: src/misc_interface.c:249 msgid "Space" msgstr "Mellemrumstast" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "Angiv yderligere hjælpefoldere (disse har højere prioritet end " "standardfoldere)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Hastighed" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsorering" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Sponsortilbud" #: src/interface.c:977 msgid "St_ats" msgstr "St_atus" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadion" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Stadionkapacitet" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Stadionudgifter" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "StadionhÃ¥ndtering er slÃ¥et fra i denne landedefinition." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Stadionsikkerhed" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Stadionstatus" #: src/misc_interface.c:266 msgid "Start" msgstr "Begynd" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Start _nyt spil" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Start i uge" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Start i uge:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statistik" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Status" #: src/options_interface.c:721 msgid "Status " msgstr "Status " #: src/misc_interface.c:951 msgid "Status:" msgstr "Status:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Stime" #: src/options_interface.c:1555 msgid "String" msgstr "StreÅ„g" #: src/main.c:99 msgid "String id of the country to load" msgstr "Streng-id pÃ¥ landet der skal indlæses" #: src/callbacks.c:936 msgid "Structure" msgstr "Formation" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Lad formation følge spillerombytning" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "System" #: src/interface.c:427 msgid "Tables" msgstr "Stillinger" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talent %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Klub" #: src/options_interface.c:777 msgid "Team " msgstr "Klub " #: src/treeview.c:1892 msgid "Team structure" msgstr "Holdformation" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Spillestil ændret til %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Klub 1" #: src/treeview2.c:399 msgid "Team2" msgstr "Klub 2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Test en XML-kommentarfil" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Din bank vil ikke give dig flere penge." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "VæddemÃ¥lskontoret vil ikke tillade dig at satse mere end %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "" "Dit nuværende spil er ikke gemt og vil derfor gÃ¥ tabt. Ønsker du at " "fortsætte?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Jo højere værdi, des flere kommentarer vil du se." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "Jobskifteopdateringsintervallet er %d uger." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Jo lavere, denne værdi er, des hurtigere vil kommentarerne under 'direkte' " "kamp blive opdateret." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "%s accepterer din ansøgning." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Ejerne af %s godkender din ansøgning. Siden du alligevel snart skifter " "arbejdsplads, ønsker %s ikke længere at beholde dig. Du bliver derfor fyret " "øjeblikkeligt, og bruger resten af den nuværende sæson pÃ¥ at passe din have." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Ejerne af %s er dybt imponerede af din succes med %s, og vil gerne ansætte " "dig. Her er nogle informationer om %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Ejerne af %s er utilfredse med holdets seneste præstationer. Der er rygter " "om, at de er pÃ¥ jagt efter en ny manager." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Ejerne af %s har afvist dit tilbud (%s / %s) pÃ¥ %s. De siger, at hverken " "transfergebyret eller lønnen, du tilbød, var acceptable." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Ejerne af %s har afvist dit tilbud (%s / %s) pÃ¥ %s. Klubejerne var ikke " "tilfredse med det transfergebyr, du tilbød." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Ejerne af %s har afvist dit tilbud (%s / %s) pÃ¥ %s. Der var et bedre bud pÃ¥ " "spilleren end dit." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Ejerne af %s afslÃ¥r høfligt din ansøgning. Du er ikke succesfuld nok i deres " "øjne." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Spilleren føler ikke at han har en fremtid i dit stjernefyldte hold. Han " "nægter at forhandle." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Spilleren er allerede pÃ¥ listen." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "Spilleren er lÃ¥st (klubejerne overvejer lige nu et tilbud)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Spilleren er ikke pÃ¥ listen." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Spilleren er inde i en dÃ¥rlig stime" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Spilleren er inde i en god stime" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Spilleren er for gammel til dit ungdomsakademi." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Spilleren vil ikke længere forhandle med dig." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Formationsværdien %d er ugyldig." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Klubejerne er meget tilfredse med din økonomistyring. Siden klubben har " "tjent en hel masse penge pÃ¥ det seneste, har de besluttet at donere " "halvdelen til velgørende formÃ¥l." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Klubejerne har fyret dig, pÃ¥ grund af økonomisk vanrygt. Heldigvis har " "ejerne af %s hørt om din fyring og har tilbudt dig et job. Her er nogle " "informationer om %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Klubejerne har fyret dig, pÃ¥ grund af manglende succes. Heldigvis har ejerne " "af %s hørt om din fyring, og har tilbudt dig et job. Her er nogle " "informationer om %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Tidsfristen for spillerhandler er overskredet." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Der er nogle selskaber, der er interesserede i at sponsorere din klub. Vælg " "venligst en:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Der er skadede eller karantæneramte spillere i en af dine klubber. Fortsæt?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Der er ingen ligaer i denne landedefinition (kun pokalturneringer)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Der er ingen ligaer eller pokalturneringer i denne landedefinition." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Der er endnu ingen gemte historieelementer." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Der er nogle af budene pÃ¥ spilleren, som du har afvist, eller vil fÃ¥ at se " "næste uge." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Der er ikke plads pÃ¥ dit ungdomsakademi." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Der var for mange udskiftninger. Kun 3 per kamp er tilladt. Spillerlisten er " "sat tilbage." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Billetsalg" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Beskadiget ledbÃ¥nd" #: src/training_interface.c:117 msgid "Training" msgstr "Træning" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Træningslejr" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Træningslejr er slÃ¥et fra i denne landedefinition." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Tidsfristen for spillerhandler er uge %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Transfertilbud" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transfere" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Transfere er fravalgt i denne landedefinition." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Forsøg at sætte spillere fra startformation pÃ¥ deres foretrukne pladser, og " "sortér reservespillerne (Ctrl + R eller midterklik)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Udpakker gemt spil..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Bruger %s har endnu ikke overvejet dit tilbud." #: src/interface.c:1013 msgid "User history" msgstr "Brugerhistorik" #: src/window.c:945 msgid "User management" msgstr "BrugerhÃ¥ndtering" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Brugere -- klik for at fjerne" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Værdi" #: src/options_interface.c:749 msgid "Value " msgstr "Værdi " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Kommentarniveau" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "V" #. won #: src/team.c:1157 msgid "W " msgstr "V " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "V %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Løn" #: src/options_interface.c:756 msgid "Wage " msgstr "Løn" #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Indsats" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Indsats/\n" "Vundet/tabt" #: src/treeview.c:1522 msgid "Wages" msgstr "Lønninger" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Uge" #: src/treeview.c:2350 msgid "Week" msgstr "Uge" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Uge %d, runde %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Uge %d, runde %d\n" "Cuprunde %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Ugerate" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Ugerate:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Velkommen til Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Hvorvidt 'Gem' overskriver den nuværende fil, eller dukker op som et 'Gem " "som'-vindue" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Hvorvidt et bekræftigelsesvindue skal vises, nÃ¥r du smider en ungdomsspiller " "ud af dit akademi" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Hvorvidt spillet starter med et fuldskærmsvindue (virker ikke med alle " "vindueshÃ¥ndterere)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Hvorvidt alle ligaer vises i den ugentlige resultatoversigt, eller der kun " "vises resultater fra brugerens liga" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Hvorvidt ombytning pÃ¥ to spillere automatisk tilpasser holdformationen til " "spillerpositioner" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "" "Hvorvidt den direkte kamp skal sættes pÃ¥ pause ved halvleg og forlænget " "spilletid" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "" "Hvorvidt den direkte kamp skal sættes pÃ¥ pause, nÃ¥r en spiller bliver skadet" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "" "Hvorvidt den direkte kamp skal sættes pÃ¥ pause, nÃ¥r en spiller bliver udvist" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Hvorvidt udskiftninger (dvs. af skadede spillere) foretages af computeren. " "Dette sker automatisk hvis 'direkte kampe' er slÃ¥et fra." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Hvorvidt spillet skal gemmes automatisk med regelmæssige intervaller" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Hvorvidt de globale indstillinger skal gemmes i en fil (sÃ¥ de kan indlæses " "næste gang, du starter et nyt spil)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Hvorvidt brugerindstillingerne skal gemmes i en fil (sÃ¥ de kan indlæses " "næste gang, brugeren starter et nyt spil)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Hvorvidt, der skal vises et bekræftigelsesvindue, hvis et brugerhold har en " "skadet eller karantænramt spiller i startformationen" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Hvorvidt, der skal vises et bekræftigelsesvindue, nÃ¥r du vil afslutte uden " "at spillets tilstand er gemt" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Hvorvidt kampe fra pokalturneringer skal vises i væddemÃ¥l" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Hvorvidt der skal vises kampe fra pokalturneringer. Du kan ændre dette " "permanent i \"Indstillinger\"." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Hvorvidt at jobtilbud skal vises, nÃ¥r en bruger har succes" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Hvorvidt kampe fra alle turneringer skal vises under væddemÃ¥l" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Hvorvidt der skal vises kampe fra alle turneringer. Du kan ændre dette " "permanent i opsætningsvinduet." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Hvorvidt der kun skal vises dine væddemÃ¥l" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Hvorvidt, der skal vises billeder ved statuslinjen, nÃ¥r der hentes/gemmes, " "eller beregnes resultater" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Hvorvidt spillerens kampe/mÃ¥l-værdi for alle turneringer skal vises" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Hvorvidt, der skal vises advarsler og lignende i hovedvinduets beskedomrÃ¥de, " "nÃ¥r dette er muligt." #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Hold 1 vinder" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Hold 2 vinder" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "GK" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Gule kort (limit)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Gule kort" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Du er vinderen af %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Du er nu gældsfri." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Du vil igen give et tilbud pÃ¥ %s. Dine forrige værdier for transfersum og " "løn er indsat." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Du vil give et tilbud pÃ¥ %s. Din spejders anbefalinger for transfersum og " "løn er indsat." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Du forhandler en ny kontrakt med %s. Vær opmærksom pÃ¥ hvad, du foretager " "dig; hvis du ikke nÃ¥r til enighed med him inden %d tilbud, forlader han dit " "hold, nÃ¥r kontrakten udløber (med mindre du sælger ham). Du kan kun fortryde " "FØR, du kommer med det første tilbud.\n" "Din spejders anbefalinger er følgende:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Du har ingen gæld." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Du har ingen gæld." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Du vædder pÃ¥ resultatet %d med odds pÃ¥ %.2f. Hvor meget satser du?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Du kan højst tilbagebetale %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Du kan højst lÃ¥ne %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Du kan ikke ansøge om et job i udlandet, hvis der er mere end én bruger." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Du kan ikke have flere end %d spillere i klubben." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Du kan ikke flytte spilleren. Der er for fÃ¥ spillere i din klub." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Du kan ikke tilbyde en ny kontrakt, hvis den gamle gælder for mere end 2 Ã¥r." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Du kan ikke spille Bygfoot uden brugere!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Du kan ikke erstatte en udelukket spiller." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Du har ikke penge nok til at købe %s from %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Du havde ikke penge nok til at købe %s, eller din spillertrup var fyldt." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Du har ikke penge nok til at betale tilbage." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Det har du ikke penge til." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Du slutter sæsonen i %s som nr. %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Du rykker op i %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Du rykker ned i %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Du har %d uger til tilbagebetale resten af dit lÃ¥n." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Du har %d uger til at tilbagebetale dit lÃ¥n." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Du har overtrukket bankkontoen endnu en gang. Husk pÃ¥, at du bliver fyret " "efter den fjerde gang.\n" "Klubejerne giver dig %d uger til at komme over overtræksgrænsen." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Du har overtrukket din bankkonto. Klubejerne har givet dig %d uger til at " "komme over overtræksgrænsen." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Du er nødt til at betale dit lÃ¥n tilbage denne uge." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Du har ikke givet et tilbud pÃ¥ spilleren." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Du har ikke valgt en spiller." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Du har tabt %s finalen mod %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Du tilbød en transfersum pÃ¥ %s og en løn pÃ¥ %s for %s. Ejerne og spilleren " "er tilfredse med dit tilbud. Ønsker du stadig at købe spilleren?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Du er nÃ¥et til %s (runde %s) i %sen." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Du begynder spillet med %s i %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Du mangler stadig at ordne nogle transferhandler." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Du vil gerne fyre %s. Siden hans kontrakt udløber om %.1f Ã¥r, forlanger han " "en godtgørelse pÃ¥ %s. Accepterer du dette?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Du har vundet %s finalen mod %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Du har nÃ¥et det maksimale antal træningslejre pÃ¥ %d for denne sæson." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "Din bankkonto skal være over din overtræksgrænse i næste uge." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Din nuværende sponsor er tilfreds med dine resultater, og vil gerne forny " "kontrakten. PÃ¥ nuværende tidspunkt betaler de dig %d om ugen." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Din gæld:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Din næste modstander" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Dit tilbud pÃ¥ %s er blevet accepteret. Hvis du stadig ønsker at købe ham, sÃ¥ " "gÃ¥ til transferlisten og klik pÃ¥ spilleren (med venstre museknap)." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Dit tilbud er blevet fjernet." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Dit tilbud er blevet fornyet." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Dit tilbud vil blive taget i betragtning næste uge." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Dine resultater i alt" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Din spillertrup er fuld, eller ogsÃ¥ har du ikke penge nok." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Dine resultater" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Du kan ikke købe flere spillere. Din trup er allerede fyldt op." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Din trup er fyldt op. Du kunne derfor ikke købe %s fra %s." #: src/window.c:890 msgid "Your stadium" msgstr "Dit stadion" #: src/treeview2.c:91 msgid "Your team" msgstr "Din klub" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Din klub kan ikke have mindre end 11 spillere." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Dit hold har allerede haft nok træningslejre i denne uge." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Ungdomsspilleren %s mente, han var gammel nok til at fÃ¥ en rigtig kontrakt, " "og forlod dit akademi." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Ungdomsspilleren %s vil snart være for gammel til dit ungdomsakademi. Sæt " "ham pÃ¥ dit hold eller spark ham ud af akademiet. Ellers vil han " "sandsynligvis kigge sig om efter en anden klub at spille i." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Investering i ungdomsakademi" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Ungdomsakademi" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Ungdomsakademiet er slÃ¥et fra i denne landedefinition." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Ungdomstræner" #: src/interface.c:304 msgid "_File" msgstr "_Fil" #: src/interface.c:1059 msgid "_Help" msgstr "_Hjælp" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "Ind_læs spil" #: src/interface.c:347 msgid "_Options" msgstr "_Valgmuligheder" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pause" #: src/interface.c:766 msgid "_Player" msgstr "_Spiller" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Genoptag" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Fortsæt spil" #: src/interface.c:460 msgid "_Team" msgstr "_Klub" #: src/interface.c:850 msgid "_User" msgstr "_Bruger" #: src/treeview.c:1644 msgid "interest rate" msgstr "renteniveau" bygfoot-2.3.2/po/pt_PT.po0000644000175000017500000026040611225071373014160 0ustar eliaselias# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: pt_PT\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-01-15 14:52+0200\n" "Last-Translator: Mihai \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Golos/Jogo %.1f Defendido %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Golos/Jogo %.1f Remate %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Também pode enviar um e-mail aos autores:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Filhas" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Filhos" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr "(L)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr "(NOTA: Se não aceitar, o jogo termina.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr "(AG)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr "(P)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " --Segunda Mão" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Repetir jogos" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " --Primeira mão" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Associados" #: src/options_interface.c:329 msgid " Autosave files " msgstr "Gravar automáticamente" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr "Banco" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr "Irmãos" #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Químicos" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Comunicações" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Empresa" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr "Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Sistemas de Dados" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energia" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr "Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr "Financeiro" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr "Felizmente ele tem um primo que pode ajudar a sua equipa." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Grupo" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holdings" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Indústrias" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratórios" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr "Ltd." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petróleo" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Productos" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr "Restaurantes" #: src/interface.c:1220 msgid " Round " msgstr " Ronda" #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Científico" #: src/interface.c:1200 msgid " Season " msgstr " Época" #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Sistemas" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Tecnologias" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telecomunicações" #: src/interface.c:1210 msgid " Week " msgstr " Semana" #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr "t.e." #: src/callback_func.c:466 msgid " less" msgstr "menos" #: src/options_interface.c:527 msgid " months" msgstr " meses" #: src/callback_func.c:464 msgid " more" msgstr "mais" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr "p." #: src/misc_interface.c:934 msgid " seats" msgstr " assentos" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f meses / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d t.e." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d p." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d estágios ainda disponíveis esta época." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (C)" #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N)" #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (recuperação estimada em %d semanas)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grupo%d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s aceitou a sua oferta." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s e %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s e %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s não tem dinheiro para contratar %s ou o plantel está completo." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s despediu-o por má gestão financeira.\n" "Mas encontroue um novo trabalho com %s no %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s despediu-o por causa do seu insucesso.\n" "Mas encontrou um novo trabalho com %s no %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s foi adicionado à lista de transferências por %d semanas." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s saiu da equipa porque o contracto terminou." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s do %s rejeitou a sua proposta (%s / %s). Não estava satisfeito com a " "oferta salarial." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s do %s rejeitou a sua proposta porque a sua equipa já tem muitas vedetas. " "'Um jogador do meu calivre não é para ficar no banco', disse ele." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s ofereceu-lhe emprego no %s.\n" "Você aceita o desafio e deixa o %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "O %s rejeitou a sua oferta e não quer mais renegociar. Deve tentar vendê-lo " "antes que o contracto expire (ele irá deixar a sua equipa de qualquer " "maneira)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "O %s rejeitou a sua oferta. Ainda pode fazer %d ofertas." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s irá marcar os penaltis e livres quando estiver a jogar." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s querem contratar o %s. Oferecem %s para o obter, o que representa %s do " "valor do passe do jogador. Aceita?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "O contracto do %s acaba em %.1f anos." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "A lesão do %s foi tão grave que vai ter que deixar de jogar futebol " "profissionalmente. Ele deixou a sua equipa." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (sem limite)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d semanas\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(semana inicial %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- um simples e viciante gestor de futebol GTK2" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 ano" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 anos" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 anos" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 anos" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (F) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Houve um incêndio\n" "no estádio." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Existem motins\n" "no estádio." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Existem problemas técnicos\n" "no estádio." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Apostas actuais" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Apostas recentes" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Semana %d Ronda %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Um novo jovem registou-se na sua academia." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Um novo jovem quis registar-se na sua academia de jovens, mas já não há mais " "espaço para ele." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "ADICIONAR ÚLTIMA PARTIDA" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "TODOS AO ATAQUE" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "TODOS À DEFESA" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ATACAR" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Sobre" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Aceitar" #: src/game_gui.c:818 msgid "Accept?" msgstr "Aceitar?" #: src/interface.c:1035 msgid "Add last match" msgstr "Adicionar o último jogo" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Adicionar o último jogo gravado no arquivo de jogos memoráveis." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Adicionar utilizador" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Ajustar pagamento automático?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Idade" #: src/options_interface.c:735 msgid "Age " msgstr "Idade" #: src/window.c:399 msgid "All Files" msgstr "Todos os ficheiros" #: src/interface.c:502 msgid "All Out Attack" msgstr "Todos ao ataque" #: src/interface.c:478 msgid "All Out Defend" msgstr "Todos à defesa" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Mostrat sempre a janela das notícias depois do dia de jogo" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Qualquer" #: src/options_interface.c:1569 msgid "Appearance" msgstr "" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Candidatar-se ao emprego?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Pelo menos um jogagor não jogou esta vez. Continuar?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Nos forums do Bygfoot pode reportar \"bugs\", pedir ajuda ou discutir sobre " "o jogo.\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Ataque" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Assistência média\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Atributo" #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Pagamento automático do empréstimo" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "popup automático" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Pagamento automático do empréstimo" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Substituições automáticas" #: src/options_interface.c:443 msgid "Autosave" msgstr "Salvar automáticamente" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Intervalo para gravação automática" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Hab. Média:" #: src/interface.c:1320 msgid "Av. skills: " msgstr "Hab. Media:" #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Hab.M." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Hab. Média:" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Equipas disponíveis" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Médio" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Assistência média" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Assistência média %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Habilidade Média" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Habilidade Média:" #: src/treeview.c:1851 msgid "Away" msgstr "Fora" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "EQUILIBRADO" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "BAN(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Voltar ao Menu Principal (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Voltar ao início" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Mau" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Equilibrado" #: src/interface.c:490 msgid "Balanced" msgstr "Equilibrado" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Banido\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Começar uma nova semana (Barra de Espaços)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Muito bom" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Melhores equipas defensivas" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Melhores marcadores" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Melhores guarda-redes" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Melhores equipas ofensivas" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Apostas" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Apostas -- Clique com o botão esquerdo para colocar ou retirar aposta" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Balanço quinzenal" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Balanço quinzenal\n" "(Semanas %d e %d)" #: src/interface.c:669 msgid "Boost" msgstr "Motivação" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "A motivação não está disponível nas definições deste país" #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Moral mudado para %s (custa %d por minuto)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Moral mudado para %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Custo da Motivação" #: src/player.c:1430 msgid "Broken ankle" msgstr "Tornozelo partido" #: src/player.c:1433 msgid "Broken arm" msgstr "Braço partido" #: src/player.c:1427 msgid "Broken leg" msgstr "Perna partida" #: src/player.c:1424 msgid "Broken rib" msgstr "Costela Partida" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Ombro partido" #: src/interface.c:842 msgid "Browse players" msgstr "Explorar jogadores" #: src/interface.c:745 msgid "Browse teams" msgstr "Explorar equipas" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Jogos memoráveis do Bygfoot" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Notícias do Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Ficheiros de Gravação do Bygfoot" #: src/window.c:1031 #, fuzzy msgid "Bygfoot constants" msgstr "Custo da Motivação" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Janela de depuração do Bygfoot. Se veio aqui para por acidente, feche " "imediatamente (caso contrário o seu computador irá ser destruído por " "sobreaquecimento)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "O Bygfoot é um jogo simples e intuitivo, por isso não existe muita " "documentação. De qualquer forma, se tiver problemas, existem alguns sítios " "onde pode ir.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "CPos" #: src/options_interface.c:665 msgid "CPos " msgstr "CPos" #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "CHab" #: src/options_interface.c:679 msgid "CSkill " msgstr "CHabilidade" #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Calcular semana inicial" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Calcular pagamentos semanais" #: src/training_interface.c:84 msgid "Camp points" msgstr "Pontos de treino" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capacidade (assentos)" #: src/options_interface.c:728 msgid "Cards " msgstr "Cartões" #: src/treeview.c:2182 msgid "Career values" msgstr "Carreira" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Modificar comentários. Quanto mais alto o valor, mais eventos ficam " "disponíveis." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Mudar a velocidade do jogo ao vivo. Quanto mais alto o valor, mais rápido o " "jogo." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Mudar preço dos bilhetes" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Escolha o país" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Escolha o ficheiro" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Escolher o idioma do jogo (pode não funcionar em versões do Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Escolha a liga para iniciar" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Escolha a equipa" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Escolha o nome de utilizador" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Clique em OK para candidatar-se ao emprego. Clique em Cancelar para fechar a " "janela." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Clique num utilizador para removê-lo do jogo." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Clique num utilizador para o apagar" #: src/options_interface.c:1640 #, fuzzy msgid "Close" msgstr "CPos" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Comentário" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "Comentários por testar; deixe ficar para testar todos os comentários" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Ficheiro de comentários (pode estar numa directoria de apoio)" #: src/treeview.c:3017 msgid "Company" msgstr "Empresa" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Remunerações" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Competição" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "A comprimir gravação..." #: src/player.c:1409 msgid "Concussion" msgstr "Concussão" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Confirmar e marcar pagamento" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Confirmar sair quando o jogo não estiver salvo" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Confirmar remover jovens" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Confirme quando não for válido" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Confirme!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Ficheiros de constantes" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Contracto" #: src/options_interface.c:763 msgid "Contract " msgstr "Contracto" #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contracto / Dinheiro" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Duração do\n" "contracto (Meses)" #: src/window.c:937 msgid "Contract offer" msgstr "Oferta de contractos" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Os contratos não estão disponíveis nas definições deste país." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Colaboradores" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "A copiar %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Custo" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Não foi possível encontrar o ficheiro de imagem: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "País" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Criar notícias da taça" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Criar notícias da liga" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Criar notícias do utilizador" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "CTRL_N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Liga dos campeões" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "A taça não tem tabelas." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Capacidade actual" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Ficheiro actual" #: src/treeview.c:2829 msgid "Current league" msgstr "Liga Actual" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Actual interesse do mercado" #: src/treeview.c:2165 msgid "Current position" msgstr "Posição actual" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Segurança actual" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Definições actuais:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Habilidade actual" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "D" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "DEFENDER" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Dívida (paga em %d semanas)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Depuração" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Decidir depois" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Hotel padrão" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Descanso padrão:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Treino padrão:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Aposta padrão" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Defesa" #: src/interface.c:640 msgid "Defenders" msgstr "Defesas" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Sabia?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "O ficheiro 'bygfoot_help' não foi encontrado." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Quer mesmo expulsar o pobre rapaz da sua academia?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Não carregar definições" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Não carregar nenhumas definições" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Feito." #: src/treeview2.c:396 msgid "Draw" msgstr "Empate" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Crédito" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "E" #. draw #: src/team.c:1150 msgid "Dw " msgstr "E" #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "E %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "TalE" #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTAR" #: src/options_interface.c:432 msgid "Edit" msgstr "" #: src/interface.c:829 src/interface.c:2038 #, fuzzy msgid "Edit name" msgstr "Fonte" #: src/options_interface.c:418 #, fuzzy msgid "Edit the constants used in the game" msgstr "Recarregar ficheiros das constantes" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Digite uma formação. A soma dos algarismos deve dar 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Inserir formação personalizada" #: src/window.c:865 msgid "Erm..." msgstr "Hmmm..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Enter / Barra de Espaços" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Talento previsto" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "TalE" #: src/treeview.c:2378 msgid "Event" msgstr "Evento" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Tempo estimado" #: src/treeview.c:1704 msgid "Expenses" msgstr "Despesas" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "F" #: src/interface.c:398 msgid "F_igures" msgstr "_Tabelas" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Contrato" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Ficheiro que contém frases do jogo ao vivo (pode estar numa directoria de " "apoio)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Ficheiro que contém a configuração que determina muito aspectos do " "comportamento do jogo. NÃO ALTERE A MENOS QUE SAIBA MESMO O QUE ESTà A FAZER." #: src/interface.c:928 msgid "Fin_Stad" msgstr "_Finanças" #: src/cup.c:1105 msgid "Final" msgstr "Final" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "As finanças não estão disponíveis nas definições deste país." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Despedir" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Primeiro valor: Habilidade média da equipa titular. Segundo valor: " "Habilidade média de todos os jogadores." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hotel de Primeira Classe" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Fit" #: src/treeview.c:2168 msgid "Fitness" msgstr "Preparação Física" #: src/options_interface.c:693 msgid "Fitness " msgstr "Preparação física" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Tabelas (competições)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Tabelas (semana)" #: src/options_interface.c:1541 msgid "Float" msgstr "" #: src/options_interface.c:379 msgid "Font name" msgstr "Fonte" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Fonte utilizada nos painéis" #: src/interface.c:652 msgid "Forwards" msgstr "Acançados" #: src/treeview.c:840 msgid "Fouls" msgstr "Faltas" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Tornozelo fracturado" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "G" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GC" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "DG" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GF" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "J" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Jogabilidade" #: src/treeview_helper.c:931 msgid "Games" msgstr "Jogos" #: src/options_interface.c:700 msgid "Games " msgstr "Jogos" #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Jogos/Golos\n" #: src/options_interface.c:486 msgid "Global" msgstr "Global" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Ir" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Voltar ao ecrã inicial" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Go/Pa" #: src/treeview.c:1775 msgid "Goalie" msgstr "Guardião" #: src/interface.c:634 msgid "Goalies" msgstr "Guarda-Redes" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Golos" #: src/options_interface.c:714 msgid "Goals " msgstr "Golos" #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Golos (norm.)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Bom" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Bom Hotel" #: src/player.c:1418 msgid "Groin injury" msgstr "Lesão na virilha" #: src/player.c:1415 msgid "Hamstring" msgstr "Tendão da coxa" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Veja a lista de transferências. Existe uma oferta pelo %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Manchete" #: src/treeview.c:2171 msgid "Health" msgstr "Saúde" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Ajuda" #: src/treeview.c:1849 msgid "Home" msgstr "Casa" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Quantos comentários são gerados por evento" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Quantos digitos a seguir à virgula existem para habilidade etc." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Quantos ficheiro a opção gravar automáticamente utiliza" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Quanto aposta por padrão" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Com que frequência o jogo é gravado" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Com que frequência a lista de jogadores é actualizada durante o jogo ao vivo " "(minutos de jogo ao vivo)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "LES(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Se seleccionado, semanas sem jogos marcados para alguma equipa dos " "utilizadores são calculadas automáticamente (não necessitará pressionar " "''Nova Semana'')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Se não gosta de nenhum dos patrocínios, pode ficar algumas semanas sem " "patrocinador e esperar por novas ofertas." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importar ficheiro" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importar os jogos de um ficheiro de jogos memoráveis" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Melhorias em progresso.\n" "%d assentos e %d%% de segurança estão em andamento.\n" "Tempo de trabalho: %d semanas." #: src/treeview.c:1703 msgid "Income" msgstr "Rendimento" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Aumentar" #: src/treeview.c:843 msgid "Injuries" msgstr "Lesões" #: src/options_interface.c:1527 msgid "Integer" msgstr "" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Agora é tarde para fazer o pagamento automático de empréstimo" #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Oferta de emprego" #: src/interface.c:370 msgid "Job offers" msgstr "Ofertas de emprego" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Ofertas de trabalho definida para %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Despesas de deslocação" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Expulsar da academia" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "D" #. lost #: src/team.c:1154 msgid "L " msgstr "D" #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "D %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "_Carregar último jogo" #: src/options_interface.c:436 msgid "Language" msgstr "Idioma" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Idioma a usar (um código como 'pt')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Último %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Ficheiro do último jogo não encontrado." #: src/treeview.c:1898 msgid "Latest results" msgstr "Últimos resultados" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga" #: src/treeview.c:2590 msgid "League champions" msgstr "Liga dos campeões" #: src/interface.c:991 msgid "League stats" msgstr "Estatísticas da Liga" #: src/league_table_interface.c:39 msgid "League table" msgstr "Tabela da Liga" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "" "Clique com o botão esquerdo para fazer uma oferta. Com o botão direito para " "remover a oferta." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Clique com o botão esquerdo do rato para mover jogadores de e para a " "academia; com o botão direito para o menu de contexto" #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Clique com o botão esquerdo do rato para mostrar a tabela de jogos." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Clique com o botão esquerdo do rato para mostrar a tabela." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Botão esquerdo: obter empréstimo; Botão direito: Pagar empréstimo; Botão do " "meio: Janela do Estádio." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1" #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Jogo ao vivo" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Jogo ao Vivo: %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Velocidade do jogo ao vivo" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Eloquência do jogo ao vivo" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Carregar jogo (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Carregar último jogo" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Carregar apenas os nomes dos jogadores dos ficheiros de definição" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Carregar definições das equipas" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Carregar as equipas dos ficheiros de definição (Nota: o pacote oficial do " "Bygfoot não contém ficheiros de definição. Tem que os obter através da " "homepage ou do script de actualização do bygfoot)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "A carregar taça: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "A carregar empregos..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "A carregar liga: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "A carregar ligas e taças..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "A carregar informação variada..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "A carregar notícias..." #: src/load_save.c:236 msgid "Loading options..." msgstr "A carregar opções..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "A carregar dados da época..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "A carregar lista de transferências..." #: src/load_save.c:260 msgid "Loading users..." msgstr "A carregar utilizadores..." #: src/callback_func.c:397 msgid "Loan" msgstr "Empréstimo" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Fazer oferta" #: src/interface.c:1047 msgid "Manage matches" msgstr "Gerir jogos" #: src/interface.c:917 msgid "Manage users" msgstr "Gestão de utilizadores" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximizar janela principal" #: src/user.c:1214 msgid "Memorable match added." msgstr "Jogo memorável adicionado" #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Jogos memoráveis" #: src/treeview.c:1777 msgid "Midfield" msgstr "Meio Campo" #: src/interface.c:646 msgid "Midfielders" msgstr "Médios" #: src/treeview.c:1629 msgid "Money" msgstr "Dinheiro" #: src/interface.c:1296 msgid "Money " msgstr "Dinheiro" #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Dinheiro (aprox.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Dinheiro / semana" #: src/interface.c:2092 msgid "Move to team" msgstr "Mover para a equipa" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Mover para a academia" #: src/interface.c:438 msgid "My league results" msgstr "Os meus resultados no campeonato" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Nome" #: src/options_interface.c:658 msgid "Name " msgstr "Nome" #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Campo neutro" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Propor\n" "novo contrato" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Novas definições:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Notícias" #: src/misc3_interface.c:315 msgid "Next" msgstr "Seguinte" #: src/interface.c:1434 msgid "Next (W)" msgstr "Próximo (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Próxima liga/taça (2)" #: src/interface.c:895 msgid "Next user" msgstr "Próximo utilizador" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Na próxima semana despede-o e contrata um novo." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Sem popup automático" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Não há melhorias em curso." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Não existem jogos gravados." #: src/treeview2.c:600 msgid "No news available." msgstr "Sem notícias disponíveis." #: src/misc_callbacks.c:468 msgid "None" msgstr "Nenhum" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Não é um um ficheiro de jogos memoráveis válido." #: src/window.c:882 msgid "Numbers..." msgstr "Números..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "DESLIGADO" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "LIGADO" #: src/interface.c:686 msgid "Off" msgstr "Desligado" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Oferecer um novo contracto" #: src/interface.c:680 msgid "On" msgstr "Ligado" #: src/misc_interface.c:211 msgid "Only names" msgstr "Apenas Nomes" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Abrir ficheiro de jogos memoráveis" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Adversário" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Lista de jogadores do adversário" #: src/window.c:914 msgid "Options" msgstr "Opções" #: src/treeview.c:1904 #, fuzzy msgid "Overall results" msgstr "Resultados da época" #: src/interface.c:379 msgid "Overwrite" msgstr "Reescrever" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Definição de reescrever é %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "Jog" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PTS" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pausar ao intervalo" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pausar nas lesões" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pausar nos cartões vermelhos" #: src/callback_func.c:427 msgid "Payback" msgstr "Devolver" #: src/treeview.c:839 msgid "Penalties" msgstr "Penaltis" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Marcador de Penaltis/Livres não seleccionado." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Preparador Físico" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Jogador aceita novas ofertas" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Precisão dos atributos do jogador" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Atributos do jogador" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "O jogador não negociará mais." #: src/misc2_interface.c:165 msgid "Player list" msgstr "Lista de jogadores" #: src/interface.c:1363 msgid "Player list 1" msgstr "Lista 1 do jogador" #: src/interface.c:1371 msgid "Player list 2" msgstr "Lista 2 do jogador" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Actualização da lista de jogadores" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Estilo de jogo" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Popup nas notícias do utilizador" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos" #: src/treeview.c:2164 msgid "Position" msgstr "Posição" #: src/treeview.c:838 msgid "Possession" msgstr "Posse" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Mensagens" #: src/interface.c:354 msgid "Preferences" msgstr "Preferências" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Hotel de Luxo" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Anterior" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Anterior (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Liga/taça anterior (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Utilizador anterior" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Preço do bilhete" #: src/treeview.c:1517 msgid "Prize money" msgstr "Recompensa" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Problemas musculares" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Colocar na lista de transferências" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Quartos de final" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Desistir (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "APAGAR" #: src/treeview2.c:68 msgid "REPLAY" msgstr "REPETIR" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Escolher aleatóriamente as equipas nas taças" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Escolher aleatóriamente a ordem das equipas nas taças. Isto só faz sentido " "em competições internacionais como o Campeonato do Mundo." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Posição" #: src/interface.c:1281 msgid "Rank " msgstr "Posição" #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Pronto" #: src/interface.c:728 msgid "Rearrange team" msgstr "Reordenar a equipa" #: src/training_interface.c:98 msgid "Recreation" msgstr "Descanso" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Preferência de recrutamento" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Vermelhos" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Rejeitar por agora" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Recarregar" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Recarregar e fechar" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" #: src/options_interface.c:1616 #, fuzzy msgid "Reload from file" msgstr "Recarregar jogos do ficheiro." #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Recarregar jogos do ficheiro." #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Recarregar jogos do ficheiro e fechar" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Recarregar ficheiros das constantes" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Retirar da lista de transferências" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Remover o utilizador %s do jogo?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Repetir, apagar ou adicionar jogos memoráveis" #: src/interface.c:712 msgid "Reset player list" msgstr "Repor lista de jogadores" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Repor a lista de jogadores (botão direito para ver a lista de jogadores)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Resultado" #: src/treeview.c:2013 msgid "Results" msgstr "Resultados" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Voltar" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Enter / Espaço" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Clique no botão direito e esquerdo para mudar a motivação" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Clique no botão direito e esquerdo para mudar o estilo de jogo" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Clique com o botão direito para se candidatar ao emprego, botão esquerdo " "para ver informações da equipa." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Botão direito para colocar a 0s" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ro" #: src/cup.c:1094 msgid "Round robin" msgstr "Ronda preliminar" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Segurança (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Investimento na segurança demasiado alto. Reajustado para o valor mais alto " "possível." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Gravar %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Gravar e fechar" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Gravar mudanças para o ficheiro e fechar" #: src/options_interface.c:1581 #, fuzzy msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Ficheiro que contém a configuração que determina muito aspectos do " "comportamento do jogo. NÃO ALTERE A MENOS QUE SAIBA MESMO O QUE ESTà A FAZER." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Salvar jogo (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Salvar definições globais para o ficheiro" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Salvar" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Salvar definições como padrão" #: src/options_interface.c:1595 #, fuzzy msgid "Save to file" msgstr "Salvar definições do utilizador para o ficheiro" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Salvar definições do utilizador para o ficheiro" #: src/interface.c:389 msgid "Save window geometry" msgstr "Salvar a geometria da janela" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Salvar tamanho, posição e divisão vertical da janela" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "A salvar empregos..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "A salvar ligas e taças..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "A salvar informação variada..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "A salvar notícias..." #: src/load_save.c:79 msgid "Saving options..." msgstr "A salvar opções..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "A salvar dados da época..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "A salvar lista de transferências..." #: src/load_save.c:102 msgid "Saving users..." msgstr "A salvar utilizadores..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Olheiro" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Mar" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr " Época %d" #: src/interface.c:1002 msgid "Season history" msgstr "História da Época" #: src/interface.c:449 msgid "Season results" msgstr "Resultados da época" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Seleccionar fonte" #: src/cup.c:1108 msgid "Semi-final" msgstr "Meia final" #: src/interface.c:664 msgid "Set investment" msgstr "Ajustar investimento" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "Ajuste a percentagem do seu rendimento para investir na academia." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Colocar 0 para desligar avisos" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Rem" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Marca penaltis" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Remate %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Remates" #: src/options_interface.c:707 msgid "Shots " msgstr "Remates" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Mostrar as tabelas de todas as ligas" #: src/interface.c:879 msgid "Show coming matches" msgstr "Mostrar os próximos jogos" #: src/interface.c:935 msgid "Show finances" msgstr "Mostrar finanças" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Mostrar informações" #: src/interface.c:758 msgid "Show job exchange" msgstr "Ver ofertas de trabalho" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Mostrar ofertas de emprego" #: src/interface.c:857 msgid "Show last match" msgstr "Mostrar último jogo" #: src/interface.c:868 msgid "Show last match stats" msgstr "Mostrar as estatísticas do último jogo" #: src/options_interface.c:576 msgid "Show live game" msgstr "Mostrar jogo ao vivo" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Mostrar jogos de todas as ligas" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Mostrar jogos das taças" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Mostrar uma janela de notícias depois de um dia de jodo quando forem criadas " "nosvas notícias do utilizador." #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Mostrar apenas as minhas apostas recentes" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Mostrar apenas as notícias recentes" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Ver todos os jogos/golos" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Mostrar barra de progresso" #: src/interface.c:946 msgid "Show stadium" msgstr "Mostrar estádio" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Mostrar barra de tendência" #: src/interface.c:972 msgid "Show the betting window" msgstr "Mostrar janela de apostas" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Mostrar a lista de empregos disponíveis" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Mostrar lista de transferência (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Avisar se um contracto de um jogador expirar em" #: src/interface.c:589 msgid "Show youth academy" msgstr "Mostrar academia de jovens" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Hab" #: src/treeview.c:2166 msgid "Skill" msgstr "Habilidade" #: src/options_interface.c:686 msgid "Skill " msgstr "Habilidade" #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Saltar semanas sem partidas de utilizadores" #: src/misc_interface.c:249 msgid "Space" msgstr "Barra de Espaços" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "Especifique um directório adicional de suporte (tem prioridade sobre os " "prédefinidos)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Velocidade" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Patrocínador" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Patrocínio" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Ofertas de patrocínio" #: src/interface.c:977 msgid "St_ats" msgstr "_Estatísticas" #: src/treeview.c:1477 msgid "Stadium" msgstr "Estádio" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Capacidade do estádio" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Despesas do estádio" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "A gestão de estádios não está disponível nas definições deste país." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Segurança do estádio" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Estado do estádio" #: src/misc_interface.c:266 msgid "Start" msgstr "Início" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "_Novo jogo" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Começar na semana" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Começar na semana:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Estatísticas" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Estado" #: src/options_interface.c:721 msgid "Status " msgstr "Estado" #: src/misc_interface.c:951 msgid "Status:" msgstr "Estado:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Fase" #: src/options_interface.c:1555 #, fuzzy msgid "String" msgstr "Tendão da coxa" #: src/main.c:99 msgid "String id of the country to load" msgstr "Coloque a ID do país a carregar" #: src/callbacks.c:936 msgid "Structure" msgstr "Formação" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Adaptar formação" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Sistema" #: src/interface.c:427 msgid "Tables" msgstr "Tabelas" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talento %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Equipa" #: src/options_interface.c:777 msgid "Team " msgstr "Equipa" #: src/treeview.c:1892 msgid "Team structure" msgstr "Formação da equipa" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Estilo de jogo da equipa mudado para %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Equipa1" #: src/treeview2.c:399 msgid "Team2" msgstr "Equipa2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Testar um ficheiro de comentários XML" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "O banco não lhe empresta mais dinheiro." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "A casa de apostas não aceita se o valor for superior a %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "O jogo actual ainda não foi salvo e perderá dados. Continuar?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Quanto mais alto este valor, mais comentários irá ver." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "O intervalo para actualizar as ofertas de empregos é de %d semanas." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Quanto mais baixo este valor, mais rápido irá decorrer o comentário do jogo." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "Os dirigentes do %s aceitaram a sua candidatura." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Os dirigentes do %s aceitaram a sua candidatura. Como o %s não quer ficar " "com um parasita, despediram-no imediatemente e vai passar o resto da época a " "tratar do seu jardim em casa." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Os dirigentes do %s estão impressionados com seu êxito no %s e desejam " "contratá-lo. Aqui tens informações sobre o %s: " #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Os dirigentes do %s não estão satisfeitos com a performance da equipa. Há " "rumores que estão a procura de um novo treinador." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Os dirigentes do %s rejeitaram a sua proposta (%s / %s) pelo (%s). Nem o " "preço, nem o salário eram aceitáveis, no seu ponto de vista." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Os dirigentes do %s rejeitaram a sua proposta (%s / %s) pelo (%s). Eles não " "ficaram muito satisfeitos com a sua oferta." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Os dirigentes do %s rejeitaram a sua proposta (%s / %s) pelo (%s). Houve " "propostas mais altas que a sua." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Os dirigentes do %s rejeitaram a sua candidatura. Eles consideram que você " "não é bem sucedido o suficiente." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "O jogador acha que não tem futuro na sua equipa cheia de estrelas. Ele " "recusa negociar." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "O jogador já está na lista." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "Jogador bloqueado (os dirigentes da equipa estão a analisar uma oferta)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "O jogador não está na lista." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "O jogador está numa má fase" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "O jogador está numa boa fase" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Este jogador é velho demais para a academia de jovens." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "O jogador não negociará mais consigo." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "A formação %d não é válida." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Os dirigentes da equipa estão muito satisfeitos com a sua gestão financeira. " "Uma vez que a equipa está a ganhar muito dinheiro ultimamente, eles " "decidiram doar metade para caridade." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Os dirigentes despediram-no devido à sua má gestão financeira. Felizmente, " "os dirigentes do %s souberam do seu despedimento e ofereceram-lhe um " "emprego. Aqui tem informações sobre o %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Os dirigentes despediram-no devido aos seus insucessos. Felizmente, os " "dirigentes do %s souberam do seu despedimento e ofereceram-lhe um emprego. " "Aqui tem informações sobre o %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "O período de transferência terminou." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Existem algumas empresas interessadas em patrocinar a sua equipa. Escolha " "uma:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "Existem jogadores lesionados ou banidos numa das equipas. Continuar?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Não existem ligas neste país (apenas taças)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Não existem ligas ou taças neste país." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Ainda não existem elementos históricos armazenados." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Existem algumas ofertas para o jogador que você rejeitou ou irá ver na " "próxima semana." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Não existe mais espaço na sua academia." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "Demasiadas substituições. Apenas são permitidas 3 por jogo." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Bilheteira" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Ruptura de ligamentos" #: src/training_interface.c:117 msgid "Training" msgstr "Treino" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Estágio" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Estádios não estão disponíveis nas definições deste país." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Prazo de transferências é na semana %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Oferta de transferências" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transferências" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "As transferências não estão disponíveis nas definições deste país" #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Organizar os titulares nas suas posições preferidas e ordenar os substitutos " "(Ctrl-R ou middle click)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "A descomprimir gravação..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "O utilizador %s ainda não respondeu à sua oferta." #: src/interface.c:1013 msgid "User history" msgstr "História do utilizador" #: src/window.c:945 msgid "User management" msgstr "Gestão de utilizadores" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Utilizadores -- clique para remover" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Valor" #: src/options_interface.c:749 msgid "Value " msgstr "Valor" #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Eloquência" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "V" #. won #: src/team.c:1157 msgid "W " msgstr "V" #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "V %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Salário" #: src/options_interface.c:756 msgid "Wage " msgstr "Salário" #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Salário" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Aposta/\n" "Ganhou/Perdeu" #: src/treeview.c:1522 msgid "Wages" msgstr "Salários" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Nós" #: src/treeview.c:2350 msgid "Week" msgstr "Semana" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Semana %d Ronda %d" #: src/treeview.c:1030 #, fuzzy, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "Semana %d Ronda %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Pagamentos semanais" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Prestação semanal:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Bemvindo ao Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "'Salvar' grava por cima do ficheiro actual ou aparece uma janela de 'Gravar " "como'" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "Popup de confirmação quando expulsar um jovem da academia" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Iniciar o jogo com a janela principal maximizada (não funciona em todos os " "gestores de janelas)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Mostrar as tabelas de todas as ligas ou somente a liga em que está a " "participar" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Quando trocar dois jogadores reorganizar a formação da equipa às posições " "dos jogadores" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "e os jogos ao vivo pausam no intervalo ou tempo extra." #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Se os jogos ao vivo pausam se um jogador é lesionado" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "e os jogos ao vivo pausam se um jogador é expulso" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Se as substituições (ex: jogadores lesionados) são feitas pelo CPU. Esta " "opção é automática se o jogo não for ao vivo." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Guardar o jogo automáticamente regularmente" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Guardar as preferências gerais num ficheiro (para serem usadas ao iniciar um " "novo jogo)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Guardar as preferências do utilizador num ficheiro (para serem usadas da " "próxima vez que iniciar um novo jogo)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Só avisar se entre os titulares estiver um jogador lesionado ou suspenso" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "Só avisar quando sair do programa sem gravar" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Mostrar os jogos das taças na janela de apostas" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Mostrar os jogos de todas as taças. Use a janela de opções para mudar " "permanentemente." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Mostrar ofertas de emprego quando um utilizador é bem sucedido" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Mostrar os jogos de todas as ligas na janela de apostas" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Mostrar os jogos de todas as ligas. Use a janela de opções para mudar " "permanentemente." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Mostrar apenas as apostas recentes na lista." #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Mostrar imagens por cima da barra de progressos quando estiver a carregar/" "salvar ou a calcular resultados" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Mostrar os jogos/golos do jogador em todas as competições" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Mostrar os avisos na área de mensagens da janela principal quando possível" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Vitória1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Vitória2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "CA" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Cartões amarelos (limite)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Amarelos" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "É campeão da %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Já não tem dívidas." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Está a fazer uma nova oferta pelo %s. Estes são os seus valores anteriores." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Você está a fazer uma proposta pelo %s. O seu olheiro recomenda o seguinte " "contrato e salário." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Você está a negociar com o %s um novo contrato. Tenha atenção ao que faz; se " "não fechar o contrato em %d ofertas, ele deixará a sua equipa quando expirar " "o contrato actual (a menos que o venda). Podes desistir apenas ANTES da " "primeira oferta.\n" "Estes são os valores recomendados pelo seu olheiro:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Não está em dívida" #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Não tem dívidas" #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Aposta num %d com uma probabilidade de %.2f. Quanto aposta?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Pode devolver no máximo%s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Você pode retirar, no máximo %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Não pode candidatar-se a um emprego no estrangeiro se existe mais que um " "utilizador." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Não pode ter mais que %d jogadores na sua equipa." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "" "Não pode mover o jogador, porque existem poucos jogadores na sua equipa" #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Não pode oferecer um contrato novo se ainda faltam mais que 2 anos para " "terminar o contrato em vigor" #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Não é possível jogar Bygfoot sem utilizadores!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Não pode substituir um jogador lesionado" #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Não tem dinheiro suficiente para contractar o %s ao %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Não tem dinheiro suficiente para contractar o %s ou o seu plantel está " "completo." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Não tem dinheiro suficiente" #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Não tem dinheiro suficiente" #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Terminou a época na %s na %s posição." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Foi promovido para a %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Foi despromivido para a %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Você tem %d semanas para pagar o resto do empréstimo." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Você tem %d semanas para pagar o seu empréstimo." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Você estourou o seu limite bancário. Os dirigentes dão-lhe %d semanas para " "superar o limite de crédito. Tenha em conta que após a 4ª vez, é despedido." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "A sua conta bancária ultrapassou os limites de crédito. Os dirigentes deram-" "lhe %d semanas para recuperar." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Tem pagar o seu empréstimo esta semana." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Não fez nenhuma oferta ao jogador." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Não selecionou nenhum jogador." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Perdeu na final da %s contra o %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Ofereceu %s com um salário de %s pelo %s. Os dirigentes e o jogador estão " "satisfeitos com a sua oferta. Quer mesmo contratar o jogador?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Chegou à %s (jornada %s) da %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Começa o jogo com %s no %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Ainda tem algumas ofertas pendentes." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Quer despedir o %s. Como o seu contracto termina em %.1f anos, exige uma " "compensação de %s. Aceita? " #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Ganhou a final do %s contra o %s" #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Atingiu o limite de %d estágios." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "A sua conta bancária deve ultrapassar o limite de crédito na próxima semana." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "O seu patrocinador actual está satisfeito com os resultados e gostaria de " "renovar o contracto. Actualmente está a pagar-lhe %d por semana." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "A sua dívida:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Próximo adversário" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "A sua oferta pelo %s foi aceite. Se ainda o quer comprar, vá à lista de " "transferência e clique em cima do jogador." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "A sua oferta foi retirada" #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "A sua oferta foi actualizada." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Terá uma resposta à sua oferta na próxma semana." #: src/treeview.c:1913 #, fuzzy msgid "Your overall results" msgstr "Os seus resultados" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "O seu plantel está cheio ou não tem dinheiro suficiente." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Os seus resultados" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "O plantel está cheio. Não pode comprar mais jogadores" #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "O plantel está cheio. Não pode comprar o %s do %s." #: src/window.c:890 msgid "Your stadium" msgstr "O seu estádio" #: src/treeview2.c:91 msgid "Your team" msgstr "A sua equipa" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "A sua equipa não pode ter menos que 11 jogadores." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "A sua equipa já teve demasiados estágios esta semana." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "O jovem %s acha que já é velho o suficiente para um contracto a sério e por " "isso deixou a academia." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "O jovem %s irá, brevemente, ser velho demais para estar na academia. Mova-o " "para a sua equipa ou expulse-o da academia. De outra forma ele irá, " "provavelmente, à procura de outra equipa para jogar." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Investimento na Academia de jovens" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Academia de jovens" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Não existem Academia de jovens nas defenições deste país" #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Treinador dos jovens" #: src/interface.c:304 msgid "_File" msgstr "_Ficheiro" #: src/interface.c:1059 msgid "_Help" msgstr "_Ajuda" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Carregar jogo" #: src/interface.c:347 msgid "_Options" msgstr "_Opções" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pausa" #: src/interface.c:766 msgid "_Player" msgstr "_Jogador" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Continuar" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Continuar jogo" #: src/interface.c:460 msgid "_Team" msgstr "_Equipa" #: src/interface.c:850 msgid "_User" msgstr "_Utilizador" #: src/treeview.c:1644 msgid "interest rate" msgstr "taxa de juros" bygfoot-2.3.2/po/tr.po0000755000175000017500000036155111225071373013565 0ustar eliaselias# Language lang translations for bygfoot package. # Copyright (C) 2005 THE bygfoot'S COPYRIGHT HOLDER # This file is distributed under the same license as the bygfoot package. # talat , 2005. # talat , 2005. # # msgid "" msgstr "" "Project-Id-Version: bygfoot 2.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-04-14 18:09+0200\n" "Last-Translator: cem uykun \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Turkish\n" "X-Poedit-Country: TURKEY\n" "X-Poedit-SourceCharset: utf-8\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Goller/Oyun %.1f Kurtarış %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Goller/Oyun %.1f Åžut %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Programcılara aÅŸağıdaki adresten email atabilirsin:\n" # Please do not change.Its reaaly need spaces #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " " # Please do not change.Its reaaly need spaces #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " " # Please do not change.Its reaaly need spaces #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " " # Serbest vuruÅŸtan atılan goller #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (SV)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (NOT: EÄŸer baÅŸarılı olamazsan, oyun senin için bitecek.)" # Kendi Kalesine #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (KK)" # Gol penaltıdan geldi #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (Pen)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- İlk Maç" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Maçları tekrarla" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " --İkinci Maç" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Adi Ortaklığı" #: src/options_interface.c:329 msgid " Autosave files " msgstr " Dosyaları otomatik kaydet" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bankası" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Bros." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Kimyasal Endüstri Grubu" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Sanayii" #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Bilg. ve İletiÅŸim" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Åžirketler Grubu" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Holding." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Data Sistemleri ve Teknolojileri" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Enerji Yatırım" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Medya Grubu." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Finansal Merkezleri" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Çok şükür takıma yardım edip sahaya çıkaracak bir yardımcısı var" #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Grup" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holding" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Endüstri" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratuvarları" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd.Åžti." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petrol" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Üretim Åžirketleri ve Grubu" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Kebabçısı" #: src/interface.c:1220 msgid " Round " msgstr " Devre" #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Bilim Ve Teknoloji Merkezi" #: src/interface.c:1200 msgid " Season " msgstr " Sezon" #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Yazılım Åžirketi" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Bilgisayar Sistemleri" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Bilgi Teknolojileri" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telekominikasyon a.ÅŸ" #: src/interface.c:1210 msgid " Week " msgstr " Hafta " # Uzatma dakikaları #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr "u.d." #: src/callback_func.c:466 msgid " less" msgstr "az" #: src/options_interface.c:527 msgid " months" msgstr "ay" #: src/callback_func.c:464 msgid " more" msgstr "fazla" # Penaltılara uzayan maç #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr "pen." #: src/misc_interface.c:934 msgid " seats" msgstr "koltuklar" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f ay / %s" # Sonuç uzatma dakikalarında #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d u.d." # Penaltılar sonucundaki skor #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d pen." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d tane sezon sonuna kadar antreman kampı hakkın kaldı." # Evindeki maç #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (Ev) " # tarafsız sahadaki maç #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (Tarafsız saha) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (sakatlığın geçme süresi %d hafta)" # Kupalardaki yükselme grupları #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grup Maçları %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s teklifinizi kabul etti." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s ve %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s ve %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s oyuncunuzu alamıyor %s veya takım kapasitesi dolmuÅŸ durumda." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s sizi kötü mali yönetimden dolayı kovdu.\n" "Yeni bir takım bul %s içinde %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s tarafından kovuldunuz.\n" "Yeni bir takım bul %s içinde %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s transfer listesine eklendi %d hafta için." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s takımınızdan ayrıldı çünkü kontrat süresi doldu." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s dan %s teklifinizle ilgilenmedi (%s / %s). Transfer ücretini yeterli " "bulmadı." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s takımından %s teklifi reddetti çünkü takımda çok fazla star oyuncu var. " "'Benim gibi yetenekli bir oyuncunun burada boÅŸa zaman harcayacağını " "düşünüyorum,' olarak açıklama yaptı" #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s ligindeki %s takımından size teklif vardı .\n" "Kabul edip %s takımından ayrıldın ." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s teklifi reddetti ve daha fazla pazarlık istemiyor. Kontrat süresi " "dolmadan satabilirsiniz (yoksa bonservisini alarak baÅŸka takıma gidebilir)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s teklifinizi reddetti. Hala %d teklif yapabilirsiniz." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s oyunda ise serbest vuruÅŸ ve penaltıları kullanacak." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s takımı futbolcun %s satın almak istiyor. Onun için %s liralık teklif " "yapıyorlar,Bu teklif oyuncunun gerçek deÄŸerinden %s .Kabul ediyormusun?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "%s adlı oyuncunun kontrat süresi bitiyor %.1f yıl sonra." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "%s'ın sakatlığı profesyonel futbol oynayamayacak kadar ciddi. Takımınızdan " "ayrılmaya karar verdi." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (cezasız)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d hafta cezalı\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(BaÅŸlangıç Haftası %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- basit ama bağımlılık yapan bir futbol menajerlik oyunudur." #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 yıl" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 yıl" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 yıl" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 yıl" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (Dep.) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Yangın var\n" "stadyum içinde." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Ayaklanma var\n" "Stadyum içinde." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Teknik problemler var\n" "Stadyumda." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Mevcut bahis" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Önceki bahisler" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "%d.Maç %d.Sezon/Tur/Ayak" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Genç oyuncu akademinize yeni bir Paf oyuncusu kaydedildi." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Genç oyuncu akademinize yeni bir Paf oyuncusu kaydedilmek istiyor fakat " "yeterli yer yok." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "SON MAÇI EKLE" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "TÜM TAKIM ATAK" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "TÜM TAKIM DEFANS" # Takım Hızı YAVAÅž #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "YAVAÅž" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "Atak" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Hakkında" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Kabul" #: src/game_gui.c:818 msgid "Accept?" msgstr "Kabul?" #: src/interface.c:1035 msgid "Add last match" msgstr "Son maçı ekle" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Son kayıtlı maçı unutulmaz maçlar dosyasına ekle" #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Kullanıcı ekle" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Geri ödeme planını onaylıyormusun?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "YaÅŸ" #: src/options_interface.c:735 msgid "Age " msgstr "YaÅŸ" #: src/window.c:399 msgid "All Files" msgstr "Bütün dosyalar" #: src/interface.c:502 msgid "All Out Attack" msgstr "Herkes Atak" #: src/interface.c:478 msgid "All Out Defend" msgstr "Herkes Savunma" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Maç gününden sonra daima haber penceresini göster" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "YAVAÅž" #: src/interface.c:658 msgid "Any" msgstr "Farketmez" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Görünüm" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "İşi kabul et?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Bir kullanıcı maçını hala oynamadı.Devam edecekmisin?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Bygfoot forumlarında hatalarınızı rapor edebilirsiniz,yardım isteyip oyun " "hakkında tartışabilirsiniz:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Hücum" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Seyirci\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Özellik" #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Otomatik kredi borcu geri ödemesi" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Otomatik pencere" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Otomatik geriödeme" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Otomatik oyuncu deÄŸiÅŸtirme" #: src/options_interface.c:443 msgid "Autosave" msgstr "Otomatik kayıt" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Otomatik kayıt aralığı" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Ort.Yetenek: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Ort.Yetenekler: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Ort.Yet." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Ort.Yetenek" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Mümkün olan takımlar" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Ortalama" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Ortalama seyirci" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Ortalama seyirci %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Ortalama Yetenek" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Ortalama Yetenek:" #: src/treeview.c:1851 msgid "Away" msgstr "Deplasman" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "Dengeli" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "CEZALI(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Genel Görünüm (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Açılış ekranına dön" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Kötü" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Finansal Denge" #: src/interface.c:490 msgid "Balanced" msgstr "Dengeli" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Cezalı\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Yeni Maça/Haftaya BaÅŸla (BoÅŸluk)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "En iyi" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "En iyi defansif takımlar" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "En iyi golcüler" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "En iyi kaleciler" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "En iyi ofansif takımlar" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Bahis Oyunu" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Bahis oynamak -- SaÄŸ veya Sol klikle para yatır yada sil" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Hafta başı Finans durumu" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Hafta başı finansman durumunuz\n" "(Hafta %d ve %d)" #: src/interface.c:669 msgid "Boost" msgstr "Takım DesteÄŸi" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Takım DesteÄŸi AÇIK oynadığınız ülke tanımlamalarınızda kapalıdır." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Takım DesteÄŸi deÄŸiÅŸti %s (ücret %d her dakika)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Takım DesteÄŸi deÄŸiÅŸti %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Takım DesteÄŸi ücreti" #: src/player.c:1430 msgid "Broken ankle" msgstr "Kırık ayak" #: src/player.c:1433 msgid "Broken arm" msgstr "Kırık kol" #: src/player.c:1427 msgid "Broken leg" msgstr "Kırık bacak" #: src/player.c:1424 msgid "Broken rib" msgstr "Kırık kaburga" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Kırık omuz" #: src/interface.c:842 msgid "Browse players" msgstr "Ligdeki Oyuncuları listele" #: src/interface.c:745 msgid "Browse teams" msgstr "DiÄŸer Takımlara bak" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Bygfoot Unutulmaz Maçlar" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoot Haberleri" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoot kayıt dosyaları" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Bygfoot sabit ayarları" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Bygfoot hata penceresi. Kazara buraya geldiyseniz, HEMEN KAPATIN(Yoksa " "CPU'nuz aşırı ısınmadan zarar görebilir)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot oldukça basit ve öğrenilmesi kolay bir oyundur,Tamamen bitmiÅŸ " "açıklayıcı bir dökümanı mevcut deÄŸildir.Bununla birlikte,bir sorununuz " "olduÄŸunda,bilgi alabileceÄŸiniz bazı yerler mevcuttur.\n" # Takımdaki pozisyon #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "Tak.Yeri" # Takımdaki Pozisyon #: src/options_interface.c:665 msgid "CPos " msgstr "Takımdaki Yeri" # Mevcut yetenek #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "MYet" #: src/options_interface.c:679 msgid "CSkill " msgstr "Mevcut Yetenek" #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Haftayı hesapla" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Haftalık gideri hesapla" #: src/training_interface.c:84 msgid "Camp points" msgstr "Kamp puanları" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Kapasite(koltuklar)" #: src/options_interface.c:728 msgid "Cards " msgstr "Kartlar" #: src/treeview.c:2182 msgid "Career values" msgstr "Kariyer GeçmiÅŸi" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "Maç Anlatım hızını deÄŸiÅŸtirmek.Yüksek rakamlar daha çok olay gösterir" #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "Canlı maç hızını ayarlama.Yüksek deÄŸer, daha hızlı maç." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Bilet ücreti deÄŸiÅŸtir" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Ülke Seçin" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Dosya seç" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Oyun dilini seç.(Windows versiyonlarında çalışmayabilir)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Oyun baÅŸlangıçı için Lig seçimi." #: src/misc_interface.c:107 msgid "Choose team" msgstr "Takımını Seç" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Kullanıcı Adı Seçin" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "TAMAM'a bas ve oyuna baÅŸla.VAZGEÇ'e bas ve pencereyi kapat." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Kullanıcıyı seç ve oyundan kaldır." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Kullanıcıyı seç ve kaldır." #: src/options_interface.c:1640 msgid "Close" msgstr "Kapat" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" "Pencereyi kapa.Yapılan deÄŸiÅŸiklikleri baÅŸka bir dosya olarak kaydetmezseniz; " "yalnızca geçerli oturumunuz için kaydedilmiÅŸ olacaktır." #: src/misc_interface.c:573 msgid "Commentary" msgstr "Maçın Önemli Anları" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "Maç anlatımı testte,tüm anlatımları geçerek testi bırak." #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Anlatım dosyası (support klasöründe olmalı)" #: src/treeview.c:3017 msgid "Company" msgstr "Åžirket" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Tazminat" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Lig/Kupa" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Kayıtlı oyun sıkıştırılıyor..." #: src/player.c:1409 msgid "Concussion" msgstr "Beyin Sarsıntısı" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Onayla & Geri ödeme tablosu" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Çıkarken kaydetme penceresi göster" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Genç oyuncular ayrılırken onayla" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Sakat-Cezalı oyuncu uyarısı" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "DoÄŸrula!" #: src/options_interface.c:353 msgid "Constants file" msgstr "BileÅŸenler dosyası" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Kontrat süresi" #: src/options_interface.c:763 msgid "Contract " msgstr "Kontrat süresi" #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Kontrat / Para" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Kontrat süresi\n" "(Ay)" #: src/window.c:937 msgid "Contract offer" msgstr "Kontrat teklifi" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Kontratlar, ülke ayarlarınızda devre dışı." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Katkıda Bulunanlar" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Kopyala %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Ücretler" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Resim dosyası bulunmuyor : %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Ülke" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Kupa haberleri oluÅŸtur." #: src/options_interface.c:1171 msgid "Create league news" msgstr "Lig haberleri oluÅŸtur." #: src/options_interface.c:1163 msgid "Create user news" msgstr "Oyuncu haberleri oluÅŸtur." #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Kupa Sampiyonları" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Kupa tablosu yok" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Mevcut kapasite" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Mevcut Dosya" #: src/treeview.c:2829 msgid "Current league" msgstr "Mevcut Lig" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Mevcut faiz oranı(kredi)" #: src/treeview.c:2165 msgid "Current position" msgstr "Mevcut pozisyon" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Mevcut güvenlik" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Mevcut ayarlar:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Mevcut Yetenek" # Defans oyuncusu #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "D" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "DEFANS" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Borç (geri öde %d haftada)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Onarma" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Daha sonra karar ver" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Kamp Oteli : " #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "BaÅŸlangıçtaki Dinlenme Oranı:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "BaÅŸlangıçtaki Antreman Oranı:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Bahis BaÅŸlangıç Parası" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Defans" #: src/interface.c:640 msgid "Defenders" msgstr "Defans oyuncuları" # Açılış ekranındaki ipuçları #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "İpuçlarını Biliyormusun?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "'bygfoot_help' dosyası bulunamadı." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Gerçekten bu kötü çocuÄŸu akademiden çıkartmak istiyormusun?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Özellikleri yükleme" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Takım tanımlarını yükleme" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Tamam." #: src/treeview2.c:396 msgid "Draw" msgstr "0" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Kredi Açığı" # Beraberlik #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "B" # Beraberlik #. draw #: src/team.c:1150 msgid "Dw " msgstr "B" # Berabere maçlar #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "B %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "Max.Yetenek" #: src/treeview2.c:70 msgid "EXPORT" msgstr "Dışa aktar." #: src/options_interface.c:432 msgid "Edit" msgstr "Düzenle" #: src/interface.c:829 src/interface.c:2038 msgid "Edit name" msgstr "Oyuncu ismini deÄŸiÅŸtir." #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "BileÅŸenler dosyasını oyundayken düzenle" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Takım diziliÅŸini gir.Bu rakamların toplamı 10 etmeli" #: src/interface.c:720 msgid "Enter custom structure" msgstr "Takım taktiÄŸini gir" #: src/window.c:865 msgid "Erm..." msgstr "Uyarı..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Çık" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Çık/Geri Dön/BoÅŸluk" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Tahmini Yetenek" # Tahimini GeliÅŸtirilebilir Yetenek #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "GYet" #: src/treeview.c:2378 msgid "Event" msgstr "Önemli Olayların" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Beklenen bitirilme süresi" #: src/treeview.c:1704 msgid "Expenses" msgstr "Giderler" # hücum oyuncusu #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "H" # Lig,Sezon ile ilgili tablolar ve istatistikler #: src/interface.c:398 msgid "F_igures" msgstr "Ta_blolar" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Ücret" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "Canlı oyun için iÅŸaret dosyaları (support klasöründe olmalı)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Dosya oyunun düzgün çalışması için bir çok ayarları içermektedir.NE " "YAPTIÄžINIZI BİLMİYORSANIZ KESİNLİKLE DEĞİŞTİRMEYE ÇALIÅžMAYIN." #: src/interface.c:928 msgid "Fin_Stad" msgstr "Finans ve_Stadyum" #: src/cup.c:1105 msgid "Final" msgstr "Son" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Finansal Yönetim ülke ayarlarınızda mevcut deÄŸil." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Takımdan kov" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "İlk deÄŸer: İlk 11'in Yetenek Ortalaması. İkinci deÄŸer: Tüm Takım Ortalaması" #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Dört Yıldızlı Otel" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Kon" #: src/treeview.c:2168 msgid "Fitness" msgstr "Kondisyon" #: src/options_interface.c:693 msgid "Fitness " msgstr "Kondisyon" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Fikstür." #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Fikstur(hafta)" #: src/options_interface.c:1541 msgid "Float" msgstr "Kesirli" #: src/options_interface.c:379 msgid "Font name" msgstr "Font ismi" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Fontu buradan deÄŸiÅŸtirebilirsiniz" #: src/interface.c:652 msgid "Forwards" msgstr "Hücum oyuncuları" #: src/treeview.c:840 msgid "Fouls" msgstr "Fauller" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Ayak bileÄŸi kırığı" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "K" # Yenilen gol sayısı #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "YG" # Gol Averajı #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr " AV" # Atılan Gol #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "AG" # Maçın Futbolcusu # En DeÄŸerli Oyuncu #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Oyn.Maç" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Oyun" #: src/treeview_helper.c:931 msgid "Games" msgstr "Maçlar" #: src/options_interface.c:700 msgid "Games " msgstr "Maçlar" #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Oyunlar/Goller\n" #: src/options_interface.c:486 msgid "Global" msgstr "Genel" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Gol" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "BaÅŸlangıç ekranına geri dön." # Maç başına gol miktarı #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Gol/Maç" #: src/treeview.c:1775 msgid "Goalie" msgstr "Kaleci" #: src/interface.c:634 msgid "Goalies" msgstr "Kaleciler" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Goller" #: src/options_interface.c:714 msgid "Goals " msgstr "Goller" # 'Normal' goller,yani penaltı ve serbest vuruÅŸ haricindekiler #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Goller(normal)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "İyi" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Üç Yıldızlı Otel" #: src/player.c:1418 msgid "Groin injury" msgstr "Kasık zedelenmesi" #: src/player.c:1415 msgid "Hamstring" msgstr "Topuk Sakatlanması" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Transfer listesine bak,sana %s için teklif var." #: src/league_table_interface.c:49 msgid "Headline" msgstr "BaÅŸlık" #: src/treeview.c:2171 msgid "Health" msgstr "SaÄŸlık" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Yardım" #: src/treeview.c:1849 msgid "Home" msgstr "Ev" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Her maçta kaç tane yorum yaratılsın" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "" "Yetenek,Kondüsyon vb bilgilerde virgülden sonra kaç hane gösterilsin?" "(varsayılan 0)" #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Otomatik kaydetme için kaç tane dosya kullanacaksın." #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "BaÅŸlangıç Bahis miktarını deÄŸiÅŸtir" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Ne kadar sıklıkla oyun otomatik kaydedilsin" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Canlı oyun sırasında ne kadar sıklıkla oyuncu listelerinin güncelleneceÄŸini " "gösterir.(Canlı oyun dakikalarında)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "Sakat(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Seçili olduÄŸunda,otomatik olarak bir sonraki maç haftasına gidilir" "(Kullanıcının 'Yeni bir Maça BaÅŸla' butonuna basmasına gerek kalmadan)" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Sponsorlarını beÄŸenmezsen;birkaç hafta sponsor olmadan devam et ve yeni " "teklifleri bekle." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Dosya yükle" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Maçları hatırlanan maçların dosyasına ekle." #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Yükseltme devrede.\n" "%d koltuk ve %d%% güvenlik hala yapılacak.\n" "Beklenen bitirme süresi: %d hafta." #: src/treeview.c:1703 msgid "Income" msgstr "Gelirler" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Arttır" #: src/treeview.c:843 msgid "Injuries" msgstr "Sakatlık" #: src/options_interface.c:1527 msgid "Integer" msgstr "Tamsayı" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Sezon içinde otomatik borç geri ödemesi için çok geç." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "İş teklifi" #: src/interface.c:370 msgid "Job offers" msgstr "İş Teklifleri" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "İş teklifleri ayarla %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Yolculuk Masrafları" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Akademiden kov." # Kaybedilen maç # MaÄŸlubiyet #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "M" # Yenilgi #. lost #: src/team.c:1154 msgid "L " msgstr "M" #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "M %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "S_on kaydı yükle" #: src/options_interface.c:436 msgid "Language" msgstr "Dil" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Kullanılan Dil (kodu 'tr' gibi)" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Son %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Son save dosyası bulunamadı." #: src/treeview.c:1898 msgid "Latest results" msgstr "Aldığı sonuçlar" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Lig" #: src/options_interface.c:770 msgid "League " msgstr "Lig" #: src/treeview.c:2590 msgid "League champions" msgstr "Lig Åžampiyonları" #: src/interface.c:991 msgid "League stats" msgstr "Lig Durumu" #: src/league_table_interface.c:39 msgid "League table" msgstr "Lig Durumu" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Sol klikle teklif yap.SaÄŸ klikle teklifi kaldır." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Sol tuÅŸa basarak oyuncuyu genç oyuncu akademisine;saÄŸ tuÅŸa basarak ana " "menüye gönder." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Sol tuÅŸ ile fikstürü göster" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Sol tuÅŸ ile Lig Puan cetvelini göster" #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "Sol TuÅŸ:Borç al;SaÄŸ tuÅŸ:Geri öde;Orta tuÅŸ:Stadyum penceresi" #: src/options_interface.c:1021 msgid "List 1 " msgstr "Liste 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Liste 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Canlı Mac" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Canlı Maç ayarla %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Canlı Maç Hız ayarı " #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Canlı Maç Anlatımı" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Kayıtlı Oyunu yükle (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Son kayıtlı oyunu Yükle " #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "oyun ayarları dosyasından sadece isimleri yükle" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Takım özellikleri yükleme" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Takımları özel ayarlar dosyasından yükle.(Önemli hatırlatma:Resmi Bygfoot " "paketinde takım özellikleri dosyaları mevcut deÄŸildir,Bunlara oyun " "anasayfamızdan veya bygfoot-update script ile ulaÅŸabilirsiniz.)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Yüklenen kupa %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Teknik Direktör arayanlar..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Yüklenen Lig %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Yükleniyor ligler ve kupalar..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "ÇeÅŸitli özellikler Yükleniyor..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Haberler Yükleniyor..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Yükleniyor seçenekler..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Sezon durumları yükleniyor..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Transfer listesi yükleniyor..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Kullanıcılar Yükleniyor..." #: src/callback_func.c:397 msgid "Loan" msgstr "Kredi Borcu Alma" # ortasaha oyuncusu #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "O" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Teklif Et" #: src/interface.c:1047 msgid "Manage matches" msgstr "Maçları yönet" #: src/interface.c:917 msgid "Manage users" msgstr "Kullanıcıları yönet" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Ana pencereyi maksimize et" #: src/user.c:1214 msgid "Memorable match added." msgstr "Unutulmaz maç eklendi." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Unutulmaz maçlar" #: src/treeview.c:1777 msgid "Midfield" msgstr "Ortasaha" #: src/interface.c:646 msgid "Midfielders" msgstr "Ortasaha oyuncuları" #: src/treeview.c:1629 msgid "Money" msgstr "Para:" #: src/interface.c:1296 msgid "Money " msgstr "Para: " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Para: (yaklaşık)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Para / Hafta" #: src/interface.c:2092 msgid "Move to team" msgstr "Takıma yolla" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Genç oyuncu akademisine yolla" #: src/interface.c:438 msgid "My league results" msgstr "Lig Sonucları" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "İsim" #: src/options_interface.c:658 msgid "Name " msgstr "İsim" #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Tarafsız saha" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Yeni kontrat\n" "teklifler" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Yeni ayarlar:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Haberler" #: src/misc3_interface.c:315 msgid "Next" msgstr "İleri" #: src/interface.c:1434 msgid "Next (W)" msgstr "İleri (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Sonraki Lig/Kupa (2)" #: src/interface.c:895 msgid "Next user" msgstr "Sonraki kullanıcı" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Gelecek hafta menajerini kovup yeni birisini iÅŸe alabilirsin." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Haber penceresi açılmasın" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Devam eden yükseltme mevcut deÄŸil." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Maç saklanmadı." #: src/treeview2.c:600 msgid "No news available." msgstr "Yeni haber yok." #: src/misc_callbacks.c:468 msgid "None" msgstr "Hiçbirisi" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Bygfoot Unutulmaz Maçlar dosya adı geçerli deÄŸil" #: src/window.c:882 msgid "Numbers..." msgstr "Numaralar..." # Takım Hızı NORMAL #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "NORMAL" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" # Takım Hızı: HIZLI #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "HIZLI" #: src/interface.c:686 msgid "Off" msgstr "NORMAL" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Yeni kontrat teklifi" #: src/interface.c:680 msgid "On" msgstr "HIZLI" #: src/misc_interface.c:211 msgid "Only names" msgstr "Sadece isimler" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Hatırlanan maçlar dosyasını aç" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Rakip" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Rakip oyuncular listesi" #: src/window.c:914 msgid "Options" msgstr "Seçenekler" #: src/treeview.c:1904 msgid "Overall results" msgstr "Sezon sonuçları" #: src/interface.c:379 msgid "Overwrite" msgstr "Üzerine Yaz" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Üzerine Yaz %s" # Oynanan MAç #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "OM" # PUAN #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PUAN" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Ara verildiÄŸinde dur" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Sakatlıkta dur" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Kırmızı kart olduÄŸunda dur." #: src/callback_func.c:427 msgid "Payback" msgstr "Geri ödeme" #: src/treeview.c:839 msgid "Penalties" msgstr "Penaltılar" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Penaltıcı/serbest vuruşçu seçili deÄŸil." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Takım doktoru" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Oyuncu yeni anlaÅŸmaları kabul eder." #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Futbolcunun kendine has özellikleri" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Oyuncu özelliklerini göster" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Futbolcu daha fazla görüşme yapmak istemiyor" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Oyuncu Listesi" #: src/interface.c:1363 msgid "Player list 1" msgstr "Takım Listesi 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Takım Listesi 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Oyuncu listesi yenileme hızı" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Oyun tarzı" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Kullanıcı haberleri penceresi" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Ger.Yeri" #: src/options_interface.c:672 msgid "Pos " msgstr "Gerçek Yeri" #: src/treeview.c:2164 msgid "Position" msgstr "Posizyon" #: src/treeview.c:838 msgid "Possession" msgstr "Posizyon" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Mesaj tercihi" #: src/interface.c:354 msgid "Preferences" msgstr "Tercihler" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "BeÅŸ Yıldızlı Tatil Köyü" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Geri" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Geri (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Geri lig/kupa (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Önceki kullanıcı" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Bilet ücreti" #: src/treeview.c:1517 msgid "Prize money" msgstr "İkramiye parası" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Kas çekmesi" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Transfer listesine koy" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Çeyrek Final" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Çıkış (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "Kaldır" #: src/treeview2.c:68 msgid "REPLAY" msgstr "Yeniden oynat" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Kupada takımları rastgele seç" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Kupalardaki takımları rastgele belirle. Bu sadece Dünya Kupası gibi " "uluslararası müsabakalarda takım sıralamalarının düzenlenmesine yarar." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Sıralaman" #: src/interface.c:1281 msgid "Rank " msgstr "Sıralaman " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Hazır" #: src/interface.c:728 msgid "Rearrange team" msgstr "Tekrar düzenle" #: src/training_interface.c:98 msgid "Recreation" msgstr "Dinlenme" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Oyuncu seçim önceliÄŸi" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Kırmızı Kart" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Åžimdilik kabul etme." #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Yeniden yükle" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Yeniden yükle ve kapat." #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" "Sabit ayarları yeniden yükle. Bu, geçerli oyun oturumda yapılan " "deÄŸiÅŸikliklerin üzerine yazacaktır." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "Dosyadan maçları yeniden yükle" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Dosyadan maçları yeniden yükle." #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Dosyadan maçları yeniden yükle ve kapat" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "BileÅŸenler dosyasını yeniden yükle" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Transfer listesinden çıkart" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "%s kullanıcısını oyundan kaldır?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Unutulmaz maçları yeniden oynat,ekle veya sil" #: src/interface.c:712 msgid "Reset player list" msgstr "Oyuncu listesini sıfırla" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Canlı maç durdugunda oyuncularınızın takım dizilimini saÄŸ tuÅŸa basarak " "deÄŸiÅŸtirebilirsiniz." #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Sonuç" #: src/treeview.c:2013 msgid "Results" msgstr "Sonuçlar" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Geri dön" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Geri Dön / BoÅŸluk" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "SaÄŸ ve Sol tuÅŸlara basarak Takım DesteÄŸi durumunu deÄŸiÅŸtir" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "SaÄŸ ve Sol tuÅŸlara basarak takım oyun stilini deÄŸiÅŸtir" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "SaÄŸ tıklama ile iÅŸ kabul et,sol tıklama ile takım bilgisini gör." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "SaÄŸ tuÅŸa basarak 0 eÅŸitle" # KarşılaÅŸma(ilk maç,2.maç) #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Sezon/Tur/Ayak/Devre" #: src/cup.c:1094 msgid "Round robin" msgstr "Grup Maçları" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Güvenlik (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "Güvenlik yükseltme deÄŸeri çok yüksek,geçerli bir yüksek deÄŸer giriniz." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Kurtarma Yüz. %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Kaydet ve kapat" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "DeÄŸiÅŸiklikleri dosyaya kaydet ve kapat" #: src/options_interface.c:1581 msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "DeÄŸiÅŸiklikleri ayarlar dosyasına kaydet.NE YAPTIÄžINIZI BİLMİYORSANIZ " "KESİNLİKLE DEĞİŞTİRMEYE ÇALIÅžMAYIN." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Oyunu kaydet (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Genel Ayarları Dosya'ya kaydet" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Eski kayıtın üstüne yaz" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Ayarları öntanımlı olarak kaydet" #: src/options_interface.c:1595 msgid "Save to file" msgstr "Dosya olarak sakla" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Kullanıcı Ayarlarını Dosya'ya kaydet" #: src/interface.c:389 msgid "Save window geometry" msgstr "Windows geometrisini kaydet" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Pencere boyutunu,pozisyonunu ve dikey bölücüyü kaydet" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "İş deÄŸiÅŸikliÄŸi kaydediliyor..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Ligler ve Kupalar kaydediliyor..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Kaydediliyor" #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Haberler kaydediliyor..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Seçenekler kaydediliyor..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Sezon sonuçları kaydediliyor..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Transfer listeleri kaydediliyor..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Kullanıcılar kaydediliyor..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Yetenek Avcısı Maaşı" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sez" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Sezon %d" #: src/interface.c:1002 msgid "Season history" msgstr "Sezon GeçmiÅŸi" #: src/interface.c:449 msgid "Season results" msgstr "Sezon sonuçları" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Font seç" #: src/cup.c:1108 msgid "Semi-final" msgstr "Yari-Final" #: src/interface.c:664 msgid "Set investment" msgstr "Akademi Yatırımı " #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Finans Gelirlerinizin Yüzde kaçını Genç oyuncu akademisine ayırmak istersiniz" #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Uyarıları kapatmak için 0 ayarla" # Futbolcunun ÅŸutları #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Åžutlar" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Frikik ve Penaltıları kullansın" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Åžut Yüz. %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Åžutlar" #: src/options_interface.c:707 msgid "Shots " msgstr "Åžutlar" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Bütün ligleri fikstürde göster" #: src/interface.c:879 msgid "Show coming matches" msgstr "Gelecek maçları göster" #: src/interface.c:935 msgid "Show finances" msgstr "Finans durumunu göster" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Futbolcu Bilgisi" #: src/interface.c:758 msgid "Show job exchange" msgstr "İş Tekliflerini Göster" #: src/options_interface.c:503 msgid "Show job offers" msgstr "İş Tekliflerini Göster" #: src/interface.c:857 msgid "Show last match" msgstr "Son maçı göster" #: src/interface.c:868 msgid "Show last match stats" msgstr "Son maçın istatistiklerini göster" #: src/options_interface.c:576 msgid "Show live game" msgstr "Canlı Maçı Göster" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Bütün liglerdeki maçları göster." #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Kupalardaki maçları göster." #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Maç gününden sonra yeni kullanıcı haberleri yaratıldığında;haber penceresini " "göster." #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Sadece oynadığım bahisleri göster" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Sadece yeni haberleri göster" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Futbolcuya ait maç/gol oranını göster" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Resimli durum çubuÄŸunu göster." #: src/interface.c:946 msgid "Show stadium" msgstr "Stadı göster" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Maç sırasında pozisyon bölgesini göster" #: src/interface.c:972 msgid "Show the betting window" msgstr "Bahis penceresini göster" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Mevcut menejer iÅŸleri listesini göster." #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Transfer Listesi Göster (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Futbolcu sözleÅŸmesi bitimine yakın uyarı göster" #: src/interface.c:589 msgid "Show youth academy" msgstr "Genç oyuncu akademisi göster." #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Yet" #: src/treeview.c:2166 msgid "Skill" msgstr "Yetenek" #: src/options_interface.c:686 msgid "Skill " msgstr "Yetenek" #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Maç olmayan haftaları atla." #: src/misc_interface.c:249 msgid "Space" msgstr "BoÅŸluk" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "Özel ekstra destek klasörü (önceliÄŸi varsayılandan fazladır)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Maç Hızı" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsor Gelirleri" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Sponsor Firma Teklifleri" #: src/interface.c:977 msgid "St_ats" msgstr "Du_rum" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stad" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Stad Kapasitesi" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Stad Giderleri" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Stadyum Yönetimi ülkenizde geçerli deÄŸil." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Stad GüvenliÄŸi" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Stadyum Durumu" #: src/misc_interface.c:266 msgid "Start" msgstr "BaÅŸlat" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "_BaÅŸlat" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "BaÅŸlat hafta" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "BaÅŸlat hafta:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "İstatikler" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Durum" #: src/options_interface.c:721 msgid "Status " msgstr "Durum" #: src/misc_interface.c:951 msgid "Status:" msgstr "Durumu:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "SoÄŸuk/Sıcak" #: src/options_interface.c:1555 msgid "String" msgstr "KoÅŸul" #: src/main.c:99 msgid "String id of the country to load" msgstr "Ülke sıra numarası yükleniyor" #: src/callbacks.c:936 msgid "Structure" msgstr "Takım Düzeni" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Takım düzenini otomatik deÄŸiÅŸtir" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Sistem" #: src/interface.c:427 msgid "Tables" msgstr "Puan Cetveli" #: src/treeview2.c:517 msgid "Talent %" msgstr "Yetenek %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Takım" #: src/options_interface.c:777 msgid "Team " msgstr "Takım" #: src/treeview.c:1892 msgid "Team structure" msgstr "Takım taktiÄŸi" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Takım dizilimi deÄŸiÅŸtirildi %s ." #: src/treeview2.c:393 msgid "Team1" msgstr "Takım1" #: src/treeview2.c:399 msgid "Team2" msgstr "Takım2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "XML anlatım dosyasını test et." #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Banka size daha fazla ödenek yapmıyor." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Bahis ÅŸirketi oynanan miktarı kabul etmiyor %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Mevcut oyun kayıtlı deÄŸil ve kaybolabilir. Kapatmak istiyormusun?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Bu deÄŸer yükseldikçe, daha fazla yorum görebilirsiniz." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "İş deÄŸiÅŸimi için güncelleme zamanı %d hafta." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "DeÄŸer büyüdüğünde maçın dakikaları daha hızlı ilerler." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "%s takımının yöneticileri baÅŸvurunuzu kabul etti." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Takımın yöneticileri %s teklifinizi kabul ediyor. %s kadar süre emekliliÄŸine " "kalmışken, baÅŸarısızlığında derhal kovulabilirsin ve sezonun geri " "kalanınında bahçende bahçıvanlık yaparak geçirebilirsin." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Bir takımın ilgisini çektiniz %s takım baÅŸkanı mevcut baÅŸarınızdan hayli " "etkilenmiÅŸ gözüküyor %s ve sizi takımında görmek istediÄŸini belirtiyor.İşte " "bu konudaki bilgiler %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Takımının baÅŸkanı %s oyunundan memnun deÄŸiller. Söylentilere göre yeni bir " "Teknik Direktore bakıyorlar" #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Takımın yöneticileri %s yapılan teklifi reddetti (%s / %s) için %s. Ne " "transfer ücreti nede maaşın kabul edilebilir olmadığını söylüyorlar." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Takımın yöneticileri %s yapılan teklifi reddetti (%s / %s) için %s. " "Yöneticiler önerilen transfer ücretinden pek memnun olmadılar." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Teklif yaptığın takım %s yöneticileri teklifini reddetti (%s / %s) Söz " "konusu futbolcu %s. Yaptığın tekliften çok daha iyileri var." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "%s takımının yöneticileri teklifinizi kibarca reddetti.Onlara göre yeterince " "iyi bir teklif gelmedi." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Futbolcu gelecekte takımınızdaki yıldızı sönenlerden birisi olabileceÄŸini " "düşünüyor.Daha fazla görüşmeyi reddediyor." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Futbolcu zaten transfer listesinde." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "Oyuncu kilitli durumda (takım yöneticileri gelen teklifleri deÄŸerlendiriyor)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Futbolcu listede deÄŸil." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Futbolcu maç öncesi soÄŸuk ve antremansız" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Futbolcu Maç öncesi sıcak ve antremanlı" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Futbolcu Genç oyuncu akademisi için çok yaÅŸlı" #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Futbolcu daha fazla görüşmeyi reddediyor." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Tablo deÄŸeri %d geçersiz.." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Takımınızın BaÅŸkanı finansal yönetiminizden oldukça memnun oldu.Kazanılan " "paraların bir kısmını hayır kurumlarına bağış yapmaya karar verdiler." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Takım Yöneticileri finansal yönetiminizdeki beceriksizliÄŸiniz yüzünden " "sözleÅŸmenizi feshetti. Åžanslısınız, bir diÄŸer kulüp olan %s yöneticileri " "sizin ayrıldığınızı duydu ve size iÅŸ teklif etmek istiyor. İşte bu konudaki " "bilgiler %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Takım yöneticileri aldığınız baÅŸarısız sonuçlar üzerine sözleÅŸmenizi " "feshetti. Åžanslısınız, bir diÄŸer kulüp olan %s yöneticileri sizin " "ayrıldığınızı duydu ve size iÅŸ teklif etmek istiyor. İşte bu konudaki " "bilgiler %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Transfer Sezonu Kapandı" #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Birkaç deÄŸerli ÅŸirket takımınıza sponsor olmak istiyor.Lütfen bir tanesini " "seçin" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "Takımda sakat yada cezalı oyuncular var. Devam edilsin mi ?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "" "Ülke ayarlarınızda lig veya kupa tabloları yapılandırılmamış (sadece " "kupalarda)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Ülke ayarlarınızda lig veya kupa tabloları yapılandırılmamış." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Sezon geçmiÅŸi bulunamadı." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Oyuncu için bazı teklifler var,kabul etmeyip gelecek hafta görebilirsiniz." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Genç oyuncu akademisinde yer yok." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Çok fazla oyuncu deÄŸiÅŸikliÄŸi yapıyorsunuz.Bir maçta sadece 3 oyuncu " "deÄŸiÅŸtirebilirsiniz." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Bilet geliri" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Çapraz baÄŸ zedelenmesi" #: src/training_interface.c:117 msgid "Training" msgstr "Antreman" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Hazırlık kampı" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Hazırlık kampı ülke ayarlarınızda devre dışı." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Transfer bitimi Hafta %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Transfer Teklifi" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transferler" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Transferler ülke ayarlarınızda devre dışı." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "Takımı tekrar düzelt (R) (Futbolcuları kendi mevkilerine koymayı dene)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Kayıtlı oyun açılıyor..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "%s daha teklifinizi düşünmedi." #: src/interface.c:1013 msgid "User history" msgstr "GeçmiÅŸi Göster" #: src/window.c:945 msgid "User management" msgstr "Kullanıcı yönetimi" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Kullanıcılar -- kaldırmak için tıkla." #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "DeÄŸer" #: src/options_interface.c:749 msgid "Value " msgstr "DeÄŸer" #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Anlatım Hızı" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "G" #. won #: src/team.c:1157 msgid "W " msgstr "G" # Kazanılan maç oranı #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "G %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "MaaÅŸ" #: src/options_interface.c:756 msgid "Wage " msgstr "MaaÅŸ" #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Bahis oranı" # Ne kadar bahis yaptın,Kazanç- kayıp oranın #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Bahis oranı/\n" "Kazanç/Kayıp" #: src/treeview.c:1522 msgid "Wages" msgstr "Haftalık MaaÅŸlar" # Hafta #. Week #: src/treeview2.c:208 msgid "We" msgstr "Ha" #: src/treeview.c:2350 msgid "Week" msgstr "Hafta " #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Hafta %d Devre %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Hafta %d Devre %d\n" "Kupa Maçı %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Haftalık Taksitler" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Haftalık Taksitler:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Bygfoot'a hoÅŸgeldiniz %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Seçili olduÄŸunda 'Mevcut' kayıtlı oyunun üstüne kayıt eder; deÄŸilse 'Farklı " "kaydet' penceresi açılır." #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Seçili olduÄŸunda Genç akademinizden Genç bir oyuncu kovduÄŸunuzda uyarı " "penceresi açılır." #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Seçili olduÄŸuda oyun maksimum pencere boyutu ile baÅŸlar (tüm pencere " "yöneticileri ile çalışmayabilir)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Seçili olduÄŸunda fikstürler tüm liglerde veya sadece oyuncunun oynadığı " "ligde gösterilir." #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "İki oyuncunu yerdeÄŸiÅŸtirdiÄŸinde takım düzeni otomatik olarak yapılacaktır." #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "" "Seçili olduÄŸunda Canlı maç anlatımı, devre arası ve uzatmalar olduÄŸunda " "durur." #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Seçili olduÄŸunda Canlı Maç anlatımı sakatlıklarda duracaktır." #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Seçili olduÄŸunda kırmızı kart olduÄŸunda Canlı Maç anlatımı duracaktır." #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Seçili olduÄŸunda oyuncu deÄŸiÅŸiklikleri (sakatlıklıklar v.b. durumlarda) " "bilgisayar tarafından yapılacaktır." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "" "Seçili olduÄŸunda oyun düzenli bir biçimde otomatik olarak kayıt edilir." #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Seçili olduÄŸunda Genel ayarları dosya olarak kaydedebilirsiniz. (yeni bir " "oyuna baÅŸladığında bu ayarları yeniden yükleyebilirsin)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Seçili olduÄŸunda kullanıcı ayarlarını dosya olarak kaydeder (yeni bir oyuna " "baÅŸladığında bu ayarları yeniden yükleyebilirsin)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Seçili olduÄŸunda Maça baÅŸlarken sakat veya cezalı oyuncunuz varsa uyarı " "penceresi gösterir" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Seçili olduÄŸunda Oyundan çıkarken veya oynanan oyun kayıt edilmediyse " "doÄŸrulama penceresini gösterir" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Seçili olduÄŸunda kupa maçlarını bahis ekranında gösterir" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "Seçili olduÄŸunda kupa maçları ile birlikte gösterilir." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "" "Seçili olduÄŸunda oyuncu baÅŸarılı olduÄŸu zamanlarda iÅŸ tekliflerini gösterir" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Seçili olduÄŸunda tüm liglerdeki tüm maçları bahis ekranında gösterir" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "Seçili olduÄŸunda tüm liglerdeki maçlar gösterilir." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Seçerseniz,Sadece oynadığınız bahisleri mevcut listede gösterir" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Seçili olduÄŸunda sonuçlar yüklenirken resimleri iÅŸlem çubuÄŸunun üzerinde " "gösterir." #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "" "Seçili olduÄŸunda futbolcunun maç başına gol oranını tüm karşılaÅŸmalarda " "gösterir" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Seçili olduÄŸunda mümkün olan tüm uyarıları ve diÄŸer mesajları oyundaki mesaj " "satırından takip edebilirsin.Ayrıyeten uyarı penceresi açılmaz." #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "SK" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Sarı kart durumu \n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Sarı Kart" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Åžampiyon oldunuz %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Borcunuzu yok" #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "%s adlı futbolcuya Yeniden teklif yapıyorsunuz.Önceki teklifinizi " "deÄŸiÅŸtirmek isteyebilirsiniz." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "%s adlı futbolcuya Teklif yapıyorsunuz.Yöneticilerinizin önerdiÄŸi transfer " "ücreti ve maaÅŸ aÅŸağıdaki gibidir." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Görüşmelere baÅŸladınız, %s ile yeni sözleÅŸme için pazarlıktasınız .Dikkatli " "olmanızı öneriyoruz; eÄŸer %d teklifinizde ikna olmazsa,Futbolcunuz sözleÅŸme " "süresi biter bitmez takımınızdan ayrılacak (Tabii ki daha önce satabilme " "ÅŸansınız var).SADECE TEKLİFTEN ÖNCE bunu iptal etme ÅŸansınız var unutmayın.\n" "Klüp Yöneticilerinizin tavsiyeleri :" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Borcun yok" #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Borçlu deÄŸilsiniz.." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "" "Oynamak istediÄŸin bahis seçimi: %d , bahis oranı ise %.2f. Kaç liralık bahis " "oynamak istiyorsun?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Borcunun bu kadarını geri ödemelisin %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Borçlanmak istediÄŸin miktar : %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "EÄŸer dışarıda bir kullanıcıdan daha fazla varsa bu iÅŸi uygulayamazsın." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "%d oyuncudan fazla takımında bulunamaz." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Futbolcuyu hareket ettiremezsin,takımında çok az futbolcu var." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "EÄŸer futbolcunun ÅŸimdiki sözleÅŸmesi 2 yıldan fazla ise , Yeni sözleÅŸme " "teklif edilemez." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Bygfoot kullanıcı tanımlamadan oynanamaz!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Kırmızı kart görmüş oyuncu maçta oynayamaz." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "%s Satın almak için yeterli paranız yok.Takımı %s ." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Bu oyuncuyu alacak yeterli paranız yok %s yada takımın kapasitesi zaten dolu " "durumda." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Geri ödeme için yeterli paranız yok." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Paranız Yok" #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "%s Sezon içinde %s bitirdin." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "%s Mücadele etmeye hak kazandın." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "%s küme düştünüz.." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Borcunuzun geri kalanının ödenmesi için %d hafta kaldı." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Kredi geri ödemesi için %d hafta var." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Banka hesabından çok fazla miktarda para çektiniz. Dört defa daha " "tekrarlandığında; iÅŸten kovulacağınızı aklınızdan çıkarmayın.\n" "Klüp baÅŸkanı size %d hafta daha süre veriyor,bu sürede banka hesabınızı " "düzeltmeniz gerekmektedir." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Banka hesabın sıfırlanmak üzere.Klüp BaÅŸkanı hesabını düzeltmek üzere sana %" "d hafta süre veriyor" #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Borcunu bu hafta içinde geri ödemelisin." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Oyuncu için teklifiniz yok" #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Oyuncu Seçmediniz" #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "%s finalinde %s takımına Yine kaybettin" #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "%s transfer ücreti %s maaÅŸ önerdiÄŸin %s teklife sıcak bakıyor.Klübünün " "baÅŸkanı ve yöneticileri bu önerinden pek hoÅŸnut deÄŸil.Hala futbolcuyu " "almak istiyormusun?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Tebrikler! Bir üst tura çıktın. %s (%s.tur) - Kupa adı: %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Oyuna %s takımıyla baÅŸladın ve ÅŸu lige baÅŸlangıç yaptın: %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Hala bekleyen transfer iÅŸin var." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Kovmak istediÄŸin kiÅŸi %s. %.1f yıllık geçerli bir sözleÅŸmesi var,%s liralık " "Tazminat hakkını talep ediyor . Kabul ediyormusun?" # Kupa adı,takım adı #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "%s, Kupayı %s takımına karşı kazandın ." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Sezondaki antreman kampı sayısının limitine %d ulaÅŸtınız." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "Banka hesabın gelecek hafta kredi limitinin yukarısında olmalıdır." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Sponsorunuz baÅŸarınızdan oldukça etkilendi ve anlaÅŸmanızı yenilemek istiyor." "İşte size haftabaşına önerdikleri miktar: %d" #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Borcunuz:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Bir sonraki rakip" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "%s için teklifiniz kabul ediliyor.Hala bu futbolcuyu almak istiyorsan," "transfer listesine git ve oyuncu ismine sol tıkla." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Teklifiniz kaldırıldı" #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Teklifiniz güncellendi." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Teklifiniz gelecek hafta cevaplanacak." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Genel Maç Sonuçları" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Takım kapasiteniz dolu veya yeterli paranız yok." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "GeçmiÅŸ Maçlar" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Takımınız dolu durumda.BaÅŸka oyuncu transfer edemezsin." # Bir Takımdan oyuncu almak #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Takım kadron dolu. Satın alamazsın %s dan %s." #: src/window.c:890 msgid "Your stadium" msgstr "Stadyumunuz" #: src/treeview2.c:91 msgid "Your team" msgstr "Takımın" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "11 oyuncudan az oyuncu takımınızda bulunduramazsınız." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Takımın bu hafta yeterince antreman kampı yaptı" #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Genç futbolcu %s yeterince piÅŸtiÄŸini ve gerçek bir kontrat yapmak istediÄŸini " "düşünüyor, bu yüzden genç akademinizden ayrılıyor." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Genç futbolcu %s yakında genç akademisi için çok yaÅŸlı olacak. Takımına al " "yada akademiden kov. Yoksa oynayabilceÄŸi baÅŸka bir takıma gitmek durumunda " "kalacak." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Genç oyuncu akademisine destek" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Genç oyuncu akedemisi" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Genç oyuncu akademisi sizin ülkede devre dışıdır." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Paf Takım Antrenörü" #: src/interface.c:304 msgid "_File" msgstr "_Dosya" #: src/interface.c:1059 msgid "_Help" msgstr "_Yardım" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Kayıdı yükle" #: src/interface.c:347 msgid "_Options" msgstr "_Ayarlar" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Durdur" #: src/interface.c:766 msgid "_Player" msgstr "_Futbolcu" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Devam Et" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Son Oyun" #: src/interface.c:460 msgid "_Team" msgstr "_Takım" #: src/interface.c:850 msgid "_User" msgstr "_Kullanıcı" #: src/treeview.c:1644 msgid "interest rate" msgstr "faiz oranı" #~ msgid "" #~ "\n" #~ "Repay in %d weeks\n" #~ "Current interest rate: %.1f%%" #~ msgstr "" #~ "\n" #~ "%d haftada geri öde\n" #~ "İlgilenilen oran: %.1f%%" #~ msgid " " #~ msgstr " " #~ msgid " " #~ msgstr " " #~ msgid " Move player" #~ msgstr " Oyuncu taşındı" #~ msgid " (enlargement in progress)" #~ msgstr " (enlargement in progress)" #~ msgid " (enlargement planned)" #~ msgstr " (enlargement planned)" #~ msgid " (own goal)" #~ msgstr ".(kendi kalesine)" #~ msgid " (penalty)" #~ msgstr " (penalty)" #~ msgid " (penalty: CROSS-BAR !!)" #~ msgstr " (penalty: CROSS-BAR !!)" #~ msgid " (penalty: MISSED !!)" #~ msgstr " (penalty: KAÇTI)" #~ msgid " (penalty: POST !!)" #~ msgstr " (penalty: POST !!)" #~ msgid " (penalty: SAVE !!)" #~ msgstr " (penalty: SAVE !!)" #~ msgid " 1st Leg" #~ msgstr " 1. lig" #~ msgid " 2nd Leg" #~ msgstr " 2. lig" #~ msgid " Cross-bar!" #~ msgstr " Çapraz çubuk!" #~ msgid " Goal!" #~ msgstr " Gol!" #~ msgid " Missed!" #~ msgstr " Kaçırdın!" #~ msgid " Post!" #~ msgstr " Post!" #~ msgid " Save!" #~ msgstr " Kurtarış!" #~ msgid "" #~ "%s is a substitute. He will only shoot the penalties if you move him into " #~ "the team; otherwise the field player with highest skill will shoot." #~ msgstr "" #~ "%s is a substitute. He will only shoot the penalties if you move him into " #~ "the team; otherwise the field player with highest skill will shoot." #~ msgid "%s shoots . . ." #~ msgstr "%s shot . . ." #~ msgid "(%d:%d Goals)" #~ msgstr "(%d:%d Gol)" #~ msgid "(Normal) Position" #~ msgstr "(Normal) Pozisyon" #~ msgid "(Normal) Skill" #~ msgstr "(Normal) Hüner" #~ msgid "(Prom. games winner)" #~ msgstr "(Prom. oyun galibleri)" #~ msgid ") for another 8 months" #~ msgstr ") diÄŸer 8 ay için" #~ msgid "-1" #~ msgstr "-1" #~ msgid ". Accept?" #~ msgstr ". Tamam?" #~ msgid ". The player demands a wage of " #~ msgstr "Oyuncunun istediÄŸi aylık ücret " #~ msgid "1" #~ msgstr "1" #~ msgid "1-2" #~ msgstr "1-2" #~ msgid "1/16 Final" #~ msgstr "1/16 Final" #~ msgid "1/2 Final" #~ msgstr "Yarı Final" #~ msgid "1/4 Final" #~ msgstr "Çeyrek Final" #~ msgid "1/8 Final" #~ msgstr "1/8 Final" #~ msgid "1000" #~ msgstr "1000" #~ msgid "1500" #~ msgstr "1500" #~ msgid "2000" #~ msgstr "2000" #~ msgid "2nd Round" #~ msgstr "2. Round" #~ msgid "3-4" #~ msgstr "3-4" #~ msgid "332" #~ msgstr "332" #~ msgid "442" #~ msgstr "442" #~ msgid "5% safety increase costs" #~ msgstr "%5 emniyet artırma ücreti" #~ msgid "5-6" #~ msgstr "5-6" #~ msgid "500" #~ msgstr "500" #~ msgid "" #~ "After having a look at your bank account the team politely rejects your " #~ "offer." #~ msgstr "" #~ "Banka hesabınıza baktıktan sonra takım teklifinizi kibarca reddetti." #~ msgid "Age between " #~ msgstr "YaÅŸ aralığı" #~ msgid "Apperance and behaviour of the game" #~ msgstr "Oyundaki görünüş ve davranış" #~ msgid "Apply changes" #~ msgstr "DeÄŸiÅŸiklikleri uygula" #~ msgid "" #~ "Are you sure you want to end this week's activities and begin a new week?" #~ msgstr "" #~ "Bu haftanın aktivitelerini bitirip yeni bir hafta baÅŸlamak isteÄŸinden " #~ "emin misin ?" #~ msgid "" #~ "Are you sure you want to start a new game and discard your current game?" #~ msgstr "Aktif oyunu kapatıp yeni bir oyun açmaya emin misiniz?" #~ msgid "Arsenal" #~ msgstr "Arsenal" #~ msgid "Ascending" #~ msgstr "Tırmanıyor" #~ msgid "At the beginning of a new week show first" #~ msgstr "Yeni bir haftaya baÅŸlarken ilk göster" #~ msgid "Attendance (neutral stadium):" #~ msgstr "İlgilenme (tarafsız saha):" #~ msgid "Autosaving. Please stand by..." #~ msgstr "Otomatik kayıt Lütfen Bekleyin ..." #~ msgid "Average attendance development" #~ msgstr "Ortalama ilgilenme geliÅŸtirmek" #~ msgid "Average cskills" #~ msgstr "Averaj cskills" #~ msgid "BEST DEFENSIVE TEAM" #~ msgstr "EN İYİ SAVUNMA YAPAN TAKIM" #~ msgid "BEST FORWARD" #~ msgstr "EN İYİ FORVET" #~ msgid "BEST GOAL SCORERS" #~ msgstr "GOL KRALLIGI" #~ msgid "BEST GOALIES" #~ msgstr "EN İYİ KALECİLER" #~ msgid "BEST MIDFIELDER" #~ msgstr "EN İYİ ORTASAHA" #~ msgid "BEST OFFENSIVE TEAM" #~ msgstr "EN İYİ HUCUM YAPAN TAKIM" #~ msgid "BEST PLAYER" #~ msgstr "EN İYİ OYUNCU" #~ msgid "BEST PLAYERS" #~ msgstr "EN İYİ OYUNCULAR" #~ msgid "BEST TEAMS" #~ msgstr "EN İYİ TAKIMLAR" #~ msgid "Before next match" #~ msgstr "Gelecek Mactan önce" #~ msgid "Best field players" #~ msgstr "En iyi çalışan oyuncular" #~ msgid "Birth year and month" #~ msgstr "DoÄŸum yılı ve ayı" #~ msgid "Bookmaker's tip" #~ msgstr "Bookmaker'ın ipucu" #~ msgid "Bottom league" #~ msgstr "Alt Lig" #~ msgid "Brazil" #~ msgstr "Brazilya" #~ msgid "Browse teams to find and buy new players" #~ msgstr "BulduÄŸun takımları göster ve yeni oyuncular al" #~ msgid "Bygfoot %s - Job Offer" #~ msgstr "Bygfoot %s - İş teklifi" #~ msgid "Bygfoot %s -- Help" #~ msgstr "Bygfoot %s -- Yardım" #~ msgid "Bygfoot %s -- Options" #~ msgstr "Bygfoot %s -- Ayarlar" #~ msgid "Bygfoot %s -- Team Editor" #~ msgstr "Bygfoot %s -- Takım Editoru" #~ msgid "Bygfoot - Stadium improvement" #~ msgstr "Bygfoot - Stad geliÅŸiyor" #~ msgid "Bygfoot Team Editor" #~ msgstr "Bygfoot Takım Editoru" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Bygfoot" #~ msgid "CHAMPIONS" #~ msgstr "SAMPİYONLAR" #~ msgid "CL" #~ msgstr "CL" #~ msgid "CL / Libertad." #~ msgstr "CL / Libertad." #~ msgid "CWC / Conm." #~ msgstr "CWC / Conm." #~ msgid "Cancel" #~ msgstr "iptal" #~ msgid "Change font" #~ msgstr "Fontu DeÄŸiÅŸtir" #~ msgid "" #~ "Change or update team structure (C) You can enter custom structures like " #~ "334, too." #~ msgstr "" #~ "Takımın düzenin deÄŸiÅŸtir yada yenile (C) 334 gibi deÄŸiÅŸik düzenler " #~ "girebilirsin" #~ msgid "Change team name to " #~ msgstr "Takım adını deÄŸiÅŸtir " #~ msgid "" #~ "Change the name of your current team for this game. Use the Bygfoot Team " #~ "Editor to change a team name permanently." #~ msgstr "" #~ "Sadece bu oyun içintakım adını deÄŸiÅŸtirir. Takım adını daimi deÄŸiÅŸtirmek " #~ "için lütfen editoru açın" #~ msgid "" #~ "Check this if you want Bygfoot to keep an eye on the transfer list for " #~ "you." #~ msgstr "" #~ "EÄŸer Bygfoot bir gözünü transfer listesinde senin için tutmasını " #~ "istiyorsan bunu iÅŸaretle" #~ msgid "" #~ "Check this if you'd like to have your team loaded from the definitions " #~ "file no matter what the other checkbuttons say." #~ msgstr "" #~ "Bunu iÅŸaretlediÄŸinizde takımınızı tüm özellikleri dosyadan yüklenecektir " #~ "ve size diÄŸer sçenekleri iÅŸaretlememenizi söyler" #~ msgid "Chile" #~ msgstr "Chile" #~ msgid "Choose a custom country file (see Help)" #~ msgstr "Bir ülke dosyası seçin ( Yardıma Bakın)" #~ msgid "Choose or enter country file" #~ msgstr "Bir ülke dosyası seç veya gir" #~ msgid "Compress savegames" #~ msgstr "Sıkıstır kayıtlı oyunları" #~ msgid "Could not save new team name to %s. I couldn't find the old name." #~ msgstr "Takımın adı %s olarak kaydedemezsin.Eski adını bulamıyorum." #~ msgid "DW" #~ msgstr "DW" #~ msgid "Defender " #~ msgstr "Defans " #~ msgid "Delete history at end of season" #~ msgstr "GeçmiÅŸi sezon sonunda sil" #~ msgid "Discard / Play" #~ msgstr "Çıkart / Oynat" #~ msgid "Doesn't seem to be a Bygfoot save file." #~ msgstr "Bygfoot kayıt dosyası gibi görünmüyor." #~ msgid "Don't bother me with this next time" #~ msgstr "İleride Tekrar hatırlatma" #~ msgid "England" #~ msgstr "İngiltere" #~ msgid "Estimated talent between " #~ msgstr "Yetenekleri arasında hesapla" #~ msgid "Estimated value less than" #~ msgstr "Hesaplanan deÄŸer den aÅŸağı" #~ msgid "Export" #~ msgstr "Dışa Aktar" #~ msgid "" #~ "Export the current team to a file (which will be overwritten if it exists)" #~ msgstr "" #~ "Geçerli takımı dosya ya aktar (Var olan dosyanın üzerine yazacaktır)" #~ msgid "Extra time" #~ msgstr "Uzatma dakikaları" #~ msgid "FIELD PLAYERS" #~ msgstr "ÇALIAN OYUNCULAR" #~ msgid "" #~ "File with the team names (country-specific, e.g. country_eng for the " #~ "English teams)" #~ msgstr "" #~ "Dosya takım adlarıyla birlikte (örn. country_tr Turk takımları için)" #~ msgid "" #~ "Filter players by their age (NOTE: You must have at least a 'good' scout " #~ "in order to be able to filter by age)" #~ msgstr "" #~ "Oyuncuları yaÅŸlarına göre göster (NOT: İyi bir menajere sahip olmalısınız " #~ "oyuncuları yaÅŸlarına göre seçmek için)" #~ msgid "Filter players by their estimated talent" #~ msgstr "Hesaplanan kabiliyetlerine gre süz" #~ msgid "Filter players by their estimated value" #~ msgstr "Oyuncuları hesaplanan deÄŸere göre süz" #~ msgid "Filter players by their league" #~ msgstr "Oyuncuları liglerine göre filtrele" #~ msgid "Filter players by their position" #~ msgstr "Oyuncularını posizyonlarına göre göster" #~ msgid "Filter players by their skill" #~ msgstr "Oyuncularını hünerlerine göre göster" #~ msgid "Finances / Stadium" #~ msgstr "Finans / Stad" #~ msgid "Finances and stadium (F)" #~ msgstr "Finans ve Stad (F)" #~ msgid "Finished (weeks)" #~ msgstr "BitiÅŸ (haftalar)" #~ msgid "Fire player (Middle click)" #~ msgstr "Oyuncuyu Kov (Orta tuÅŸ ile tıkla)" #~ msgid "Fixtures by league" #~ msgstr "Lige göre fiksture" #~ msgid "GOALIES" #~ msgstr "Goller" #~ msgid "Germany" #~ msgstr "Almanya" #~ msgid "Get loan" #~ msgstr "Borc al" #~ msgid "Goal difference" #~ msgstr "Sayı Farkları" #~ msgid "Goal difference development" #~ msgstr "Sayı farklılıkları geliÅŸtirmek" #~ msgid "Goals / Game" #~ msgstr "Gol / Mac" #~ msgid "Goals against" #~ msgstr "Yenen Gol" #~ msgid "Goals against development" #~ msgstr "Golde gerileme" #~ msgid "Goals development for %s" #~ msgstr "Gol geliÅŸtirmek için %s" #~ msgid "Goals for" #~ msgstr "Atılan Gol" #~ msgid "Goals for development" #~ msgstr "Golde geliÅŸme" #~ msgid "Help (H)" #~ msgstr "Yardım (H)" #~ msgid "" #~ "Here you can enter a custom structure like 334 (or 019, for that matter)" #~ msgstr "Buradan özel takım düzenleri girebilirsin 334 gibi" #~ msgid "History" #~ msgstr "GeçmiÅŸ" #~ msgid "History graph" #~ msgstr "GeçmiÅŸ GrafiÄŸi" #~ msgid "" #~ "How long the history can get at most (data from the beginning of the list " #~ "gets removed afterwards). WARNING: The higher this value is, the more " #~ "memory is needed, especially for the player histories. Additionally, " #~ "loading and saving games gets slower." #~ msgstr "" #~ "Ne kadar uzunlukta olsun geçmiÅŸ DİKKAT: DeÄŸerin büük olması ramden çok " #~ "yenmesi demektir." #~ msgid "Hungary" #~ msgstr "Macaristan" #~ msgid "" #~ "I'm sorry to tell you that one or more of your players have suffered " #~ "severe injuries. They won't be able to play football on a professional " #~ "level anymore and had to retire:\n" #~ " " #~ msgstr "" #~ "Bunu söylemekten üzgünüm ama bir yada daha fazla oyuncunuz sakat ve her " #~ "hanigi profesyonel bir maçta oynamak istemiyorlar:\n" #~ "..." #~ msgid "" #~ "If checked, messages are shown instead of popups when possible (ie. when " #~ "you don't have to make an 'OK/Cancel'-type of decision." #~ msgstr "" #~ "EÄŸer iÅŸaretlenirse mesajı popup penceresi içerisinde göstermeye çalış " #~ "mümkün olduÄŸunda " #~ msgid "" #~ "If you check this, only the player names and the team structures are " #~ "loaded from the definition file, values like skill or age are generated " #~ "randomly" #~ msgstr "" #~ "EÄŸer bunu iÅŸaretlerseniz takımlar dosyasından sadece oyuncu isimi " #~ "alınacaktır ve diÄŸer özellikleri rastgele oluÅŸturulacaktır." #~ msgid "" #~ "If you check this, the game generates all players randomly and won't read " #~ "the file with team definitions" #~ msgstr "" #~ "EÄŸer bunu iÅŸaretler iseniz oyuncuların tamamı rastgele oluÅŸturulacaktır." #~ msgid "" #~ "If you uncheck this, clicking on 'Save' will pop up a 'Save as' window" #~ msgstr "" #~ "EÄŸer buna tıklamadıysan Kaydete tıkla Farklı Kaydet penceresi açılacaktır." #~ msgid "" #~ "Import teams from a definition file (the existing definition file will be " #~ "expanded)" #~ msgstr "Takımları tanım dosyasından ekle ( mevcut dosyayı geniÅŸletecektir.)" #~ msgid "Increase (seats)" #~ msgstr "Arttır (koltuklar)" #~ msgid "Increase capacity" #~ msgstr "Kapasiteyi artır" #~ msgid "Italy" #~ msgstr "İtalya" #~ msgid "League 2" #~ msgstr "Lig 2" #~ msgid "League 3" #~ msgstr "Lig 3" #~ msgid "League 4" #~ msgstr "Lig 4" #~ msgid "League 5" #~ msgstr "Lig 5" #~ msgid "Load my team from definitions file" #~ msgstr "Kendi takımımın özelliklerini özellikler dosyasından yükle" #, fuzzy #~ msgid "Loading cups..." #~ msgstr "Yükleniyor fiksturer..." #~ msgid "Look & Feel" #~ msgstr "Görünüm & Doku" #~ msgid "Maximal history length" #~ msgstr "Maximum geçmiÅŸ uzunluÄŸu" #~ msgid "Messages" #~ msgstr "Mesajlar" #~ msgid "Messages just appear in the message window" #~ msgstr "Mesajlar mesj penceresinde gözüktü" #~ msgid "Messages slide into the message window from the right" #~ msgstr "Mesaj iÅŸaretcisi mesaj penceresinin saÄŸ tarafından bulunur" #~ msgid "Mexico" #~ msgstr "Meksika" #, fuzzy #~ msgid "Misc." #~ msgstr "Misc" #~ msgid "Miscellaneous options" #~ msgstr "ÇeÅŸitli ayarlar" #~ msgid "Money development" #~ msgstr "Para GeliÅŸmesi" #~ msgid "Move player down (Ctrl-Down)" #~ msgstr "Oyuncuyu aÅŸağıya taşı (Ctrl-AÅŸağı)" #~ msgid "Move player up (Ctrl-Up)" #~ msgstr "Oyuncuyu kurarı taşı (Ctrl-Yukarı)" #~ msgid "Moving" #~ msgstr "Taşınıyor" #~ msgid "My games plus preview" #~ msgstr "Benim oyunlarım için pozitif bakış" #~ msgid "NONE\n" #~ msgstr "NONE\n" #~ msgid "Nation. Cup 1" #~ msgstr "Ulusal. Kupa 1" #~ msgid "Nation. Cup 2" #~ msgstr "Ulusal. Kupa 2" #~ msgid "New week" #~ msgstr "Yeni hafta" #~ msgid "No messages" #~ msgstr "Mesaj yok" #~ msgid "Notify" #~ msgstr "Bildir" #~ msgid "" #~ "Notify me whenever a player appears on the transfer list who fulfills my " #~ "conditions:" #~ msgstr "İstediÄŸim ÅŸekilde bir oyuncu Transfer listesine düşünce beni uyar:" #~ msgid "Nr" #~ msgstr "Nr" #~ msgid "Objective from Team Manager :" #~ msgstr "Teknik Direktorden Objectif :" #~ msgid "" #~ "One of the structure numbers is not a valid structure specifier. The " #~ "digits of the first structure must add up to 10, those of the second one " #~ "to 8. " #~ msgstr "" #~ "GirmiÅŸ olduÄŸun taktik yapısı yanlış Yazmış olduÄŸun numara 4 4 2 gibi " #~ "olabilir. Ve yanlız bir basamak içi en fazla 8 rakamını girebilirsin." #~ msgid "" #~ "One or more players could not be saved because of an invalid talent " #~ "value. The talent value of a players has to be greater or equal his skill " #~ "value. " #~ msgstr "" #~ "Bir yada daa fazla oyuncuyu kaydedemezsin. Çünkü yetenek deÄŸeri beceri " #~ "deÄŸerinden küçük olamaz. En fazla eÅŸit olabilir." #~ msgid "Options (O)" #~ msgstr "Ayarlar (O)" #~ msgid "Options concering the transfer list" #~ msgstr "Ayarlar transfer listesi ile ilgilen " #~ msgid "Options for loading and saving games" #~ msgstr "Ayarlar için yüklenmiÅŸ ve kaydedilmiÅŸ oyunlar" #~ msgid "Overwrite old savegame" #~ msgstr "Eski oyunun üstüne yaz" #~ msgid "PLAYER AWARDS" #~ msgstr "OYUNCU ÖDÜLLERİ" #~ msgid "Pay loan" #~ msgstr "Borc öde" #~ msgid "" #~ "Penalty shooter deselected. Player with highest cskill will shoot " #~ "penalties." #~ msgstr "" #~ "Penaltı atıcısı seçilmedi. Penaltı atacak oyuncu Cskill'i yüksek olmalı." #~ msgid "Play normal league games and cups" #~ msgstr "Normal ligte ve kupalarda oyna" #~ msgid "Play only in Champions' League / Copa Libertadores" #~ msgstr "Yanlızca Sampiyonlar Liginde Oyna" #~ msgid "Play only in Cup Winners' Cup / Copa Conmebol" #~ msgstr "Yanlızca Kupa galipleri kupasında oyna" #~ msgid "Play only in UEFA Cup / Copa Sul-Americana" #~ msgstr "Yanlızca UEFA Kupasında oyna" #~ msgid "Play with season objective" #~ msgstr "Takım hedefleri ile oyna" #~ msgid "Player attributes that are shown in the two player lists" #~ msgstr "Oyuncu özellikleri her iki listedede gösterilir" #~ msgid "Player wages" #~ msgstr "Oyucu ücretleri" #~ msgid "Points development" #~ msgstr "Puan GeliÅŸtirmek" #~ msgid "Positions" #~ msgstr "Posizyonlar" #~ msgid "Premier Division" #~ msgstr "Premier Lig" #~ msgid "Put player on transfer list (Right click in transfer mode)" #~ msgstr "Oyuncuyu Transfer Listesine koy (Transfer modunda iken saÄŸ tıkla)" #~ msgid "Quick options" #~ msgstr "Hızlı Ayarlar" #~ msgid "QuickOpt" #~ msgstr "HızlıAyar" #~ msgid "Quit" #~ msgstr "Çıkış" #~ msgid "Quit (Esc)" #~ msgstr "Çıkış" #~ msgid "Rank development" #~ msgstr "Sıralama geliÅŸtirmek" #~ msgid "Remove player from transfer list (Click in the transfer list)" #~ msgstr "" #~ "Oyunuyu transfer listesinden çıkart (Transfer listesinde iken tıkla)" #~ msgid "Romania" #~ msgstr "Romanya" #~ msgid "Runner-up" #~ msgstr "Depar" #~ msgid "SEASON AWARDS" #~ msgstr "Sezon Ödülleri" #~ msgid "Save / Play" #~ msgstr "Kaydet / Oynat" #~ msgid "Save current team to file (Ctrl-S)" #~ msgstr "Geçerli takımı dosyaya kaydet (Ctrl-S)" #~ msgid "" #~ "Save options to $HOME/.bygfoot/bygfoot.conf. If you start Bygfoot again, " #~ "they get loaded from the file." #~ msgstr "" #~ "Kayıt ayarları $HOME/.bygfoot/bygfoot.conf EÄŸer oyunu tekrar " #~ "baÅŸlatırsanız ayarları buradan yükliyecektir." #~ msgid "Save team definition file and start Bygfoot" #~ msgstr "Takım özellikleri kaydet ve Bygfoot u baÅŸlat" #, fuzzy #~ msgid "Saving cups..." #~ msgstr "Kaydediliyor fiksturler" #~ msgid "Saving team %d..." #~ msgstr "Kaydedilen takım %d" #~ msgid "Scout / Physio" #~ msgstr "Menajer / Fizyo" #~ msgid "Scout recommends" #~ msgstr "Menajer Tavsiyeleri" #~ msgid "Select next player (Ctrl-Right)" #~ msgstr "Bir sonraki oyuncuyu seç (Ctrl-SaÄŸ)" #~ msgid "Select previous player (Ctrl-Left)" #~ msgstr "Bir önceki oyuncuyu seç (Ctrl-Sol)" #~ msgid "Select team and country" #~ msgstr "Ülke ve takım seçin" #~ msgid "Show 'live' games" #~ msgstr "Canlı göster oyunları" #~ msgid "Show a warning before beginning a new week" #~ msgstr "Yeni bir hafta baÅŸmadan önce uyarıyı göster" #~ msgid "Show a warning if I want to quit with a game that isn't saved" #~ msgstr "EÄŸer çıkarsam oyun kaydedilmez" #~ msgid "" #~ "Show a warning when injured or banned players are in the team when " #~ "beginning a new week" #~ msgstr "Sakat yada cezalı oyuncular yeni haftaya baÅŸlarken takımda" #~ msgid "Show editor help (F1)" #~ msgstr "Editorun Yardımını göster (F1)" #~ msgid "" #~ "Show extended info on my games (with injuries etc.) and a preview of my " #~ "next games" #~ msgstr "" #~ "Oyunlarım hakkında bilgiye eriÅŸ ve gelecek oyunlar hakkında ön bilgi " #~ "göster" #~ msgid "Show extended player information (Right click)" #~ msgstr "Extra kullancı bilgisini göster (SaÄŸ tıkla)" #~ msgid "Show fitness colors" #~ msgstr "Form renklerini Göster" #~ msgid "Show fixtures (F4)" #~ msgstr "Fiksturu göster (F4)" #~ msgid "Show history" #~ msgstr "GeçmiÅŸi Göster" #~ msgid "Show live game tendency bar" #~ msgstr "Canlı oyunları eÄŸilim çubuÄŸunda göster" #~ msgid "Show my last games and a preview of my next games (P or F1)" #~ msgstr "Son macı göster ve gelecek mac hakkında en bilgi ver (P or F1)" #~ msgid "Show tables (F5)" #~ msgstr "Puan Cetvelini Göster (F5)" #~ msgid "" #~ "Show the results of all games in the league / cups my team participates in" #~ msgstr "" #~ "Liglerdeki tüm oyunların sonuçlarını göster / takımımın katıldığı kupalar" #~ msgid "Skill between " #~ msgstr "Hüner Arası" #~ msgid "Skill development for %s" #~ msgstr "Hüner geliÅŸtirmek için %s" #~ msgid "Skip weeks when my team doesn't play" #~ msgstr "Takımı oynatmadığım haftaları atla" #~ msgid "Sort transfer list by" #~ msgstr "Transfer Listesini sırala" #~ msgid "Space / Esc" #~ msgstr "Space / Esc" #~ msgid "Spain" #~ msgstr "İspanya" #~ msgid "Stadium bills" #~ msgstr "Stad Gelirleri" #~ msgid "Start Bygfoot Online Update" #~ msgstr "Bygfoot Online Update i BaÅŸlat" #~ msgid "Start Bygfoot Team Editor" #~ msgstr "Bygfoot Takım Editorunu baÅŸlat" #~ msgid "Start maximized" #~ msgstr "Maksimum baÅŸlat" #~ msgid "Static" #~ msgstr "Statik" #~ msgid "Swap players" #~ msgstr "oyuncular Takas edildi" #~ msgid "Swap two players " #~ msgstr "İki oyuncuyu takas et " #~ msgid "TEAM AWARDS" #~ msgstr "TAKIM ÖDÜLLERİ" #~ msgid "Team Editor Help" #~ msgstr "Takım Editoru Yardımı" #~ msgid "Team and player histories" #~ msgstr "Takım ve oyuncu geçmiÅŸi" #~ msgid "Team definitions file" #~ msgstr "Takım özellikleri dosyası" #~ msgid "Team histories" #~ msgstr "Takım geçmiÅŸi" #~ msgid "Team structures" #~ msgstr "Takım Düzeni" #~ msgid "Teams found in the country file. Choose one to edit it." #~ msgstr "Takımlar ülke dosyasında bulundu.Düzenlemek için bir tane seç" #~ msgid "" #~ "The average skills of the five leagues in the first season are: 8.0, 7.0, " #~ "6.0, 5.0 and 4.0." #~ msgstr "BeÅŸ lig için ortalama hüner ilk sezonda :8.0, 7.0, 6.0, 5.0 ve 4.0." #~ msgid "" #~ "The file team definitions are read from and written to. Default is $HOME/." #~ "bygfoot/text_files/teams." #~ msgstr "" #~ "Takım özellikleri dosyası $HOME/ bygfoot/text_files/teams klasörüne " #~ "yazıldı" #~ msgid "" #~ "The following teams were added to %s:\n" #~ "\n" #~ msgstr "" #~ "Sözü edilen takımlar %s yi ekledi: \n" #~ "\n" #~ msgid "The player doesn't like your offer and decides to stay in his team." #~ msgstr "Oyuncu teklifinizi beÄŸenmedi ve takımda kalmaya karar verdi." #~ msgid "" #~ "The selected player will shoot the penalties in regulation and extra time " #~ "if he plays." #~ msgstr "" #~ "Seçilen oyuncunun penaltı atışları düzenli ve fazla çalışma ile " #~ "artacaktır eÄŸer oyuncu oynarsa" #~ msgid "" #~ "The team has an adequate replacement for %s and is willing to cancel his " #~ "contract for " #~ msgstr "" #~ "%s in takımı onun yerine daha verimli bir oyuncu buldukları için " #~ "oyuncunun anlasmasını fes etti" #~ msgid "" #~ "The team has unfortunately no suitable replacement for %s and has to " #~ "reject your offer." #~ msgstr "" #~ "Takım transfer etmek istediÄŸiniz oyuncu %s yerine birini bulamadığı için " #~ "teklifinizi reddetti." #~ msgid "The team owners fire you because of objective failed." #~ msgstr "Hedefe ulaÅŸamadığın için kovuldun" #~ msgid "The team owners fire you because of unsuccessfulness." #~ msgstr "Kovuldun çünkü baÅŸarısızsın." #~ msgid "The team owners give you %d weeks to get positive." #~ msgstr "Takımı düzlüğe çıkartman için yöneim sana %d hafta verdi." #~ msgid "" #~ "The team rejects your offer and removes the player from the transferlist." #~ msgstr "" #~ "Takım oyuncuya verdiÄŸiniz teklifi kabul etmedi ve oyuncuyu transfer " #~ "listesinden kaldırdı" #~ msgid "" #~ "The tendency bar shows in the live game window which team is closer to " #~ "scoring a goal" #~ msgstr "" #~ "EÄŸilim çubuÄŸu canlı oyun penceresinde gole yakın olan tarafı gösterir" #~ msgid "The transferlist is full." #~ msgstr "Transfer listesi dolu" #~ msgid "These digits must add up to 8." #~ msgstr "Bu rakamların toplamı 8 etmeli" #~ msgid "" #~ "This affects the two windows in the main screen, the help window and the " #~ "live game window" #~ msgstr "" #~ "Bu efekt ana pencere içerisindeki her iki pencereyide etkiler,yardım " #~ "penceresi ve canlı oyun penceresi" #~ msgid "This can be between -100 and 100" #~ msgstr "100 ve 100 arasında olabilir" #~ msgid "This is your first season." #~ msgstr "Bu sizin ilk sezonunuz." #~ msgid "Top league" #~ msgstr "Top Lig" #~ msgid "Transferlist notification" #~ msgstr "Transfer Listesi Bildirmesi" #~ msgid "UEFA / Sul-Amer." #~ msgstr "UEFA / Sul-Amer." #~ msgid "UEFA / Sul-Americana" #~ msgstr "UEFA" #~ msgid "Undo! (Y / Ctrl-Z)" #~ msgstr "Geri! (Y / Ctrl-Z)" #~ msgid "Up" #~ msgstr "Yukarı" #~ msgid "Update player information" #~ msgstr "Oyuncu bilgilerini güncelle" #~ msgid "Value development for %s" #~ msgstr "DeÄŸer geliÅŸtirmek için %s" #~ msgid "Wage development for %s" #~ msgstr "Ücret GeliÅŸtirmek için %s" #~ msgid "Weeks / Seasons" #~ msgstr "Haftalar / Sezonlar" #~ msgid "Whether each season begins with an empty history list." #~ msgstr "Her birine boÅŸ bir geçmiÅŸ ile baÅŸladı" #~ msgid "Whether fitness percentage is shown in green and red shades" #~ msgstr "Kondisyon yeÅŸil yada kırmızı gölge olÄŸunda göster" #~ msgid "" #~ "XML files can get very big but they can be compressed well. Uncheck this " #~ "if you have plenty of space on your hard disk and would like to save some " #~ "time when loading and saving." #~ msgstr "" #~ "XML Dosyası çok büyül olabilir fakat iyi bir ÅŸekilde sıkıştırılmışsa." #~ msgid "" #~ "You can start the editor from the commandline with 'bygfoot -e' or '--" #~ "editor'" #~ msgstr "" #~ "Editore komut satırından 'bygfoot -e' yada '--editor' ile ulaÅŸabilirsiniz." #~ msgid "You can't borrow this much." #~ msgstr "Bundan daha fazla borç alamazsın." #~ msgid "You can't have a bigger stadium; it's not safe." #~ msgstr "Büük bir stadın yok; hiç güvenli deÄŸil." #~ msgid "You can't improve your stadium safety, it's already 100% safe." #~ msgstr "Stadı yeterince geliÅŸtirmedin. Stad %100 dolu." #~ msgid "" #~ "You get a season objective from the team manager which you have to " #~ "fulfill if you don't want to get sacked at the end of the season if you " #~ "switch this on." #~ msgstr "" #~ "Tekbik adam olarak takımın hedeflerine ulaÅŸtırmalısın. EÄŸer takıı sezon " #~ "sonunda hedeflerine ulaÅŸtıramazsan muhtemelen kovulursun." #~ msgid "" #~ "You have entered a player name beginning with the comment character '#'. " #~ "The player will be ignored when loading the team from the definitions " #~ "file. " #~ msgstr "" #~ "'#' iÅŸaretiyle baÅŸlayan bir oyuncu ismi girdiniz.Takım özellikleri " #~ "yüklendiÄŸinden oyuncu adı kabul edilmiyecektir." #~ msgid "" #~ "You have entered an invalid birth date. Players must be older than 17. " #~ msgstr "Geçersiz bir doÄŸum günü girdiniz. Oyuncu 17 yaşından büyük olmalı" #~ msgid "" #~ "You have entered an invalid talent value. The talent value of a player " #~ "has to be greater than his skill value. " #~ msgstr "" #~ "Geçersiz bir yenetek deÄŸeri girdiniz. Yetenek deÄŸeri bir oyuncunun en iyi " #~ "halidir. En kötü durumda beceri deÄŸerine eÅŸit olabilir" #~ msgid "You have overdrawn your bank account once again. " #~ msgstr "Birkez daha banka hesabı limitleri geçti. " #~ msgid "You have overdrawn your bank account. " #~ msgstr "Banka hesabından fazla para çekilmiÅŸ." #~ msgid "You haven't entered a new team name. " #~ msgstr "Yeni bir takım ismi girmedin " #~ msgid "You haven't got the money to pay back this much" #~ msgstr "Paranız yok bundan daha fazlasını geri ödiyemezsiniz." #~ msgid "You haven't selected a team you want to edit or a definitions file. " #~ msgstr "Düzenlemek için bir takım seçmediniz." #~ msgid "You may increase only twice a week." #~ msgstr "Hafta yanlız iki kez artırabilirsin" #~ msgid "You might want to have a look at the transfer list. " #~ msgstr "Tranfer listesine bakmanda yarar var." #~ msgid "You'd like to fire %s. You can" #~ msgstr "%s i kovmak istiyormus. Yapabilirisin" #~ msgid "You're below your drawing credit limit. You can't pay back money." #~ msgstr "Yapılan kredi limitini geçtiniz. Geri ödeyimiyeceksiniz." #~ msgid "Your league" #~ msgstr "Ligin" #~ msgid "Your rank" #~ msgstr "Sıralaman" #~ msgid "" #~ "Your scout's not good enough, he doesn't know the age of the players on " #~ "the transfer list. Sorting the transfer list is switched off. " #~ msgstr "" #~ "Menajeriniz yetersiz,Transfer Listesindeki oyuncuların yaÅŸlarını bilmiyor." #~ msgid "" #~ "Your stadium is being enlarged. You can't increase its capacity until " #~ "work's finished." #~ msgstr "" #~ "Stadı geniÅŸletme çalışmaları baÅŸladı. çalışmalar bitenedek herhangi bir " #~ "deÄŸiÅŸiklik yapamazsın." #~ msgid "Your team must stay in the current league." #~ msgstr "Takımın liginde kalmalı" #~ msgid "" #~ "Your team structure must have three non-zero digits which sum up to 10." #~ msgstr "" #~ "Takım takiÄŸiniz en az üç basamaklı ve hiç 0 olmamalı ve toplamlarıda 10 " #~ "etmeli" #~ msgid "Your team's prize money" #~ msgstr "Takımının ikramiyesi" #~ msgid "banned for %d weeks (%s)" #~ msgstr "%d hafta yasaklandı" #~ msgid "button10" #~ msgstr "button10" #~ msgid "button8" #~ msgstr "button8" #~ msgid "button9" #~ msgstr "button9" #~ msgid "cracked rib" #~ msgstr "Kaburga çatlaması" #~ msgid "dangerous tackle" #~ msgstr "tehlikeli top kapma" #~ msgid "deliberate, goal-blocking foul" #~ msgstr "kasıtlı, gole giden oyuncuya foul" #~ msgid "fifth yellow card" #~ msgstr "50.sarı kart" #~ msgid "label20" #~ msgstr "label20" #~ msgid "label21" #~ msgstr "label21" #~ msgid "label22" #~ msgstr "label22" #~ msgid "label23" #~ msgstr "label23" #~ msgid "label24" #~ msgstr "label24" #~ msgid "label25" #~ msgstr "label25" #~ msgid "label26" #~ msgstr "label26" #~ msgid "label27" #~ msgstr "label27" #~ msgid "label36" #~ msgstr "label36" #~ msgid "label37" #~ msgstr "label37" #~ msgid "label38" #~ msgstr "label38" #~ msgid "label39" #~ msgstr "label39" #~ msgid "label40" #~ msgstr "label40" #, fuzzy #~ msgid "label48" #~ msgstr "label4" #~ msgid "label5" #~ msgstr "label5" #~ msgid "label6" #~ msgstr "label6" #~ msgid "label7" #~ msgstr "label7" #~ msgid "label70" #~ msgstr "label70" #~ msgid "pay a one-time compensation of " #~ msgstr "bir kez tek seferde tazminatı için " #~ msgid "pay his wage (" #~ msgstr "Maaşını öde (" #~ msgid "radiobutton0" #~ msgstr "radiobutton0" #~ msgid "radiobutton1" #~ msgstr "radiobutton1" #~ msgid "repeated bad tackle" #~ msgstr "topu ayagından tekrar aldı" #~ msgid "repeated delayed play" #~ msgstr "geçiken oyun tekrarı" #~ msgid "repeated dissent" #~ msgstr "tekrar eden görüş ayrılığı" #~ msgid "spat at player" #~ msgstr "Oyuncu ağız kavgası" #~ msgid "violent conduct" #~ msgstr "ÅŸiddetli davranış" #~ msgid "window1" #~ msgstr "window1" bygfoot-2.3.2/po/bg.po0000644000175000017500000032552411225071373013525 0ustar eliaselias# Bulgarian translations for bygfoot package. # Copyright (C) 2005 THE bygfoot'S COPYRIGHT HOLDER # This file is distributed under the same license as the bygfoot package. # Rostislav "zbrox" Raykov , 2005. msgid "" msgstr "" "Project-Id-Version: bygfoot\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2006-03-01 17:06+0200\n" "Last-Translator: Rostislav \"zbrox\" Raykov \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Голове/Мач %.1f СпаÑÑване %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Голове/Мач %.1f ИзÑтрели %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " " #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " " #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (ПрÑк)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (ЗÐБЕЛЕЖКÐ: Ðко не го направите, играта приключва за ВаÑ.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (автогол)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (Д)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Първи мач" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Преиграване на мачовете" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Втори мач" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " и Ñъдружници" #: src/options_interface.c:329 msgid " Autosave files " msgstr "" " Файлове на \n" "автоматичното запазване " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Банка" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " БратÑ" #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Химио" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " и Ко." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Комуникации" #. Company name. #: src/user.c:990 msgid " Company" msgstr " КомпаниÑ" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " КорпорациÑ" #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Цифрови ÑиÑтеми" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Енергийно ÑпеÑÑ‚Ñване" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " ЕТ" #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " ФинанÑиÑÑ‚" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Слава богу, той има братовчед, който може да помогне на отбора." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Груп" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Холдинг" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " ИндуÑтриалиÑÑ‚" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Лаборатории" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " ООД" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Петрол" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Продукти" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " РеÑторанти" #: src/interface.c:1220 msgid " Round " msgstr " Кръг " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Ðаучни дейноÑти" #: src/interface.c:1200 msgid " Season " msgstr " Сезон " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Софтуер" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " СиÑтеми" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr "Технологии" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Телекомуникации" #: src/interface.c:1210 msgid " Week " msgstr " Седмица " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " в доп. време" #: src/callback_func.c:466 msgid " less" msgstr " по-малко" #: src/options_interface.c:527 msgid " months" msgstr " меÑеца" #: src/callback_func.c:464 msgid " more" msgstr "повече" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " Ñлед дузпи" #: src/misc_interface.c:934 msgid " seats" msgstr " меÑта" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f меÑеца / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d Ñлед продължениÑ" #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d Ñлед дузпи" #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "" #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (Дом) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (Ðеут) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (очаквано възÑтановÑване за %d Ñедмици)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Група %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s приема Вашата оферта." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s не можа да Ñи позволи да купи %s или ÑÑŠÑтавът им е пълен." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s Ви уволнÑват заради зле управление на финанÑите.\n" "Ðамирате нова работа при %s от %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s Ви уволнÑват заради неуÑпехи.\n" "Ðамирате нова работа при %s от %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s е бил добавен към ÑпиÑъка за транÑфер за %d Ñедмици." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s напуÑна отбора Ви, защото договорът му изтече." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s от %s отхвърли предложението Ви (%s / %s). Ðе е доволен от предложената " "заплата." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s Ви предлагат работа в %s.\n" "Приемате предизвикателÑтвото и напуÑкате %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s Ð¾Ñ‚Ñ…Ð²ÑŠÑ€Ð»Ñ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾ Ви и нÑма да Ð¿Ñ€ÐµÐ³Ð¾Ð²Ð°Ñ€Ñ Ð¿Ð¾Ð²ÐµÑ‡Ðµ. ТрÑбва да го " "продадете преди договорът му да изтече (ако не, той проÑто ще напуÑне " "отборът)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s Ð¾Ñ‚Ñ…Ð²ÑŠÑ€Ð»Ñ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾ Ви. Може да направите още %d предложениÑ." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s ще изпълнÑва дузпи и Ñвободни удари, когато е в игра." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s иÑкат да закупÑÑ‚ %s. Предлагат %s за него, което е %s повече от цената на " "играча. Приемате ли?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "Договорът на %s изтича Ñлед %.1f години." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "КонтузиÑта на %s беше толкова тежка, че той повече нÑма да може да играе " "футболна профеÑионално ниво. Той напуÑка отборът Ви." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (нÑма лимит)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d Ñедмици\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr " - проÑÑ‚ и приÑтраÑÑ‚Ñващ GTK2 футболен мениджър" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 година" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 години" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 години" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 години" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (Г) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Имаше пожар на\n" "Ñтадиона." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Имаше размирици\n" "на Ñтадиона." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Имаше техничеÑки\n" "проблеми на Ñтадиона." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Текущи залози" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "ПоÑледни залози" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Седмица %d Кръг %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Ðов младеж Ñе региÑтрира в младежката Ви академиÑ." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Ðов младеж иÑкаше да Ñе региÑтрира в младежката Ви академиÑ, но там нÑмаше " "мÑÑто." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "ДобавÑне на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼Ð°Ñ‡" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "Ð’Ñички в атака" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "Ð’Ñички в защита" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ÐÐТИ" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "Ðтакуващ" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "ОтноÑно" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Приемане" #: src/game_gui.c:818 msgid "Accept?" msgstr "Приемате ли?" #: src/interface.c:1035 msgid "Add last match" msgstr "ДобавÑне на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼Ð°Ñ‡" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "ДобавÑне на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñан мач към файла ÑÑŠÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½Ñщите Ñе мачове." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "ДобавÑне на потребител" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "ВъзраÑÑ‚" #: src/options_interface.c:735 msgid "Age " msgstr "ВъзраÑÑ‚ " #: src/window.c:399 msgid "All Files" msgstr "Ð’Ñички файлове" #: src/interface.c:502 msgid "All Out Attack" msgstr "Ð’Ñички в нападение" #: src/interface.c:478 msgid "All Out Defend" msgstr "Ð’Ñички в защита" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Ðнти" #: src/interface.c:658 msgid "Any" msgstr "Ð’Ñичко" #: src/options_interface.c:1569 msgid "Appearance" msgstr "" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "КандидатÑтване за работата?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "" "Поне един потребител не е играл ÑÐ²Ð¾Ñ Ñ…Ð¾Ð´ тази Ñедмица. Продължавате ли?" #: src/game_gui.c:942 #, fuzzy msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Ðа форумите на Bygfoot можете да докладвате грешки, задавате въпроÑи и да " "обÑъджате играта (не е нужно да Ñе региÑтрирате):\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Ðтакуващ" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "ПоÑещаемоÑÑ‚\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "КачеÑтво " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Ðвтоматични Ñмени" #: src/options_interface.c:443 msgid "Autosave" msgstr "Ðвтоматично запазване" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "" "Интервал на \n" "автоматичното запазване " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Средни качеÑтва: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Средни качеÑтва: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Ср. умение" #: src/treeview2.c:516 msgid "Av.skill" msgstr "Средни качеÑтва" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Ðалични отбори" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Средно" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Средна поÑещаемоÑÑ‚" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Средна поÑещаемоÑÑ‚ %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Средно умение" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Средно умение:" #: src/treeview.c:1851 msgid "Away" msgstr "ГоÑтуване" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "БаланÑиран" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "ÐÐКÐЗÐÐИЕ(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Връщане към оÑновното меню" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Обратно към начален екран" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Зле" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "БаланÑ" #: src/interface.c:490 msgid "Balanced" msgstr "БаланÑиран" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Ðаказан\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Започване на нова Ñедмица (Space)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Ðай-доброто" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Ðай-добрите защитни отбори" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Ðай-добри голмайÑтори" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Ðай-добри вратари" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Ðай-добрите нападателни отбори" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "ЗалаганиÑ" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "" "Ð—Ð°Ð»Ð°Ð³Ð°Ð½Ð¸Ñ -- ЛÑво натиÑкане на коефицент, за да поÑтавите или премахнете " "залог" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "ДвуÑедмичен баланÑ" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "ДвуÑедмичен баланÑ\n" "(Седмица·%d и %d)" #: src/interface.c:669 msgid "Boost" msgstr "ТлаÑък" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "" "Режимът на тлаÑъка \"Включен\" е изключен в дефинициÑта за тази Ñтрана." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "ТлаÑъкът е променен на %s (Ñтрува·%d·на минута)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "ТлаÑъкът е променен на %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Разход по тлаÑъка" #: src/player.c:1430 msgid "Broken ankle" msgstr "Счупен глезен" #: src/player.c:1433 msgid "Broken arm" msgstr "Счупена ръка" #: src/player.c:1427 msgid "Broken leg" msgstr "Счупен крак" #: src/player.c:1424 msgid "Broken rib" msgstr "Счупено ребро" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Счупено рамо" #: src/interface.c:842 msgid "Browse players" msgstr "Разглеждане на играчи" #: src/interface.c:745 msgid "Browse teams" msgstr "Разглеждане на отборите" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "ЗапомнÑщи Ñе Bygfoot мачове" #: src/misc3_interface.c:790 src/window.c:1023 #, fuzzy msgid "Bygfoot News" msgstr "Запазени игри на Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Запазени игри на Bygfoot" #: src/window.c:1031 #, fuzzy msgid "Bygfoot constants" msgstr "Разход по тлаÑъка" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot е много интуитивна и проÑта игра, така че нÑма подробна документациÑ." "Въпреки това, ако имате проблем има къде да отидете.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "Тек. поз." #: src/options_interface.c:665 msgid "CPos " msgstr "Тек. поз. " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "Тек. умение" #: src/options_interface.c:679 msgid "CSkill " msgstr "Тек. умение " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "" #: src/training_interface.c:84 #, fuzzy msgid "Camp points" msgstr " " #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Капацитет (меÑта)" #: src/options_interface.c:728 msgid "Cards " msgstr "Картони" #: src/treeview.c:2182 msgid "Career values" msgstr "СтойноÑти за кариера" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "ПромÑна на чеÑтотата на коментара. Колкото по-виÑока е тази ÑтойноÑÑ‚, " "толкова повече ÑÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ñ‰Ðµ виждате." #: src/misc_interface.c:707 #, fuzzy msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "ПромÑна на ÑкороÑтта на мача на живо. По-малки ÑтойноÑти = по-бърза игра." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Избор на Ñтрана" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Избор на файл" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Избор на език на играта (може да не работи в Windows верÑиÑта)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Избор на начално първенÑтво" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Избор на отбор" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Избор на потребител" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "ÐатиÑнете Добре, за да кандидатÑтвате за работа. ÐатиÑнете Отказ, за да " "затворите прозореца." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "ÐатиÑнете на потребител, за да го махнете от играта." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "ÐатиÑнете върху потребител да го махнете." #: src/options_interface.c:1640 #, fuzzy msgid "Close" msgstr "Тек. поз." #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Коментар" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Ð¡ÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð¾Ñ‚ коментара, които да Ñе теÑтват; пропуÑнете, за да Ñе теÑтват " "вÑички коментари" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Файлово име на файла Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ‚Ðµ" #: src/treeview.c:3017 msgid "Company" msgstr "КомпаниÑ" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "КомпенÑации" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "СъÑтезание" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "КомпреÑиране на запазената игра..." #: src/player.c:1409 msgid "Concussion" msgstr "СътреÑение" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Подтвърждаване на затварÑнето при незапазени данни" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Подтвърждение при премахването на младежи" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Подтвърждение при липÑа на форма." #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "" #: src/options_interface.c:353 msgid "Constants file" msgstr "Файл за конÑтанти" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Договор" #: src/options_interface.c:763 msgid "Contract " msgstr "Договор " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Договор/Пари" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Срок на договора\n" "(МеÑеци)" #: src/window.c:937 msgid "Contract offer" msgstr "Предложение за договор" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Договорите Ñа изключени в определениÑта за тази Ñтрана." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "ДопринеÑли" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Копиране на %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Разходи" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Ðе може да Ñе намери pixmap файлът: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Страна" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "" #: src/options_interface.c:1171 #, fuzzy msgid "Create league news" msgstr "Текуща лига" #: src/options_interface.c:1163 msgid "Create user news" msgstr "" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "ÐоÑителите на купата" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Текущ капацитет" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Текущ файл" #: src/treeview.c:2829 msgid "Current league" msgstr "Текуща лига" #: src/treeview.c:1637 msgid "Current market interest" msgstr "" #: src/treeview.c:2165 msgid "Current position" msgstr "Текуща позициÑ" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Текуща ÑигурноÑÑ‚" #: src/misc3_interface.c:568 #, fuzzy msgid "Current settings:" msgstr "Текуща позициÑ" #: src/treeview.c:2167 msgid "Current skill" msgstr "Текущо умение" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "Защ" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "ЗÐЩИТЕÐ" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Дълг (изплащане за %d Ñедмици)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Следене за грешки" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Решаване по-къÑно" #: src/options_interface.c:1098 #, fuzzy msgid "Default hotel" msgstr "Стандартен залог" #: src/options_interface.c:1121 #, fuzzy msgid "Default recreation:" msgstr "Стандартен залог" #: src/options_interface.c:1141 #, fuzzy msgid "Default training:" msgstr "Стандартен залог" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Стандартен залог" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Защитен" #: src/interface.c:640 msgid "Defenders" msgstr "Защитници" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Знаете ли, че?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Ðе беше открит файла \"bygfoot_help\"." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "ÐаиÑтина ли изритате горкото момче от академиÑта Ñи?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Да не Ñе зареждат определениÑта" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Да не Ñе зареждат определениÑта за отборите" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Готово." #: src/treeview2.c:396 msgid "Draw" msgstr "РавенÑтво" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Кредитен лимит" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "Рав" #. draw #: src/team.c:1150 msgid "Dw " msgstr "Рав" #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Равни %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "Изч. тал." #: src/treeview2.c:70 msgid "EXPORT" msgstr "ИзнаÑÑне" #: src/options_interface.c:432 msgid "Edit" msgstr "" #: src/interface.c:829 src/interface.c:2038 #, fuzzy msgid "Edit name" msgstr "Име на шрифт" #: src/options_interface.c:418 #, fuzzy msgid "Edit the constants used in the game" msgstr "Презареждане на файла Ñ ÐºÐ¾Ð½Ñтантите" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Въведете Ñтруктура. Сумата на тези цифри трÑбва да е 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Въвеждане на лична Ñтруктура" #: src/window.c:865 msgid "Erm..." msgstr "Ðми..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Enter / Space" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "ИзчиÑлен талант" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "Изч. тал." #: src/treeview.c:2378 msgid "Event" msgstr "Събитие" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Очаквана продължителноÑÑ‚" #: src/treeview.c:1704 msgid "Expenses" msgstr "Разходи" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "Ð" #: src/interface.c:398 msgid "F_igures" msgstr "С_татиÑтики" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "ТакÑа" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Файл Ñъдържащ запазени думи за мачове на живо (може да е отноÑителен адреÑ)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Файл Ñъдържащ наÑтройките, които определÑÑ‚ много от аÑпектите в игратаÐЕ ГО " "ПРОМЕÐЯЙТЕ ОСВЕÐ, ÐКО ÐÐИСТИÐРЗÐÐЕТЕ КÐКВО ВЪРШИТЕ!!!" #: src/interface.c:928 msgid "Fin_Stad" msgstr "Фин_Стад" #: src/cup.c:1105 msgid "Final" msgstr "Финал" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "ФинанÑите Ñа изключени в дефинициите за тази Ñтрана." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "УволнÑване" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Първа ÑтойноÑÑ‚: Ñредно текущо умение на първите 11 играча. Втора ÑтойноÑÑ‚: " "Ñредно умение на вÑички играчи." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "ТонуÑ" #: src/treeview.c:2168 msgid "Fitness" msgstr "ТонуÑ" #: src/options_interface.c:693 msgid "Fitness " msgstr "Ð¢Ð¾Ð½ÑƒÑ " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Дати на мачове (ÑъзтезаниÑ)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Дати на мачовете (Ñедмица)" #: src/options_interface.c:1541 msgid "Float" msgstr "" #: src/options_interface.c:379 msgid "Font name" msgstr "Име на шрифт" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Шрифтове използвани в дървовидната Ñтруктура" #: src/interface.c:652 msgid "Forwards" msgstr "Ðападатели" #: src/treeview.c:840 msgid "Fouls" msgstr "Фалове" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Фрактура на глезена" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "Врат." #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "Доп. гол." #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "Гол. разл." #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "Вк. гол." #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Мача" #: src/options_interface.c:564 #, fuzzy msgid "Gameplay" msgstr "Мачове" #: src/treeview_helper.c:931 msgid "Games" msgstr "Мачове" #: src/options_interface.c:700 msgid "Games " msgstr "Мачове " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Мачове/Гола\n" #: src/options_interface.c:486 msgid "Global" msgstr "Общи" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Голове" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Връщане към Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ ÐµÐºÑ€Ð°Ð½" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Гол/Мач" #: src/treeview.c:1775 msgid "Goalie" msgstr "Вратар" #: src/interface.c:634 msgid "Goalies" msgstr "Вратари" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Голове" #: src/options_interface.c:714 msgid "Goals " msgstr "Голове " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Голове (от игра)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Добро" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "" #: src/player.c:1418 msgid "Groin injury" msgstr "ÐšÐ¾Ð½Ñ‚ÑƒÐ·Ð¸Ñ Ð½Ð° Ñлабините" #: src/player.c:1415 msgid "Hamstring" msgstr "ÐхилеÑ" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Погледнете ÑпиÑъка за транÑфер, има предложение за %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "" #: src/treeview.c:2171 msgid "Health" msgstr "Здраве" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Помощ" #: src/treeview.c:1849 msgid "Home" msgstr "ДомакинÑтво" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Колко коментара да Ñе генерират за Ñъбитие" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Колко цифри Ñлед запетаÑта има за умение и Ñ‚.н." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Колко файла ползва авт. запазване" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Колко е ÑтандартниÑÑ‚ залог" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Колко чеÑто Ñе запазва автоматично играта" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Колко чеÑто ÑпиÑъка Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸ Ñе опреÑнÑва по време на мач на живо (в минути " "от мача на живо)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "ÐšÐ¾Ð½Ñ‚ÑƒÐ·Ð¸Ñ (%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Ðко е отметанто, Ñедмиците без мачове на потребителÑките отбори, ще Ñе " "ÑмÑтат автоматично (без да трÑбва да Ñе натиÑка 'Следваща Ñедмица')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Ðко не хареÑвате никой от ÑпонÑорите, можете да карате нÑколко Ñедмици без " "ÑпонÑор и да чакате нови предложение." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "ВнаÑÑне на файл" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "ВнаÑÑне на мачовете от файла за запомнÑщи Ñе мачове" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Тече подобрение.\n" "%d меÑта и %d%% от безопаÑноÑтта не Ñа готови.\n" "Очакван край: %d Ñедмици." #: src/treeview.c:1703 msgid "Income" msgstr "Приходи" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Увеличаване" #: src/treeview.c:843 msgid "Injuries" msgstr "Контузии" #: src/options_interface.c:1527 msgid "Integer" msgstr "" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "" #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Предложение за работа" #: src/interface.c:370 msgid "Job offers" msgstr "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° работа" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° работа Ñа наÑтроени на %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Разходи по пътуването" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "ИзхвърлÑне от академиÑта" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "Заг" #. lost #: src/team.c:1154 msgid "L " msgstr "Заг" #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "Загуба %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "Заре_ждане на поÑледното запазване" #: src/options_interface.c:436 msgid "Language" msgstr "Език" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Език, който да Ñе използва (код като 'bg')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "ПоÑледните %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "ПоÑледниÑÑ‚ запазен файл не бе открит." #: src/treeview.c:1898 msgid "Latest results" msgstr "Ðай-новите резултати" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Лига" #: src/options_interface.c:770 msgid "League " msgstr "Лига " #: src/treeview.c:2590 msgid "League champions" msgstr "Шампиони на лигата" #: src/interface.c:991 msgid "League stats" msgstr "СтатиÑтика за лигата" #: src/league_table_interface.c:39 #, fuzzy msgid "League table" msgstr "СтатиÑтика за лигата" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "" "ЛÑво натиÑкате за отправÑне на предложение. ДÑÑно за премахване на такова." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "ЛÑво натиÑкане за премеÑтване на играчите от младежката академиÑ; дÑÑно " "натиÑкане за контекÑтно меню." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "" #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "ЛÑво натиÑкане: взимане на заем; ДÑÑно: връщане; Средно: прозорец за Ñтадиона" #: src/options_interface.c:1021 msgid "List 1 " msgstr "СпиÑък 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "СпиÑък 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Мач на живо" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Мачът на живо е наÑтроен на %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Фактор на ÑкороÑтта при мачовете на живо" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "ЧеÑтота на коментара" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Зареждане на игра (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Зареждане на поÑледното запазване" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Зареждане Ñамо на имената на играчите от файла за определениÑта" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Зареждане на определениÑта за отбори" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Зареждане на отбори от файловете Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ (официалниÑÑ‚ пакет на Bygfoot " "не Ñъдържа Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð° официални отбори, трÑбва да ги вземете от Ñайтаили " "чрез Ñкрипта bygfoot-update)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Зареждане на купа: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Зареждане на предложениÑта за работа..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Зареждане на лига: %s..." #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Зареждане на първенÑтвата и купите..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Зареждане на оÑтаналото..." #: src/load_save.c:301 #, fuzzy msgid "Loading newspaper..." msgstr "Зареждане на потребители..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Зареждане на наÑтройките..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Зареждане на Ñезонни ÑтатиÑтики..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Зареждане на ÑпиÑък за транÑфер..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Зареждане на потребители..." #: src/callback_func.c:397 msgid "Loan" msgstr "Заем" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "П" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "ОтправÑне на предложение" #: src/interface.c:1047 msgid "Manage matches" msgstr "Управление на мачовете" #: src/interface.c:917 msgid "Manage users" msgstr "Управление на потребителите" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "МакÑимизиране на Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†" #: src/user.c:1214 msgid "Memorable match added." msgstr "Добавен е запомнÑщ Ñе мач" #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "ЗапомнÑщи Ñе мачове" #: src/treeview.c:1777 msgid "Midfield" msgstr "Средата на терена" #: src/interface.c:646 msgid "Midfielders" msgstr "Полузащитници" #: src/treeview.c:1629 msgid "Money" msgstr "Пари" #: src/interface.c:1296 msgid "Money " msgstr "Пари" #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Пари (приблизително)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Пари / Ñедмица" #: src/interface.c:2092 msgid "Move to team" msgstr "ПремеÑтване в отбор" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "ПремеÑтване в младежката академиÑ" #: src/interface.c:438 msgid "My league results" msgstr "Вашите резултати от лигата" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Име" #: src/options_interface.c:658 msgid "Name " msgstr "Име " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Ðеутрален Ñтадион" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°\n" "нови договори" #: src/misc3_interface.c:612 #, fuzzy msgid "New settings:" msgstr "ЗалаганиÑ" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "" #: src/misc3_interface.c:315 msgid "Next" msgstr "Следващ" #: src/interface.c:1434 msgid "Next (W)" msgstr "S" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Следваща лига/купа (2)" #: src/interface.c:895 msgid "Next user" msgstr "Следващ потребител" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Следващата Ñедмица ще го уволните и ще наемете нов." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Ð’ момента нÑма течащи подобрениÑ." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "ÐÑма запазени мачове." #: src/treeview2.c:600 msgid "No news available." msgstr "" #: src/misc_callbacks.c:468 msgid "None" msgstr "ÐÑма" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Ðе е валидно име за файл ÑÑŠÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½Ñщи Ñе мачове на Bygfoot" #: src/window.c:882 msgid "Numbers..." msgstr "Ðомера..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "Изключен" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "Включен" #: src/interface.c:686 msgid "Off" msgstr "Изключен" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Предложение за нов договор" #: src/interface.c:680 msgid "On" msgstr "Включен" #: src/misc_interface.c:211 msgid "Only names" msgstr "Само имена" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "ОтварÑне на файл ÑÑŠÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½Ñщи Ñе мачове" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Противник" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "СпиÑък Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸Ñ‚Ðµ на противника" #: src/window.c:914 msgid "Options" msgstr "ÐаÑтройки" #: src/treeview.c:1904 #, fuzzy msgid "Overall results" msgstr "Резултати от Ñезона" #: src/interface.c:379 msgid "Overwrite" msgstr "ПрезапиÑване" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "ПрезапиÑването е наÑтроено на %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "Мача" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "Точки" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Пауза на полувремето" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Пауза при контузиÑ" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Пауза при червен картон" #: src/callback_func.c:427 msgid "Payback" msgstr "Връщане" #: src/treeview.c:839 msgid "Penalties" msgstr "Дузпи" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Отизбран е изпълнител на дузпи/Ñвободни удари" #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Физиотерапевт" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Играчът приема нови предложениÑ" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "ПрецизноÑÑ‚ на качеÑтвата на играчите" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Показаните качеÑтва на играча" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Играчът вече не преговарÑ" #: src/misc2_interface.c:165 msgid "Player list" msgstr "СпиÑък Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸" #: src/interface.c:1363 msgid "Player list 1" msgstr "СпиÑък Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸ 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "СпиÑък Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸ 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "" "ЧеÑтота на опреÑнÑване на\n" "ÑпиÑъка Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Стил на игра" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Поз" #: src/options_interface.c:672 msgid "Pos " msgstr "Поз " #: src/treeview.c:2164 msgid "Position" msgstr "ПозициÑ" #: src/treeview.c:838 msgid "Possession" msgstr "Притежание на топката" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Предпочитане на ÑъобщениÑ" #: src/interface.c:354 msgid "Preferences" msgstr "ÐаÑтройки" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Предишен" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Предишен (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Предишна лига/купа (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Предишен потребител" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "" #: src/treeview.c:1517 msgid "Prize money" msgstr "Пари от наградата" #: src/player.c:1412 msgid "Pulled muscle" msgstr "МуÑкулно разтежение" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "ПоÑтавÑне в ÑпиÑъка за транÑфер" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Четвъртфинал" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "ЗатварÑне на програмата (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "ПРЕМÐХВÐÐЕ" #: src/treeview2.c:68 msgid "REPLAY" msgstr "ПРЕИГРÐÐ’ÐÐЕ" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Разбъркване на отборите в купите" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Разбъркване на реда на отборите в купите. Това има значение Ñамо при " "международни дефиниции като Световното първенÑтво, където редът на отборите " "е неподвижен." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "КлаÑиране" #: src/interface.c:1281 msgid "Rank " msgstr "КлаÑиране" #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Готово" #: src/interface.c:728 msgid "Rearrange team" msgstr "Пренареждане на отбора" #: src/training_interface.c:98 msgid "Recreation" msgstr "" #: src/interface.c:627 msgid "Recruiting preference" msgstr "ÐаÑтройки на набирането на играчи" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Червени" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Отказване за Ñега" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Презареждане" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Презареждане и затварÑне" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" #: src/options_interface.c:1616 #, fuzzy msgid "Reload from file" msgstr "Презареждане на мачове от файл" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Презареждане на мачове от файл" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Презареждане на мачове от файл и затварÑне" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Презареждане на файла Ñ ÐºÐ¾Ð½Ñтантите" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Премахване от ÑпиÑъка за транÑфер" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Премахване на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ %s от играта?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Преиграване, изтриване или добавÑне на запомнÑщи Ñе мачове" #: src/interface.c:712 msgid "Reset player list" msgstr "ЗанулÑване на ÑпиÑъка Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "ЗанулÑване на ÑпиÑъка Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸ към формациÑта в началото на паузата на мача " "на живо (дÑÑно натиÑкане на ÑпиÑъка Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Резултат" #: src/treeview.c:2013 msgid "Results" msgstr "Резултати" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Enter" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Enter / Space" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "ДÑÑно и лÑво натиÑкане за ÑмÑна на тлаÑъка" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "ДÑÑно и лÑво натиÑкане за ÑмÑна на Ñтила на игра" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "ДÑÑно натиÑкане за кандидатÑтване за работа, лÑво натиÑкане за Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° " "отбора." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "ДÑÑно натиÑкане за наÑтройване на 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Кръг" #: src/cup.c:1094 msgid "Round robin" msgstr "Квалификации" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "БезопаÑноÑÑ‚ (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Подобрението на безопаÑноÑтта е прекалено виÑоко, върнато към най-виÑоката " "възможна ÑтойноÑÑ‚" #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "СпаÑÑÐ²Ð°Ð½Ð¸Ñ %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Запазване и затварÑне" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Запазване на промените към файл и затварÑне" #: src/options_interface.c:1581 #, fuzzy msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Файл Ñъдържащ наÑтройките, които определÑÑ‚ много от аÑпектите в игратаÐЕ ГО " "ПРОМЕÐЯЙТЕ ОСВЕÐ, ÐКО ÐÐИСТИÐРЗÐÐЕТЕ КÐКВО ВЪРШИТЕ!!!" #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Запазване на игра (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "" "Запазване във файл\n" "на глобалните наÑтройки" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Запазването презапиÑва" #: src/training_interface.c:197 #, fuzzy msgid "Save settings as default" msgstr "" "Запазване във файл\n" "потребителÑките наÑтройки" #: src/options_interface.c:1595 #, fuzzy msgid "Save to file" msgstr "" "Запазване във файл\n" "потребителÑките наÑтройки" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "" "Запазване във файл\n" "потребителÑките наÑтройки" #: src/interface.c:389 msgid "Save window geometry" msgstr "Запазване на геометриÑта на прозореца" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Запазване на размера, позициÑта и Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ» на прозореца" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Запазване на предложениÑта за работа..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Запазване на първенÑтвата и купите..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Запазване на оÑтаналото..." #: src/load_save.c:143 #, fuzzy msgid "Saving newspaper..." msgstr "Запазване на потребителите..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Запазване на наÑтройките..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Запазване на Ñезонните ÑтатиÑтики..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Запазване на ÑпиÑъка за транÑфер..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Запазване на потребителите..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Разузнавач" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Сезон" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Сезон %d" #: src/interface.c:1002 msgid "Season history" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Ñезона" #: src/interface.c:449 msgid "Season results" msgstr "Резултати от Ñезона" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Избор на шрифт" #: src/cup.c:1108 msgid "Semi-final" msgstr "Полуфинал" #: src/interface.c:664 msgid "Set investment" msgstr "ÐаÑтройване на инвеÑтициите" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "ÐаÑтройте процента от приходите Ñи, които иÑкате да инвеÑтирате в младежката " "Ñи академиÑ." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "ÐаÑтройте на 0, за да изключите предупреждениÑта" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "ИзÑтрели" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "ИзпълнÑва дузпи" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "ИзÑтрели %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "ИзÑтрели" #: src/options_interface.c:707 msgid "Shots " msgstr "ИзÑтрели" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Показване на вÑички лиги в прегледа на датите на мачовете" #: src/interface.c:879 msgid "Show coming matches" msgstr "Показване на предÑтоÑщи мачове" #: src/interface.c:935 msgid "Show finances" msgstr "Показване на финанÑи" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Показване на информациÑ" #: src/interface.c:758 msgid "Show job exchange" msgstr "Показване на предложениÑта за работа" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Показване на предложениÑта за работа" #: src/interface.c:857 msgid "Show last match" msgstr "Показване на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼Ð°Ñ‡" #: src/interface.c:868 msgid "Show last match stats" msgstr "Показване на ÑтатиÑтики от поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼Ð°Ñ‡" #: src/options_interface.c:576 msgid "Show live game" msgstr "Показване на мача на живо" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Показване на мачовете от вÑички първенÑтва..." #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Показване на мачове от купите" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Показване Ñамо на Ñкорошните залози" #: src/options_interface.c:1175 #, fuzzy msgid "Show only recent news" msgstr "Показване Ñамо на Ñкорошните залози" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Показване на общо мачове/голове" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Показване на картинки за лентата за прогреÑа" #: src/interface.c:946 msgid "Show stadium" msgstr "Показване на Ñтадион" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Показване на лентата за тенденциите" #: src/interface.c:972 msgid "Show the betting window" msgstr "Показване на прозореца за залаганиÑ" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ меÑта за мениджър" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Показване на ÑпиÑъка за транÑфер (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Предупреждение, ако договорът на играч изтича Ñлед по-малко от " #: src/interface.c:589 msgid "Show youth academy" msgstr "Показване на младежката академиÑ" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Умение" #: src/treeview.c:2166 msgid "Skill" msgstr "Умение" #: src/options_interface.c:686 msgid "Skill " msgstr "Умение " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "ПропуÑкане на Ñедмици без мачове на потребители" #: src/misc_interface.c:249 msgid "Space" msgstr "Space" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "ОпределÑне на допълнителна поддържаща папка (има приоритет над Ñтандартните)" #: src/misc_interface.c:710 msgid "Speed" msgstr "СкороÑÑ‚" #: src/treeview.c:1667 msgid "Sponsor" msgstr "СпонÑор" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "СпонÑорÑтво" #: src/window.c:976 msgid "Sponsorship offers" msgstr "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° ÑпонÑорÑтво" #: src/interface.c:977 #, fuzzy msgid "St_ats" msgstr "СтатуÑ" #: src/treeview.c:1477 msgid "Stadium" msgstr "Стадион" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Капацитет на Ñтадиона" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Разходи по Ñтадиона" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Управлението на Ñтадиона е изключено в дефинициите за тази Ñтрана." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "БезопаÑноÑÑ‚ на Ñтадиона" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° Ñтадиона" #: src/misc_interface.c:266 msgid "Start" msgstr "Ðачало" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "_Ðова игра" #: src/misc3_interface.c:623 #, fuzzy msgid "Start in week" msgstr "_Ðова игра" #: src/misc3_interface.c:577 #, fuzzy msgid "Start in week:" msgstr "_Ðова игра" #: src/misc_interface.c:587 msgid "Statistics" msgstr "СтатиÑтика" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "СтатуÑ" #: src/options_interface.c:721 msgid "Status " msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ " #: src/misc_interface.c:951 msgid "Status:" msgstr "СтатуÑ:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "СериÑ" #: src/options_interface.c:1555 #, fuzzy msgid "String" msgstr "ÐхилеÑ" #: src/main.c:99 msgid "String id of the country to load" msgstr "" #: src/callbacks.c:936 msgid "Structure" msgstr "Структура" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "РазмÑната адаптира Ñтруктурата" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "СиÑтема" #: src/interface.c:427 msgid "Tables" msgstr "Таблици" #: src/treeview2.c:517 msgid "Talent %" msgstr "Талант %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Отбор" #: src/options_interface.c:777 msgid "Team " msgstr "Отбор " #: src/treeview.c:1892 msgid "Team structure" msgstr "Структура на отбора" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Стила на отбора Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Отбор1" #: src/treeview2.c:399 msgid "Team2" msgstr "Отбор2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "ТеÑтване на XML файл Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Банката Ви не Ви отпуÑка повече пари." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Букмейкърът не Ви позволÑва да залагате повече от %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Текущата игра не е запазена и ще бъде загубена. Ще продължите ли?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "" "Колкото по-виÑока е тази ÑтойноÑÑ‚, толкова повече коментиране ще виждате." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "ОбновÑването на предложениÑта за работа е %d Ñедмици." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Колкото по-ниÑка е тази ÑтойноÑÑ‚, толкова по-бързо ще теже коментара на живо" #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "СобÑтвениците на %s одобрÑват кандидатурата Ви." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "СобÑтвениците на %s одобрÑват кандидатурата Ви. Тъй като %s не желаÑÑ‚ да " "увиÑнат Ñ Ñ„Ð¸ÐºÑ‚Ð¸Ð²ÐµÐ½ треньор, Ви уволнÑват незабавно и през оÑтатъка от Ñезона " "прекарвате занимавайки Ñе Ñ Ð³Ñ€Ð°Ð´Ð¸Ð½Ð°Ñ‚Ð° Ñи." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "СобÑтвениците на %s Ñа дълбоко впечатлени от Вашите уÑпехи Ñ %s и биха " "иÑкали да Ви наемат. Ето малко Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð°Ð· %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "СобÑтвениците на %s не Ñа доволни от Ñкорошното предÑтавÑне на отбора. Има " "Ñлухове, че търÑÑÑ‚ нов мениджър за отбора." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "СобÑтвениците на %s отказват предложението Ви (%s / %s) за %s. Ðито такÑата, " "нито заплатата, коÑто Ñте предложили Ñа приемливи, казват те." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "СобÑтвениците на %s отказват предложението Ви (%s / %s) за %s. Те не Ñа " "доволни Ñ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð°Ñ‚Ð° транÑферна такÑа." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "СобÑтвениците на %s отказват предложението Ви (%s / %s) за %s. Имало е по-" "добро предложение за играча." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "СобÑтвениците на %s учтиво отхвърлÑÑ‚ кандидатурата Ви. Според Ñ‚ÑÑ… не Ñте " "доÑтатъчно преуÑпÑл." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Играчът е вече в ÑпиÑъка." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "Играчът е заключен (в момента ÑобÑтвениците на отбора обмиÑлÑÑ‚ предложение)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Играчът не е в ÑпиÑъка." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Играчът има лоша ÑериÑ." #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Играчът има добра ÑериÑ." #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Играчът е прекалено Ñтар за младежката академиÑ." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Играчът нÑма да Ð¿Ñ€ÐµÐ³Ð¾Ð²Ð°Ñ€Ñ Ñ Ð’Ð°Ñ Ð¿Ð¾Ð²ÐµÑ‡Ðµ." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Структурата %d е невалидна." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "СобÑтвениците на отбора Ви уволнÑват, заради лошо управление на финанÑите. " "За щаÑтие ÑобÑтвениците на %s Ñа чули за оÑвобождаването Ви и предлагат " "работа.Ето малко Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "СобÑтвениците на отбора Ви уволнÑват, заради неуÑпехи. За щаÑтие " "ÑобÑтвениците на %s Ñа чули за оÑвобождаването Ви и предлагат работа.Ето " "малко Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "КрайниÑÑ‚ Ñрок за транÑфери е преминал." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Има нÑколко компании заинтереÑувани в ÑпонÑорÑтво на отбора Ви. Изберете " "една:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Има контузени или наказани играчи в един от потребителÑките отбори. Ще " "продължите ли?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "ÐÑма първенÑтва в дефинициÑта за тази Ñтрана (Ñамо купи)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "ÐÑма нито първенÑтва, нито купи Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð¸ в тази Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð·Ð° Ñтрана." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Ð’Ñе още нÑма запазени елементи от иÑториÑта на Ñезона." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Има нÑкои Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° играча, които Ñте отказали или ще прегледате " "другата Ñедмица." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "ÐÑма мÑÑто във Вашата младежка академиÑ." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Имаше прекалено много Ñмени. Разрешени Ñа Ñамо 3 на мач. СпиÑъкът Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸ е " "занулен." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Приходи от билети" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "СкъÑано важно Ñухожилие" #: src/training_interface.c:117 msgid "Training" msgstr "" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "" #: src/callbacks.c:878 #, fuzzy msgid "Training camp is disabled in this country definition." msgstr "ТранÑферите в определениÑта за тази игра Ñа изключени." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "КрайниÑÑ‚ Ñрок за транÑфери е до %d Ñедмица." #: src/window.c:968 msgid "Transfer offer" msgstr "Предложение за транÑфер" #: src/treeview.c:1598 msgid "Transfers" msgstr "ТранÑфери" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "ТранÑферите в определениÑта за тази игра Ñа изключени." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Опитайте да Ñложите започващите мача играчи на техните предпочитани позиции " "и да подредите Ñмените (Ctrl-R или Ñредно натиÑкане)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "РазкомпреÑиране на запазената игра..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "ПотребителÑÑ‚ %s не е обмиÑлил предложението Ви вÑе още." #: src/interface.c:1013 #, fuzzy msgid "User history" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° Ñезона" #: src/window.c:945 msgid "User management" msgstr "Управление на потребителите" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Потребители - натиÑнете за премахване" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "СтойноÑÑ‚" #: src/options_interface.c:749 msgid "Value " msgstr "Цена " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "ЧеÑтота" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "Поб" #. won #: src/team.c:1157 msgid "W " msgstr "Поб " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "Победа %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Заплата" #: src/options_interface.c:756 msgid "Wage " msgstr "Заплата " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Залог" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Залог/\n" "Победа/Загуба" #: src/treeview.c:1522 msgid "Wages" msgstr "Заплати" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Сед" #: src/treeview.c:2350 msgid "Week" msgstr "Седмица" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Седмица %d Кръг %d" #: src/treeview.c:1030 #, fuzzy, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "Седмица %d Кръг %d" #: src/misc3_interface.c:631 #, fuzzy msgid "Weekly installment" msgstr "ÐаÑтройване на инвеÑтициите" #: src/misc3_interface.c:585 #, fuzzy msgid "Weekly installment:" msgstr "ÐаÑтройване на инвеÑтициите" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Това е Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Дали 'Запазване' презапиÑва Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð·Ð°Ð¿Ð°Ð·ÐµÐ½ файл или изÑкача прозорец " "'Запазване като..'" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "Дали излиза предупреждение при изхвърлÑнето на младеж от академиÑта" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Дали играта започва Ñ Ð¼Ð°ÐºÑимизиран главен прозорец (не работи Ñ Ð²Ñички " "прозоръчни мениджъри)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Дали в прегледа на датите на мачовете по Ñедмици да Ñе виждат вÑички лиги " "или Ñамо потребителÑките" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Дали разменÑнето на двама играчи автоматично адаптира Ñтруктурата на отбора " "към позициите им" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Дали да има пауза на мачовете на живо при почивките" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Дали мачовете на живо паузират, когато потребителÑки играч е контузен" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Дали мачовете на живо паузират, когато потребителÑки играч е изгонен" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Дали Ñмените (пр. за контузени играчи) Ñе правÑÑ‚ от компютъра. Това Ñе прави " "автоматично, ако мача на живо е изключен." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Дали периодично играта да Ñе запазва автоматично" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Дали да Ñе запазват глобалните наÑтройки във файл (така, че ÑледващиÑÑ‚ път " "да да Ñе зареждат те)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Дали да Ñе запазват потребителÑките наÑтройки във файл (така, че ÑледващиÑÑ‚ " "път да да Ñе зареждат те, за Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Дали да Ñе показва прозорец за подтвърждение, ако потребителÑки отбор има " "контузен или наказан играч в началната формациÑ" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Дали да Ñе показва прозорец за подтвърждение, когато затварÑте програмата и " "ÑÑŠÑтоÑнието на играта не е запазено" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Дали да Ñе показват мачовете за купите в прозореца за залаганиÑта" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Дали да Ñе показват мачовете за купите. Използвайте прозореца за " "наÑтройките, за да промените за поÑтоÑнно." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "" "Дали да Ñе показват Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° работа, когато Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ уÑпешен " "мениджър" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "" "Дали да Ñе показват мачовете от вÑички първенÑтва в прозореца за залаганиÑта" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Дали да Ñе показват мачовете от вÑички първенÑтва. Използвайте прозореца за " "наÑтройките, за да променÑте за поÑтоÑнно." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Дали да Ñе показват Ñамо Вашите залози в ÑпиÑъка Ñ Ð¿Ð¾Ñледни залози." #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Дали да Ñе показват картинки над лентата за прогреÑа, при зареждане/" "запазване или преÑмÑтане на резултати." #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "" "Дали да Ñе показват ÑтойноÑтта мачове/голове на играча за вÑички ÑÑŠÑтезаниÑ" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Дали да Ñе показват Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ подобни в района за ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² Ð³Ð»Ð°Ð²Ð½Ð¸Ñ " "прозорец, когато е възможно" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Победа 1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Победа 2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "ЖК" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Жълти картони (лимит)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Жълти картони" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Вие Ñте шампионите на %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "ÐÑмате задължениÑ." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Отново правите предложение за %s. Предишните Ви ÑтойноÑти за такÑа и заплата " "Ñа наÑтроени." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Правите предложение за %s. Препоръките на разузнавача Ви за такÑа и заплата " "Ñа наÑтроени." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "ПреговарÑте Ñ %s за нов договор. Внимавайте какво правите; ако не уÑпеете да " "Ñе Ñпоразумеете Ñ Ð½ÐµÐ³Ð¾ в рамките на %d предложениÑ, той ще напуÑне отбора, " "когато изтече договорът му (оÑвен, ако не го продадете). Може да Ñе откажете " "Ñамо ПРЕДИ да направите първото предложение.\n" "ПредложениÑта на разузнавача Ви Ñа наÑтроени:" #: src/callbacks.c:1491 #, fuzzy msgid "You are not in debt." msgstr "ÐÑмате задължениÑ." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "ÐÑмате задължениÑ." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Залагате на изход на мача %d Ñ ÐºÐ¾ÐµÑ„Ð¸Ñ†ÐµÐ½Ñ‚ %.2f. Колко залагате?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Може да изплатите най-много %s." #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Може да изтеглите макÑимум %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Ðе може да кандидатÑтвате за работа в чужбина, ако има повече от един " "потребител." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Ðе може да имате повече от %d играча в отбора Ñи." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "" "Ðе можете да премеÑтите играча. Има прекалено малко играчи в отбора Ви." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Ðе можете да предлагате нов договор, ако ÑÑ‚Ð°Ñ€Ð¸Ñ Ðµ вÑе още над 2 години." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Ðе можете да играете Bygfoot без потребители!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Ðе можете да замените наказан играч." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "ÐÑмахте доÑтатъчно пари, за да купите %s от %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "ÐÑмахте доÑтатъчно пари, за да купите %s или ÑÑŠÑтавът Ви е пълен." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "ÐÑмате доÑтатъчно пари, за изплащането." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "ÐÑмате толкова пари!" #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Завършвате Ñезона в %s на %s мÑÑто." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Спечелихте мÑÑто в %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Изпадате в %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Имате %d Ñедмици да изплатите оÑтатъка от заема Ñи." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Имате %d Ñедмици да изплатите заема Ñи." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Пак Ñте надвишили банковата Ñи Ñметка. Запомнете, че Ñлед четвъртиÑÑ‚ път ще " "бъдете уволнен.\n" "СобÑтвениците на отбора Ви дават %d Ñедмици, за да Ñтанете на зелено отново." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Ðадвишили Ñте банковата Ñи Ñметка. СобÑтвениците на отбора Ви дават %d " "Ñедмици, за да Ñтанете на зелено отново." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "ТрÑбва да върнете заема Ñи тази Ñедмица!" #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Ðе Ñте отправили предложение към играча." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Ðе Ñте избрали играч." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Губите на финала за %s от %s" #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Предложихте транÑферна такÑа от %s и заплата от %s за %s. СобÑтвениците и " "играча Ñа доволни от предложението Ви. Ð’Ñе още ли иÑкате да закупите играча?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "ДоÑтигнахте до %s (кръг %s) на %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Започвате мача Ñ %s от %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Ð’Ñе още имате работа по транÑферите, коÑто да Ñвършите." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "ИÑкате ад уволните %s. Тъй като договорът му изтича Ñлед %.1f години, той " "иÑка компенÑации на ÑтойноÑÑ‚ %s. Приемате ли?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Печелите финала за %s Ñрещу %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "" #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "Банковата Ви Ñметка, трÑбва да е над ÐºÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð¸Ñ Ð²Ð¸ лимит Ñледващата Ñедмица." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "ТекущиÑÑ‚ Ви ÑпонÑор е доволен от резултатите Ви и би иÑкал да поднови " "договора. Ð’ момента Ви плащат %d на Ñедмица." #: src/misc3_interface.c:555 #, fuzzy msgid "Your debt:" msgstr "Вашите резултати" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "ВашиÑÑ‚ Ñледващ противник" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Предложението Ви за %s е било прието. Ðко вÑе още иÑкате да го закупите, " "отидете на ÑпиÑъка за транÑфер и натиÑнете Ñ Ð»ÐµÐ²Ð¸Ñ Ð±ÑƒÑ‚Ð¾Ð½ на мишката на него" #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Предложението Ви беше премахнато." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Предложението Ви беше обновено." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Предложението Ви ще бъде обмиÑлено Ñледващата Ñедмица." #: src/treeview.c:1913 #, fuzzy msgid "Your overall results" msgstr "Вашите резултати" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "ÐÑмате мÑÑто в ÑÑŠÑтава или нÑмате доÑтатъчно пари." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Вашите резултати" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "СъÑтавът Ви е пълен. Ðе може да купувате още играчи." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "СъÑтавът Ви е пълен. Ðе можете да купите %s от %s." #: src/window.c:890 msgid "Your stadium" msgstr "ВашиÑÑ‚ Ñтадион" #: src/treeview2.c:91 msgid "Your team" msgstr "ВашиÑÑ‚ отбор" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Отборът Ви не може да има по-малко от 11 играча." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "" #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Младежът %s Ñметна, че е доÑтатъчно възраÑтен за иÑтинÑки договор и напуÑна " "младежката академиÑ." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Скоро младежът %s ще бъде прекалено възраÑтен за младежката академиÑ. " "ПремеÑтете го в отбора Ви или го изхвърлете от академиÑта. Или най-вероÑтно " "ще Ñи търÑи другклуб, където да играе." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "ИнвеÑÑ‚. в млад. академиÑ" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Младежка академиÑ" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Младежката Ð°ÐºÐ°Ð´ÐµÐ¼Ð¸Ñ Ðµ изключена в тази Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð·Ð° Ñтрана." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Треньор на младежите" #: src/interface.c:304 msgid "_File" msgstr "_Файл" #: src/interface.c:1059 msgid "_Help" msgstr "_Помощ" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "За_реждане на игра" #: src/interface.c:347 msgid "_Options" msgstr "_ÐаÑтройки" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Пауза" #: src/interface.c:766 msgid "_Player" msgstr "_Играч" #: src/misc_interface.c:685 msgid "_Resume" msgstr "Продъл_жаване" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Продължаване на игра" #: src/interface.c:460 msgid "_Team" msgstr "_Отбор" #: src/interface.c:850 msgid "_User" msgstr "По_требител" #: src/treeview.c:1644 msgid "interest rate" msgstr "" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Ðко миÑлите, че Ñте открили нещо отноÑно играта, което Ñи Ñтрува да Ñе " #~ "Ñподели, може да го добавите към уикито на Bygfoot:\n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Запазени игри на Bygfoot" #~ msgid "Improve!" #~ msgstr "Подобрение!" #~ msgid "Load the last game that was saved or loaded." #~ msgstr "Зареждане на поÑледната игра, коÑто е била запазена или заредена" #~ msgid "Loading cups..." #~ msgstr "Зареждане на купите..." #~ msgid "Misc." #~ msgstr "Допълнителни" #~ msgid "Saving cups..." #~ msgstr "Запазване на купите..." #~ msgid "Show history" #~ msgstr "Показване на иÑториÑ" #~ msgid "There are no offers for the player." #~ msgstr "ÐÑма Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° играча." #~ msgid "This is your first season." #~ msgstr "Това е първиÑÑ‚ Ви Ñезон." #~ msgid "Username" #~ msgstr "ПотребителÑко име" bygfoot-2.3.2/po/ro.po0000644000175000017500000026570711225071373013563 0ustar eliaselias# Romanian translation of bygfoot. # Copyright (C) 2005 Spoială Cristian # Spoială Cristian , 2005, 2006, 2007 # # msgid "" msgstr "" "Project-Id-Version: bygfoot 2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-07-03 22:21+0200\n" "Last-Translator: Mihai \n" "Language-Team: Romanian <(Corectat ÅŸi completat Mihai Floran)>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Romanian\n" "X-Poedit-Country: Romania\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Goluri/Joc %.1f Salvări %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Goluri/Joc %.1f Åžut %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "PuteÅ£i scrie un e-mail autorilor:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Compania" #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Fiicele" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Fii" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (FC)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (NOTÄ‚: dacă nu acceptaÅ£i, jocul va lua sfârÅŸit.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (autogol)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 #: src/treeview_helper.c:1218 msgid " (P)" msgstr " (penalty)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Tur" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Rejucare meciuri" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Retur" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " AsociaÅ£ii" #: src/options_interface.c:329 msgid " Autosave files " msgstr " Autosalvare fiÅŸierele " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bancă" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Trustul" #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Chimicale" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " SA" #. Company name. #: src/user.c:984 msgid " Communications" msgstr " ComunicaÅ£ii" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Companie" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " CorporaÅ£ie" #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Sisteme Informatice" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energie" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Divertisment" #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Financiar" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Din fericire are un văr care vă poate ajuta echipa." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Grup" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holding" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industrii" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratoare" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " SRL" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petrol" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Produse" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restaurante" #: src/interface.c:1220 msgid " Round " msgstr " Runda " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " ÅžtiinÅ£ific" #: src/interface.c:1200 msgid " Season " msgstr " Sezon " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Sisteme" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Tehnologii" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " TelecomunicaÅ£ii" #: src/interface.c:1210 msgid " Week " msgstr " Săptămâna" #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " et" #: src/callback_func.c:466 msgid " less" msgstr " puÅ£in" #: src/options_interface.c:527 msgid " months" msgstr " luni" #: src/callback_func.c:464 msgid " more" msgstr " mai mult" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " p." #: src/misc_interface.c:934 msgid " seats" msgstr " locuri" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f luni / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "et %d : %d" #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "p %d : %d" #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d cantonamente rămase în acest sezon." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (H) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (recuperare preconizată în %d săptămâni)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grup %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s a acceptat oferta dumneavoastră." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s ÅŸi %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s ÅŸi %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s nu vă permiteÅ£i să îl cumpăraÅ£i pe %s." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s v-a concediat datorită administrării financiare defectuoase.\n" "AÅ£i găsit de lucru la %s în %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s v-a concediat datorită insucceselor.\n" "AÅ£i găsit de lucru la %s în %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s a fost adăugat pe lista de transferuri pentru %d săptămâni." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s a părăsit echipa pentru că i-a expirat contractul." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the wage you offered." msgstr "%s de la %s v-a refuzat oferta (%s / %s). Nu a fost mulÅ£umit de salariul pe care i l-aÅ£i oferit." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "%s of %s has rejected your offer because your team has too many star players already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "%s de la %s a refuzat oferta dumneavoastră pentru că echipa are prea multe staruri deja. 'Un jucător de calibrul meu nu joacă în linia a doua,' a spus el." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s v-a făcut o ofertă pentru a lucra cu %s. \n" "AcceptaÅ£i oferta ÅŸi părăsiÅ£i %s." #: src/misc2_callback_func.c:226 #, c-format msgid "%s rejects your offer and won't negotiate with you anymore. You should sell him before his contract expires (he'll simply leave your team otherwise)." msgstr "%s respinge oferta dumneavoastră ÅŸi nu va mai negocia un alt contract. Ar trebui să îl vindeÅ£i înainte să îi expire contractul (aftfel va părăsi echipa). " #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s v-a refuzat oferta. ÃŽi mai puteÅ£i face %d oferte." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s va executa penaltyurile ÅŸi loviturile libere când joacă." #: src/callback_func.c:468 #, c-format msgid "%s would like to buy %s. They offer %s for him, which is %s than the player's value. Do you accept?" msgstr "%s doreÅŸte să îl cumpere pe %s. Oferă %s pentru el, care este cu %s decât valoarea jucătorului. SunteÅ£i de acord?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "Contractul lui %s va expira în %.1f ani." #: src/user.c:630 #, c-format msgid "%s's injury was so severe that he can't play football on a professional level anymore. He leaves your team." msgstr "Accidentarea lui %s a fost aÅŸa dură încât nu mai poate juca fotbal la nivel profesionist niciodată, astfel el părăseÅŸte echipa." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (fără limită)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d săptămâni\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(săptămâna de început %d)" #: src/main.c:134 #: src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- un simplu si captivant manager de fotbal bazat pe GTK2" #: src/misc_interface.c:1071 #: src/misc_interface.c:1079 #: src/misc_interface.c:1105 #: src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 an" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 ani" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 ani" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 ani" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (A) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "A fost un incendiu\n" "pe stadion." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "A fost o revoltă\n" "pe stadion." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Au fost probleme tehnice\n" "pe stadion." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "Current bets" msgstr "Pariuri curente" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "Recent bets" msgstr "Pariuri recente" #: src/treeview.c:1836 #: src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Săptămâna %d Runda %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Un tânar a fost înregistrat în echipa de juniori." #: src/youth_academy.c:257 msgid "A new youth wanted to registered at your youth academy but there was no room for him." msgstr "Un jucător a vrut să se înscrie în echipa de juniori, dar nu mai sunt locuri libere." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "ADAUGAÅ¢I ULTIMUL MECI" #: src/lg_commentary.c:541 #: src/team.c:626 msgid "ALL OUT ATTACK" msgstr "TOÅ¢I ÃŽN ATAC" #: src/lg_commentary.c:529 #: src/team.c:618 msgid "ALL OUT DEFEND" msgstr "TOÅ¢I ÃŽN APÄ‚RARE" #. Boost value. #: src/lg_commentary.c:544 #: src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 #: src/team.c:624 msgid "ATTACK" msgstr "ATAC" #: src/interface.c:1066 #: src/misc2_interface.c:1092 msgid "About" msgstr "Despre" #: src/misc_interface.c:1345 msgid "Accept" msgstr "AcceptaÅ£i" #: src/game_gui.c:818 msgid "Accept?" msgstr "AcceptaÅ£i?" #: src/interface.c:1035 msgid "Add last match" msgstr "Adăugare ultimul meci" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "AdăugaÅ£i ultimul meci înregistrat în fiÅŸierul actual de meciuri memorabile." #: src/misc2_interface.c:899 #: src/misc_interface.c:191 msgid "Add user" msgstr "AdăugaÅ£i utilizator" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "AjustaÅ£i programarea plăţilor?" #: src/treeview.c:325 #: src/treeview.c:2170 msgid "Age" msgstr "Vârsta" #: src/options_interface.c:735 msgid "Age " msgstr "Vârstă" #: src/window.c:399 msgid "All Files" msgstr "Toate fiÅŸierele" #: src/interface.c:502 msgid "All Out Attack" msgstr "ToÅ£i în atac" #: src/interface.c:478 msgid "All Out Defend" msgstr "ToÅ£i în apărare" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "ÃŽntotdeauna afiÅŸaÅ£i fereastra cu ÅŸtirile după meci" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "ÃŽntotdeauna salvaÅ£i/restauraÅ£i echipa standard" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "ÃŽntotdeauna salvaÅ£i/restauraÅ£i echipa standard înainte/după un meci" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Oricare" #: src/options_interface.c:1569 msgid "Appearance" msgstr "AfiÅŸare" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "AcceptaÅ£i poziÅ£ia?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Cel puÅ£in un utilizator nu ÅŸi-a efectuat tura în această săptămână. ContinuaÅ£i?" #: src/game_gui.c:942 msgid "At the Bygfoot forums you can report bugs, ask for help and discuss the game:\n" msgstr "Pe forumurile Bygfoot se pot raporta erori, cere ajutor ÅŸi discuta despre joc:\n" #: src/interface.c:496 #: src/treeview.c:1778 msgid "Attack" msgstr "Atac" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Spectatori\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Atribut " #: src/interface.c:957 #: src/misc3_interface.c:543 #: src/window.c:1015 msgid "Automatic loan repayment" msgstr "Plată automată a împrumutului" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Pop-up automat" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Plată automată" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Schimbări automate" #: src/options_interface.c:443 msgid "Autosave" msgstr "Autosalvare" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Interval de autosalvare" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Abilitate medie:" #: src/interface.c:1320 msgid "Av. skills: " msgstr "Abilităţi medii:" #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Ab.Me." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Ab. medie:" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Echipe disponibile" #: src/interface.c:531 #: src/interface.c:566 #: src/interface.c:615 msgid "Average" msgstr "Mediu" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Media spectatorilor" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Media spectatorilor %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Abilitate medie" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Abilitate medie:" #: src/treeview.c:1851 msgid "Away" msgstr "Deplasare" #: src/lg_commentary.c:535 #: src/team.c:622 msgid "BALANCED" msgstr "ECHILIBRAT" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "SANC(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "ÃŽnapoi la meniul principal (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "ÃŽnapoi" #: src/interface.c:537 #: src/interface.c:572 #: src/interface.c:621 msgid "Bad" msgstr "Rău" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Sold" #: src/interface.c:490 msgid "Balanced" msgstr "Echilibrat" #: src/treeview.c:2179 msgid "Banned\n" msgstr "SancÅ£ionat\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "ÃŽncepeÅ£i o săptămână nouă (Space)" #: src/interface.c:519 #: src/interface.c:554 #: src/interface.c:603 msgid "Best" msgstr "Foarte bun" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Cele mai bune echipe în aparare" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Cei mai buni marcatori" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Cei mai buni portari" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Cele mai bune echipe în atac" #: src/interface.c:969 #: src/options_interface.c:1084 #: src/treeview.c:1520 #: src/treeview.c:1530 #: src/window.c:992 msgid "Betting" msgstr "Pariuri" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Pariuri -- Clic stânga pentru a paria sau pentru a înlătura un pariu" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "BalanÅ£a bisăptămânala" #: src/treeview.c:1546 #: src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "BalanÅ£a bisăptămânala \n" "(Săptămâna %d ÅŸi %d)" #: src/interface.c:669 msgid "Boost" msgstr "Stimulent" #: src/callbacks.c:133 #: src/game_gui.c:468 #: src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Stimulentul este dezactivat în definirea ţărilor." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Stimulentul a fost schimbat la %s (costă %d pe minut)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Stimulentul a fost schimbat la %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Costul stimulentului" #: src/player.c:1430 msgid "Broken ankle" msgstr "Gleznă ruptă" #: src/player.c:1433 msgid "Broken arm" msgstr "BraÅ£ rupt" #: src/player.c:1427 msgid "Broken leg" msgstr "Picior rupt" #: src/player.c:1424 msgid "Broken rib" msgstr "BraÅ£ rupt" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Coastă ruptă" #: src/interface.c:842 msgid "Browse players" msgstr "VizualizaÅ£i jucătorii" #: src/interface.c:745 msgid "Browse teams" msgstr "VizualizaÅ£i echipele" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Meciurile memorabile la Bygfoot" #: src/misc3_interface.c:790 #: src/window.c:1023 msgid "Bygfoot News" msgstr "Åžtirile Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "FiÅŸierele cu salvări" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Constante Bygfoot" #: src/misc2_interface.c:982 msgid "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY (otherwise your CPU will be destroyed by overheating)." msgstr "Fereastra Bygfoot pentru debug. Dacă aÅ£i ajuns aici din greÅŸeală, ÃŽNCHIDEÅ¢I-O IMEDIAT (altfel procesorul va fi distrus prin supraîncălzire)." #: src/game_gui.c:940 msgid "Bygfoot is a very intuitive and simple game, so there isn't a full-grown documentation. However, if you have trouble, there are a few places to go.\n" msgstr "Bygfoot este un joc foarte intuitiv ÅŸi simplu, aÅŸadar nu e dezvoltată documentaÅ£ia în totalitate. TotuÅŸi, dacă aveÅ£i probleme, sunt câteva locuri unde aÅ£i putea merge.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "PozA" #: src/options_interface.c:665 msgid "CPos " msgstr "PozA " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "AbilA" #: src/options_interface.c:679 msgid "CSkill " msgstr "AbilA " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "CalculaÅ£i săptămâna de început" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "CalculaÅ£i suma săptămânală de plată" #: src/training_interface.c:84 msgid "Camp points" msgstr "Punctaj" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capacitate (locuri)" #: src/options_interface.c:728 msgid "Cards " msgstr "CartonaÅŸe " #: src/treeview.c:2182 msgid "Career values" msgstr "Valoarea carierei" #: src/misc_interface.c:729 msgid "Change commentary verbosity. The higher this value the more events you can see." msgstr "SchimbaÅ£i nivelul de comentarii. AlegeÅ£i o valoare mai mare pentru a vedea mai multe evenimente." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "SchimbaÅ£i viteza meciului în direct. O valoare mai mică va face meciul mai rapid." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "ModificaÅ£i preÅ£ul biletului" #: src/misc_interface.c:97 msgid "Choose country" msgstr "AlegeÅ£i Å£ara" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "AlegeÅ£i fiÅŸierul" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "AlegeÅ£i limba (e posibil sa nu funcÅ£ioneze în varianta pentru Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "AlegeÅ£i în ce ligă doriÅ£i să începeÅ£i" #: src/misc_interface.c:107 msgid "Choose team" msgstr "AlegeÅ£i echipa" #: src/misc_interface.c:159 msgid "Choose username" msgstr "AlegeÅ£i numele de utilizator" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "ApăsaÅ£i OK pentru a accepta. ApăsaÅ£i CANCEL pentru a închide fereastra." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "SelectaÅ£i un utilizator pentru a-l scoate din joc." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "SelectaÅ£i un utilizator pentru a-l scoate." #: src/options_interface.c:1640 msgid "Close" msgstr "ÃŽnchideÅ£i" #: src/options_interface.c:1623 msgid "Close window. Changes will only be saved for the current session, unless you also save to file." msgstr "ÃŽnchideÅ£i fereastra. Modificările vor fi salvate doar pentru sesiunea curentă, dacă nu aveÅ£i un fiÅŸier de salvare." #: src/misc_interface.c:573 msgid "Commentary" msgstr "Comentariu" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "Eveniment comentat pentru test; părăsiÅ£i pentru a testa toate comentariile" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Cometariu la numele fiÅŸierului (poate fi într-un director suport)" #: src/treeview.c:3017 msgid "Company" msgstr "Companie" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "CompensaÅ£ii" #: src/treeview2.c:94 #: src/treeview2.c:211 msgid "Competition" msgstr "CompetiÅ£ie" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Se arhivează jocul salvat..." #: src/player.c:1409 msgid "Concussion" msgstr "Contuzie" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "ConfirmaÅ£i ÅŸi programaÅ£i plăţile" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Confirmare ieÅŸire când nu este salvat" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Confirmare ÅŸtergere juniori" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Confirmare când nu este în formă" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "ConfirmaÅ£i!" #: src/options_interface.c:353 msgid "Constants file" msgstr "FiÅŸierul cu constante" #: src/treeview.c:330 #: src/treeview.c:2174 msgid "Contract" msgstr "Contract" #: src/options_interface.c:763 msgid "Contract " msgstr "Contract" #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contract / Sumă" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Durata contractului\n" "(luni)" #: src/window.c:937 msgid "Contract offer" msgstr "Ofertă de contract" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Contractele sunt dezactivate în definirea ţărilor." #: src/interface.c:1074 #: src/misc2_interface.c:1106 #: src/misc3_interface.c:237 msgid "Contributors" msgstr "Contribuitori" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Se copie %s" #: src/misc_interface.c:1067 #: src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Costuri" #: src/support.c:96 #: src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Nu s-a putut găsi fiÅŸierul imagine: %s" #: src/treeview2.c:95 #: src/treeview2.c:515 msgid "Country" msgstr "Å¢ara" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "CreaÅ£i ÅŸtiri ale cupei" #: src/options_interface.c:1171 msgid "Create league news" msgstr "CreaÅ£i ÅŸtiri ale ligii" #: src/options_interface.c:1163 msgid "Create user news" msgstr "CreaÅ£i ÅŸtiri ale utilizatorului" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl+N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl+O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl+R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Cupa campionilor" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Cupa nu are tabele." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Capacitatea curentă" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "FiÅŸierul curent" #: src/treeview.c:2829 msgid "Current league" msgstr "Liga curentă" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Dobânda curentă a pieÅ£ei" #: src/treeview.c:2165 msgid "Current position" msgstr "PoziÅ£ia curentă" #: src/misc_interface.c:978 msgid "Current safety" msgstr "SiguranÅ£a curentă" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Setări curente:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Abilitatea curentă" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "F" #: src/lg_commentary.c:532 #: src/team.c:620 msgid "DEFEND" msgstr "APÄ‚RARE" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Datorie (de plătit în %d săptămâni)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Debug" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "DecideÅ£i mai târziu" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Hotel implicit" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "RecreaÅ£ie implicită:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Antrenament implicit:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Salariul implicit" #: src/interface.c:484 #: src/treeview.c:1776 msgid "Defend" msgstr "Apărare" #: src/interface.c:640 msgid "Defenders" msgstr "FundaÅŸi" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "ÅžtiaÅ£i că ?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Nu s-a găsit fiÅŸierul 'bygfoot_help'." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "SunteÅ£i sigur că vreÅ£i să îl daÅ£i afară pe jucător din academie ?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Fără încărcare definiÅ£ii" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Fără încărcare definiÅ£ii echipă" #: src/load_save.c:169 #: src/load_save.c:319 msgid "Done." msgstr "Realizat." #: src/treeview2.c:396 msgid "Draw" msgstr "Egal" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Valoare overdraft" #. Games drawn. #. Draw. #: src/treeview.c:1390 #: src/treeview_helper.c:1756 msgid "Dw" msgstr "Eg" #. draw #: src/team.c:1150 msgid "Dw " msgstr "Eg" #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Eg %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "Tal " #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORT" #: src/options_interface.c:432 msgid "Edit" msgstr "ModificaÅ£i" #: src/interface.c:829 #: src/interface.c:2038 msgid "Edit name" msgstr "ModificaÅ£i numele" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "ModificaÅ£i constantele folosite în joc" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "IntroduceÅ£i o structură. Suma cifrelor trebuie să fie până la 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "IntroduceÅ£i o structură personalizată" #: src/window.c:865 msgid "Erm..." msgstr "Hmm..." #: src/misc2_interface.c:480 #: src/misc2_interface.c:577 #: src/misc2_interface.c:1139 #: src/misc2_interface.c:1234 #: src/misc3_interface.c:107 #: src/misc3_interface.c:403 #: src/misc3_interface.c:816 #: src/misc_interface.c:296 #: src/misc_interface.c:1149 #: src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Enter / SpaÅ£iu" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Talentul estimat" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "Talent" #: src/treeview.c:2378 msgid "Event" msgstr "Eveniment" #: src/misc_interface.c:1075 #: src/misc_interface.c:1109 msgid "Expected duration" msgstr "Durata estimată" #: src/treeview.c:1704 msgid "Expenses" msgstr "Cheltuieli" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/interface.c:398 msgid "F_igures" msgstr "_Date" #: src/callback_func.c:574 #: src/callback_func.c:582 msgid "Fee" msgstr "PreÅ£" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "FiÅŸierul conÅ£inând meciul în direct a eÅŸuat (poate fi în directorul support)" #: src/options_interface.c:392 msgid "File containing settings which determine a lot of aspects of the game behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "FiÅŸierul care conÅ£ine setările ÅŸi care determină foarte multe aspecte ale comportamentului jocului. NU ÃŽL MODIFICAÅ¢I DECÂT DACÄ‚ CHIAR ÅžTIÅ¢I CE FACEÅ¢I." #: src/interface.c:928 msgid "Fin_Stad" msgstr "FinanÅ£e ÅŸi _Stadion" #: src/cup.c:1105 msgid "Final" msgstr "Finala" #: src/callbacks.c:1485 #: src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "FinanÅ£ele sunt dezactivate în definirea ţării." #: src/interface.c:805 #: src/interface.c:2026 msgid "Fire" msgstr "ConcediaÅ£i" #: src/interface.c:1314 msgid "First value: average current skill of the first 11 players. Second value: average skill of all players." msgstr "Prima valoare este media abilităţilor curente ale primilor 11 jucători. A doua valoare reprezintă media abilităţilor tuturor jucătorilor." #: src/training_interface.c:168 #: src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hotel ***" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Ajustare" #: src/treeview.c:2168 msgid "Fitness" msgstr "CondiÅ£ie fizică" #: src/options_interface.c:693 msgid "Fitness " msgstr "CondiÅ£ie fizică " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Programări (competiÅ£ii)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Meciuri programate (săptămână)" #: src/options_interface.c:1541 msgid "Float" msgstr "Variabil" #: src/options_interface.c:379 msgid "Font name" msgstr "Numele fontului" #: src/options_interface.c:365 #: src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Fonturile utilizate în vederea arbore" #: src/interface.c:652 msgid "Forwards" msgstr "AtacanÅ£i" #: src/treeview.c:840 msgid "Fouls" msgstr "Faulturi" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Gleznă fracturată" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "P" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GÃŽ" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "DG" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GP" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Jo" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Jocuri" #: src/treeview_helper.c:931 msgid "Games" msgstr "Jocuri" #: src/options_interface.c:700 msgid "Games " msgstr "Jocuri " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Jocuri/Goluri\n" #: src/options_interface.c:486 msgid "Global" msgstr "Global" #. Goals of a player. #. Goals. #: src/treeview.c:320 #: src/treeview.c:2480 msgid "Go" msgstr "Go" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "ÃŽnapoi la ecran" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Go/Jo" #: src/treeview.c:1775 msgid "Goalie" msgstr "Portar" #: src/interface.c:634 msgid "Goalies" msgstr "Portari" #: src/treeview.c:1900 #: src/treeview.c:2446 #: src/treeview_helper.c:932 msgid "Goals" msgstr "Goluri" #: src/options_interface.c:714 msgid "Goals " msgstr "Goluri " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Goluri (normal)" #: src/interface.c:525 #: src/interface.c:560 #: src/interface.c:609 msgid "Good" msgstr "Bun" #: src/training_interface.c:161 #: src/treeview.c:2940 msgid "Good Hotel" msgstr "Hotel **" #: src/player.c:1418 msgid "Groin injury" msgstr "Accidentare la arcadă" #: src/player.c:1415 msgid "Hamstring" msgstr "Tendon" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "VerificaÅ£i lista de transferuri, este o ofertă pentru %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Titlu" #: src/treeview.c:2171 msgid "Health" msgstr "Sănătate" #: src/interface.c:1082 #: src/misc2_interface.c:1132 msgid "Help" msgstr "Ajutor" #: src/treeview.c:1849 msgid "Home" msgstr "Acasă" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Număr de comentarii generate per eveniment" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Câte numere după virgulă sunt pentru abilităţi, etc" #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Câte fiÅŸiere să fie folosite de autosalvare" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Ce salariu oferiÅ£i implicit" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Cât de des jocul este salvat automat" #: src/options_interface.c:465 msgid "How often the player list gets refreshed during a live game (in live game minutes)" msgstr "Cât de des este împrospătată list de jucători în timpul meciului în direct (minute în meciul în direct)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "ACC(%d)" #: src/options_interface.c:299 msgid "If checked, weeks without user teams playing are calculated automatically (without the user having to press 'New week')" msgstr "Dacă este marcat, săptămânile când nu joacă echipa sunt calculate automat (utilizatorul nu mai trebuie să dea \"Săptămână nouă\")" #: src/misc_interface.c:1352 msgid "If you don't like any of the sponsors, you can go a few weeks without sponsor and wait for new offers." msgstr "Dacă nu vă place nici unul dintre sponsori, puteÅ£i merge câteva săptămâni fără sponsor ÅŸi să aÅŸteptaÅ£i oferte noi." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "ImportaÅ£i fiÅŸier" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "ImportaÅ£i meciul din fiÅŸierul cu meciuri memorabile" #: src/treeview.c:1493 #: src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "ÃŽmbunătăţiri în progres.\n" "Se lucrează la: %d locuri ÅŸi %d%% siguranţă.\n" "Se estimează finalizarea în %d săptămâni." #: src/treeview.c:1703 msgid "Income" msgstr "Venit" #: src/misc_interface.c:1041 msgid "Increase" msgstr "MăriÅ£i" #: src/treeview.c:843 msgid "Injuries" msgstr "Accidentări" #: src/options_interface.c:1527 msgid "Integer" msgstr "ÃŽntreg" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Este prea târziu în acest sezon pentru a plăti automat împrumutul." #: src/misc2_interface.c:70 #: src/window.c:898 msgid "Job offer" msgstr "Ofertă de lucru" #: src/interface.c:370 msgid "Job offers" msgstr "Oferte de lucru" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Oferte de lucru setate la %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Costurile călătoriei" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "DaÅ£i-l afară din academie" #. Games lost. #. Lost. #: src/treeview.c:1392 #: src/treeview_helper.c:1749 msgid "L" msgstr "P" #. lost #: src/team.c:1154 msgid "L " msgstr "P " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "P %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "ÃŽ_ncărcaÅ£i ultima salvare" #: src/options_interface.c:436 msgid "Language" msgstr "Limbă" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Limba folosita (un cod de exemplu 'ro')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Ultimii %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Ultimul fiÅŸierul salvat nu a fost găsit." #: src/treeview.c:1898 msgid "Latest results" msgstr "Ultimele rezultate" #: src/misc2_interface.c:102 #: src/treeview2.c:514 #: src/treeview.c:170 #: src/treeview.c:332 #: src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Ligă " #: src/treeview.c:2590 msgid "League champions" msgstr "Liga campionilor" #: src/interface.c:991 msgid "League stats" msgstr "Statisticile ligii" #: src/league_table_interface.c:39 msgid "League table" msgstr "Tabelul ligii" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Click stânga pentru a face o ofertă. Click dreapta pentru a înlătura o ofertă." #: src/callback_func.c:930 msgid "Left click to move players to and from the youth academy; right click for context menu." msgstr "Click stânga pentru a muta jucătorii la ÅŸi de la academia de juniori; click dreapta pentru meniul contextual." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Click stânga pentru a vedea programările." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Click stânga pentru a vedea tabelul." #: src/callbacks.c:1518 msgid "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "Click stânga pentru împrumut; Click dreapta pentru plata împrumutului;" #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2" #: src/interface.c:375 #: src/misc_interface.c:500 #: src/options_interface.c:650 msgid "Live game" msgstr "Meci în direct" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Meci în direct setat la %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Factorul de accelerare la meciurile în direct" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Nivelul comentariilor în meciul în direct" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "ÃŽncărcaÅ£i joc (Ctrl+O)" #: src/main.c:94 msgid "Load last savegame" msgstr "ÃŽncărcaÅ£i ultimul joc salvat" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "ÃŽncarcaÅ£i numai numele jucătorilor din fiÅŸierele de definire" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "ÃŽncărcaÅ£i definiÅ£iile echipei" #: src/misc_interface.c:207 msgid "Load teams from definition files (note that the official Bygfoot package doesn't contain team definition files, you have to get them from the homepage or via the bygfoot-update script)" msgstr "ÃŽncărcaÅ£i echipele din fiÅŸierele de definiÅ£ii (pachetul original Bygfoot nu conÅ£ine fiÅŸierile de definiÅ£ii a ţărilor, trebuie să îl luaÅ£i de pe pagina web sau cu ajutorul scriptului de actualizare Bygfoot)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Se încarcă cupa: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Se încarcă ofertele de lucru..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Se încarcă liga: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Se încarcă ligile ÅŸi cupele..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Se încarcă altele..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Se încarcă ziarul..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Se încarcă opÅ£iunile..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Se încarcă statisticile sezonului..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Se încarcă lista de transferuri..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Se încarcă utilizatorii..." #: src/callback_func.c:397 msgid "Loan" msgstr "ÃŽmprumut" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "FaceÅ£i o ofertă" #: src/interface.c:1047 msgid "Manage matches" msgstr "AdministraÅ£i meciurile" #: src/interface.c:917 msgid "Manage users" msgstr "AdministraÅ£i utilizatorii" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "MaximizaÅ£i fereastra principală." #: src/user.c:1214 msgid "Memorable match added." msgstr "Meciurile memorabile au fost adăugate." #: src/interface.c:1024 #: src/window.c:984 msgid "Memorable matches" msgstr "Meciuri memorabile" #: src/treeview.c:1777 msgid "Midfield" msgstr "MijlocaÅŸ" #: src/interface.c:646 msgid "Midfielders" msgstr "MijlocaÅŸi" #: src/treeview.c:1629 msgid "Money" msgstr "Bani" #: src/interface.c:1296 msgid "Money " msgstr "Bani " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Bani (aprox.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Bani / săptămână" #: src/interface.c:2092 msgid "Move to team" msgstr "MutaÅ£i în echipă" #: src/interface.c:821 #: src/interface.c:2034 msgid "Move to youth academy" msgstr "MutaÅ£i în echipa de juniori" #: src/interface.c:438 msgid "My league results" msgstr "Rezultatele ligii" #: src/misc2_interface.c:97 #: src/treeview2.c:791 #: src/treeview.c:304 #: src/treeview.c:778 #: src/treeview.c:2163 msgid "Name" msgstr "Nume" #: src/options_interface.c:658 msgid "Name " msgstr "Nume " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Teren neutru" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Noi oferte\n" "de contracte" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Setări noi:" #: src/interface.c:984 #: src/options_interface.c:1203 msgid "News" msgstr "Åžtiri" #: src/misc3_interface.c:315 msgid "Next" msgstr "Următorul" #: src/interface.c:1434 msgid "Next (W)" msgstr "Următorul (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Următoarea ligă/cupă (2)" #: src/interface.c:895 msgid "Next user" msgstr "Următorul utilizator" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Săptămână viitoare va fi concediat ÅŸi se va angaja unul nou." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Fără pop-up automat" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Nu sunt îmbunătăţiri în progres." #: src/callbacks.c:1412 #: src/callbacks.c:1432 #: src/callbacks.c:1572 #: src/misc2_callback_func.c:326 #: src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Niciun meci memorat." #: src/treeview2.c:600 msgid "No news available." msgstr "Nu sunt ÅŸtiri disponibile." #: src/misc_callbacks.c:468 msgid "None" msgstr "Niciunul" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Numele fiÅŸierului cu meciuri memorabile nu este valid." #: src/window.c:882 msgid "Numbers..." msgstr "Numere..." #. Boost value. #: src/lg_commentary.c:547 #: src/team.c:637 msgid "OFF" msgstr "OPRIT" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 #: src/player.c:1406 #: src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 #: src/team.c:640 msgid "ON" msgstr "PORNIT" #: src/interface.c:686 msgid "Off" msgstr "Oprit" #: src/interface.c:797 #: src/interface.c:2022 msgid "Offer new contract" msgstr "OferiÅ£i contract nou" #: src/interface.c:680 msgid "On" msgstr "Pornit" #: src/misc_interface.c:211 msgid "Only names" msgstr "Doar numele" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "DeschideÅ£i un fiÅŸier cu meciuri memorabile" #: src/treeview2.c:92 #: src/treeview2.c:212 msgid "Opponent" msgstr "Adversar" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Lista jucătorilor adverÅŸi" #: src/window.c:914 msgid "Options" msgstr "OpÅ£iuni" #: src/treeview.c:1904 msgid "Overall results" msgstr "Rezultate generale" #: src/interface.c:379 msgid "Overwrite" msgstr "Suprascriere" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Suprascriere setata la %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "MJ" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PCT" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pauză la jumătatea meciului" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pauză la accidentare" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pauză la cartonaÅŸ roÅŸu" #: src/callback_func.c:427 msgid "Payback" msgstr "Revanşă" #: src/treeview.c:839 msgid "Penalties" msgstr "Penaltyuri" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Executant de penalty-uri/lovituri libere deselectat." #: src/interface.c:543 #: src/treeview.c:1523 msgid "Physio" msgstr "Maseur" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Jucătorul acceptă oferte noi" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Precizia la atributele jucătorilor" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "ArătaÅ£i atributele jucătorilor" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Jucătorul nu mai negociază" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Lotul de jucători" #: src/interface.c:1363 msgid "Player list 1" msgstr "Lista de jucători 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Lista de jucători 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Rata de împrospătare a listei jucătorilor" #: src/interface.c:467 #: src/treeview.c:1887 msgid "Playing style" msgstr "Tip de joc" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Pop-up pentru ÅŸtirile utilizatorului" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Poz" #: src/options_interface.c:672 msgid "Pos " msgstr "Poz " #: src/treeview.c:2164 msgid "Position" msgstr "PoziÅ£ie" #: src/treeview.c:838 msgid "Possession" msgstr "Posesie" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Mesaje preferate" #: src/interface.c:354 msgid "Preferences" msgstr "PreferinÅ£e" #: src/training_interface.c:175 #: src/treeview.c:2946 msgid "Premium Hotel" msgstr "Hotel ****" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Anterior" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Anterior (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Liga/cupa anterioară (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Utilizatorul anterior" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "PreÅ£ pe bilet" #: src/treeview.c:1517 msgid "Prize money" msgstr "Banii de premiu" #: src/player.c:1412 msgid "Pulled muscle" msgstr "ÃŽntindere musculară" #: src/interface.c:781 #: src/interface.c:2014 msgid "Put on transfer list" msgstr "AdaugaÅ£i-l la lista de transferuri" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Sferturi de finală" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "IeÅŸire (Ctrl+Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "ÅžTERGEÅ¢I" #: src/treeview2.c:68 msgid "REPLAY" msgstr "REJUCARE" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "AmestecaÅ£i aleatoriu echipele în cupe" #: src/misc_interface.c:233 msgid "Randomise the order of teams in cups. This only makes sense in supernational definitions like the World Cup where the order of teams is fixed." msgstr "AmestecaÅ£i aleatoriu ordinea echipelor în cupe. Aceasta are sens în definiÅ£iile supernaÅ£ionale precum Cupa Mondială, unde ordinea echipelor este fixă." #: src/misc2_interface.c:107 #: src/treeview.c:1866 msgid "Rank" msgstr "Rang" #: src/interface.c:1281 msgid "Rank " msgstr "Rang" #: src/file.c:396 #: src/misc3_interface.c:412 msgid "Ready" msgstr "Pregătit" #: src/interface.c:728 msgid "Rearrange team" msgstr "RearanjaÅ£i echipa" #: src/training_interface.c:98 msgid "Recreation" msgstr "RecreaÅ£ie" #: src/interface.c:627 msgid "Recruiting preference" msgstr "PreferinÅ£ele de recrutare" #: src/treeview.c:842 #: src/treeview_helper.c:935 msgid "Reds" msgstr "CartonaÅŸe roÅŸii" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "RefuzaÅ£i pentru moment" #: src/misc2_interface.c:1368 #: src/options_interface.c:411 msgid "Reload" msgstr "ReîncărcaÅ£i" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "ReîncărcaÅ£i ÅŸi închideÅ£i" #: src/options_interface.c:1602 msgid "Reload constants files. This will overwrite any changes you made in the current game session." msgstr "ReîncărcaÅ£i fiÅŸierul cu constante. Aceasta va suprascrie orice modificări pe care le-aÅ£i făcut în sesiunea curentă a jocului." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "ReîncărcaÅ£i din fiÅŸier" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "ReîncărcaÅ£i fiÅŸierul cu meciuri" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "ReîncărcaÅ£i fiÅŸierul cu meciuri ÅŸi inchideÅ£i" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "ReîncărcaÅ£i fiÅŸierul cu constante" #: src/interface.c:789 #: src/interface.c:2018 msgid "Remove from transfer list" msgstr "ÅžtergeÅ£i-l de pe lista de transferuri" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "ÃŽnlăturaÅ£i utilizatorul %s din joc?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "RejucaÅ£i, ÅŸtergeÅ£i sau adăugaÅ£i meciuri memorabile." #: src/interface.c:712 msgid "Reset player list" msgstr "ResetaÅ£i lista jucătorilor" #: src/interface.c:714 #: src/interface.c:1377 msgid "Reset player list to the formation at the beginning of the live game pause (right click on player list)" msgstr "ResetaÅ£i lista de informaÅ£ii a jucătorului la începutul pauzei jocului în direct (click dreapta pe lista jucătorului)" #: src/treeview2.c:93 #: src/treeview2.c:214 msgid "Result" msgstr "Rezultat" #: src/treeview.c:2013 msgid "Results" msgstr "Rezultate" #: src/misc2_interface.c:1222 #: src/misc_interface.c:1125 msgid "Return" msgstr "ÃŽntoarcere" #: src/misc_interface.c:671 #: src/misc_interface.c:693 msgid "Return / Space" msgstr "Enter / SpaÅ£iu" #: src/interface.c:1251 #: src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Click dreapta ÅŸi click stânga pentru a schimba stimularea." #: src/interface.c:1241 #: src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Click dreapta ÅŸi click stânga pentru a schimba stilul de joc." #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "Click dreapta pentru a participa la târgul de muncă, click stânga pentru vizualizarea informaÅ£iilor despre echipă." #: src/misc_interface.c:1061 #: src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Click dreapta pentru a seta la 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ru" #: src/cup.c:1094 msgid "Round robin" msgstr "Runda" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Siguranţă (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "ÃŽmbunătăţirile de siguranţă sunt prea mari, se alege cea mai mare valoare posibilă." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "SalvaÅ£i %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "SalvaÅ£i ÅŸi închideÅ£i" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "SalvaÅ£i modificările aduse fiÅŸierului ÅŸi închideÅ£i" #: src/options_interface.c:1581 msgid "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "SalvaÅ£i modificările în fiÅŸierul de constantei. NU ÃŽL MODIFICAÅ¢I DECÂT DACÄ‚ CHIAR ÅžTIÅ¢I CE FACEÅ¢I." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "SalvaÅ£i jocul (Ctrl+S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "SalvaÅ£i setările globale în fiÅŸier" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Salvarea suprascrie" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "SalvaÅ£i setările ca prestabilite" #: src/options_interface.c:1595 msgid "Save to file" msgstr "SalvaÅ£i în fiÅŸier" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "SalvaÅ£i setările utilizatorului în fiÅŸier" #: src/interface.c:389 msgid "Save window geometry" msgstr "SalvaÅ£i geometria ferestrei" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "SalvaÅ£i mărimea, poziÅ£ia ÅŸi despărÅ£itorul vertical al ferestrei." #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Se salvează schimbările de lucru..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Se salvează ligile ÅŸi cupele..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Se salvează altele..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Se salvează ziarul..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Se salvează opÅ£iunile..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Se salvează statisticele sezonului..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Se salvează lista de transferuri..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Se salvează utilizatorii..." #: src/interface.c:508 #: src/treeview.c:1524 msgid "Scout" msgstr "Căutător de talente" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sez" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Sezon %d" #: src/interface.c:1002 msgid "Season history" msgstr "Raportul sezonului" #: src/interface.c:449 msgid "Season results" msgstr "Rezultate sezonului" #: src/misc_interface.c:387 #: src/window.c:922 msgid "Select font" msgstr "SelectaÅ£i font" #: src/cup.c:1108 msgid "Semi-final" msgstr "Semi-finală" #: src/interface.c:664 msgid "Set investment" msgstr "AlegeÅ£i investiÅ£ia" #: src/callbacks.c:842 #: src/interface.c:667 msgid "Set the percentage of your income you want to devote to your youth academy." msgstr "SetaÅ£i procentajul din profit pe care îi dedicaÅ£i academiei de juniori." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "SetaÅ£i la 0 pentru a dezactiva avertismentele" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Åžut" #: src/interface.c:813 #: src/interface.c:2030 msgid "Shoots penalties" msgstr "Åžutează la penalty" #: src/treeview.c:837 #: src/treeview.c:2422 msgid "Shot %" msgstr "Åžut %" #: src/treeview.c:836 #: src/treeview_helper.c:933 msgid "Shots" msgstr "Åžuturi" #: src/options_interface.c:707 msgid "Shots " msgstr "Åžuturi" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "AfiÅŸaÅ£i toate ligile în vederea programării meciurilor" #: src/interface.c:879 msgid "Show coming matches" msgstr "AfiÅŸaÅ£i meciurile care urmează" #: src/interface.c:935 msgid "Show finances" msgstr "AfiÅŸaÅ£i finanÅ£ele" #: src/interface.c:773 #: src/interface.c:2010 msgid "Show info" msgstr "AfiÅŸaÅ£i informaÅ£ii" #: src/interface.c:758 msgid "Show job exchange" msgstr "AfiÅŸaÅ£i ofertele de schimb de lucru" #: src/options_interface.c:503 msgid "Show job offers" msgstr "AfiÅŸaÅ£i ofertele de lucru" #: src/interface.c:857 msgid "Show last match" msgstr "AfiÅŸaÅ£i ultimul meci" #: src/interface.c:868 msgid "Show last match stats" msgstr "AfiÅŸaÅ£i statisticile ultimului meci" #: src/options_interface.c:576 msgid "Show live game" msgstr "AfiÅŸaÅ£i meciurile în direct" #: src/misc3_interface.c:74 #: src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "AfiÅŸaÅ£i meciurile din toate ligile" #: src/misc3_interface.c:79 #: src/options_interface.c:1059 msgid "Show matches from cups" msgstr "AfiÅŸaÅ£i meciurile din cupe" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "AfiÅŸaÅ£i fereastra cu ÅŸtirile după meciuri când noi ÅŸtiri ale utilizatorului au fost create" #: src/misc3_interface.c:84 #: src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "AfiÅŸaÅ£i doar pariurile mele recente" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "AfiÅŸaÅ£i doar ÅŸtirile recente" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "AfiÅŸaÅ£i toate jocurile/golurile" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "AfiÅŸaÅ£i pozele bării de progres" #: src/interface.c:946 msgid "Show stadium" msgstr "AfiÅŸaÅ£i stadion" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "AfiÅŸaÅ£i bara cu tendinÅ£e" #: src/interface.c:972 msgid "Show the betting window" msgstr "AfiÅŸaÅ£i fereastra cu pariuri" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "AfiÅŸaÅ£i lista cu posturile de manager disponibile" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "AfiÅŸaÅ£i lista de transferuri (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "AfiÅŸaÅ£i o avertizare dacă contractul unui jucător are mai puÅ£in de " #: src/interface.c:589 msgid "Show youth academy" msgstr "AfiÅŸaÅ£i academia de juniori" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Abil" #: src/treeview.c:2166 msgid "Skill" msgstr "Abilitate" #: src/options_interface.c:686 msgid "Skill " msgstr "Abilitate" #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "SăriÅ£i peste săptămânile fără jocuri ale utilizatorului" #: src/misc_interface.c:249 msgid "Space" msgstr "SpaÅ£iu" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "SpecificaÅ£i un director support adiÅ£ional (este prioritar faţă de cel standard) " #: src/misc_interface.c:710 msgid "Speed" msgstr "Viteză" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsorizare" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Oferte de sponsorizări" #: src/interface.c:977 msgid "St_ats" msgstr "St_atistici" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadion" #: src/misc2_interface.c:117 #: src/treeview.c:1483 msgid "Stadium capacity" msgstr "Capacitatea stadionului" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Cheltuielile stadionului" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Administrarea stadionului este dezactivată în definirea ţărilor." #: src/misc2_interface.c:122 #: src/treeview.c:1487 msgid "Stadium safety" msgstr "SiguranÅ£a stadionului" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Statutul stadionului" #: src/misc_interface.c:266 msgid "Start" msgstr "PorniÅ£i" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "ÃŽncepeÅ£i joc _nou" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "ÃŽncepeÅ£i în săptămâna" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "ÃŽncepeÅ£i în săptămâna:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statistici" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Statut" #: src/options_interface.c:721 msgid "Status " msgstr "Statut " #: src/misc_interface.c:951 msgid "Status:" msgstr "Statut:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Dungă" #: src/options_interface.c:1555 msgid "String" msgstr "Item" #: src/main.c:99 msgid "String id of the country to load" msgstr "Id string al ţării pentru încărcare" #: src/callbacks.c:936 msgid "Structure" msgstr "Structură" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "SchimbaÅ£i adaptarea structurii" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Sistem" #: src/interface.c:427 msgid "Tables" msgstr "Clasament" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talent % " #: src/treeview2.c:513 #: src/treeview.c:161 #: src/treeview.c:331 #: src/treeview.c:779 #: src/treeview.c:1384 #: src/treeview.c:1858 #: src/treeview.c:2012 #: src/treeview.c:2350 msgid "Team" msgstr "Echipa" #: src/options_interface.c:777 msgid "Team " msgstr "Echipă" #: src/treeview.c:1892 msgid "Team structure" msgstr "Structura echipei" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Stilul echipei a fost schimbat la %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Echipa1" #: src/treeview2.c:399 msgid "Team2" msgstr "Echipa2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "TestaÅ£i un fiÅŸier de comentarii XML" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Banca nu vă mai dă bani." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Oficiul de pariuri nu va da voie sa pariati mai mult de %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Jocul curent nu este salvat ÅŸi se va pierde. ContinuaÅ£i?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Cu cât este valoare mai mare, cu atât vor fi mai multe comentarii." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "Intervalul de actualizare a ofertelor de lucru este de %d săptămâni." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "Cu cât este valoare mai mică, cu atât vor fi mai puÅ£ine comentarii." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "DeÅ£inătorii de la %s acceptă oferta dumneavoastră." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "The owners of %s accept your application. Since %s don't want to get stuck with a lame duck, you get fired instantly and spend the rest of the current season tending your garden." msgstr "DeÅ£inătorii de la %s acceptă cererea dumneavoastra. Din moment ce %s nu doreÅŸte să se împotmoleasăc, veÅ£i fi concediat instantaneu ÅŸi veÅ£i petrece restul sezonului curent acasă." #: src/game_gui.c:812 #, c-format msgid "The owners of %s are deeply impressed by your success with %s and would like to hire you. Here's some information on %s:" msgstr "Patronii de la %s sunt impresionaÅ£i de succesele dumneavoastră cu %s ÅŸi doresc să vă angajeze. Câteva informaÅ£ii despre %s:" #: src/user.c:382 #, c-format msgid "The owners of %s are not satisfied with the recent performance of the team. There are rumours they're looking for a new manager." msgstr "Patronii echipei %s sunt dezamăgiÅ£i de modul în care joacă echipa. Sunt zvonuri că ar căuta un antrenor nou." #: src/user.c:598 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee nor the wage you offered were acceptable, they say." msgstr "DeÅ£inătorii de la %s au respins oferta dumneavoastră (%s / %s) pentru %s. Au zis că nici suma de transfer ÅŸi nici salariul nu au fost acceptabile." #: src/user.c:603 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. The team owners weren't satisfied with the fee you offered." msgstr "Patronii de la %s au respins oferta dumneavoastră (%s / %s) pentru %s. Au fost nemulÅ£umiÅ£i de suma de transfer oferită." #: src/user.c:593 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. There was a better offer for the player than yours." msgstr "Patronii de la %s au respins oferta dumneavoastră (%s / %s) pentru %s. A fost o ofertă mai bună decât a dumneavoastră." #: src/misc2_callback_func.c:348 #, c-format msgid "The owners of %s politely reject your application. You're not successful enough in their eyes." msgstr "Patronii de la %s au refuzat politicos oferta dumneavoastră. ÃŽn ochii lor, nu aÅ£i avut destul succes." #: src/callback_func.c:615 msgid "The player feels he doesn't have a future in your star-studded team. He refuses to negotiate." msgstr "Jucătorul simte că nu va avea un viitor în echipa dumneavoastră plină de staruri. El refuză să negocieze." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Jucătorul se află deja pe listă." #: src/callback_func.c:552 msgid "The player is locked (the team owners are considering an offer currently)." msgstr "Jucătorul este reÅ£inut (patronii echipei consideră o ofertă curentă)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Jucătorul nu este pe listă." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Jucătorul nu este pe listă." #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Jucătorul nu este pe listă." #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Jucătorul are o vârstă prea înaintată pentru academia de juniori." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Jucătorul nu mai negociază cu dumneavoastră." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Valoarea %d pentru structură este invalidă." #: src/user.c:642 msgid "The team owners are very satisfied with your financial management. Since the team's been earning a lot of money lately, they decide to donate half of it to charity." msgstr "Proprietarii clubului sunt foarte satisfăcuÅ£i cu managementul dumneavoastră financiar. Din moment ce echipa câştigă mulÅ£i bani în ultima vreme, au decis să doneze jumătate în proiecte de caritate." #: src/game_gui.c:806 #, c-format msgid "The team owners have fired you because of financial mismanagement. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:" msgstr "Proprietarii clublui v-au concediat datorită problemelor financiare. Din fericire, patronii echipei %s au auzit de concediere ÅŸi ar dori să vă angajaze. Câteva informaÅ£ii despre %s:" #: src/game_gui.c:809 #, c-format msgid "The team owners have fired you because of unsuccessfulness. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:" msgstr "Proprietarii clublui v-au concediat din cauza insucceselor. Din fericire, patronii echipei %s au auzit de concediere ÅŸi ar dori să vă angajaze. Câteva informaÅ£ii despre %s:" #: src/callback_func.c:559 #: src/callbacks.c:226 #: src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Perioada de transferuri s-a sfârÅŸit." #: src/misc_interface.c:1310 msgid "There are a few companies interested in sponsoring your team. Please select one:" msgstr "Sunt câteva companii care doresc să vă sponsorizeze echipa. SelectaÅ£i una :" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "Sunt jucători accidentaÅ£i sau sancÅ£ionaÅ£i în una dintre echipele utilizatorilor. ContinuaÅ£i?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "ÃŽn definirea acestei ţări nu sunt ligi (sunt numai cupe)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Nu sunt ligi sau cupe cu clasamente în definirea acestei ţări." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Nu sunt elemente din istoricul sesiunii salvate încă." #: src/callback_func.c:455 msgid "There are some offers for the player which you rejected or will see next week." msgstr "Sunt câteva oferte pentru jucătorul refuzat, sau veÅ£i vedeÅ£i săptămâna viitoare." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Nu mai este loc în academia de juniori." #: src/misc_callbacks.c:232 msgid "There were too many substitutions. Only 3 per game are allowed. Player list reset." msgstr "Sunt prea multe schimbări. Numai 3 sunt permise într-un joc. Se resetează lista de jucători." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Profit din bilete" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Ligamente fracturate" #: src/training_interface.c:117 msgid "Training" msgstr "Antrenament" #: src/interface.c:703 #: src/options_interface.c:1151 #: src/training_interface.c:60 #: src/treeview.c:1616 #: src/window.c:1007 msgid "Training camp" msgstr "Cantonament" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Cantonamentul este dezactivat în definirea acestei ţări." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Perioada de transferuri se termină în săptămâna %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Ofertă de transfer" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transferuri" #: src/callbacks.c:206 #: src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Transferurile sunt dezactivate în definirea acestei ţări." #: src/interface.c:731 msgid "Try to put the startup players onto their favoured positions and sort the substitutes (Ctrl-R or middle click)" msgstr "ÃŽncercaÅ£i să puneÅ£i jucătorii din echipa de început pe poziÅ£ia lor preferată ÅŸi să sortaÅ£i rezervele (Ctrl+R sau click mijloc)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Se dezarhivează jocul salvat..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Utilizatorul %s nu a luat încă în considerare oferta dumneavoastră." #: src/interface.c:1013 msgid "User history" msgstr "Istoricul utilizatorului" #: src/window.c:945 msgid "User management" msgstr "Administrarea utilizatorilor" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Utilizatorii -- click pentru a-i înlătura" #: src/treeview2.c:792 #: src/treeview.c:328 #: src/treeview.c:2172 msgid "Value" msgstr "Valoare" #: src/options_interface.c:749 msgid "Value " msgstr "Valoarea " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Nivelul de comentarii" #. Games won. #. Won. #: src/treeview.c:1388 #: src/treeview_helper.c:1738 msgid "W" msgstr "V" #. won #: src/team.c:1157 msgid "W " msgstr "V " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "V %d : %d" #: src/callback_func.c:575 #: src/callback_func.c:582 #: src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Salariu" #: src/options_interface.c:756 msgid "Wage " msgstr "Salariu " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Miza pariului" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Miza pariului/\n" "Câştigat/Pierdut" #: src/treeview.c:1522 msgid "Wages" msgstr "Salarii" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Săpt" #: src/treeview.c:2350 msgid "Week" msgstr "Săptămână" #: src/treeview2.c:626 #: src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Săptămâna %d Runda %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Săptămâna %d Rundă %d\n" "Runda cupei %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Suma săptămânală" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Suma săptămânală:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Bine aÅ£i venit în Bygfoot %s" #: src/options_interface.c:269 msgid "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "Dacă salvarea să suprascrie fiÅŸierul salvat curent sau să apară o fereastră 'SalvaÅ£i ca'" #: src/options_interface.c:501 msgid "Whether a confirmation popup is shown when you kick out a youth from your academy" msgstr "Dacă să apară un dialog de confirmare când daÅ£i afară un jucător de la academia de juniori" #: src/options_interface.c:279 msgid "Whether game starts with a maximized main window (doesn't work with all window managers)" msgstr "Dacă jocul să pornească cu fereastră principală maximizată (nu funcÅ£ionează în toate managerele de ferestre)" #: src/options_interface.c:534 msgid "Whether in the weekly fixture view all leagues or only the user league is shown" msgstr "Dacă în programarea săptămânală a meciurilor să apară numai meciurile din liga utilizatorului" #: src/options_interface.c:552 msgid "Whether swapping two players automatically adapts the team structure to the player positions" msgstr "Dacă schimbarea a doi jucători adaptează automat structura echipei la poziÅ£iile jucătorilor" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Dacă jocul să se întrerupă la pauze" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Dacă jocul să se întrerupă când un jucător este accidentat" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Dacă jocul să se întrerupă când un jucător este eliminat" #: src/options_interface.c:624 msgid "Whether the subs (e.g. for injured players) are made by the CPU. This is automatically done if the live game is off." msgstr "Dacă schimbările (ex. pentru accedentări) să fie făcute de computer. Această opÅ£iune este automat selectată dacă jocul în direct nu este folosit." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Dacă să fie salvat meciul în mod regulat" #: src/options_interface.c:1223 msgid "Whether to save the global settings to file (so that they get loaded next time you start a new game)" msgstr "Dacă setările globale să fie salvate într-un fiÅŸier (ca să fie încărcate data viitoare când porniÅ£i un joc nou)" #: src/options_interface.c:1228 msgid "Whether to save the user settings to file (so that they get loaded next time this user starts a new game)" msgstr "Dacă setările utilizatorului să fie salvate într-un fiÅŸier (ca să fie încărcate data viitoare când porniÅ£i un joc nou cu acest utilizator)" #: src/options_interface.c:264 msgid "Whether to show a confirmation popup if a user team has an injured or banned player in the startup formation" msgstr "Dacă să apară o fereastră de confirmare când echipa utilizatorului are un jucător rănit sau suspendat în echipa de început" #: src/options_interface.c:259 msgid "Whether to show a confirmation popup when you press quit and the game state is not saved" msgstr "Dacă să apară o fereastră de confirmare când ieÅŸiÅ£i ÅŸi nu aÅ£i salvat" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Dacă să se arate jocurile din cupă în fereastra de pariuri" #: src/misc3_interface.c:82 msgid "Whether to show cup matches. Use the options window to toggle permanently." msgstr "Dacă să se arate jocurile din cupă. UtilizaÅ£i fereastra de opÅ£iuni pentru a înlătura permanent." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Dacă să apară o ofertă de la alte echipe atunci când utilizatorul are succes" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Dacă să se afiÅŸeze meciurile din toate ligile în fereastra de pariuri" #: src/misc3_interface.c:77 msgid "Whether to show matches of all leagues. Use the options window to toggle permanently." msgstr "Dacă să se afiÅŸeze meciurile din toate ligile. FolosiÅ£i fereastra de opÅ£iuni." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Dacă să se afiÅŸeze numai pariurile dumneavoastră în lista pariurilor." #: src/options_interface.c:289 msgid "Whether to show pictures on top of the progressbar when loading/saving or calculating results" msgstr "Dacă să se afiÅŸeze poze în faÅ£a bării de progres când se încarcă/salvează sau se calculează rezultatele" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Dacă să apară jocurile/golurile jucătorului în toate competiÅ£iile" #: src/options_interface.c:284 msgid "Whether to show warnings and such in the message area in the main window when possible" msgstr "Dacă să arate avertizări în zona de mesaje din fereastra principală când este posibil" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Câştigă1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Câştigă2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "CG" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "CartonaÅŸe galbene (limită)\n" #: src/treeview.c:841 #: src/treeview_helper.c:934 msgid "Yellows" msgstr "CartonaÅŸe galbene" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "SunteÅ£i campion al %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Nu aveÅ£i datorii." #: src/callback_func.c:579 #, c-format msgid "You are making an offer for %s again. Your previous values for fee and wage are preset." msgstr "AÅ£i făcut o ofertă pentru %s. Recomandările precedente pentru valoare ÅŸi salariu sunt prescrise." #: src/callback_func.c:571 #, c-format msgid "You are making an offer for %s. Your scout's recommendations for fee and wage are preset." msgstr "AÅ£i făcut o ofertă pentru %s. Recomandările pentru valoare ÅŸi salariu ale căutătorului de talente sunt prescrise." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what you're doing; if you don't come to terms with him within %d offers, he's going to leave your team after his current contract expires (unless you sell him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "NegociaÅ£i cu %s un contract nou. AveÅ£i grijă ce faceÅ£i, dacă nu vă înÅ£elegeÅ£i din %d oferte, el va pleca de la echipa dumneavoastră după ce îi va expira contractul curent (dacă nu îl vindeÅ£i înainte). PuteÅ£i anula ÃŽNAINTE să faceÅ£i prima ofertă.\n" "Recomandările căutătorului de talente sunt prescrise:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Nu aveÅ£i datorii." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Nu aveÅ£i datorii." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "AÅ£i pariat o sumă %d cu o rată de %.2f. Cât aveÅ£i salariul?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "PuteÅ£i plăti cel mult %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "PuteÅ£i împrumuta cel mult %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "Nu vă puteÅ£i înscrie pentru a munci în străinătate dacă sunt mai mulÅ£i utilizatori." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Echipa dumneavoastră nu poate avea mai mult de %d jucători." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Nu puteÅ£i muta jucătorul, sunt prea puÅ£ini jucători în echipa dumneavoastră." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "Nu puteÅ£i face un nou contract dacă cel vechi mai durează minim 2 ani." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Nu puteÅ£i juca Bygfoot fără utilizatori!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Nu puteÅ£i înlocui un jucător sancÅ£ionat." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Nu aveÅ£i destui bani pentru a-l cumpăra pe %s de la %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "Nu aveÅ£i destui bani pentru a-l cumpăra pe %s, sau nu mai sunt locuri libere în lot." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Nu aveÅ£i destui bani pentru a plăti." #: src/bet.c:262 #: src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Nu aveÅ£i banii." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "AÅ£i terminat sezonul în %s pe locul %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "AÅ£i promovat în %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "AÅ£i retrogradat în %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "AveÅ£i %d săpămâni să plătiÅ£i restul împrumutului." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "AveÅ£i %d săpămâni să plătiÅ£i împrumutul." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "AÅ£i golit din nou contul din bancă. Å¢ineÅ£i minte că a patra oara veÅ£i fi concediat.\n" "Proprietarii echipei vă mai dau %d săptămâni să depuneÅ£i banii în bancă." #: src/user.c:578 #, c-format msgid "You have overdrawn your bank account. The team owners give you %d weeks to get above your drawing credit limit." msgstr "AÅ£i depăşit creditul contului dumneavoastră bancar. Patronii echipei vă dau %d săptămâni să ajungeÅ£i peste limita creditului." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Trebuie să plătiÅ£i împrumutul săptămâna aceasta." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Nu aÅ£i facut nicio ofertă pentru jucător." #: src/callbacks.c:972 #: src/callbacks.c:1023 #: src/callbacks.c:1043 #: src/callbacks.c:1065 #: src/callbacks.c:1085 #: src/callbacks.c:1105 #: src/callbacks.c:1125 #: src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Nu aÅ£i selectat niciun jucător." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "AÅ£i pierdut finala %s împotriva %s." #: src/callback_func.c:512 #, c-format msgid "You offered a transfer fee of %s and a wage of %s for %s. The owners and the player are satisfied with your offer. Do you still want to buy the player?" msgstr "AÅ£i oferit o sumă de transfer de %s ÅŸi un salariu de %s pentru %s. Patronii echipei ÅŸi jucătorul sunt mulÅ£umiÅ£i cu oferta dumneavoastră. Mai doriÅ£i să cumpăraÅ£i acest jucător?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "AÅ£i ajuns în %s (runda %s) din %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "AÅ£i început jocul cu %s în %s." #: src/callbacks.c:239 #: src/callbacks.c:1355 #: src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Mai aveÅ£i niÅŸte afaceri legate de transferuri." #: src/callback_func.c:771 #, c-format msgid "You want to fire %s. Since his contract expires in %.1f years, he demands a compensation of %s. Do you accept?" msgstr "DoriÅ£i să îl concediaÅ£i pe %s. Din moment ce contractul îi expiră în %.1f ani, el cere compensaÅ£ii de %s. AcceptaÅ£i?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "AÅ£i câştigat finala %s împotriva %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "AÅ£i atins limita de %d cantonamente pentru acest sezon." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "Contului dumneavoastră din bancă îi expiră creditului săptămâna viitoare." #: src/user.c:1126 #, c-format msgid "Your current sponsor is satisfied with your results and would like to renew the contract. Currently they're paying you %d a week." msgstr "Sponsorul curent este satisfăcut cu rezultatele dumneavoastră ÅŸi ar dori să reînnoaiască contractul. Momentan el vă plăteÅŸte %d pe săptămână." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Creditul dumneavoastră:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Următorul oponent" #: src/user.c:587 #, c-format msgid "Your offer for %s has been accepted. If you still want to buy him, go to the transfer list and left click on the player." msgstr "Oferta dumneavoastră pentru %s a fost acceptată. Dacă mai doriÅ£i să îl cumpăraÅ£i, mergeÅ£i la lista de transferuri ÅŸi daÅ£i click-dreapta pe jucător." #: src/callback_func.c:498 #: src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Oferta dumneavoastră a fost înlăturată." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Oferta dumneavoastră a fost actualizată." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Oferta dumneavoastră va fi analizată săpămâna viitoare." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Rezultate dumneavoastră generale" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Lotul de jucători este plin sau nu aveÅ£i destui bani." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Rezultate" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Lotul de jucători este deja plin. Nu mai puteÅ£i cumpăra jucători noi." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Lotul de jucători este plin. Nu l-aÅ£i putut cumpăra pe %s de la %s." #: src/window.c:890 msgid "Your stadium" msgstr "Stadionul dumneavoastră" #: src/treeview2.c:91 msgid "Your team" msgstr "Echipa dumneavoastră" #: src/callbacks.c:1107 #: src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Echipa dumneavoastră nu poate avea mai puÅ£in de 11 jucători." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Echipa dumneavoastră a ajut deja destule cantonamente în această săptămână." #: src/youth_academy.c:220 #, c-format msgid "Youth %s thought he's old enough for a real contract and left your youth academy." msgstr "Jucătorul %s a crezut că este destul de matur pentru un contract ÅŸi a părăsit echipa de juniori." #: src/youth_academy.c:215 #, c-format msgid "Youth %s will be too old for the youth academy soon. Move him to your team or kick him out of the academy. Otherwise he'll probably look for another team to play in." msgstr "Jucătorul %s va fi în curând prea în vârstă pentru echipa de juniori. MutaÅ£i-l în echipa dumneavoastră sau daÅ£i-l afară din echipa de juniori. Altfel, va căuta o altă echipă la care să joace." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Invest. în acad. de juniori" #: src/interface.c:578 #: src/treeview.c:1526 msgid "Youth academy" msgstr "Academia de juniori" #: src/callbacks.c:817 #: src/callbacks.c:836 #: src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Academia de juniori este dezactivată în definirea acestei ţări." #: src/interface.c:596 #: src/treeview.c:1525 msgid "Youth coach" msgstr "Antrenorul juniorilor" #: src/interface.c:304 msgid "_File" msgstr "_FiÅŸier" #: src/interface.c:1059 msgid "_Help" msgstr "_Ajutor" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_ÃŽncărcaÅ£i joc" #: src/interface.c:347 msgid "_Options" msgstr "_OpÅ£iuni" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pauză" #: src/interface.c:766 msgid "_Player" msgstr "_Jucător" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Revine" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_ReveniÅ£i la joc" #: src/interface.c:460 msgid "_Team" msgstr "_Echipă" #: src/interface.c:850 msgid "_User" msgstr "_Utilizator" #: src/treeview.c:1644 msgid "interest rate" msgstr "rata dobânzii" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Dacă găsiÅ£i ceva interesant despre joc despre care ar trebui să ÅŸtie mai " #~ "multă lume, puteÅ£i să îl scrieÅ£i în wiki Bygfoot:\n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "FiÅŸierele cu salvări" #~ msgid "Improve!" #~ msgstr "ÃŽmbunătăţiÅ£i!" #~ msgid "Load the last game that was saved or loaded." #~ msgstr "ÃŽncarcă ultimul joc care a fost încărcat sau salvat." #~ msgid "Misc." #~ msgstr "Diverse" #~ msgid "Show history" #~ msgstr "AfiÅŸaÅ£i istoric" #~ msgid "label26" #~ msgstr "etichetă26" #~ msgid "label27" #~ msgstr "etichetă27" #~ msgid "label48" #~ msgstr "etichetă48" bygfoot-2.3.2/po/pt_BR.po0000644000175000017500000026226011225071373014140 0ustar eliaselias# Spanish translation of Bygfoot. # Copyright (C) 2005 Marcelo Garrone # This file is distributed under the same license as the Bygfoot package. # Marcelo Garrone , 2005. # msgid "" msgstr "" "Project-Id-Version: pt-br 2.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-01-12 17:14+0200\n" "Last-Translator: Mihai \n" "Language-Team: Valdinei Martins \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: Brazil\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Gols/Partida %.1f Defendidos %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Gols/Partida %.1f Gols/Chutes a gol %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Você também pode escrever um e-mail para os autores:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Filhas" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Filhos" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (F)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (NOTA: Se não aceitar o jogo terminará para você)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (GC)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (P)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Ida" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Repetir partida" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Volta" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Assoc." #: src/options_interface.c:329 msgid " Autosave files " msgstr " Auto-salvar arquivo" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Banco" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Bros." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Química" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Comunicações" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Company" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Sistemas de dados" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energia" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Financeira" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Felizmente tens um primo que pode ajudar a sua equipe." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Grupo" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holdings" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Indústrias" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratórios" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltda" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petróleo" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Produtos" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restaurantes" #: src/interface.c:1220 msgid " Round " msgstr " Rodada" #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Científica" #: src/interface.c:1200 msgid " Season " msgstr " Temporada " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr "Systems" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Technologies" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telecomunicações" #: src/interface.c:1210 msgid " Week " msgstr " Semana " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " t.e." #: src/callback_func.c:466 msgid " less" msgstr " menos" #: src/options_interface.c:527 msgid " months" msgstr " meses" #: src/callback_func.c:464 msgid " more" msgstr " mais" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " p." #: src/misc_interface.c:934 msgid " seats" msgstr " assentos" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f meses / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d t.e." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d p." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d treinou a concentração." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (C)" #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N)" #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (recuperação em %d semanas)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grupo %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s aceitou sua oferta." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s e %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s e %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s não tem dinheiro para contratar a %s ou o elenco está completo." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s lhe despediu por má gestão financeira.\n" "Encontre um novo trabalho com %s em %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s lhe despediu por seu insucesso.\n" "Encontre um novo trabalho com %s em %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s está na lista de transferência a %d semana(s)." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s deixou sua equipe pois o contrato expirou." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s do %s rejeitou sua oferta (%s/%s). Ele não está satisfeito com o salário " "que você lhe ofereceu." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s do %s rejeitou sua oferta pois seu time está repleto de estrelas. Ele " "diz: \"Um jogador do meu calibre não pode ficar em segundo plano.\"" #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s ofereceu-lhe emprego no %s.\n" "Aceita o desafio e deixa %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s rejeitou sua oferta e não negociará mais com você. Deves vendê-lo antes " "que expire o contrato (de qualquer maneira ele deixará sua equipe)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s rejeitou sua oferta. Você pode formular mais %d oferta(s)." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s irá bater penaltis e faltas quando estiver jogando." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s querem contratar %s. Oferecem %s para obtê-lo, o que representa %s que o " "valor do passe do jogador. Aceitas?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "O contrato de %s expira em %.1f ano(s)." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "A lesão de %s é muito grave e não pode mais jogar a nível profissional, com " "isso deixará sua equipe." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (sem limite)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d semanas\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(Iniciando na semana %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- um simples e viciante gerenciador de futebol GTK2" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 ano" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 anos" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 anos" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 anos " #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (F) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Há problemas\n" "no estádio." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Houve distúrbios\n" "no estádio." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Há problemas técnicos\n" "no estádio." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Apostas atuais" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Apostas recentes" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Semana %d Rodada %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Um novo juvenil se registrou em sua Divisão de Base." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Um novo juvenil desejou registrar-se em sua Divisão de Base mais ela está " "completa (Lembre-se que só podes ter no máximo 10 jogadores em sua Divisão " "de Base)." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "ADICIONAR A ÚLTIMA PARTIDA" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "TODOS NO ATAQUE" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "TODOS NA DEFESA" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ATAQUE" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Sobre" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Aceito" #: src/game_gui.c:818 msgid "Accept?" msgstr "Aceita?" #: src/interface.c:1035 msgid "Add last match" msgstr "Adicionar a última partida" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "" "Adicionar a última partida registrada ao atual arquivo 'Partidas Memoráveis'." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Adicionar usuário" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Ajustar pagamento automático?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Idade" #: src/options_interface.c:735 msgid "Age " msgstr "Idade" #: src/window.c:399 msgid "All Files" msgstr "Todos os arquivos" #: src/interface.c:502 msgid "All Out Attack" msgstr "Todos no ataque" #: src/interface.c:478 msgid "All Out Defend" msgstr "Todos na defesa" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Sempre mostrar janela de notícias após uma jornada" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Qualquer" #: src/options_interface.c:1569 msgid "Appearance" msgstr "" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Aceitar novo trabalho?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Pelo menos um usuário não jogou nesta semana. Continuar?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Nos fóruns do Bygfoot você pode relatar bugs, pedir ajuda e discutir sobre o " "jogo (você não tem de se registar):\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Ataque" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Público pagante\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Atributo " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Reembolso automático de empréstimo" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Exibir Popup" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Reembolso automático" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Substituição automática" #: src/options_interface.c:443 msgid "Autosave" msgstr "Auto-salvar" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Intervalo p/ auto-salvar " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Hab.Prom.: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Hab.Prom.: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Hab.Prom." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Hab.Prom." #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Equipes disponíveis" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Regular" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Média de público" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Média de público %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Habilidade média" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Habilidade média:" #: src/treeview.c:1851 msgid "Away" msgstr "Fora" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "EQUILIBRADO" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "SUS(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Voltar ao menu principal (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Voltar ao início" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Ruim" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Balanço" #: src/interface.c:490 msgid "Balanced" msgstr "Equilibrado" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Suspenso\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Começa na semana (Space)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Ótimo" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Melhores equipes defensivas" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Artilheiros" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Melhores goleiros" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Melhores equipes ofensivas" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Apostar" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Apostar -- Click-Esq para colocar ou retirar aposta" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Balanço quinzenal" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Balanço quinzenal\n" "(Semanas %d y %d)" #: src/interface.c:669 msgid "Boost" msgstr "Motivação" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "'Motivação' não está habilitada nesta definição regional." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Motivação mudada para %s (custa %d por minuto)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Motivação: %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Custos da motivação" #: src/player.c:1430 msgid "Broken ankle" msgstr "Tornozelo quebrado" #: src/player.c:1433 msgid "Broken arm" msgstr "Braço quebrado" #: src/player.c:1427 msgid "Broken leg" msgstr "Perna quebrada" #: src/player.c:1424 msgid "Broken rib" msgstr "Costela quebrada" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Ombro quebrado" #: src/interface.c:842 msgid "Browse players" msgstr "Explorar jogadores" #: src/interface.c:745 msgid "Browse teams" msgstr "Explorar equipes" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "'Partidas Memoráveis' Bygfoot" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Notícias Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Arquivos Bygfoot" #: src/window.c:1031 #, fuzzy msgid "Bygfoot constants" msgstr "Custos da motivação" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Depuração do Bygfoot. Se iniciou por acidente, FECHE IMEDIATAMENTE (caso " "contrário, podes danificar seu CPU por um sobreaquecimento)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot é um jogo muito simples e intuitivo e, por isso não é uma " "documentação completa. No entanto, se você tiver alguma dificuldade, existem " "alguns lugares para pedir ajuda:\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "PosA" #: src/options_interface.c:665 msgid "CPos " msgstr "PosA " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "HabA" #: src/options_interface.c:679 msgid "CSkill " msgstr "HabA " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Calcular a semana de início do pagamento" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Calcular prestação semanal" #: src/training_interface.c:84 msgid "Camp points" msgstr "Preparo em campo" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capacidade (assentos)" #: src/options_interface.c:728 msgid "Cards " msgstr "Cartões" #: src/treeview.c:2182 msgid "Career values" msgstr "Carreira" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Ajustar a verbosidade do comentário. Valor alto permite ver mais sobre o " "evento." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "Ajustar a velocidade do jogo. O valor maior agiliza o jogo." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Ajustar valor do ingresso" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Selecione uma federação" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Selecione um arquivo" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Selecione um idioma (não funciona em algumas versões do Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Selecione uma liga para começar" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Selecione uma equipe" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Escolha um usuário" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Clique OK para aceitar o trabalho. Clique CANCELAR para fechar a janela." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Clique no usuário para removê-lo do jogo." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Clique no usuário para remover." #: src/options_interface.c:1640 #, fuzzy msgid "Close" msgstr "PosA" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Comentários" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Comentário em evento de teste; deixar de fora para testar todos os " "comentários" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Arquivo de comentários (Pode ser um apoio)" #: src/treeview.c:3017 msgid "Company" msgstr "Companhia" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Remunerações" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Competição" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Comprimindo arquivo..." #: src/player.c:1409 msgid "Concussion" msgstr "Concussão" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Confirmar e pagar automaticamente" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Advertir quando fechar sem salvar" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Confirmar a remoção dos juvenis" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Ação inválida" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Confirmar" #: src/options_interface.c:353 msgid "Constants file" msgstr "Arquivo 'Constantes'" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Contrato" #: src/options_interface.c:763 msgid "Contract " msgstr "Contrato " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contrato / Dinheiro" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Duração do\n" "contrato (Meses)" #: src/window.c:937 msgid "Contract offer" msgstr "Ofertas de contrato" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "'Contratos' não está habilitado nesta definição regional." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Colaboradores" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Copiando %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Custos" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Não foi possível encontrar o arquivo de imagem: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Região" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Criar notícias da copa" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Criar notícias da liga" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Criar notícias do usuário" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Campeões das copas" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Copas não tem tabela de pontos" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Capacidade atual" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Arquivo atual" #: src/treeview.c:2829 msgid "Current league" msgstr "Liga atual" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Atual interesse do mercado" #: src/treeview.c:2165 msgid "Current position" msgstr "Posição atual" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Segurança atual" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Posição atual" #: src/treeview.c:2167 msgid "Current skill" msgstr "Habilidade atual" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "Z" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "DEFESA" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Dívida (Reembolsar em %d semanas)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Depuração" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Decido depois" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Hotel (padrão)" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Recreação (padrão)" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Treinamento (padrão)" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Aposta (padrão)" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Defesa" #: src/interface.c:640 msgid "Defenders" msgstr "Zagueiros" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Sabias que?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "O arquivo 'bygfoot_help' não foi encontrado." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Deseja realmente expulsar o juvenil da Divisão de Base?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Não carregar definições" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Não carregar as definições de todas as equipes" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Feito." #: src/treeview2.c:396 msgid "Draw" msgstr "Empate" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Crédito" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "E" #. draw #: src/team.c:1150 msgid "Dw " msgstr "E " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "E %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "TalE " #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTAR" #: src/options_interface.c:432 msgid "Edit" msgstr "" #: src/interface.c:829 src/interface.c:2038 #, fuzzy msgid "Edit name" msgstr "Fonte" #: src/options_interface.c:418 #, fuzzy msgid "Edit the constants used in the game" msgstr "Recarregar as constantes salvas" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Digite uma estrutura. A soma dos algarismos deve dar 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Entrar com estrutura personalizada" #: src/window.c:865 msgid "Erm..." msgstr "Oooh..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Enter / Espaço" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Talento Estimado" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "TalE" #: src/treeview.c:2378 msgid "Event" msgstr "Eventos" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Tempo estimado" #: src/treeview.c:1704 msgid "Expenses" msgstr "Gastos" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/interface.c:398 msgid "F_igures" msgstr "_Tabelas" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Contrato" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Arquivo que contém as mensagens do jogo Ao Vivo (pode ser um apoio no dir)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Arquivo que contém a configuração que determina o comportamento do jogo. NÃO " "O ALTERE A MENOS QUE SAIBA O QUE ESTà FAZENDO." #: src/interface.c:928 msgid "Fin_Stad" msgstr "$ _Finanças" #: src/cup.c:1105 msgid "Final" msgstr "Final" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "'Finanças' não está habilitada nesta definição regional." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Despedir" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Primeiro valor: Habilidade média dos 11 jogadores titulares. Segundo valor: " "Habilidade média de todos os jogadores." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hotel de 1ª Classe" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "PF" #: src/treeview.c:2168 msgid "Fitness" msgstr "Preparo físico" #: src/options_interface.c:693 msgid "Fitness " msgstr "Preparo físico" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Tabelas (competições)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Tabelas (semanas)" #: src/options_interface.c:1541 msgid "Float" msgstr "" #: src/options_interface.c:379 msgid "Font name" msgstr "Fonte" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Fonte usada nos painéis" #: src/interface.c:652 msgid "Forwards" msgstr "Atacantes" #: src/treeview.c:840 msgid "Fouls" msgstr "Faltas" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Tornozelo fraturado" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "G" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GC" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "SG" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GP" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "PJ" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Jogabilidade" #: src/treeview_helper.c:931 msgid "Games" msgstr "Partidas" #: src/options_interface.c:700 msgid "Games " msgstr "Partidas " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Partidas/Gols\n" #: src/options_interface.c:486 msgid "Global" msgstr "Global" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Go" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Voltar a janela de início" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Go/Pa" # ---------------------------------- add marcelogarrone #: src/treeview.c:1775 msgid "Goalie" msgstr "Goleiro" #: src/interface.c:634 msgid "Goalies" msgstr "Goleiros" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Gols" #: src/options_interface.c:714 msgid "Goals " msgstr "Gols " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Gols (norm.)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Bom" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Hotel Bom" #: src/player.c:1418 msgid "Groin injury" msgstr "Lesão na virilha" #: src/player.c:1415 msgid "Hamstring" msgstr "Tendão da coxa" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Revise a lista de transferências, tens uma oferta para %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Manchete" #: src/treeview.c:2171 msgid "Health" msgstr "Saúde" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Ajuda" #: src/treeview.c:1849 msgid "Home" msgstr "Casa" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Quantos comentários gerados por evento" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Quantos dígitos separados por vírgula para habilidades, etc." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Quantos arquivos de auto-salvar" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Quanto queres apostar (padrão)" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Intervalo em que o jogo é salvo automaticamente" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Quantas vezes a lista de jogadores é atualizada durante o jogo Ao Vivo " "(minutos de Ao Vivo)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "LES(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Pular automaticamente uma semana livre para sua equipe (não necessitará " "pressionar ''Nova Semana'')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Se você não gostar de nenhum dos patrocinadores, você pode prosseguir " "algumas semanas sem patrocinador e esperar por novas ofertas" #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importar arquivo" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importar 'Partidas Memoráveis' deste arquivo" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Melhoras em progresso.\n" "%d assentos e %d%% de segurança estão em andamento.\n" "Tempo de trabalho: %d semanas." #: src/treeview.c:1703 msgid "Income" msgstr "Rendimento" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Incremento" #: src/treeview.c:843 msgid "Injuries" msgstr "Lesões" #: src/options_interface.c:1527 msgid "Integer" msgstr "" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Agora é tarde para fazer pagamento automático de empréstimo" #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Oferta de trabalho" #: src/interface.c:370 msgid "Job offers" msgstr "Ofertas de trabalho" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Ofertas de trabalho definida para %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Custos de traslado" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Expulsar da Divisão de Base" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "D" #. lost #: src/team.c:1154 msgid "L " msgstr "D" #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "D %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "_Carregar o último salvo" #: src/options_interface.c:436 msgid "Language" msgstr "Idioma" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Idioma a usar (um código como 'de')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Último %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "O último arquivo salvo não foi encontrado." #: src/treeview.c:1898 msgid "Latest results" msgstr "Últimos resultados" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga " #: src/treeview.c:2590 msgid "League champions" msgstr "Campeões das ligas" #: src/interface.c:991 msgid "League stats" msgstr "Estatísticas das ligas" #: src/league_table_interface.c:39 msgid "League table" msgstr "Classificação das ligas" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Botão-Esq: Realizar oferta. Botão-Dir: Remover oferta." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Botão-Dir: Mover jogadores para a Divisão de Base; Botão-Esq: Menu contextual" #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Clique com o botão esquerdo para exibir a tabela" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Clique com o botão esquerdo para exibir a classificação." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Botão-Esq: Obter empréstimo; Botão-Dir: Reembolsar; Botão-Med: Estádio." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1" #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Jogo Ao Vivo" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Ao Vivo: %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Velocidade da partida Ao Vivo" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Verbosidade Ao Vivo" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Carregar jogo (Ctrl-O)" #: src/main.c:94 msgid "Load last savegame" msgstr "_Carregar o último jogo salvo" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Carregar somente os nomes dos arquivos de definições" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Carregar as definições da equipe" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Carregar os arquivos de definição das equipes (Nota: o pacote oficial do " "Bygfoot não contém arquivos de definição, você deve obtê-los na homepage ou " "via script de atualização do bygfoot)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Carregando Copa: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Carregando ofertas de trabalho..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Carregando Liga: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Carregando ligas e copas..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Carregando miscelâneas..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Carregando notícias..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Carregando opções..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Carregando estatísticas da Temporada..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Carregando a lista de transferência..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Carregando usuários..." #: src/callback_func.c:397 msgid "Loan" msgstr "Empréstimo" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Realizar oferta" #: src/interface.c:1047 msgid "Manage matches" msgstr "Gestão de partidas" #: src/interface.c:917 msgid "Manage users" msgstr "Gestão de usuários" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximizar a janela" #: src/user.c:1214 msgid "Memorable match added." msgstr "Adicionar à 'Partidas Memoráveis'." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Partidas Memoráveis" #: src/treeview.c:1777 msgid "Midfield" msgstr "Meio de campo" #: src/interface.c:646 msgid "Midfielders" msgstr "Meio-campistas" #: src/treeview.c:1629 msgid "Money" msgstr "Capital" #: src/interface.c:1296 msgid "Money " msgstr "Capital " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Capital (aprox.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Dinheiro / semana" #: src/interface.c:2092 msgid "Move to team" msgstr "Mover para a equipe" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Mover para a Divisão de Base" #: src/interface.c:438 msgid "My league results" msgstr "Meus resultados no campeonato" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Nome" #: src/options_interface.c:658 msgid "Name " msgstr "Nome " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Campo neutro" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Propor\n" "novo contrato" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nova configuração" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Notícias" #: src/misc3_interface.c:315 msgid "Next" msgstr "Próximo" #: src/interface.c:1434 msgid "Next (W)" msgstr "Próximo (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Próximo campeonato/copa (2)" #: src/interface.c:895 msgid "Next user" msgstr "Próximo usuário" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Na próxima semana, o despedirá e contratará outro." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Não exibir popup" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Não há melhoras em curso." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Não há partidas salvas." #: src/treeview2.c:600 msgid "No news available." msgstr "Nenhuma notícia disponível" #: src/misc_callbacks.c:468 msgid "None" msgstr "Nada" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Não é um arquivo válido de 'Partidas Memoráveis'." #: src/window.c:882 msgid "Numbers..." msgstr "Números..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "DESATIVADO" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "ATIVADO" #: src/interface.c:686 msgid "Off" msgstr "Desativado" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Propor um novo contrato" #: src/interface.c:680 msgid "On" msgstr "Ativado" #: src/misc_interface.c:211 msgid "Only names" msgstr "Somente nomes" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Abrir arquivo 'Partidas Memoráveis'" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Adversário" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Lista dos jogadores rivais" #: src/window.c:914 msgid "Options" msgstr "Opções" #: src/treeview.c:1904 #, fuzzy msgid "Overall results" msgstr "Resultados da semana" #: src/interface.c:379 msgid "Overwrite" msgstr "Sobrescrever" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Sobrescrever a definição: %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "PJ" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PTS" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pausa no intervalo" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pausa devido uma lesão" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pausa breve por cartão vermelho" #: src/callback_func.c:427 msgid "Payback" msgstr "Reembolso" #: src/treeview.c:839 msgid "Penalties" msgstr "Penaltis" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Não selecionado para bater Penaltis/Faltas" #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Preparador Físico" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "O jogador aceita novas ofertas" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Precisão dos atributos do jogador" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Mostrar atributos do jogador" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "" "O jogador não negociará mais com você. (Nota: Ainda podes despedi-lo ou " "negociá-lo com outro clube. Caso contrário, deixará sua equipe ao se " "encerrar o contrato)." #: src/misc2_interface.c:165 msgid "Player list" msgstr "Lista de jogadores" #: src/interface.c:1363 msgid "Player list 1" msgstr "Lista de jogadores (1)" #: src/interface.c:1371 msgid "Player list 2" msgstr "Lista de jogadores (2)" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Intervalo de atualização da lista de jogadores" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Estilo de jogo" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Popup para notícias do usuário" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos " #: src/treeview.c:2164 msgid "Position" msgstr "Posição" #: src/treeview.c:838 msgid "Possession" msgstr "Posse de bola %" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Mensagens" #: src/interface.c:354 msgid "Preferences" msgstr "Preferências" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Hotel 5 estrelas" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Anterior" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Anterior (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Campeonato/Copa anterior (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Usuário anterior" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Preço do ingresso" #: src/treeview.c:1517 msgid "Prize money" msgstr "Recompensa" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Desgaste muscular" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Mover para a lista de transferências" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Quartas de final" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Sair (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "APAGAR" #: src/treeview2.c:68 msgid "REPLAY" msgstr "REPETIR" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Aleatorizar equipes nas copas" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Ordem aleatória das equipes nas copas. Isto somente tem sentido nas " "competições internacionais como o mundial, quando a ordem das equipes é fixa." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Posição" #: src/interface.c:1281 msgid "Rank " msgstr "Posição" #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Lista" #: src/interface.c:728 msgid "Rearrange team" msgstr "Rearranjar equipe" #: src/training_interface.c:98 msgid "Recreation" msgstr "Recreação" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Preferência de recrutamento" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Cartões Vermelhos" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Por enquanto não" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Recarregar" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Recarregar e fechar" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" #: src/options_interface.c:1616 #, fuzzy msgid "Reload from file" msgstr "Recarregar partidas desde arquivo" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Recarregar partidas desde arquivo" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Recarregar partidas desde arquivo e fechar" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Recarregar as constantes salvas" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Retirar da lista de transferência" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Remover o usuário %s do jogo?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Repetir, apagar ou adicionar à 'Partidas Memoráveis'." #: src/interface.c:712 msgid "Reset player list" msgstr "Reajustar a lista de jogadores" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Restabelecer a lista de jogadores (clique direito na lista dos jogadores)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Resultado" #: src/treeview.c:2013 msgid "Results" msgstr "Resultados" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Enter" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Enter / Espaço" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Botão-Dir e Botão-Esq: mudar o estado da motivação" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Botão-Dir e Botão-Esq: mudar o estilo de jogo" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Botão-Dir: Aceitar o trabalho; Botão-Esq: Ver as informações da equipe." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Botão-Direito: ajusta a 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ro" #: src/cup.c:1094 msgid "Round robin" msgstr "Rodada preliminar" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Segurança (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "O investimento em segurança é acima no necessário. Reajuste-o para o mais " "alto posível." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Defendidos %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Salvar e fechar" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Salvar as alterações no arquivo e fechar" #: src/options_interface.c:1581 #, fuzzy msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Arquivo que contém a configuração que determina o comportamento do jogo. NÃO " "O ALTERE A MENOS QUE SAIBA O QUE ESTà FAZENDO." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Salvar Jogo (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Salvar preferências globais" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Sobrescrever" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Salvar preferências como padrão" #: src/options_interface.c:1595 #, fuzzy msgid "Save to file" msgstr "Salvar preferências pessoais" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Salvar preferências pessoais" #: src/interface.c:389 msgid "Save window geometry" msgstr "Salvar geometria da janela" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Salvar tamanho, posição e divisão vertical da janela" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Salvando ofertas de trabalho..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Salvando ligas e copas..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Salvando miscelâneas..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Salvando notícias..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Salvando opções..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Salvando as estatísticas da Temporada..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Salvando a lista de transferência..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Salvando usuários..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Recrutador" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Tem" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Temporada %d" #: src/interface.c:1002 msgid "Season history" msgstr "Histórico da Temporada" #: src/interface.c:449 msgid "Season results" msgstr "Resultados da semana" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Selecionar fonte" #: src/cup.c:1108 msgid "Semi-final" msgstr "Semifinal" #: src/interface.c:664 msgid "Set investment" msgstr "Ajustar investimento" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Ajuste o percentual de seu rendimento que será investido na Divisão de Base" #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Ajuste o '0' para desligar as advertências" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Ch" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Bater penaltis" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Gols/Chutes a gol %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Chutes a gol" #: src/options_interface.c:707 msgid "Shots " msgstr "Chutes a gol" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Ver as tabelas de todas as Ligas" #: src/interface.c:879 msgid "Show coming matches" msgstr "Ver próximas partidas" #: src/interface.c:935 msgid "Show finances" msgstr "Ver Finanças" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Ver informações" #: src/interface.c:758 msgid "Show job exchange" msgstr "Ver ofertas de trabalho" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Ver ofertas de trabalho" #: src/interface.c:857 msgid "Show last match" msgstr "Ver última partida" #: src/interface.c:868 msgid "Show last match stats" msgstr "Ver estatísticas da última partida" #: src/options_interface.c:576 msgid "Show live game" msgstr "Ver partida ao vivo" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Ver partidas de todas as ligas" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Ver partidas das copas" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Mostrar uma janela de notícias depois de uma nova jornada de notícias de " "usuário for criada." #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Mostrar somente as apostas mais recentes" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Mostrar somente as notícias mais recentes" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Ver todos as Partidas/Gols" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Mostrar barras de progresso" #: src/interface.c:946 msgid "Show stadium" msgstr "Ver estádio" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Ver barra de tendência" #: src/interface.c:972 msgid "Show the betting window" msgstr "Mostrar a janela de apostas" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Mostra a lista de empregos de treinador" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Ver lista de transferências (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Advertir se o Contrato de um jogador expira em " #: src/interface.c:589 msgid "Show youth academy" msgstr "Ver Divisão de Base" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Hab" #: src/treeview.c:2166 msgid "Skill" msgstr "Habilidade" #: src/options_interface.c:686 msgid "Skill " msgstr "Habilidade" #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Pular semanas sem partidas" #: src/misc_interface.c:249 msgid "Space" msgstr "Espaço" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "Especifique um diretório adicional de suporte (tem prioridade sobre os pré-" "definidos)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Velocidade" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Patrocinador" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Patrocínios" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Ofertas dos patrocinadores" #: src/interface.c:977 msgid "St_ats" msgstr "_Estado" #: src/treeview.c:1477 msgid "Stadium" msgstr "Estádio" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Capacidade do estádio" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Despesas do estádio" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "'Gestão de estádio' não está habilitada nesta definição regional." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Segurança do estádio" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Estado do estádio" #: src/misc_interface.c:266 msgid "Start" msgstr "Iniciar" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Iniciar _nova partida" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Iniciar nova semana" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Iniciar nova semana:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Estatísticas" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Estado" #: src/options_interface.c:721 msgid "Status " msgstr "Estado " #: src/misc_interface.c:951 msgid "Status:" msgstr "Estado:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Fase" #: src/options_interface.c:1555 #, fuzzy msgid "String" msgstr "Tendão da coxa" #: src/main.c:99 msgid "String id of the country to load" msgstr "Puxar a id do país ao carregar." #: src/callbacks.c:936 msgid "Structure" msgstr "Estrutura" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Adaptar estrutura" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Sistema" #: src/interface.c:427 msgid "Tables" msgstr "Classificação" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talento %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Time" #: src/options_interface.c:777 msgid "Team " msgstr "Time" #: src/treeview.c:1892 msgid "Team structure" msgstr "Estrutura" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Estilo: %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Equipe1" #: src/treeview2.c:399 msgid "Team2" msgstr "Equipe2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Testar um arquivo de comentário XML" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "O banco não lhe empresta mais dinheiro." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "A casa de apostas não as aceita se o valor for superior a %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "" "O jogo atual não está salvo e caso continue perderá os dados. Deseja " "continuar?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Quanto maior é o valor, mais serão os comentários que verá." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "O intervalo para atualizar as ofertas de empregos é de %d semanas." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Quanto menor é o valor, mais rápido visualizará os comentários Ao Vivo." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "Os dirigentes do %s aceitaram sua oferta." # Es dificil traducir Lame Duck (http://en.wikipedia.org/wiki/Lame_duck) #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Os dirigentes do %s aceitam sua proposta. Como %s não querem ficar com um " "parasita, estás despedido, portanto gaste o resto da temporada deitado no " "jardim." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Os dirigentes do %s estão impressionados com seu êxito no %s e desejam " "contratá-lo. Aqui tens informações sobre %s: " #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Os dirigentes do %s não estão satisfeitos com os resultados da equipe. Há " "rumores de que estão pensando em contratar um novo treinador." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Os dirigentes do %s rejeitaram sua oferta (%s / %s) por %s. Não aceitam " "tanto o Contrato como Salário." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Os dirigentes do %s rejeitaram sua oferta (%s / %s) por %s. Não estão " "satisfeitos com o Contrato que você ofereceu." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Os dirigentes do %s rejeitaram sua oferta (%s / %s) por %s. Há uma oferta " "para o jogador melhor que a sua." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Os dirigentes do %s rejeitaram seu pedido. Você não está suficientemente bem " "sucedido aos seus olhos." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "O jogador acha que não tem futuro em seu time de estrelas. Ele não aceita " "negociar." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "O jogador já está na lista." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "Jogador bloqueado (os dirigentes da equipe estão estudando a oferta)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "O jogador não está na lista." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "O jogador está numa má fase" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "O jogador está numa boa fase" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "O jogador não tem mais idade para estar na Divisão de Base." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "" "O jogador não negociará mais com você (Nota: Ainda podes despedi-lo ou " "negociá-lo com outro clube. Caso contrário, deixará sua equipe ao se " "encerrar o contrato)." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "A estrutura %d é inválida." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Os dirigentes da equipe estão muito satisfeitos com a sua gestão financeira. " "Uma vez que o time vem ganhando muito dinheiro ultimamente, eles decidem " "doar metade para caridade." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Os dirigentes da equipe lhe despediram devido a sua má gestão financeira. " "Felizmente os dirigentes de %s ouviram falar de sua demissão e lhe oferecem " "um emprego. Aqui tens informações sobre %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Os dirigentes da equipe estão lhe demitindo devido ao seus insucessos. " "Felizmente, os dirigentes do %s ouviram falar de sua demissão e lhe oferecem " "trabalho. Aqui tens informações sobre %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "O prazo de transferência terminou." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Há algumas companhias interessadas em patrocinar sua equipe. Por favor " "selecione uma:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Você tem jogadores lesionados ou suspensos em sua equipe. Deseja continuar?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Não há ligas nesta definição regional (somente copas)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Não há resultados de ligas e taças regionais nesta definição." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Não há elementos históricos armazenados." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Não há ofertas para o jogador que você rejeitou ou foi adiado para a semana " "seguinte." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Não há espaço em sua Divisão de Base (No máximo 10 juniores)." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Há muitas substituições. Apenas 3 são permitidas por jogo. Reajuste a lista " "de jogadores." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Bilheteria" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Ruptura de ligamento" #: src/training_interface.c:117 msgid "Training" msgstr "Treinamento" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Concentração" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "'Concentração' não está habilitada nesta definição regional." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "O prazo para transferências termina na semana %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Oferta de transferência" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transferências" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "'Transferências' não está habilitada nesta definição regional." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Organizar jogadores titulares nas suas posições ideais e ordenar os " "substitutos (Ctrl-R ou middle click)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Descomprimindo jogo salvo..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "O usuário %s não considerou sua oferta ainda." #: src/interface.c:1013 msgid "User history" msgstr "Histórico do usuário" #: src/window.c:945 msgid "User management" msgstr "Gestor do usuário" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Usuários -- Clique para remover" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Valor" #: src/options_interface.c:749 msgid "Value " msgstr "Valor " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Detalhes" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "V" #. won #: src/team.c:1157 msgid "W " msgstr "V " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "V %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Salário" #: src/options_interface.c:756 msgid "Wage " msgstr "Salário " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Salário" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Aposta/\n" "Ganhou/Perdeu" #: src/treeview.c:1522 msgid "Wages" msgstr "Salários" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Semana" #: src/treeview.c:2350 msgid "Week" msgstr "Semana" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Semana %d Rodada %d" #: src/treeview.c:1030 #, fuzzy, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "Semana %d Rodada %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Prestação semanal" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Prestação semanal" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Bem-vindo ao Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "O recurso \"Salvar\" sobrescreve o arquivo. O 'Salvar Como' abre uma janela " "para salvar um novo arquivo." #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "Solicitar confirmação quando expulsar um juvenil da Divisão de Base" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Iniciar o jogo com o menu principal maximizado (não funciona com todos os " "gerenciadores de janelas)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Mostrar as tabelas de todas as ligas ou somente a liga que está participando." #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Quando vender um dos jogadores, adaptar automaticamente a estrutura da " "equipe ao esquema preferido" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Breve pausa entre os intervalos da partida Ao Vivo" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Breve pausa se na partida Ao Vivo um jogador estiver lesionado" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Breve pausa se na partida Ao Vivo um jogador for expulso" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "As substituições (p.e. para os jogadores lesionados) serão realizadas pelo " "computador. Isto é feito automaticamente se Ao Vivo está desativado." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Guarda o jogo automaticamente com regularidade" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Guardar as preferências globais num arquivo (reutilizar ao começar um novo " "jogo)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Guardar as preferências do usuário num arquivo (reutilizar, para o mesmo " "usuário, ao começar um novo jogo)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Só advertir se entre os jogadores titulares tiver um jogador lesionado ou " "suspenso" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "Só advertir quando sair do programa sem salvar" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Mostrar jogos do campeonato na janela de apostas" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Mostrar os jogos do campeonato. Use as opções da janela para alternar " "permanentemente." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Só mostrar as ofertas de trabalho quando o usuário é bem sucedido." #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Mostrar as partidas de todas as ligas na tabela de apostas." #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Mostrar as partidas de todas as ligas. Use as opções da janela para alternar " "permanentemente." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Mostrar apenas as apostas recentes na lista de apostas." #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Mostrar imagens no topo da progressão quando carregar / ou calcular " "resultados." #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Mostrar partidas/gols do jogador em todas as competições." #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Mostrar as advertências e as mensagem na janela principal quando possível." #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Coluna1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Coluna2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "CA" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Cartões amarelos (limite)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Cartões Amarelos" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Você é o campeão do(a) %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Você está livre de dívidas." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Você está fazendo uma nova oferta para %s. Estes são os valores anteriores." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Você está fazendo uma oferta por %s. Seu Recrutador recomenda os seguintes " "Contrato e Salário." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Você está negociando com %s um novo contrato. Cuidado! se não fechar o " "contrato em %d ofertas, ele deixará sua equipe quando expirar o contrato " "atual (a menos que o venda ou o despida). Podes desistir ANTES da primeira " "oferta.\n" "Estes são os valores recomendados pelo Recrutador:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Você não está endividado." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Você não está endividado." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "" "Você aposta no resultado de %d com uma probabilidade de %.2f.. Quanto você " "aposta?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Você pode reembolsar até %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Você pode retirar, no máximo %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Você não pode aceitar um posto de trabalho no estrangeiro, se houver mais de " "um usuário." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Você não pode ter mais de %d jogadores em sua equipe." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "" "Você não pode negociar o jogador pois existem poucos jogadores em seu time" #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "Não podes oferecer um novo contrato se o atual tem mais de 2 anos." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Não se pode jogar o Bygfoot sem usuário/s!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Você não pode substituir um jogador expulso." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Não tens dinheiro suficiente para contratar %s de %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Você não tem dinheiro suficiente para contratar %s ou seu elenco está " "completo." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Você não tem dinheiro suficiente para pagar sua dívida." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Você não tem dinheiro." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Você finalizou a temporada %s na %s ª posição." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Você foi promovido para %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Você foi rebaixado para %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Você tem %d semanas para pagar o restante do empréstimo." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Você tem %d semanas para pagar sua dívida." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Você estourou novamente seu limite bancário. Tenha em mente que, após a " "quarta vez você será despedido.\n" "Os dirigentes da equipe lhe dão %d semanas para superar o limite de crédito." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Você estourou seu limite bancário. Os dirigentes da equipe lhe dão %d " "semanas para superar o limite de crédito." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Você deve pagar o empréstimo nesta semana." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Você não fez uma oferta pelo jogador." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Você não selecionou um jogador." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Perdeu a final do(a) %s contra %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Você ofereceu %s pelo Contrato e um salário de %s para %s. Os dirigentes e o " "jogador estão satisfeitos com sua oferta. Você quer contratá-lo?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Você chegou a %s (rodada %s) de %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Você iniciou o jogo com %s em %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Você tem algumas ofertas pendentes." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Você quer despedir %s. Seu contrato com ele expira em %.1f anos. Ele exige " "uma remuneração de %s. Você aceita? " #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Ganhou a final do(a) %s contra %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Seu time alcançou o limite de %d para treinamento na concentração." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "Sua conta bancária deve ultrapassar o limite de crédito na próxima semana." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Seu patrocinador está satisfeito com seus últimos resultados e quer renovar " "o contrato. Atualmente ele está pagando %d por semana." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Suas dívidas" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Seu próximo adversário" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Sua oferta por %s foi aceita. Se deseja contratá-lo, vá até a lista de " "transferência e clique (botão esquerdo) sobre o jogador." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Sua oferta foi removida." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Sua oferta foi atualizada." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Sua oferta será estudada na próxima semana." #: src/treeview.c:1913 #, fuzzy msgid "Your overall results" msgstr "Seus resultados" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Seu elenco está completo ou não tens dinheiro suficiente." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Seus resultados" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Seu elenco está completo. Não podes contratar mais jogadores." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Seu elenco está completo. Você não pode contratar %s de %s." #: src/window.c:890 msgid "Your stadium" msgstr "Seu estádio" #: src/treeview2.c:91 msgid "Your team" msgstr "Seu time" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Seu time não pode ter menos de 11 jogadores em campo." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Seu time já treinou bastante esta semana." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "O juvenil %s não tinha mais idade para estar na Divisão de Base e a deixou " "por você não ter-lhe oferecido um contrato profissional." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "O juvenil %s não tem mais idade para estar na Divisão de Base. Mova-o para " "seu time ou expulse-o da Divisão de base. Senão, provavelmente ele buscará " "outra equipe para jogar." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Investimento Divisão de base" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Divisão da Base" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "'Divisão de Base' não está habilitada nesta definição regional." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Treinador" #: src/interface.c:304 msgid "_File" msgstr "_Arquivo" #: src/interface.c:1059 msgid "_Help" msgstr "_Ajuda" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Carregar Jogo" #: src/interface.c:347 msgid "_Options" msgstr "_Opções" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pausa" #: src/interface.c:766 msgid "_Player" msgstr "_Jogador" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Iniciar" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Continuar partida" #: src/interface.c:460 msgid "_Team" msgstr "_Time" #: src/interface.c:850 msgid "_User" msgstr "_Usuário" #: src/treeview.c:1644 msgid "interest rate" msgstr "Taxa de juros" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Se você sente que descobriu algo sobre o jogo que tem de ser partilhada, " #~ "você poderá adicionar ao Bygfoot Wikii: \n" #~ msgid "Improve!" #~ msgstr "Melhorar!" #~ msgid "Misc." #~ msgstr "Misc." #~ msgid "Show history" #~ msgstr "Ver Histórico" bygfoot-2.3.2/po/es.po0000644000175000017500000026051011225071373013535 0ustar eliaselias# Spanish translation of Bygfoot. # Copyright (C) 2005 Marcelo Garrone # This file is distributed under the same license as the Bygfoot package. # Marcelo Garrone , 2005, 2006 # Carlos Garces , 2006, 2007 # msgid "" msgstr "" "Project-Id-Version: bygfoot-2.1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-01-28 08:54+0100\n" "Last-Translator: Ivan Ramirez \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Goles/Partido %.1f Atajada %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Goles/Partido %.1f Tiro %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Tambien puede escribir un correo a los autores:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Hijas" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Hijos" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (TL)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr "(NOTA. Si no aceptas el juego habrá terminado para ti)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (GC)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (P)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Primera vuelta" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Repetir partido" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Segunda vuelta" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Asoc." #: src/options_interface.c:329 msgid " Autosave files " msgstr " Autoguardar archivo" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Banco" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Hnos." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Quimicos" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Comunicaciones" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Compañía" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Sistemas de datos" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energías" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Financiera" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Afortunadamente tiene un primo que pueda ayudar a su equipo" #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Grupo" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Tendencias" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industrias" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratorios" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petrolera" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Productos" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restaurantes" #: src/interface.c:1220 msgid " Round " msgstr " Ronda " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Científicos" #: src/interface.c:1200 msgid " Season " msgstr " Temporada " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Sistemas" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Tecnologías" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telecomunicaciones" #: src/interface.c:1210 msgid " Week " msgstr " Semana " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " t.e." #: src/callback_func.c:466 msgid " less" msgstr " menos" #: src/options_interface.c:527 msgid " months" msgstr " meses" #: src/callback_func.c:464 msgid " more" msgstr " más" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " p." #: src/misc_interface.c:934 msgid " seats" msgstr " asientos" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f meses / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d t.e." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d p." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "Le quedan %d concentraciones disponibles para esta temporada" #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (L)" #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N)" #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (recuperación en %d semanas)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grupo %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s aceptó su oferta." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s y %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s y %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s no tiene los medios para comprar a %s o la lista llena." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s lo despide por mala gestión financiera.\n" "Encuentra un nuevo trabajo con %s en %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s lo despide por su mala racha.\n" "Encuentra un nuevo trabajo con %s en %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s se agregó a la lista de transferencia por %d semanas." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s ha abandonado su equipo al expirar el contrato." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s de %s ha rechazado su oferta (%s/%s). Él no quedó satisfecho con el " "salario que usted le ofreció." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s de %s ha rechazadaco tu oferta porque tu equipo tiene demasiados " "jugadores estrella. 'Un jugador de mi nivel no puede estar en un segundo " "lugar,' ha dicho." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s le propuso empleo en %s.\n" "Acepta el desafío y deja %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s rechazó su oferta y no negociará mas con usted. Debe venderlo antes que " "expire el contraro (de todos modos el dejará su equipo)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s rechaza su oferta. Puede aún formular %d ofertas." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s tirará penales y tiros libres cuando esté jugando." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s quieren comprar a %s. Ofrecen %s para obtenerlo, lo que representa %s que " "el valor del jugador. ¿Acepta?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "El contraro de %s expira en %.1f años." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "La lesión de %s es grabe y no puede jugar más a nivel profesional. Deja su " "equipo." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (sin límite)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d semanas\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(comenzando semana %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- Un manager de futbol en GTK simple y adictivo" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 año" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 años" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 años" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 años " #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (V) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Hubo fuego\n" "el estadio." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Hubo disturbios\n" "en el estadio." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Hubo problemas técnicos\n" "en el estadio." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Apuestas actuales" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Apuestas recientes" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Semana %d Ronda %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Un nuevo juvenil se ha registrado en su Academia juvenil." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Un nuevo juvenil deseó registrarse en su Academia juvenil pero no había " "lugar para él." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "AGREGAR ÚLTIMO PARTIDO" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "TODOS AL ATAQUE" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "TODOS EN DEFENSA" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ATAQUE" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Acerca de" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Acepto" #: src/game_gui.c:818 msgid "Accept?" msgstr "¿Acepta?" #: src/interface.c:1035 msgid "Add last match" msgstr "Agregar último partido" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "" "Agregar último partido registrado en el actual archivo 'Partidos Memorables'." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Agregar usuario" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "¿Ajustar el calendario de pagos?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Edad" #: src/options_interface.c:735 msgid "Age " msgstr "Edad " #: src/window.c:399 msgid "All Files" msgstr "Todos los archivos" #: src/interface.c:502 msgid "All Out Attack" msgstr "Todos al ataque" #: src/interface.c:478 msgid "All Out Defend" msgstr "Todos en defensa" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Mostrar siempre la ventana de noticias antes del partido" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Cualquiera" #: src/options_interface.c:1569 msgid "Appearance" msgstr "" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Aplicar al trabajo?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Por lo menos un usuario no jugó su turno en esta semana. ¿Continúa?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "En el foro de Bygfoot puede publicar errores, pedir ayuda y discutir sobre " "el juego:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Ataque" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Asistencia\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Atributo " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Pago automático de deuda" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Ventanas emergentes automaticas" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Renovacion automatica" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Sustitución automática" #: src/options_interface.c:443 msgid "Autosave" msgstr "Autoguardar" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Intervalo" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Hab.Prom.: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Hab.Prom.: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Hab.Prom." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Hab.Prom." #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Equipos disponibles" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Medio" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Promedio de asistencia" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Promedio de asistencia %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Habilidad promedia" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Habilidad promedia:" #: src/treeview.c:1851 msgid "Away" msgstr "Visitante" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "EQUILIBRADO" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "SAN(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Volver al panel principal (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Volver a inicio" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Malo" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Balance" #: src/interface.c:490 msgid "Balanced" msgstr "Equilibrado" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Sancionado\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Iniciar nueva semana (Space)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Mejor" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Mejores equipos defensivos" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Mejores goleadores" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Mejores arqueros" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Mejores equipos ofensivos" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Apostar" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Apostar -- Left click on odd to place or remove bet" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Balance quincenal" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Balance quincenal\n" "(Semanas %d y %d)" #: src/interface.c:669 msgid "Boost" msgstr "Motivación" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "'Motivación' está deshabilitado en esta definición regional." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Motivación cambiada a %s (cuesta %d por minuto)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Motivación: %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Costes de motivación" #: src/player.c:1430 msgid "Broken ankle" msgstr "Rotura de tobillo" #: src/player.c:1433 msgid "Broken arm" msgstr "Brazo quebrado" #: src/player.c:1427 msgid "Broken leg" msgstr "Pierna quebrada" #: src/player.c:1424 msgid "Broken rib" msgstr "Costilla rota" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Hombro quebrado" #: src/interface.c:842 msgid "Browse players" msgstr "Explorar jugadores" #: src/interface.c:745 msgid "Browse teams" msgstr "Explorar equipos" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "'Partidos Memorables' Bygfoot" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Noticoas de Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Archivos Bygfoot" #: src/window.c:1031 #, fuzzy msgid "Bygfoot constants" msgstr "Costes de motivación" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Depuración de Bygfoot. Si llegó aquí por accidente, CIERRE INMEDIATAMENTE " "(Puede dañar el CPU por sobrecalentamiento)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot es un juego intuitivo y sencillo. Pero si usted necesita consultar " "la documentación puede dirigirse a estos sitios:\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "PosA" #: src/options_interface.c:665 msgid "CPos " msgstr "PosA " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "HabA" #: src/options_interface.c:679 msgid "CSkill " msgstr "HabA " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Calcular el inicio de la semana" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Calcular pago semanal" #: src/training_interface.c:84 msgid "Camp points" msgstr "Puntos de campo" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capacidad (asientos)" #: src/options_interface.c:728 msgid "Cards " msgstr "Tarjetas " #: src/treeview.c:2182 msgid "Career values" msgstr "Carrera" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Cambia verbosidad del comentario. Valor alto permite ver más sobre el evento." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "Cambia velocidad de En Vivo. El valor menor agiliza el En Vivo." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Cambiar el precio de la entrada" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Elija una región" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Seleccione un archivo" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Elija lenguaje del entorno (no funciona en versiones para Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Elija la liga para comenzar" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Seleccione equipo" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Elija un nombre de usuario" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Pulsar OK para aplicar el trabajo, Pulse CANCELAR para cerrar la ventana." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Clic en el usuario para borrarlo del juego." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Clic en el usuario para borrarlo." #: src/options_interface.c:1640 #, fuzzy msgid "Close" msgstr "PosA" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Comentarios" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Evento de comentario a probar; omitir para probar todos los comentarios" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Fichero de comentario (may be in a support dir)" #: src/treeview.c:3017 msgid "Company" msgstr "Companía" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Remuneraciones" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Competición" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Comprimiendo archivo..." #: src/player.c:1409 msgid "Concussion" msgstr "Conmoción cerebral" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Confirmar monto y calendario de pagos" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Advertir cuando cierra sin guardar" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Confirma el borrado de los juveniles" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Acción inválida" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Confirmar!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Archivo 'Constants'" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Contrato" #: src/options_interface.c:763 msgid "Contract " msgstr "Contrato " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contrato / Dinero" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Duración del\n" "contrato (Meses)" #: src/window.c:937 msgid "Contract offer" msgstr "Ofertas de contrato" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "'Contratos' está deshabilitado en esta definición regional." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Colaboradores" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Copiando %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Costos" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "No se encontró el archivo de imagen: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Región" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Crear noticias de copa" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Crear noticias de liga" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Crear noticias de usuario" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Campiones de la copa" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "La copa no tiene tablas" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Capacidad actual" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Habilidad actual" #: src/treeview.c:2829 msgid "Current league" msgstr "Liga actual" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Interés del mercado actual" #: src/treeview.c:2165 msgid "Current position" msgstr "Posición actual" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Seguridad actual" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Configuración actual" #: src/treeview.c:2167 msgid "Current skill" msgstr "Habilidad actual" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "D" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "DEFENSA" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Deuda (Reembolsar en %d semanas)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Depuración" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Luego decido" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Hotel por defecto" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Recreación por defecto" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Concentración por defecto:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Apuesta por defecto" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Defensa" #: src/interface.c:640 msgid "Defenders" msgstr "Defensores" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "¿Sabías que?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "No se encontró 'bygfoot_help'." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "¿Realmente desea expulsar al muchacho de su Academia?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "No cargar definiciones" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "No cargó la definición del equipo" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Listo." #: src/treeview2.c:396 msgid "Draw" msgstr "Sorteo" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Crédito" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "E" #. draw #: src/team.c:1150 msgid "Dw " msgstr "E " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "E %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "TalE " #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTAR" #: src/options_interface.c:432 msgid "Edit" msgstr "" #: src/interface.c:829 src/interface.c:2038 #, fuzzy msgid "Edit name" msgstr "Fuente" #: src/options_interface.c:418 #, fuzzy msgid "Edit the constants used in the game" msgstr "Recharger le fichier des constantes" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Ingresar una formación. La suma tiene que dar 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Ingresar formación personalizada" #: src/window.c:865 msgid "Erm..." msgstr "Ooh..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Enter / Space" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Talento estimado" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "TalE" #: src/treeview.c:2378 msgid "Event" msgstr "Eventos" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Tiempo estimado" #: src/treeview.c:1704 msgid "Expenses" msgstr "Gastos" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/interface.c:398 msgid "F_igures" msgstr "_Tablas" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Contrato" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Archivo que contiene los testigos del juego en directo (may be in a support " "dir)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Archivo que contiene la configuración que determina el comportamiento del " "juego. NO LO CAMBIE A MENOS QUE SEPA LO QUE ESTà HACIENDO." #: src/interface.c:928 msgid "Fin_Stad" msgstr "$ _Finanzas" #: src/cup.c:1105 msgid "Final" msgstr "Final" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "'Finanzas' está deshabilitada en esta definición regional." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Despedir" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Primer valor: Habilidad promedia de los 11 jugadores titulares. Segundo " "valor: Habilidad promedia de todos los jugadores." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hotel de primera clase" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Fit" #: src/treeview.c:2168 msgid "Fitness" msgstr "Fitness" #: src/options_interface.c:693 msgid "Fitness " msgstr "Fitness " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Fixtures (competencias)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Fixtures (semanas)" #: src/options_interface.c:1541 msgid "Float" msgstr "" #: src/options_interface.c:379 msgid "Font name" msgstr "Fuente" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Fuente usada en los paneles" #: src/interface.c:652 msgid "Forwards" msgstr "Atacantes" #: src/treeview.c:840 msgid "Fouls" msgstr "Faltas" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Tobillo fracturado" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "G" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GC" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "Dif" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GF" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "PJ" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Juego" #: src/treeview_helper.c:931 msgid "Games" msgstr "Partidos" #: src/options_interface.c:700 msgid "Games " msgstr "Partidos " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Partidos/Goles\n" #: src/options_interface.c:486 msgid "Global" msgstr "Global" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Go" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Volver a la ventana de inicio" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Go/Pa" # ---------------------------------- add marcelogarrone #: src/treeview.c:1775 msgid "Goalie" msgstr "Arquero" #: src/interface.c:634 msgid "Goalies" msgstr "Arqueros" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Goles" #: src/options_interface.c:714 msgid "Goals " msgstr "Goles " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Goles (norm.)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Bueno" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Buen hotel" #: src/player.c:1418 msgid "Groin injury" msgstr "Lesión en la ingle" #: src/player.c:1415 msgid "Hamstring" msgstr "Tendón de corva" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Revise la lista de transferencias, tiene oferta para %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Titular" #: src/treeview.c:2171 msgid "Health" msgstr "Salud" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Ayuda" #: src/treeview.c:1849 msgid "Home" msgstr "Local" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Cuantos comentarios genera por evento" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Ingrese dígitos separadados por una coma para: habilidades, etc." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Cuántos archivos autoguardará" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Cuanto quieres apostar por defecto" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Intervalo en que se guarda automaticamente el juego" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "En cuánto, la lista de jugadores, se actualiza durante el juego En Vivo " "(minutos de En Vivo)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "LES(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Si se encuentra una semana libre para su equipo se salteará automáticamente " "(no necesitará presionar ''Nueva Semana'')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Si no le convencen los patrocinantes, puede esperar algunas semanas sin " "patrocinante hasta recibir nuevas ofertas." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importar archivo" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importar partidos desde 'Partidos Memorables'" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Mejoras en progreso.\n" "%d asientos y %d%% de seguridad que se añadirán.\n" "Tiempo de trabajo: %d semanas." #: src/treeview.c:1703 msgid "Income" msgstr "Ganancia" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Mejorar" #: src/treeview.c:843 msgid "Injuries" msgstr "Lesiones" #: src/options_interface.c:1527 msgid "Integer" msgstr "" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "" "Es muy tarde para realizar pagos de deuda automáticos en esta temporada." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Oferta de trabajo" #: src/interface.c:370 msgid "Job offers" msgstr "Ofertas de trabajo" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Ofertas laborales: %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Costos de traslado" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Expulsar de la Academia" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "P" #. lost #: src/team.c:1154 msgid "L " msgstr "P " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "P %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "_Cargar el último guardado" #: src/options_interface.c:436 msgid "Language" msgstr "Lenguaje" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Imioma a usar (un código como 'de')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Último %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "No se encuentra el último archivo guardado." #: src/treeview.c:1898 msgid "Latest results" msgstr "Últimos resultados" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga " #: src/treeview.c:2590 msgid "League champions" msgstr "Campeones de la liga" #: src/interface.c:991 msgid "League stats" msgstr "Estadísticas de la liga" #: src/league_table_interface.c:39 msgid "League table" msgstr "Tabla de la liga" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Clic-Izq: Ofertar. Clic-Der: Retirar oferta." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Clic-Der: Mover jugadores hacia y desde la Academia Juvenil; Clic-Izq: Menú " "contextual" #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Click izquierda para mostrar fixtures" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Click izquierda para mostrar tabla" #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "Clic-Izq: Obtener préstamo; Clic-Der: Reembolsar; Clic-Med: Estadio." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1" #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Juego en directo" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "En Vivo: %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Velocidad del partido En Vivo" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Verbosidad de En Vivo" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Cargar juego (Ctrl-O)" #: src/main.c:94 msgid "Load last savegame" msgstr "_Cargar el último guardado" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Cargar sólo los nombres del archivo de definiciones" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Cargar definiciones del equipo" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Carga los equipos desde los archivos de definición (Nota: el paquete oficial " "de Bygfoot no contiene archivos de definición, tiene que conseguirlos del " "'Homepage' o vía 'bygfoot-update')" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Cargando Copa: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Cargando ofertas de trabajo..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Cargando Liga: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Cargando ligas y copas..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Cargando misceláneos..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Cargando noticias..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Cargando opciones..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Cargando estadística de la Temporada..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Cargando lista de trasferencia..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Cargando usuarios..." #: src/callback_func.c:397 msgid "Loan" msgstr "Préstamo" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Realizar oferta" #: src/interface.c:1047 msgid "Manage matches" msgstr "Gestión de partidos" #: src/interface.c:917 msgid "Manage users" msgstr "Gestión de usuarios" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Panel maximizado" #: src/user.c:1214 msgid "Memorable match added." msgstr "Agregar 'Partidos Memorables'." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Partidos Memorables" #: src/treeview.c:1777 msgid "Midfield" msgstr "Mediocampo" #: src/interface.c:646 msgid "Midfielders" msgstr "Mediocampistas" #: src/treeview.c:1629 msgid "Money" msgstr "Capital" #: src/interface.c:1296 msgid "Money " msgstr "Capital " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Capital (aprox.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Dinero / semana" #: src/interface.c:2092 msgid "Move to team" msgstr "Mover al equipo" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Mover a la Acad. Juvenil" #: src/interface.c:438 msgid "My league results" msgstr "Mis resultado del campeonato" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Nombre" #: src/options_interface.c:658 msgid "Name " msgstr "Nombre " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Cancha neutral" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Proponer\n" "nuevo contraro" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nuevos parametros:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Noticias" #: src/misc3_interface.c:315 msgid "Next" msgstr "Siguiente" #: src/interface.c:1434 msgid "Next (W)" msgstr "Próximo (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Próximo campeonato/copa" #: src/interface.c:895 msgid "Next user" msgstr "Próximo usuario" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "La próxima semana, lo despedirán y contratarán otro." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Sin ventanas automaticas" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "No hay mejoras en marcha." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "No hay partidos almacenados." #: src/treeview2.c:600 msgid "No news available." msgstr "No hay noticias disponibles" #: src/misc_callbacks.c:468 msgid "None" msgstr "Nada" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "No es un archivo válido de 'Partidos Memorables'." #: src/window.c:882 msgid "Numbers..." msgstr "Números..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "DESACTIVADO" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "ACTIVADO" #: src/interface.c:686 msgid "Off" msgstr "Desactivado" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Propone un nuevo contrato" #: src/interface.c:680 msgid "On" msgstr "Activado" #: src/misc_interface.c:211 msgid "Only names" msgstr "Sólo nombres" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Abrir archivo 'Partidos Memorables'" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Adversario" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Lista de jugadores rivales" #: src/window.c:914 msgid "Options" msgstr "Opciones" #: src/treeview.c:1904 #, fuzzy msgid "Overall results" msgstr "Resultados de la semana" #: src/interface.c:379 msgid "Overwrite" msgstr "Sobreescribir" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Sobreescritura: %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "PJ" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PTS" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pausa en descanso" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pausa por causa de una lesión" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pausa breve por tarjeta roja" #: src/callback_func.c:427 msgid "Payback" msgstr "Reembolso" #: src/treeview.c:839 msgid "Penalties" msgstr "Penales" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Tirador de penal/tiro libre no está seleccionado." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Físico" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "El jugador acepta nuevas ofertas" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Precisión de los atributos del jugador" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Mostrar atributos del jugador" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "El jugador no negocia más" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Lista de jugadores" #: src/interface.c:1363 msgid "Player list 1" msgstr "Lista de jugadores (1)" #: src/interface.c:1371 msgid "Player list 2" msgstr "Lista de jugadores (2)" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Intervalo de actualización de la lista de jugadores" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Estilo de juego" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Ventanas emergentes para noticias de usuario" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos " #: src/treeview.c:2164 msgid "Position" msgstr "Posición" #: src/treeview.c:838 msgid "Possession" msgstr "Posesión" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Mensajes" #: src/interface.c:354 msgid "Preferences" msgstr "Preferencias" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "El mejor hotel" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Atras" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Anterior (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Campeonato/Copa anterior (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Usuario anterior" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Precio por entrada" #: src/treeview.c:1517 msgid "Prize money" msgstr "Récompense" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Desgarro muscular" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Activar la lista de transferencias" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Cuarto de finales" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Salir (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "BORRAR" #: src/treeview2.c:68 msgid "REPLAY" msgstr "REPETIR" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Equipos aleatorios en copas" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Orden aleatorio de los equipos en las copas. Esto solo tiene sentido en las " "competiciones internacionales como el mundial, cuando el orden de los " "equipos es fijo." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Posición" #: src/interface.c:1281 msgid "Rank " msgstr "Posición " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Listo" #: src/interface.c:728 msgid "Rearrange team" msgstr "Rearmar equipo" #: src/training_interface.c:98 msgid "Recreation" msgstr "Regeneración" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Preferencia de reclutamiento" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Rojas" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Por ahora no" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Recargar" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Recargar y cerrar" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" #: src/options_interface.c:1616 #, fuzzy msgid "Reload from file" msgstr "Recargar partidos desde archivo" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Recargar partidos desde archivo" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Recargar partidos desde archivo y cerrar" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Recharger le fichier des constantes" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Retirar de la lista de transferencia" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "¿Borrar usuario %s del juego?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Repetir, borrar o agregar 'Partidos Memorables'." #: src/interface.c:712 msgid "Reset player list" msgstr "Reajustar lista de jugadores" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "Restablecer lista de jugadores" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Resultado" #: src/treeview.c:2013 msgid "Results" msgstr "Resultados" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Enter" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Enter / Espacio" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Clic-Der y Clic-Izq: cambiar el estado de motivación" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Clic-Der y Clic-Izq: cambiar el estilo de juego" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "Clic-Der: Aceptar el trabajo; Clic-Izq: Ver la información del equipo" #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Clic-Der: ajusta a 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ro" #: src/cup.c:1094 msgid "Round robin" msgstr "Ronda preliminar" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Seguridad (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Inversión en seguridad muy elevado, reajuste el valor al más alto posible." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Atajada %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Guardar y cerrar" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Guardar cambios en archivo y cerrar" #: src/options_interface.c:1581 #, fuzzy msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Archivo que contiene la configuración que determina el comportamiento del " "juego. NO LO CAMBIE A MENOS QUE SEPA LO QUE ESTà HACIENDO." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Guardar Juego (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Guardar preferencias globales" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Sobrescribir" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Guardar como valores por defecto" #: src/options_interface.c:1595 #, fuzzy msgid "Save to file" msgstr "Guardar preferencias personales" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Guardar preferencias personales" #: src/interface.c:389 msgid "Save window geometry" msgstr "Guardar geometría" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Guardar tamaño, posición y divición vertical de la ventana" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Guardando ofertas de trabajo..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Guardando ligas y copas..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Guardando misceláneos..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Guardando noticias..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Guardando opciones..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Guardando estadísticas de la Temporada..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Guardando lista de transferencia..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Guardando usuarios..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Reclutador" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Tem" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Temporada %d" #: src/interface.c:1002 msgid "Season history" msgstr "Historial de la Temporada" #: src/interface.c:449 msgid "Season results" msgstr "Resultados de la semana" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Seleccione una fuente" #: src/cup.c:1108 msgid "Semi-final" msgstr "Semifinal" #: src/interface.c:664 msgid "Set investment" msgstr "Ajuste inversión" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Fije el porcentaje de su renta que usted desea dedicar a su Academia Juvenil." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Ajustando a '0' no muestra advertencia" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Ti" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Tiros de penal" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Tiro %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Tiros" #: src/options_interface.c:707 msgid "Shots " msgstr "Tiros " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Ver el fixture de todas las Ligas" #: src/interface.c:879 msgid "Show coming matches" msgstr "Ver próximos partidos" #: src/interface.c:935 msgid "Show finances" msgstr "Ver Finanzas" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Ver información" #: src/interface.c:758 msgid "Show job exchange" msgstr "Ver ofertas de trabajo" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Ver ofertas" #: src/interface.c:857 msgid "Show last match" msgstr "Ver último partido" #: src/interface.c:868 msgid "Show last match stats" msgstr "Ver estadísticas del último partido" #: src/options_interface.c:576 msgid "Show live game" msgstr "Ver partido en directo" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Ver partidos de todas las ligas" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Ver partidos de competiciones coperas" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Mostrar la ventana de noticias al término de la jornada cuando se han creado " "noticias para el usuario" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Mostrar solo las apuestas más recientes" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Mostrar solo las noticias más recientes" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Ver todos los Paridos/Goles" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Mostrar barras de progreso" #: src/interface.c:946 msgid "Show stadium" msgstr "Ver estadio" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Ver barra de tendencia" #: src/interface.c:972 msgid "Show the betting window" msgstr "Mostrar la ventana de apuestas" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Muestra la ventana de puestos de emtrenador" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Ver lista de transferencias (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Advierte si el Contrato de un jugador expira en " #: src/interface.c:589 msgid "Show youth academy" msgstr "Ver Acad. Juvenil" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Hab" #: src/treeview.c:2166 msgid "Skill" msgstr "Habilidad" #: src/options_interface.c:686 msgid "Skill " msgstr "Habilidad " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Saltear semanas sin partido" #: src/misc_interface.c:249 msgid "Space" msgstr "Espacio" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "Especifique un directorio adicional de soporte (tendra menor prioridad que " "el por defecto)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Velocidad" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Patrocinador" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsor" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Ofertas de los patrocinantes" #: src/interface.c:977 msgid "St_ats" msgstr "Est_adísticas" #: src/treeview.c:1477 msgid "Stadium" msgstr "Estadio" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Capacidad del estadio" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Costo del estadio" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "'Gestión de estadio' está deshabilitada en esta definición regional." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Seguridad del estadio" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Estado del estadio" #: src/misc_interface.c:266 msgid "Start" msgstr "Comenzar" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Empezar _nueva partida" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Empezar en semana" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Empezar en semana:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Estadísticas" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Estado" #: src/options_interface.c:721 msgid "Status " msgstr "Estado " #: src/misc_interface.c:951 msgid "Status:" msgstr "Estado:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Racha" #: src/options_interface.c:1555 #, fuzzy msgid "String" msgstr "Tendón de corva" #: src/main.c:99 msgid "String id of the country to load" msgstr "id del país a cargar" #: src/callbacks.c:936 msgid "Structure" msgstr "Formación" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Adaptar formación" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Sistema" #: src/interface.c:427 msgid "Tables" msgstr "Tabla de posiciones" #: src/treeview2.c:517 msgid "Talent %" msgstr "Tal %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Equipo" #: src/options_interface.c:777 msgid "Team " msgstr "Equipo " #: src/treeview.c:1892 msgid "Team structure" msgstr "Formación" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Estilo: %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Equipo1" #: src/treeview2.c:399 msgid "Team2" msgstr "Equipo2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Probar un fichero XML de comentarios" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "El banco no le concede más dinero." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "La oficina de apuestas no acepta una apuesta de mas de %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "El juego está sin guardar y se perderán los datos. ¿Desea continuar?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Cuanto mayor es el valor, mayores son los comentarios que verá." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "El intervalo para actualizar los empleos en %d semanas." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Cuanto menor es el valor, más rápido visualizará los comentarios En Vivo." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "Los dueños de %s aceptaron su oferta." # Es dificil traducir Lame Duck (http://en.wikipedia.org/wiki/Lame_duck) #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Los dueños de %s aceptan su propuesta. Como %s no quieren quedarse con un " "parasito, es despedido inmediatamente y pasa el resto de la temporada " "tumbado en el jardin." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Los dueños de %s se impresionaron de su éxito con %s y desean contratarlo. " "Aquí tiene información sobre %s: " #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Los dueños de %s no están sastifechos con el resultado del equipo. Hay " "rumores de que están pensando en contratar a un nuevo manager." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Los dueños de %s han rechazado su oferta (%s / %s) por %s. No han aceptado " "tanto el Contrato como el salario." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Los dueños de %s han rechazado su oferta (%s / %s) por %s. No están " "satisfecho con el Contrato que usted ofreció." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Los dueños de %s han rechazado su oferta (%s / %s) por %s. Hay una oferta " "mejor para el jugador que la de usted." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Los dueños de %s rechazan su aplicación. En su opinión, usted no ha sido " "suficientemente exitoso." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "El jugador siente que no tiene futuro es su equipo lleno de estrellas. El se " "rehusa a negociar." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "El jugador ya está en su lista." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "Jugador bloqueado (los dueños del equipo están estudiando la oferta)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "El jugador no se está en la lista." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "El jugador está con mala racha." #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "El jugador está con buena racha." #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "El jugador tiene demasiada edad para la Academia Juvenil." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "El jugador no negociará más con usted." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "La formación %d es inválida." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Los dueños del club estan satisfechos con su manejo de las finanzas. Ya que " "el equipo ha estado obteniendo grandes sumas de dinero ultimamente, ellos " "han decidido donar la mitad a instituciones de caridad." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Los dueños del equipo lo despedirán debido a su mala gestión financiera. " "Afortunadamente los dueños de %s han oído de su despido y le ofrecen un " "empleo. Aquí tiene información sobre %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Los dueños del equipo le han encendido debido a unsuccessfulness. " "Afortunadamente, los dueños de %s han oído hablar de su despido y le ofrecen " "un trabajo. Aquí tiene la información sobre %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "El plazo de la transferencia terminó." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Hay algunas compañías interesadas en patrocinar su equipo. Por favor " "seleccione uno:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Tiene jugadores lesionados o sancionados en uno de sus equipos. ¿Continúa?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "No hay ligas en esta definición regional (solo copas)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "No hay resultados de ligas y copas en esta definición regional." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "No hay elementos en sesiones historicas aun." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Hay ofertas para el jugador que rechazó o postergó para la semana siguiente." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "No hay sitio en su Academia Juvenil." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Tiene muchas sustituciones, Sólo se permiten 3 por partido. Reajuste la " "lista de jugadores." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Entradas" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Rotura de ligamento" #: src/training_interface.c:117 msgid "Training" msgstr "Entrenamiento" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Campo de entrenamiento" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "" "El campo de entrenamiento esta desabilitado para esta definicion de pais." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "La transferencia termina en %d semanas." #: src/window.c:968 msgid "Transfer offer" msgstr "Oferta de transferencia" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transferencias" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "'Transferencias' está deshabilitada en esta definición regional." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Organiza jugadores titulares en sus posiciones ideal y ordena los suplentes " "(Ctrl-Der o Clic-Med)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Descomprimiendo archivo..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "El usuario %s todavía no ha considerado su oferta." #: src/interface.c:1013 msgid "User history" msgstr "Historial de usuario" #: src/window.c:945 msgid "User management" msgstr "Gestión de usuario" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Usuarios -- Clic para borrar" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Valor" #: src/options_interface.c:749 msgid "Value " msgstr "Valor " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Detalles" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "G" #. won #: src/team.c:1157 msgid "W " msgstr "G " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "G %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Salario" #: src/options_interface.c:756 msgid "Wage " msgstr "Salario " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Salario" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Apuesta/\n" "Gana/Pierde" #: src/treeview.c:1522 msgid "Wages" msgstr "Salarios" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Semana" #: src/treeview.c:2350 msgid "Week" msgstr "Semana" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Semana %d Ronda %d" #: src/treeview.c:1030 #, fuzzy, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "Semana %d Ronda %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Pago semanal" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Pago semanal:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Bienvenido a Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Si la acción 'Guardar' sobreescribe el archivo o muestra una ventana " "emergente con 'Guardar como'" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "Solicita confirmación cuando expulsa a un juvenil de la Academia" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Si inicia el juego con el panel principal maximizado (se excluye las otras " "ventanas)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Muestra todas las ligas en el fixture semanal o sólo la liga en que está " "participando." #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Cuando intercambie a dos jugadores, adapta automáticamente la formación del " "equipo a las posiciones preferidas" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Breve pausa si en el partido En Vivo lesionan a un jugador" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Breve pausa si en el partido En Vivo lesionan a un jugador" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Breve pausa si en el partido En Vivo expulsan a un jugador" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Las sustituciones (p.e. para los jugadores lesionados) son realizadas por el " "CPU. Esto se hace automáticamente si En Vivo está desactivado." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Guarda el juego automáticamente con regularidad" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Guarda preferencias globales en un archivo (reutilizara al comenzar en un " "nuego juego)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Guardar preferencias del usuario en un archivo (reutilizará, siendo el mismo " "usuario, al comenzar en un nuevo juego)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Se advierte si entre los jugadores titulares tiene un jugador lesionado o " "sancionado" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "Se advierte cuando sale del programa sin guardar" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Mostrar los partidos de copas en la ventana de apuestas" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Mostrar los partidos de copas. Use la ventana de opciones para modificar " "permanentemente." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Se muestran las ofertas de trabajo cuando un usuario es afortunado" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Mostrar partidos de todas las ligas en la ventana de apuestas" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Mostrar los partidos de todas las ligas. Use la ventana de opciones para " "modificar permanentemente." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Mostrar solo sus apuestas en la lista de apuestas recientes" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Mostrar fotos encima de la barra de progreso mientras se guardan/cargan " "archivos o calculan resultados" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Muestra partidos/goles del jugador en todas las competencias" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Muestra las advertencias y similares en el área de mensajes del panel " "principal" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Ganador1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Ganador2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "TA" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Tarjetas amarillas (límite)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Amarillas" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Usted es campeón del %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Está liberado de la deuda." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Está realizando nuevamente una oferta para %s. Estos son los valores " "anteriores." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Está creando un oferta para %s. Su Reclutador recomienda el siguiente " "Contrato y Sueldo." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Está negociando con %s por un contrato nuevo. Cuidado con esta compra; si no " "realiza el contrato en %d ofertas, él dejará su equipo cuando expire el " "contrato actual (a menos que lo venda). Puede abortar solo ANTES de la " "primera oferta.\n" "Los valores son los que recomienda su Reclutador:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Usted no está endeudado." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Usted no está endeudado." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "" "Usted apuesta por un resultado %d con una probabilidad %.2f. ¿Cuánto apuesta?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Puede pagar la deuda hasta %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Puede retirar hasta %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "No puede aplicar a un trabajo en otro país si hay más de un usuario." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "No puede tener más de %d jugadores en su equipo." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "No puede mover el jugador, tiene pocos jugadores en su equipo." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "No puede ofrecer un nuevo Contrato si el actual tiene más de 2 años." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "¡No se puede jugar en Bygfoot sin usuario/s!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "No puede remplazar a un jugador sancionado." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "No tiene suficiente dinero para comprar %s de %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "No tiene suficiente dinero para comprar %s o tiene la lista llena." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Usted no tiene suficiente dinero para pagar la deuda." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "No tiene dinero." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Finalizó la temporada %s en la posición %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Ha sido promovido a %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Ha sido relegado a %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Tiene %d semanas para pagar el resto del préstamo." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Tiene %d semanas para pagar su deuda." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "ha sobregirado de nuevo su cuenta bancaria. Luego de la cuarta vez que " "suceda esto lo despedirán.\n" "Los dueños del equipo le dan %d semanas para superar el límite de crédito." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Ha sobregirado su cuenta bancaria. Los dueños del equipo le dan %d semanas " "para superar el límite de crédito." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Debe pagar el préstamo en esta semana." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "No ha propuesto una oferta para el jugador." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "No ha seleccionado un jugador." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Perdió la final de %s contra %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Ofreció un Contrato de transferencia de %s y de un salario de %s para %s. " "Los dueños y el jugador están satisfechos con su oferta. ¿Usted sin embargo " "desea comprar el jugador?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Llegó a la %s (ronda %s) de %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Ha iniciado el juego con %s en %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Tiene algunas ofertas pendientes." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Desea despedir a %s. Ya que su contrato expira en %.1f años, él exige una " "remuneración de %s. ¿Usted acepta? " #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Ha ganado el %s contra %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Ha llegado al limite de %d concentraciones por temporada" #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "Su cuenta bancaria debe sobrepasar el límite de crédito para la semana " "próxima." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Su Patrocinado está satisfecho con los últimos resultados y quiere renovar " "el contrato. Actualmente le están pagando %d por semana." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Sus deudas:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Su próximo adversario" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Su oferta para %s fue aceptada. Si desea todavía comprarlo, vaya a la lista " "de trasferencia y pulse sobre el jugador." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Su oferta fue removida." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Su oferta fue actualizada." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Su oferta será estudiada en la próxima semana." #: src/treeview.c:1913 #, fuzzy msgid "Your overall results" msgstr "Sus resultados" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Tiene la lista de jugadores llena o no tiene suficiente dinero." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Sus resultados" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Su lista esta llena. No puede comprar más jugadores." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Su lista está llena. Usted no puede comprar %s de %s." #: src/window.c:890 msgid "Your stadium" msgstr "Su estadio" #: src/treeview2.c:91 msgid "Your team" msgstr "Su equipo" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Su equipo no puede tener menos de 11 jugadores." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Su equipo ha tenido suficientes concentraciones esta semana." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "El juvenil %s pensó que tenía demasiada edad para un contrato verdadero y " "dejó su Acad. Juvenil." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "El juvenil %s pronto tendrá más edad del admitido en la Academia. Muévalo a " "su equipo o expúlselo de la Academia. Sino, probablemente, él buscará a otro " "equipo para jugar." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Inver. en la Acad. Juvenil." #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Academia Juvenil" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "'Motivación' está deshabilitada en esta definición regional." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Entrenador" #: src/interface.c:304 msgid "_File" msgstr "_Archivo" #: src/interface.c:1059 msgid "_Help" msgstr "A_yuda" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Cargar Juego" #: src/interface.c:347 msgid "_Options" msgstr "_Opciones" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pausa" #: src/interface.c:766 msgid "_Player" msgstr "_Jugador" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Iniciar" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Continuar partido" #: src/interface.c:460 msgid "_Team" msgstr "_Equipo" #: src/interface.c:850 msgid "_User" msgstr "_Usuario" #: src/treeview.c:1644 msgid "interest rate" msgstr "tasa de interés" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Si usted a descubierto algo sobre el juego que quiere compartirlo, puede " #~ "agregarlo a Bygfoot Wiki: \n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Archivos Bygfoot" #~ msgid "Improve!" #~ msgstr "¡Mejorar!" #~ msgid "Misc." #~ msgstr "Misc." #~ msgid "Show history" #~ msgstr "Ver Historia" bygfoot-2.3.2/po/el.po0000644000175000017500000033607311225071373013536 0ustar eliaselias# translation of el.po to # Greek translations for PACKAGE package. # Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # elias , 2009. # msgid "" msgstr "" "Project-Id-Version: el\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-06-27 14:51+0300\n" "Last-Translator: elias\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "ΤέÏματα/Αγώνα %.1f ΑποκÏοÏσεις %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "ΤέÏ/Αγ %.1f Σουτ %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "ΜποÏείτε ακόμα και να γÏάψετε ένα email Ï€Ïος τους συγγÏαφείς:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & ΘυγατέÏες" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Υιοί" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " Φάουλ" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (ΣΗΜΕΙΩΣΗ: Εάν δεν δεχτείτε, το παιχνίδι τελείωσε για σας.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (Αυτογκόλ)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (Πέναλτι)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- ΠÏώτος αγώνας" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Επανάληψη αγώνων" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- ΔεÏτεÏος αγώνας" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Assoc." #: src/options_interface.c:329 msgid " Autosave files " msgstr " ΑÏχεία αυτόματης αποθήκευσης" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " ΤÏάπεζα" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Bros." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Χημικά" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Επικοινωνίες" #. Company name. #: src/user.c:990 msgid " Company" msgstr " ΕταιÏία" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Data Systems" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " ΕνέÏγεια" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Οικονομική" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Ευτυχώς έχει έναν ξάδεÏφο που μποÏεί να βοηθήσει την ομάδα σας." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Όμιλος" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " ΧαÏτοφυλάκια" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Βιομηχανικές επιχειÏήσεις" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " ΕÏγαστήÏια" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " ΠετÏελαϊκή" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " ΠÏοιόντα" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " ΕστιατόÏια" #: src/interface.c:1220 msgid " Round " msgstr " ΓÏÏος " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Επιστημονική" #: src/interface.c:1200 msgid " Season " msgstr " ΠεÏίοδος " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Λογισμικό" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Συστήματα" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Τεχνολογίες" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Τηλεπικοινωνίες" #: src/interface.c:1210 msgid " Week " msgstr " Εβδομάδα " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " παÏάταση" #: src/callback_func.c:466 msgid " less" msgstr " λιγότεÏο" #: src/options_interface.c:527 msgid " months" msgstr "μήνες" #: src/callback_func.c:464 msgid " more" msgstr " πεÏισσότεÏο" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " πέναλτι." #: src/misc_interface.c:934 msgid " seats" msgstr "θέσεις" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f μήνες / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d παÏ." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d πέν." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "Απομένουν %d Ï€Ïοπονητικά κέντÏα αυτή την πεÏίοδο." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (Εν.) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (Ουδ.) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (αναμενόμενη ανάÏÏωση σε %d εβδομάδες)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s ΓκÏουπ %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "Ο %s δέχεται την Ï€ÏοσφοÏά σας." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s και %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s και %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s δεν μπόÏεσε να αγοÏάσει τον %s ή το ÏÏŒÏƒÏ„ÎµÏ Ï„Î¿Ï… ήταν πλήÏες." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "Η %s σας απολÏει λόγω οικονομικής κακοδιαχείÏισης. \n" "Î’Ïίσκετε νέα εÏγασία με %s στη %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "H %s σας απολÏει λόγω αποτυχίας.\n" "Î’Ïίσκετε νέα εÏγασία με %s στη %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "Ο %s Ï€Ïοστέθηκε στη λίστα μεταγÏαφών για %d εβδομάδες." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "Ο %s άφησε την ομάδα σας γιατί έληξε το συμβόλαιο του." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "Ο %s της %s απέÏÏιψε την Ï€ÏοσφοÏά σας (%s / %s). Δεν είναι ικανοποιημένος με " "τον μισθό που Ï€ÏοσφέÏατε." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "Ο %s της %s απέÏÏιψε την Ï€ÏοσφοÏά σας γιατί η ομάδα σας ήδη έχει πολλοÏÏ‚ " "παίκτες-αστέÏια. 'Ένας παίκτης της αξίας μου δεν μποÏεί να είναι δεÏτεÏο " "βιολί,' είπε." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "Η %s σας Ï€ÏοσφέÏει εÏγασία στη %s.\n" " Δέχεστε την Ï€Ïόκληση και αφήνετε την %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "Ο %s αποÏÏίπτει την Ï€ÏοσφοÏά σας και δεν θα διαπÏαγματευτεί άλλο μαζί σας. " "ΠÏέπει να τον πουλήσετε Ï€Ïιν εκπνεÏσει το συμβόλαιο του (αλλιώς θα αφήσει " "απλώς την ομάδα σας)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "Ο %s αποÏÏίπτει την Ï€ÏοσφοÏά σας. ΜποÏείτε να κάνετε ακόμα %d Ï€ÏοσφοÏές." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s θα εκτελεί πέναλτι και φάουλ όταν παίζει." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "Ο %s θα ήθελε να αγοÏάσει τον %s. ΠÏοσφέÏουν %s γι' αυτόν, κάτι που είναι %s " "πάνω από την τιμή του παίκτη. Δέχεστε;" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "Το συμβόλαιο του %s λήγει σε %.1f χÏόνια." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "Ο Ï„Ïαυματισμός του %s ήταν τόσο σοβαÏός που δεν μποÏεί να παίξει πια " "ποδόσφαιÏο σε επαγγελματικό επίπεδο. Αφήνει την ομάδα σας." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (χωÏίς ÏŒÏιο)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d εβδομάδες\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(εκκίνηση εβδομάδα %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- ένας απλός και εθιστικός GTK2 Î¼Î¬Î½Î±Ï„Î¶ÎµÏ Ï€Î¿Î´Î¿ÏƒÏ†Î±Î¯Ïου" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 χÏόνος" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 χÏόνια" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 χÏόνια" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 χÏόνια" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (Εκ.) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "ΎπηÏξε φωτιά\n" "στο γήπεδο." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "ΎπηÏξαν έκτÏοπα\n" "στο γήπεδο." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "ΎπηÏξαν τεχνικά Ï€Ïοβλήματα\n" "στο γήπεδο." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "Current bets" msgstr "" "ΤÏέχοντα στοιχήματα" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "Recent bets" msgstr "" "ΠÏόσφατα στοιχήματα" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Εβδομάδα %d ΓÏÏος %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Ένας νέος παίκτης εγγÏάφηκε στην ακαδημία νέων σας." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Ένας νέος παίκτης θέλησε να εγγÏαφεί στην ακαδημία νέων σας αλλά δεν υπήÏχε " "χώÏος γι' αυτόν." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "ΠΡΟΣΘΕΣΗ ΤΕΛΕΥΤΑΙΟΥ ΑΓΩÎΑ" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "ΟΛΟΙ ΕΠΙΘΕΣΗ" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "ΟΛΟΙ ΑΜΥÎΑ" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ΑÎΤΙ" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ΕΠΙΘΕΣΗ" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "ΠεÏί" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Αποδοχή" #: src/game_gui.c:818 msgid "Accept?" msgstr "Αποδοχή;" #: src/interface.c:1035 msgid "Add last match" msgstr "ΠÏοσθήκη τελευταίου αγώνα" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "ΠÏοσθήκη τελευταίου Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï ÏƒÏ„Î¿ Ï„Ïέχον αÏχείο με τους αξέχαστους αγώνες." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "ΠÏοσθήκη χÏήστη" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "ΠÏοσαÏμογή Ï€ÏογÏάμματος αποπληÏωμής?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Ηλικία" #: src/options_interface.c:735 msgid "Age " msgstr "Ηλικία " #: src/window.c:399 msgid "All Files" msgstr "Όλα τα αÏχεία" #: src/interface.c:502 msgid "All Out Attack" msgstr "Όλοι επίθεση" #: src/interface.c:478 msgid "All Out Defend" msgstr "Όλοι άμυνα" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Πάντα θα εμφανίζεται το παÏάθυÏο νέων μετά από μία αγωνιστική" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "Πάντα να αποθηκεÏεται/ανακτάται η Ï€Ïοεπιλεγμένη ομάδα σας" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "Πάντα να αποθηκεÏεται/ανακτάται η Ï€Ïοεπιλεγμένη ομάδα σας Ï€Ïιν/μετά από έναν αγώνα" #: src/interface.c:692 msgid "Anti" msgstr "Αντί" #: src/interface.c:658 msgid "Any" msgstr "Οτιδήποτε" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Εμφάνιση" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Αίτηση για εÏγασία;" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "" "Τουλάχιστον ένας χÏήστης δεν χÏησιμοποίησε την σειÏά του αυτή την εβδομάδα. " "Συνέχεια;" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Στα φόÏουμ του Bygfoot μποÏείτε να αναφέÏετε bugs, να ζητήσετε βοήθεια και " "να συζητήσετε για το παιχνίδι:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Επίθεση" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "ΠληÏότητα\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Ιδιότητα " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Αυτόματη αποπληÏωμή χÏέους" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Αυτόματο αναδυόμενο" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Αυτόματη εξόφληση" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Αυτόματες αντικαταστάσεις" #: src/options_interface.c:443 msgid "Autosave" msgstr "Αυτόματη αποθήκευση" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "ΧÏονικό διάστημα αυτόματης αποθήκευσης " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Μέση δεξιότητα: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Μέσες δεξιότητες: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Μέσ.δεξ." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Μέση δεξιότητα" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Διαθέσιμες ομάδες" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Μέσο" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Μέση πληÏότητα" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Μέση πληÏότητα %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Μέση δεξιότητα" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Μέση δεξιότητα:" #: src/treeview.c:1851 msgid "Away" msgstr "Εκτός" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "ΙΣΟΡΡΟΠΙΑ" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "ΤΙΜ(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Πίσω στο κυÏίως Î¼ÎµÎ½Î¿Ï (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Πίσω στη splash" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Κακό" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "ΙσοÏÏοπία" #: src/interface.c:490 msgid "Balanced" msgstr "ΙσοÏÏοπία" #: src/treeview.c:2179 msgid "Banned\n" msgstr "ΤιμωÏημένος\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "ΑÏχή νέας εβδομάδας (Space)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "ΚαλÏτεÏο" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Ομάδες με τις καλÏτεÏες άμυνες" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "ΠÏώτοι σκόÏεÏ" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "ΚαλÏτεÏοι τεÏματοφÏλακες" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Ομάδες με τις καλÏτεÏες επιθέσεις" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Στοίχημα" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "" "Στοίχημα -- ΑÏιστεÏÏŒ κλικ στη πιθανότητα για τοποθέτηση ή αφαίÏεση " "στοιχήματος" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "ΙσοÏÏοπία Î¼ÎµÏ„Î±Î¾Ï Î´Ïο εβδομάδων" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "ΙσοÏÏοπία Î¼ÎµÏ„Î±Î¾Ï Î´Ïο εβδομάδων\n" "(Εβδομάδα %d και %d)" #: src/interface.c:669 msgid "Boost" msgstr "Îθηση" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Το ON της ώθησης είναι απενεÏγοποιημένο σε αυτόν τον οÏισμό χώÏας." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Αλλαγή ώθησης σε %s (κοστίζει %d ανά λεπτό)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Αλλαγή ώθησης σε %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Η ώθηση κοστίζει" #: src/player.c:1430 msgid "Broken ankle" msgstr "Σπασμένος αστÏάγαλος" #: src/player.c:1433 msgid "Broken arm" msgstr "Σπασμένος βÏαχίονας" #: src/player.c:1427 msgid "Broken leg" msgstr "Σπασμένο πόδι" #: src/player.c:1424 msgid "Broken rib" msgstr "Σπασμένα πλευÏά" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Σπασμένος ώμος" #: src/interface.c:842 msgid "Browse players" msgstr "ΠεÏιήγηση παικτών" #: src/interface.c:745 msgid "Browse teams" msgstr "ΠεÏιήγηση ομάδων" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Αξέχαστοι αγώνες Bygfoot" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Îέα Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "ΑÏχεία αποθήκευσης Bygfoot" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "ΣταθεÏές Bygfoot" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "ΠαÏάθυÏο εκσφαλμάτωσης Bygfoot. Εάν βÏίσκεστε εδώ κατά λάθος, ΚΛΕΙΣΤΕ ΑΜΕΣΩΣ " "(αλλιώς η CPU σας θα καταστÏαφεί λόγω υπεÏθέÏμανσης)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Το Bygfoot είναι ένα Ï€Î¿Î»Ï ÎµÎ½Î¿Ïατικό και απλό παιχνίδι, οπότε δεν υπάÏχει μια " "πλήÏης τεκμηÏίωση. Αν πάντως έχετε Ï€Ïόβλημα, υπάÏχουν κάποια μέÏη για να " "πάτε.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "ΠΘέσ" #: src/options_interface.c:665 msgid "CPos " msgstr "ΤΘεσ " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "ΠΔεξ" #: src/options_interface.c:679 msgid "CSkill " msgstr "ΤΔεξιότητα " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Υπολογισμός αÏχικής εβδομάδας" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Υπολογισμός εβδομαδιαίου πάγιου" #: src/training_interface.c:84 msgid "Camp points" msgstr "Βαθμοί κέντÏου" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "ΧωÏητικότητα (θέσεις)" #: src/options_interface.c:728 msgid "Cards " msgstr "ΚάÏτες " #: src/treeview.c:2182 msgid "Career values" msgstr "Τιμές καÏιέÏας" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Αλλαγή πολυλογίας πεÏιγÏαφής. Όσο ψηλότεÏη τιμή, τόσο πεÏισσότεÏα γεγονότα " "μποÏείτε να δείτε." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Αλλαγή ταχÏτητας Î¶Ï‰Î½Ï„Î±Î½Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï. ΥψηλότεÏη τιμή κάνει πιο γÏήγοÏο το " "ζωντανό παιχνίδι." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Αλλαγή τιμής εισιτηÏίου" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Επιλογή χώÏας" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Επιλογή αÏχείου" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Επιλογή γλώσσας Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (ίσως να μην δουλεÏει σε εκδόσεις των Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Επιλογή λίγκας για αÏχή" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Επιλογή ομάδας" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Επιλογή ονόματος χÏήστη" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "Κλικ στο OK για αίτηση για εÏγασία. Κλικ στο CANCEL για κλείσιμο παÏαθÏÏου." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Κλικ σε έναν χÏήστη για απομάκÏυνση του από το παιχνίδι." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Κλικ σε ένα χÏήστη για απομάκÏυνση του." #: src/options_interface.c:1640 msgid "Close" msgstr "Κλείσιμο" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" "Κλείσιμο παÏαθÏÏου. Οι αλλαγές θα ισχÏουν μόνο για την Ï„Ïέχουσα συνεδÏία, " "εκτός αν αποθηκεÏσετε σε ένα αÏχείο." #: src/misc_interface.c:573 msgid "Commentary" msgstr "ΠεÏιγÏαφή" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "Γεγονός πεÏιγÏαφής για δοκιμή; παÏαλείψτε το για δοκιμή όλων των πεÏιγÏαφών" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Όνομα αÏχείου πεÏιγÏαφής (μποÏεί να είναι σε έναν κατάλογο υποστήÏιξης)" #: src/treeview.c:3017 msgid "Company" msgstr "ΕταιÏία" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Αποζημιώσεις" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "ΔιοÏγάνωση" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Συμπίεση αποθηκευμένου παιχνιδιοÏ..." #: src/player.c:1409 msgid "Concussion" msgstr "Διάσειση" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Επιβεβαίωση & Ï€ÏόγÏαμμα εξόφλησης" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Επιβεβαίωση εξόδου όταν δεν υπάÏχει αποθήκευση" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Επιβεβαίωση απομάκÏυνσης νέων" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Επιβεβαίωση αν σε μη καλή φυσική κατάσταση" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Επιβεβαίωση!" #: src/options_interface.c:353 msgid "Constants file" msgstr "ΑÏχείο σταθεÏών" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Συμβόλαιο" #: src/options_interface.c:763 msgid "Contract " msgstr "Συμβόλαιο " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Συμβόλαιο / ΧÏήματα" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Μήκος συμβολαίου\n" "(Μήνες)" #: src/window.c:937 msgid "Contract offer" msgstr "ΠÏοσφοÏά συμβολαίου" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Τα συμβόλαια είναι απενεÏγοποιημένα σε αυτόν τον οÏισμό χώÏας." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Συντελεστές" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "ΑντιγÏαφή %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Κοστίζει" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Αδυναμία εÏÏεσης αÏχείου pixmap: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "ΧώÏα" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "ΔημιουÏγία νέων κυπέλλου" #: src/options_interface.c:1171 msgid "Create league news" msgstr "ΔημιουÏγία νέων λίγκας" #: src/options_interface.c:1163 msgid "Create user news" msgstr "ΔημιουÏγία νέων χÏήστη" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "ΚυπελλοÏχοι" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Το κÏπελλο δεν έχει πίνακες." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "ΤÏέχουσα χωÏητικότητα" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "ΤÏέχον αÏχείο" #: src/treeview.c:2829 msgid "Current league" msgstr "ΤÏέχουσα λίγκα" #: src/treeview.c:1637 msgid "Current market interest" msgstr "ΤÏέχων τόκος αγοÏάς" #: src/treeview.c:2165 msgid "Current position" msgstr "ΤÏέχουσα θέση" #: src/misc_interface.c:978 msgid "Current safety" msgstr "ΤÏέχουσα ασφάλεια" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "ΤÏέχουσες Ïυθμίσεις:" #: src/treeview.c:2167 msgid "Current skill" msgstr "ΤÏέχουσα δεξιότητα" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "Α" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "ΑΜΥÎΑ" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "ΧÏέος (εξόφληση σε %d εβδομάδες)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Εκσφαλμάτωση" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Απόφαση μετά" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "ΠÏοεπιλογή ξενοδοχείου" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "ΠÏοεπιλεγόμενη αναψυχή:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "ΠÏοεπιλογή Ï€Ïοπόνησης:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "ΠÏοεπιλογή Ï€Î¿ÏƒÎ¿Ï ÏƒÏ„Î¿Î¹Ï‡Î®Î¼Î±Ï„Î¿Ï‚" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Άμυνα" #: src/interface.c:640 msgid "Defenders" msgstr "Αμυντικοί" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "ΓνωÏίζετε;" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Δεν βÏέθηκε το αÏχείο 'bygfoot_help'." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Θέλετε σίγουÏα να διώξετε το φτωχό αγόÏι από την ακαδημία;" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Όχι φόÏτωση οÏισμών" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Όχι φόÏτωση οÏισμών ομάδων ÏŒ,τι και να γίνει" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "ΟλοκληÏώθηκε." #: src/treeview2.c:396 msgid "Draw" msgstr "Ισοπαλία" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Πιστωτικό ÏŒÏιο" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "Ι" #. draw #: src/team.c:1150 msgid "Dw " msgstr "Ι " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Ι %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "ΑΤαλ" #: src/treeview2.c:70 msgid "EXPORT" msgstr "ΕΞΑΓΩΓΗ" #: src/options_interface.c:432 msgid "Edit" msgstr "ΕπεξεÏγασία" #: src/interface.c:829 src/interface.c:2038 msgid "Edit name" msgstr "ΕπεξεÏγασία ονόματος" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "ΕπεξεÏγασία των Ïυθμίσεων που χÏησιμοποιοÏνται στο παιχνίδι" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Εισάγετε ένα σÏστημα. Το σÏνολο των ψηφίων Ï€Ïέπει να είναι 10. " #: src/interface.c:720 msgid "Enter custom structure" msgstr "Εισάγετε Ï€ÏοσαÏμοσμένο σÏστημα" #: src/window.c:865 msgid "Erm..." msgstr "Ε..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Return / Space" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Εκτιμώμενο ταλέντο" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "Εκ.Ï„" #: src/treeview.c:2378 msgid "Event" msgstr "Γεγονός" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Αναμενόμενη διάÏκεια" #: src/treeview.c:1704 msgid "Expenses" msgstr "Έξοδα" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "Ε" #: src/interface.c:398 msgid "F_igures" msgstr "Ε_μφανίσεις" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Ποσό μεταγÏαφής" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "ΑÏχείο που να πεÏιλαμβάνει tokens Î¶Ï‰Î½Ï„Î±Î½Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (μποÏεί να βÏίσκεται " "σε ένα κατάλογο υποστήÏιξης)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "ΑÏχείο που πεÏιέχει Ïυθμίσεις που καθοÏίζουν πολλές πλευÏές της συμπεÏιφοÏάς " "του παιχνιδιοÏ. ΜΗΠΤΙΣ ΑΛΛΑΖΕΤΕ ΕΚΤΟΣ ΑΠΞΕΡΕΤΕ ΤΙ ΚΑÎΕΤΕ." #: src/interface.c:928 msgid "Fin_Stad" msgstr "Οικ_Γήπ" #: src/cup.c:1105 msgid "Final" msgstr "Τελικός" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Τα οικονομικά είναι απενεÏγοποιημένα σε αυτόν τον οÏισμό χώÏας." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Απόλυση" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "ΠÏώτη τιμή: μέση Ï„Ïέχουσα δεξιότητα των Ï€Ïώτων 11 παικτών. ΔεÏτεÏη τιμή: " "μέση δεξιότητα όλων των παικτών." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Ξενοδοχείο Ï€Ïώτης κλάσης" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Φυσ. κατ." #: src/treeview.c:2168 msgid "Fitness" msgstr "Φυσική κατάσταση" #: src/options_interface.c:693 msgid "Fitness " msgstr "Φυσική κατάσταση" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Εκδηλώσεις (διοÏγανώσεις)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Εκδηλώσεις (εβδομάδα)" #: src/options_interface.c:1541 msgid "Float" msgstr "ΠÏαγματικές" #: src/options_interface.c:379 msgid "Font name" msgstr "Όνομα γÏαμματοσειÏάς" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "ΓÏαμματοσειÏά για χÏήση σε treeviews" #: src/interface.c:652 msgid "Forwards" msgstr "Επιθετικοί" #: src/treeview.c:840 msgid "Fouls" msgstr "Φάουλ" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Κάταγμα αστÏαγάλου" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "Τ" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "ΑΜ" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "Δ" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "ΕΠ" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Αγ" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Gameplay" #: src/treeview_helper.c:931 msgid "Games" msgstr "Παιχνίδια" #: src/options_interface.c:700 msgid "Games " msgstr "Παιχνίδια " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Παιχνίδια/ΤέÏματα\n" #: src/options_interface.c:486 msgid "Global" msgstr "Καθολικό" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Γκολ" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Μετάβαση πίσω στην splash οθόνη" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "ΤεÏ/Αγ" #: src/treeview.c:1775 msgid "Goalie" msgstr "ΤεÏματοφÏλακας" #: src/interface.c:634 msgid "Goalies" msgstr "ΤεÏματοφÏλακες" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Γκολ" #: src/options_interface.c:714 msgid "Goals " msgstr "ΤέÏματα " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "ΤέÏματα (κανονικά)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Καλό" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Καλό ξενοδοχείο" #: src/player.c:1418 msgid "Groin injury" msgstr "ΤÏαυματισμός βουβωνικής χώÏας" #: src/player.c:1415 msgid "Hamstring" msgstr "Ρήξη τενόντων" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Ρίξτε μία ματιά στη λίστα μεταγÏαφών, υπάÏχει μια Ï€ÏοσφοÏά για τον %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Επικεφαλίδα" #: src/treeview.c:2171 msgid "Health" msgstr "Υγεία" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Βοήθεια" #: src/treeview.c:1849 msgid "Home" msgstr "Εντός" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Πόσες πεÏιγÏαφές θα δημιουÏγηθοÏν για κάθε γεγονός" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Πόσα δεκαδικά μετά το κόμμα να είναι για την δεξιότητα κ.λ.Ï€." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Πόσα αÏχεία χÏησιμοποιεί η αυτόματη αποθήκευση" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "ΠÏοεπιλεγόμενο ποσό στοιχήματος" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Πόσο συχνά αποθηκεÏεται αυτόματα το παιχνίδι" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Πόσο συχνά η λίστα παικτών θα ανανεώνεται στην διάÏκεια ενός Î¶Ï‰Î½Ï„Î±Î½Î¿Ï " "Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (σε λεπτά Î¶Ï‰Î½Ï„Î±Î½Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "ΤΡΑΥΜ(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Αν είναι επιλεγμένο, οι εβδομάδες στις οποίες οι ομάδες χÏήστη δεν παίζουν " "υπολογίζονται αυτόματα (χωÏίς ο χÏήστης να χÏειάζεται να πατήσει 'Îέα " "εβδομάδα')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Εάν δεν σας αÏέσουν κάποιοι από τους χοÏηγοÏÏ‚, μποÏείτε να είστε για λίγες " "εβδομάδες χωÏίς χοÏηγό και να πεÏιμένετε για νέες Ï€ÏοσφοÏές." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Εισαγωγή αÏχείου" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Εισαγωγή αγώνων από αÏχείο με αξέχαστους αγώνες" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "ΠÏόοδος βελτίωσης.\n" "Έχουν να γίνουν ακόμα %d θέσεις και %d%% ασφάλεια.\n" "Αναμενόμενο τέλος: %d εβδομάδες." #: src/treeview.c:1703 msgid "Income" msgstr "Εισόδημα" #: src/misc_interface.c:1041 msgid "Increase" msgstr "ΑÏξηση" #: src/treeview.c:843 msgid "Injuries" msgstr "ΤÏαυματισμοί" #: src/options_interface.c:1527 msgid "Integer" msgstr "ΑκέÏαιες" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Είναι αÏγά στην πεÏίοδο για αυτόματη αποπληÏωμή δανείου." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "ΠÏοσφοÏά εÏγασίας" #: src/interface.c:370 msgid "Job offers" msgstr "ΠÏοσφοÏές εÏγασίας" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "ΠÏοσφοÏές για εÏγασία καθοÏιζόμενες σε %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Κόστη ταξιδιοÏ" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Διώξιμο από ακαδημία" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "Η" #. lost #: src/team.c:1154 msgid "L " msgstr "Η " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "Η %d: %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "_Τελευταία αποθήκευση" #: src/options_interface.c:436 msgid "Language" msgstr "Γλώσσα" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Γλώσσα για χÏήση (κωδικός όπως 'de')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Τελευταίο %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Δεν βÏέθηκε αÏχείο τελευταίας αποθήκευσης." #: src/treeview.c:1898 msgid "Latest results" msgstr "Τελευταία αποτελέσματα" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Λίγκα" #: src/options_interface.c:770 msgid "League " msgstr "Λίγκα " #: src/treeview.c:2590 msgid "League champions" msgstr "ΠÏωταθλητές λίγκας" #: src/interface.c:991 msgid "League stats" msgstr "Στατιστικά λίγκας" #: src/league_table_interface.c:39 msgid "League table" msgstr "Πίνακας λίγκας" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "ΑÏιστεÏÏŒ κλικ για υποβολή Ï€ÏοσφοÏάς. Δεξί κλικ για απόσυÏση Ï€ÏοσφοÏάς." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "ΑÏιστεÏÏŒ κλικ για μετακίνηση παιχτών από και Ï€Ïος την ακαδημία νέων; δεξί " "κλικ για γενικότεÏο μενοÏ." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "ΑÏιστεÏÏŒ κλικ για εμφάνιση εκδηλώσεων." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "ΑÏιστεÏÏŒ κλικ για εμφάνιση πίνακα." #: src/callbacks.c:1518 msgid "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "ΑÏιστεÏÏŒ κλικ: δανεισμός; Δεξί κλικ: αποπληÏωμή; Μεσαίο κλικ: παÏάθυÏο " "γηπέδου." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Λίστα 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Λίστα 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Ζωντανό παιχνίδι" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Ζωντανό παιχνίδι καθοÏιζόμενο σε %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "ΠαÏάγοντας ταχÏτητας Î¶Ï‰Î½Ï„Î±Î½Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Πολυλογία Î¶Ï‰Î½Ï„Î±Î½Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "ΦόÏτωση Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "ΦόÏτωση τελευταίου αποθηκευμένου παιχνιδιοÏ" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "ΦόÏτωση μόνο ονομάτων παικτών στα αÏχεία οÏισμοÏ" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "ΦόÏτωση οÏισμών ομάδας" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "ΦόÏτωση ομάδων από αÏχεία οÏÎ¹ÏƒÎ¼Î¿Ï (σημειώστε πως το επίσημο πακέτο Bygfoot " "δεν πεÏιέχει αÏχεία οÏÎ¹ÏƒÎ¼Î¿Ï Î¿Î¼Î¬Î´Î±Ï‚, Ï€Ïέπει να τα πάÏετε από την αÏχική " "σελίδα ή με το script bygfoot-update)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "ΦόÏτωση κυπέλλου: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "ΦόÏτωση ανταλλαγής εÏγασίας..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "ΦόÏτωση λίγκας: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "ΦόÏτωση λιγκών και κυπέλλων..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "ΦόÏτωση διαφόÏων..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "ΦόÏτωση εφημεÏίδας..." #: src/load_save.c:236 msgid "Loading options..." msgstr "ΦόÏτωση επιλογών..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "ΦόÏτωση στατιστικών πεÏιόδου..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "ΦόÏτωση λίστας μεταγÏαφών..." #: src/load_save.c:260 msgid "Loading users..." msgstr "ΦόÏτωση χÏηστών..." #: src/callback_func.c:397 msgid "Loan" msgstr "Δανεισμός" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "Μ" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "ΔημιουÏγία Ï€ÏοσφοÏάς" #: src/interface.c:1047 msgid "Manage matches" msgstr "ΔιαχείÏιση αγώνων" #: src/interface.c:917 msgid "Manage users" msgstr "ΔιαχείÏιση παικτών" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Μεγιστοποίηση κυÏίως παÏαθÏÏου" #: src/user.c:1214 msgid "Memorable match added." msgstr "ΠÏόσθεση αξέχαστου αγώνα." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Αξέχαστοι αγώνες" #: src/treeview.c:1777 msgid "Midfield" msgstr "Μέσος" #: src/interface.c:646 msgid "Midfielders" msgstr "Μέσοι" #: src/treeview.c:1629 msgid "Money" msgstr "ΧÏήματα" #: src/interface.c:1296 msgid "Money " msgstr "ΧÏήματα " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "ΧÏήματα (κατά Ï€Ïοσέγγιση)" #: src/treeview.c:3019 msgid "Money / week" msgstr "ΧÏήματα / εβδομάδα" #: src/interface.c:2092 msgid "Move to team" msgstr "Μετακίνηση σε ομάδα" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Μετακίνηση στην ακαδημία νέων" #: src/interface.c:438 msgid "My league results" msgstr "Τα αποτελέσματα της λίγκας μου" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Όνομα" #: src/options_interface.c:658 msgid "Name " msgstr "Όνομα" #: src/treeview.c:1847 msgid "Neutral ground" msgstr "ΟυδέτεÏο έδαφος" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Îέο συμβόλαιο\n" "Ï€ÏοσφοÏές" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Îέες Ïυθμίσεις:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Îέα" #: src/misc3_interface.c:315 msgid "Next" msgstr "Επόμενο" #: src/interface.c:1434 msgid "Next (W)" msgstr "Επόμενο (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Επόμενη λίγκα/κÏπελλο (2)" #: src/interface.c:895 msgid "Next user" msgstr "Επόμενος χÏήστης" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Την επόμενη εβδομάδα θα απολυθεί και θα Ï€Ïοσληφθεί νέος." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Όχι αυτόματο αναδυόμενο" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Δεν υπάÏχουν Ï„Ïέχουσες βελτιώσεις σε ποÏεία." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Δεν έχει αποθηκευτεί κανένας αγώνας." #: src/treeview2.c:600 msgid "No news available." msgstr "Δεν υπάÏχουν διαθέσιμα νέα." #: src/misc_callbacks.c:468 msgid "None" msgstr "Κανένα" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Μη έγκυÏο όνομα αÏχείου αξέχαστων αγώνων Bygfoot." #: src/window.c:882 msgid "Numbers..." msgstr "ΑÏιθμοί..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "ΑÎΕÎΕΡΓΟ" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "Εντάξει" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "ΕÎΕΡΓΟ" #: src/interface.c:686 msgid "Off" msgstr "ΑνενεÏγή" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "ΠÏοσφοÏά νέου συμβολαίου" #: src/interface.c:680 msgid "On" msgstr "ΕνεÏγή" #: src/misc_interface.c:211 msgid "Only names" msgstr "Μόνο ονόματα" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Άνοιγμα αÏχείου με αξέχαστους αγώνες" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Αντίπαλος" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Λίστα παικτών αντιπάλου" #: src/window.c:914 msgid "Options" msgstr "Επιλογές" #: src/treeview.c:1904 msgid "Overall results" msgstr "Συνολικά αποτελέσματα" #: src/interface.c:379 msgid "Overwrite" msgstr "Επικάλυψη" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Επικάλυψη καθοÏιζόμενη σε %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "ΑΓ" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "Î’" #: src/options_interface.c:645 msgid "Pause when break" msgstr "ΠαÏση όταν υπάÏξει διάλειμμα" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "ΠαÏση όταν υπάÏχει Ï„Ïαυματισμός" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "ΠαÏση όταν βγαίνει κόκκινη κάÏτα" #: src/callback_func.c:427 msgid "Payback" msgstr "ΑποπληÏωμή" #: src/treeview.c:839 msgid "Penalties" msgstr "Πέναλτι" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Αποεπιλογή εκτελεστή πέναλτι/φάουλ." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "ΦυσιοθεÏαπευτής" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Ο παίκτης δέχεται νέες Ï€ÏοσφοÏές" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "ΑκÏίβεια ιδιοτήτων παίκτη" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Εμφάνιση ιδιοτήτων παίκτη" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Ο παίκτης δεν διαπÏαγματεÏεται άλλο" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Λίστα παικτών" #: src/interface.c:1363 msgid "Player list 1" msgstr "Λίστα παικτών 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Λίστα παικτών 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Ρυθμός ανανέωσης λίστας παικτών" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Στυλ παιχνιδιοÏ" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Αναδυόμενο για νέα χÏήστη" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Θέσ" #: src/options_interface.c:672 msgid "Pos " msgstr "Θέσ " #: src/treeview.c:2164 msgid "Position" msgstr "Θέση" #: src/treeview.c:838 msgid "Possession" msgstr "Κατοχή" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "ΠÏοτίμηση μηνυμάτων" #: src/interface.c:354 msgid "Preferences" msgstr "ΠÏοτιμήσεις" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "ΑκÏιβό ξενοδοχείο" #: src/misc3_interface.c:295 msgid "Previous" msgstr "ΠÏοηγοÏμενο" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "ΠÏοηγοÏμενο (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "ΠÏοηγοÏμενη λίγκα/κÏπελλο (1)" #: src/interface.c:906 msgid "Previous user" msgstr "ΠÏοηγοÏμενος χÏήστης" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Τιμή ανά εισιτήÏιο" #: src/treeview.c:1517 msgid "Prize money" msgstr "Λεφτά επάθλου" #: src/player.c:1412 msgid "Pulled muscle" msgstr "ΤÏάβηγμα" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Τοποθέτηση στη λίστα μεταγÏαφών" #: src/cup.c:1111 msgid "Quarter-final" msgstr "ΠÏοημιτελικός" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Έξοδος (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "ΑΦΑΙΡΕΣΗ" #: src/treeview2.c:68 msgid "REPLAY" msgstr "ΡΙΠΛΕΪ" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Επέλεξε τυχαίες ομάδες στα κÏπελλα" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Επέλεξε τυχαία την σειÏά των ομάδων στα κÏπελλα. Αυτό έχει νόημα σε διεθνείς " "οÏισμοÏÏ‚ όπως το Παγκόσμιο ΚÏπελλο όπου η σειÏά των ομάδων είναι σταθεÏή." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Θέση" #: src/interface.c:1281 msgid "Rank " msgstr "Θέση" #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Έτοιμο" #: src/interface.c:728 msgid "Rearrange team" msgstr "Αναδιάταξη ομάδας" #: src/training_interface.c:98 msgid "Recreation" msgstr "Αναψυχή" #: src/interface.c:627 msgid "Recruiting preference" msgstr "ΠÏοτίμηση Ï€Ïοσέλκυσης" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Κόκκινες" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "ΑπόÏÏιψη για τώÏα" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "ΕπαναφόÏτωση" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "ΕπαναφόÏτωση και κλείσιμο" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" "ΕπαναφόÏτωση αÏχείου σταθεÏών. Αυτό θα επικαλÏψει όποιες αλλαγές κάνατε στην " "Ï„Ïέχουσα συνεδÏία του παιχνιδιοÏ." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "ΕπαναφόÏτωση από αÏχείο" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "ΕπαναφόÏτωση αγώνων από αÏχείο" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "ΕπαναφόÏτωση αγώνων από αÏχείο και κλείσιμο" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "ΕπαναφόÏτωση του αÏχείου Ïυθμίσεων" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "ΑφαίÏεση από λίστα μεταγÏαφών" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "ΑφαίÏεση χÏήστη %s από το παιχνίδι;" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Ριπλέι, διαγÏαφή ή Ï€Ïοσθήκη αξέχαστων αγώνων." #: src/interface.c:712 msgid "Reset player list" msgstr "ΕπαναφοÏά λίστας παικτών" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "ΕπαναφοÏά λίστας παικτών στη διάταξη της αÏχής της παÏσης του Î¶Ï‰Î½Ï„Î±Î½Î¿Ï " "Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (δεξί κλικ στη λίστα παικτών)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Αποτέλεσμα" #: src/treeview.c:2013 msgid "Results" msgstr "Αποτελέσματα" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "ΕπιστÏοφή" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Return / Space" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Δεξί κλικ και αÏιστεÏÏŒ κλικ για αλλαγή κατάστασης ώθησης" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Δεξί κλικ και αÏιστεÏÏŒ κλικ για αλλαγή στυλ παιχνιδιοÏ" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Δεξί κλικ για αίτηση για εÏγασία, αÏιστεÏÏŒ κλικ για εμφάνιση πληÏοφοÏιών " "για την ομάδα." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Δεξί κλικ για ÏÏθμιση στο 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "ΓυÏ" #: src/cup.c:1094 msgid "Round robin" msgstr "Round robin" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Ασφάλεια (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "Î Î¿Î»Ï Ï…ÏˆÎ·Î»Î® βελτίωση ασφαλείας, αλλαγή στη υψηλότεÏη δυνατή τιμή." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "ΑποκÏοÏσεις %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Αποθήκευση και κλείσιμο" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Αποθήκευση αλλαγών στο αÏχείο και κλείσιμο" #: src/options_interface.c:1581 msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Αποθήκευση αλλαγών στο αÏχείο σταθεÏών. ΜΗΠΤΟ ΚΑÎΕΤΕ ΕΚΤΟΣ ΑΠΞΕΡΕΤΕ ΤΙ " "ΚΑÎΕΤΕ." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Αποθήκευση Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Αποθήκευση καθολικών Ïυθμίσεων σε αÏχείο" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Αποθήκευση επικαλÏψεων" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Αποθήκευση Ïυθμίσεων ως Ï€Ïοεπιλογών" #: src/options_interface.c:1595 msgid "Save to file" msgstr "Αποθήκευση σε αÏχείο" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Αποθήκευση Ïυθμίσεων χÏήστη σε αÏχείο" #: src/interface.c:389 msgid "Save window geometry" msgstr "Αποθήκευση γεωμετÏίας παÏαθÏÏου" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Αποθήκευση μεγέθους παÏαθÏÏου, θέσης και κάθετου διαχωÏιστή" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Αποθήκευση ανταλλαγής εÏγασίας..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Αποθήκευση λιγκών και κυπέλλων..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Αποθήκευση διαφόÏων..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Αποθήκευση εφημεÏίδας..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Επιλογές αποθήκευσης..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Αποθήκευση στατιστικών πεÏιόδου..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Αποθήκευση λίστας μεταγÏαφών..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Αποθήκευση χÏηστών..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "ΣκάουτεÏ" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "ΠεÏ" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "ΠεÏίοδος %d" #: src/interface.c:1002 msgid "Season history" msgstr "ΙστοÏία πεÏιόδου" #: src/interface.c:449 msgid "Season results" msgstr "Αποτελέσματα πεÏιόδου " #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Επιλογή γÏαμματοσειÏάς" #: src/cup.c:1108 msgid "Semi-final" msgstr "Ημιτελικός" #: src/interface.c:664 msgid "Set investment" msgstr "ΚαθοÏισμός επένδυσης" #: src/callbacks.c:842 src/interface.c:667 msgid "Set the percentage of your income you want to devote to your youth academy." msgstr "ΚαθοÏισμός του Ï€Î¿ÏƒÎ¿ÏƒÏ„Î¿Ï ÎµÏƒÏŒÎ´Ï‰Î½ που θα επενδυθεί στην ακαδημία νέων." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "ΡÏθμιση στο 0 για απενεÏγοποίηση ειδοποίησης" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Σουτ" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "ΧτÏπημα πέναλτι" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Σουτ %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Σουτ" #: src/options_interface.c:707 msgid "Shots " msgstr "Σουτ " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Εμφάνιση όλων των λιγκών στη θέαση εκδηλώσεων" #: src/interface.c:879 msgid "Show coming matches" msgstr "Εμφάνιση επόμενων αγώνων" #: src/interface.c:935 msgid "Show finances" msgstr "Εμφάνιση οικονομικών" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Εμφάνιση πληÏοφοÏιών" #: src/interface.c:758 msgid "Show job exchange" msgstr "Εμφάνιση ανταλλαγής εÏγασίας" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Εμφάνιση Ï€ÏοσφοÏών εÏγασίας" #: src/interface.c:857 msgid "Show last match" msgstr "Εμφάνιση τελευταίου αγώνα" #: src/interface.c:868 msgid "Show last match stats" msgstr "Εμφάνιση στατιστικών τελευταίου αγώνα" #: src/options_interface.c:576 msgid "Show live game" msgstr "Εμφάνιση Î¶Ï‰Î½Ï„Î±Î½Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Εμφάνιση αγώνων από όλες τις λίγκες" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Εμφάνιση αγώνων από κÏπελλα" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Εμφάνιση παÏαθÏÏου μετά από αγωνιστική όταν καινοÏÏια νέα χÏήστη έχουν " "δημιουÏγηθεί" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Εμφάνιση μόνο των Ï€Ïόσφατων στοιχημάτων μου" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Εμφάνιση μόνο Ï€Ïοσφάτων νέων" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Εμφάνιση συνολικών παιχνίδια/τέÏματα" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Εμφάνιση εικόνων με μπάÏες Ï€Ïοόδου" #: src/interface.c:946 msgid "Show stadium" msgstr "Εμφάνιση γηπέδου" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Εμφάνιση μπάÏας Ïοπής" #: src/interface.c:972 msgid "Show the betting window" msgstr "Εμφάνιση παÏαθÏÏου στοιχήματος" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Εμφάνιση λίστας από διαθέσιμες εÏγασίες για μάνατζεÏ" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Εμφάνιση λίστας μεταγÏαφών (Τ)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Εμφάνιση ειδοποίησης αν η λήξη του συμβολαίου ενός παίκτη απέχει λιγότεÏο από" #: src/interface.c:589 msgid "Show youth academy" msgstr "Εμφάνιση ακαδημίας νέων" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Δεξ" #: src/treeview.c:2166 msgid "Skill" msgstr "Δεξιότητα" #: src/options_interface.c:686 msgid "Skill " msgstr "Δεξιότητα " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "ΠαÏάκαμψη εβδομάδων χωÏίς αγώνες χÏήστη" #: src/misc_interface.c:249 msgid "Space" msgstr "Διάστημα" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "ΚαθοÏισμός επιπÏόσθετου καταλόγου υποστήÏιξης (έχει παÏαπάνω Ï€ÏοτεÏαιότητα " "από τους Ï€Ïοεπιλεγόμενους)" #: src/misc_interface.c:710 msgid "Speed" msgstr "ΤαχÏτητα" #: src/treeview.c:1667 msgid "Sponsor" msgstr "ΧοÏηγός" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "ΧοÏηγία" #: src/window.c:976 msgid "Sponsorship offers" msgstr "ΠÏοσφοÏές χοÏηγίας" #: src/interface.c:977 msgid "St_ats" msgstr "_Στατιστικά" #: src/treeview.c:1477 msgid "Stadium" msgstr "Γήπεδο" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "ΧωÏητικότητα γηπέδου" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Έξοδα γηπέδου" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Η διαχείÏιση γηπέδου είναι απενεÏγοποιημένη σε αυτόν τον οÏισμό χώÏας." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Ασφάλεια γηπέδου" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Κατάσταση γηπέδου" #: src/misc_interface.c:266 msgid "Start" msgstr "ΈναÏξη" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "ΈναÏξη _νέου παιχνιδιοÏ" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "ΈναÏξη στην εβδομάδα" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "ΈναÏξη στην εβδομάδα:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Στατιστικά" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Κατάσταση" #: src/options_interface.c:721 msgid "Status " msgstr "Κατάσταση " #: src/misc_interface.c:951 msgid "Status:" msgstr "Κατάσταση:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "ΦόÏμα" #: src/options_interface.c:1555 msgid "String" msgstr "ΑλφαÏιθμητικές" #: src/main.c:99 msgid "String id of the country to load" msgstr "ΑλφαÏιθμητικό id της χώÏας για φόÏτωση" #: src/callbacks.c:936 msgid "Structure" msgstr "ΣÏστημα" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Ανταλλαγή Ï€ÏοσαÏμόζει σÏστημα" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "ΣÏστημα" #: src/interface.c:427 msgid "Tables" msgstr "Πίνακες" #: src/treeview2.c:517 msgid "Talent %" msgstr "Ταλέντο %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Ομάδα" #: src/options_interface.c:777 msgid "Team " msgstr "Ομάδα " #: src/treeview.c:1892 msgid "Team structure" msgstr "ΣÏστημα ομάδας" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Αλλαγή στυλ ομάδας σε %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Ομάδα1" #: src/treeview2.c:399 msgid "Team2" msgstr "Ομάδα2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Δοκιμή XML αÏχείου πεÏιγÏαφής" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Η Ï„Ïάπεζα δεν σας δανείζει πεÏισσότεÏα χÏήματα." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Το γÏαφείο στοιχήματοςδεν σας επιτÏέπει να παίξετε πάνω από %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Το Ï„Ïέχον παιχνίδι δεν έχει σωθεί και θα χαθεί. Συνέχεια;" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Όσο μεγαλÏτεÏη είναι η τιμή αυτή, τόσο πιο αναλυτική πεÏιγÏαφή θα δείτε." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "Το διάστημα ανταλλαγής εÏγασίας είναι %d εβδομάδες." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Όσο μικÏότεÏη τιμή, τόσο πιο γÏήγοÏα θα κυλά η πεÏιγÏαφή του Î¶Ï‰Î½Ï„Î±Î½Î¿Ï " "παιχνιδιοÏ." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "Οι ιδιοκτήτες της %s δέχονται την αίτηση σας." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Οι ιδιοκτήτες της %s αποδέχονται την αίτηση σας. Από την στιγμή που η %s δεν " "θέλει να κολλήσει με έναν αποτυχημένο, απολÏεστε αμέσως και για το υπόλοιπο " "της πεÏιόδου ασχολείστε με τον κήπο σας." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Οι ιδιοκτήτες της %s εντυπωσιάστηκαν από την επιτυχία σας με την %s και θα " "ήθελαν να σας Ï€Ïοσλάβουν. Εδώ υπάÏχουν κάποιες πληÏοφοÏίες για την %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Οι ιδιοκτήτες της %s δεν είναι ικανοποιημένοι με την Ï€Ïόσφατη απόδοση της " "ομάδας. ΚυκλοφοÏοÏν φήμες ότι ψάχνουν για νέο μάνατζεÏ." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Οι ιδιοκτήτες της %s απέÏÏιψαν την Ï€ÏοσφοÏά σας (%s / %s) για τον %s. Λένε " "πως οÏτε το ποσό μεταγÏαφής οÏτε ο μισθός που Ï€Ïοτείνατε έγιναν αποδεκτά." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Οι ιδιοκτήτες της %s απέÏÏιψαν την Ï€ÏοσφοÏά σας (%s / %s) για τον %s. Λένε " "πως δεν είναι ικανοποιημένοι με το ποσό μεταγÏαφής που Ï€ÏοσφέÏατε." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Οι ιδιοκτήτες της %s απέÏÏιψαν την Ï€ÏοσφοÏά σας (%s / %s) για τον %s. " "ΥπάÏχει μία καλÏτεÏη Ï€ÏοσφοÏά για τον παίκτη από την δική σας." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Οι ιδιοκτήτες της %s αποÏÏίπτουν ευγενικά την αίτηση σας. Δεν είστε " "γι'αυτοÏÏ‚ αÏκετά επιτυχημένος." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Ο παίκτης αισθάνεται πως δεν έχει κανένα μέλλον στην ομάδα σας που είναι " "γεμάτη από μεγάλους παίχτες. ΑÏνείται να διαπÏαγματευτεί." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Ο παίχτης είναι ήδη στη λίστα." #: src/callback_func.c:552 msgid "The player is locked (the team owners are considering an offer currently)." msgstr "" "Ο παίκτης είναι κλειδωμένος (οι ιδιοκτήτες της ομάδας εξετάζουν τώÏα μία " "Ï€ÏοσφοÏά)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Ο παίχτης δεν είναι στη λίστα." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Ο παίκτης είναι ντεφοÏμέ" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Ο παίκτης βÏίσκεται σε καλή φόÏμα" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Ο παίχτης είναι μεγάλος για την ακαδημία νέων." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Ο παίκτης δεν θα διαπÏαγματευτεί άλλο μαζί σας." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Η τιμή %d της δομής δεν είναι έγκυÏη." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Οι ιδιοκτήτες της ομάδας είναι Ï€Î¿Î»Ï ÎµÏ…Ï‡Î±Ïιστημένοι με την οικονομική σας " "διαχείÏιση Από την στιγμή που η ομάδα τελευταία κεÏδίζει πολλά λεφτά, " "αποφασίζουν να δωÏίσουν το μισό για αγαθοεÏγίες." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Οι ιδιοκτήτες της ομάδας σας απέλυσαν λόγω οικονομικής κακοδιαχείÏισης. " "Τυχαία, οι ιδιοκτήτες της %s άκουσαν για την αποδέσμευση σας και σας " "Ï€ÏοσφέÏουν εÏγασία. Εδώ υπάÏχουν κάποιες πληÏοφοÏίες για την %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Οι ιδιοκτήτες της ομάδας σας απέλυσαν λόγω αποτυχίας. Τυχαία, οι ιδιοκτήτες " "της %s άκουσαν για την αποδέσμευση σας και σας Ï€ÏοσφέÏουν εÏγασία. Εδώ " "υπάÏχουν κάποιες πληÏοφοÏίες για την %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Η Ï€Ïοθεσμία για τις μεταγÏαφές τελείωσε." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "ΥπάÏχουν κάποιες εταιÏίες που ενδιαφέÏονται να γίνουν χοÏηγοί της ομάδας " "σας. ΠαÏακαλώ επιλέξτε μία:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "ΥπάÏχουν Ï„Ïαυματισμένοι ή τιμωÏημένοι παίχτες σε μία από τις ομάδες του " "χÏήστη. Συνέχεια?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Δεν υπάÏχουν λίγκες σε αυτόν τον οÏισμό χώÏας (μόνο κÏπελλα)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Δεν υπάÏχουν λίγκες ή κÏπελλα με πίνακες σε αυτόν τον οÏισμό της χώÏας." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Δεν έχουν αποθηκευτεί ακόμα στοιχεία από ιστοÏίες πεÏιόδου." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "ΥπάÏχουν κάποιες Ï€ÏοσφοÏές για τον παίκτη που αποÏÏίψατε ή θα δείτε την άλλη " "εβδομάδα." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Δεν υπάÏχει χώÏος στην ακαδημία νέων." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "ΥπάÏχουν πολλές αλλαγές. ΕπιτÏέπονται μόνο 3 ανά παιχνίδι. Η λίστα παικτών " "ξαναλλάζει." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Έσοδα από εισιτήÏια" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Ρήξη συνδέσμου" #: src/training_interface.c:117 msgid "Training" msgstr "ΠÏοπόνηση" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "ΠÏοπονητικό κέντÏο" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Το Ï€Ïοπονητικό κέντÏο είναι απενεÏγοποιημένο σε αυτόν τον οÏισμό χώÏας." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Η Ï€Ïοθεσμία για μεταγÏαφές λήγει την %d εβδομάδα" #: src/window.c:968 msgid "Transfer offer" msgstr "ΠÏοσφοÏά μεταγÏαφής" #: src/treeview.c:1598 msgid "Transfers" msgstr "ΜεταγÏαφές" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Οι μεταγÏαφές είναι απενεÏγοποιημένες σε αυτόν τον οÏισμό χώÏας." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "ΠÏοσπάθεια για τοποθέτηση των παικτών στις αγαπημένες τους θέσεις και " "ταξινόμηση των αναπληÏωματικών (Ctrl-R ή μεσαίο κλικ)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Αποσυμπίεση αποθηκευμένου παιχνιδιοÏ..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Ο χÏήστης %s δεν εξέτασε ακόμα την Ï€ÏοσφοÏά σας." #: src/interface.c:1013 msgid "User history" msgstr "ΙστοÏία χÏήστη" #: src/window.c:945 msgid "User management" msgstr "ΔιαχείÏιση χÏηστών" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "ΧÏήστες -- κλικ για απομάκÏυνση" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Τιμή" #: src/options_interface.c:749 msgid "Value " msgstr "Τιμή " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Πολυλογία" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "Î" #. won #: src/team.c:1157 msgid "W " msgstr "Î " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "Î %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Μισθός" #: src/options_interface.c:756 msgid "Wage " msgstr "Μισθός " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Ποσό στοιχήματος" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Ποσό στοιχήματος/\n" "ΚέÏδος/Χάσιμο" #: src/treeview.c:1522 msgid "Wages" msgstr "Μισθοί" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Εβ" #: src/treeview.c:2350 msgid "Week" msgstr "Εβδομάδα" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Εβδομάδα %d ΓÏÏος %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Εβδομάδα %d ΓÏÏος %d\n" "ΓÏÏος κυπέλλου %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Εβδομαδιαίο πάγιο" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Εβδομαδιαίο πάγιο:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Καλώς ήλθατε στο Bygfoot %s" #: src/options_interface.c:269 msgid "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Κατά πόσο η επιλογή 'Αποθήκευση' επικαλÏπτει το Ï„Ïέχον αποθηκευμένο αÏχείο ή " "αναδÏει ένα παÏάθυÏο 'Αποθήκευση ως'" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Κατά πόσο θα εμφανίζεται ένα αναδυόμενο για επιβεβαίωση όταν διώχνεται ένας " "νέος από την ακαδημία σας" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Κατά πόσο το παιχνίδι θα ξεκινάει με ένα μεγιστοποιημένο κυÏίως παÏάθυÏο " "(δεν δουλεÏει με όλους τους window managers)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Κατά πόσο στην θέαση εβδομαδιαίων εκδηλώσεων θα εμφανίζονται όλες οι λίγκες " "ή μόνο η λίγκα του χÏήστη" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Κατά πόσο ανταλλαγή δÏο παικτών Ï€Ïοκαλεί αυτόματη Ï€ÏοσαÏμογή του συστήματος " "της ομάδας στις θέσεις των παικτών" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Κατά πόσο το ζωντανό παιχνίδι θα διακόπτεται στο ημίχÏονο και στην παÏάταση" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "" "Κατά πόσο το ζωντανό παιχνίδι θα διακόπτεται όταν ένας παίκτης κάποιου " "χÏήστη είναι Ï„Ïαυματισμένος" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Κατά πόσο το ζωντανό παιχνίδι θα διακόπτεται όταν βγαίνει ένας παίκτης" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Κατά πόσο οι αντικαταστάσεις (Ï€.χ. για Ï„Ïαυματισμένους παίκτες) θα γίνονται " "από τη CPU. Αυτό γίνεται αυτόματα αν το ζωντανό παιχνίδι είναι " "απενεÏγοποιημένο." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Κατά πόσο να γίνεται τακτικά αυτόματη αποθήκευση του παιχνιδιοÏ" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Κατά πόσο θα αποθηκεÏονται οι καθολικές Ïυθμίσεις σε αÏχείο (για να " "φοÏτώνονται αυτόματα την επόμενη φοÏά που θα αÏχίζετε ένα νέο παιχνίδι)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Κατά πόσο να αποθηκεÏονται οι Ïυθμίσεις ενός χÏήστη σε ένα αÏχείο (για να " "φοÏτωθοÏν την επόμενη φοÏά που ο χÏήστης αυτός αÏχίζει ένα νέο παιχνίδι)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Κατά πόσο να εμφανίζεται ένα αναδυόμενο για επιβεβαίωση αν η ομάδα κάποιου " "χÏήστη έχει Ï„Ïαυματισμένο ή τιμωÏημένο παίκτη στην αÏχική διάταξη" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Κατά πόσο θα εμφανίζεται ένα αναδυόμενο για επιβεβαίωση αν πατηθεί έξοδος " "και η κατάσταση του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Î´ÎµÎ½ έχει αποθηκευτεί" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Κατά πόσο να εμφανίζονται αγώνες κυπέλλου στο παÏάθυÏο στοιχήματος" #: src/misc3_interface.c:82 msgid "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Κατά πόσο θα εμφανίζονται αγώνες κυπέλλου. ΧÏησιμοποιείστε το παÏάθυÏο " "επιλογών για μόνιμη ÏÏθμιση." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "" "Κατά πόσο να εμφανίζονται Ï€ÏοσφοÏές για εÏγασία όταν ένας χÏήστης είναι " "επιτυχημένος" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Κατά πόσο να εμφανίζονται αγώνες όλων των λιγκών στο παÏάθυÏο στοιχήματος" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Κατά πόσο θα εμφανίζονται αγώνες όλων των λιγκών. ΧÏησιμοποιείστε το " "παÏάθυÏο επιλογών για μόνιμη ÏÏθμιση." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "" "Κατά πόσο να εμφανιστοÏν μόνο τα στοιχήματα σας στη λίστα με τα Ï€Ïόσφατα " "στοιχήματα" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Κατά πόσο να εμφανίζονται εικόνες στο πάνω μέÏος της μπάÏας Ï€Ïοόδου όταν " "φοÏτώνονται/αποθηκεÏονται ή υπολογίζονται αποτελέσματα" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "" "Κατά πόσο να εμφανίζεται η τιμή παιχνίδια/τέÏματα του παίκτη σε όλες τις " "διοÏγανώσεις" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Κατά πόσο θα εμφανίζονται Ï€Ïοειδοποιήσεις και άλλα σχετικά στο κυÏίως " "παÏάθυÏο όταν αυτό είναι δυνατό" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Îίκητής1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Îικητής2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "Κιτ. κ" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "ΚίτÏινες κάÏτες (ÏŒÏιο)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "ΚίτÏινες" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Είστε Ï€Ïωταθλητές της %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Είστε ελεÏθεÏος από χÏέη." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Κάνετε μία Ï€ÏοσφοÏά για τον %s ξανά. Οι Ï€ÏοηγοÏμενες τιμές για ποσό " "μεταγÏαφής και μισθό είναι Ï€ÏοκαθοÏισμένες." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Κάνετε μία Ï€ÏοσφοÏά για τον %s. Οι Ï€Ïοτάσεις του ÏƒÎºÎ¬Î¿Ï…Ï„ÎµÏ ÏƒÎ±Ï‚ για ποσό " "μεταγÏαφής και μισθό έχουν Ï€ÏοκαθοÏιστεί." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "ΔιαπÏαγματεÏεστε με τον %s για νέο συμβόλαιο. ΠÏοσέξτε τι κάνετε, εάν δεν " "συμφωνήσετε στους ÏŒÏους με αυτόν σε %d Ï€ÏοσφοÏές, θα αφήσει την ομάδα σας " "Î±Ï†Î¿Ï Î»Î®Î¾ÎµÎ¹ το Ï„Ïέχον του συμβόλαιο (εκτός αν τον πουλήσετε). ΜποÏείτε να " "εγκαταλείψετε μόνο ΠΡΙΠτην Ï€Ïαγματοποίηση της Ï€Ïώτης Ï€ÏοσφοÏάς.\n" "Οι εισηγήσεις του ÏƒÎºÎ¬Î¿Ï…Ï„ÎµÏ ÏƒÎ±Ï‚ είναι Ï€ÏοκαθοÏισμένες:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Δεν χÏωστάτε." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Δεν είστε χÏεωμένοι." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Στοιχηματίζετε σε αποτέλεσμα %d με πιθανότητα %.2f. Πόσο στοιχηματίζετε;" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "ΜποÏείτε να ξεπληÏώσετε το Ï€Î¿Î»Ï %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "ΜποÏείτε να πάÏετε %s το μέγιστο." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Δεν μποÏείτε να ζητήσετε εÏγασία στο εξωτεÏικό εάν υπάÏχει πάνω από έναν " "χÏήστες." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Δεν μποÏείτε να έχετε πεÏισσότεÏους από %d παίκτες στην ομάδα." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "" "Δεν μποÏείτε να μετακινήσετε τον παίχτη, υπάÏχουν λίγοι παίχτες στην ομάδα " "σας." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Δεν μποÏείτε να Ï€ÏοσφέÏετε νέο συμβόλαιο αν το παλιό απέχει από την λήξη του " "πάνω από 2 χÏόνια." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Δεν μποÏείτε να παίξετε Bygfoot χωÏίς χÏήστες!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Δεν μποÏείτε να αντικαταστήσετε έναν τιμωÏημένο παίκτη." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Δεν έχετε αÏκετά χÏήματα για να αγοÏάσετε τον %s από την %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Δεν έχετε αÏκετά χÏήματα για να αγοÏάσετε τον %s ή το ÏÏŒÏƒÏ„ÎµÏ ÏƒÎ±Ï‚ είναι " "πλήÏες." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Δεν έχετε αÏκετά χÏήματα για να ξεπληÏώσετε." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Δεν έχετε τα χÏήματα." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Τελειώνετε την πεÏίοδο στη %s στη θέση %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "ΠÏοβιβάζεστε στη %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Υποβιβάζεστε στη %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Έχετε %d εβδομάδες για να αποπληÏώσετε το υπόλοιπο του δανείου σας." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Έχετε %d εβδομάδες να αποπληÏώσετε το δάνειο σας." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Έχετε υπεÏχÏεώσει ακόμα μία φοÏά τον Ï„Ïαπεζικό σας λογαÏιασμό. ΣυγκÏατήστε " "στο μυαλό σας ότι μετά την τέταÏτη φοÏά θα απολυθείτε.\n" "Οι ιδιοκτήτες της ομάδας σας δίνουν %d εβδομάδες καιÏÏŒ για να είστε κάτω από " "το πιστωτικό σας ÏŒÏιο." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Έχετε υπεÏχÏεώσει τον Ï„Ïαπεζικό λογαÏιασμό σας. Οι ιδιοκτήτες της ομάδας σας " "δίνουν %d εβδομάδες καιÏÏŒ για να είστε κάτω από το πιστωτικό σας ÏŒÏιο." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "ΠÏέπει να αποπληÏώσετε το δάνειο σας αυτή την εβδομάδα." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Δεν έχετε κάνει Ï€ÏοσφοÏά για τον παίκτη." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Δεν έχετε επιλέξει κάποιον παίχτη." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Χάνετε τον τελικό του %s ενάντια στη %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "ΠÏοσφέÏατε ποσό %s για την μεταγÏαφή και μισθό %s για τον %s. Οι ιδιοκτήτες " "και ο παίκτης είναι ικανοποιημένοι με την Ï€ÏοσφοÏά σας. Θέλετε ακόμα να " "αγοÏάσετε τον παίκτη;" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Φτάνετε τον %s (γÏÏο %s) του %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "ΑÏχίζετε το παιχνίδι με %s στη %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Έχετε ακόμα κάποιες μεταγÏαφικές εκκÏεμότητες." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Θέλετε να απολÏσετε τον %s. Από την στιγμή που το συμβόλαιο του λήγει σε " "%.1f χÏόνια, απαιτεί %s ως αποζημίωση. Δέχεστε;" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "ΚεÏδίζετε τον τελικό του %s ενάντια στη %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Φτάσατε το ÏŒÏιο των %d Ï€Ïοπονητικών κέντÏων αυτή την πεÏίοδο." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "Ο Ï„Ïαπεζικός λογαÏιασμός σας Ï€Ïέπει να είναι πάνω από το πιστωτικό σας ÏŒÏιο " "αυτή την εβδομάδα." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Ο παÏών χοÏηγός σας είναι ικανοποιημένος με τα αποτελέσματα σας και θα ήθελε " "να ανανεώσει το συμβόλαιο χοÏηγίας. Αυτή τη στιγμή σας πληÏώνουν %d την " "εβδομάδα." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Το χÏέος σας:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Ο επόμενος αντίπαλος σας" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Η Ï€ÏοσφοÏά σας για τον %s έγινε δεκτή. Εάν θέλετε ακόμα να τον αγοÏάσετε, " "πηγαίνετε στη λίστα μεταγÏαφών και πατήστε αÏιστεÏÏŒ κλικ πάνω στον παίκτη." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Η Ï€ÏοσφοÏά σας αφαιÏέθηκε." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Η Ï€ÏοσφοÏά σας αναβαθμίστηκε." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Η Ï€ÏοσφοÏά σας θα εξεταστεί την επόμενη εβδομάδα." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Τα συνολικά αποτελέσματα σας" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Το ÏÏŒÏƒÏ„ÎµÏ Ï€Î±Î¹ÎºÏ„ÏŽÎ½ σας είναι πλήÏες ή δεν έχετε αÏκετά χÏήματα." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Τα αποτελέσματα σας" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Το ÏÏŒÏƒÏ„ÎµÏ ÏƒÎ±Ï‚ είναι ήδη γεμάτο. Δεν μποÏείτε να αγοÏάσετε και άλλους παίκτες." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Το ÏÏŒÏƒÏ„ÎµÏ ÏƒÎ±Ï‚ είναι γεμάτο. Δεν μποÏείτε να αγοÏάσετε τον %s από την %s." #: src/window.c:890 msgid "Your stadium" msgstr "Το γήπεδο σας" #: src/treeview2.c:91 msgid "Your team" msgstr "Η ομάδα σας" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Η ομάδα σας δεν μποÏεί να έχει λιγότεÏους από 11 παίχτες." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Η ομάδα σας είχε αÏκετά Ï€Ïοπονητικά κέντÏα αυτή την εβδομάδα." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Ο νέος %s σκέφτηκε ότι είναι αÏκετά μεγάλος για Ï€Ïαγματικό συμβόλαιο και " "αφήνει την ομάδα σας." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Ο νέος %s θα είναι σÏντομα Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿Ï‚ για την ακαδημία νέων. Μετακινήστε " "τον στην ομάδα σας ή διώξτε τον από την ακαδημία. Αλλιώς το πιθανότεÏο να " "ψάξει άλλη ομάδα για να παίξει." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Επένδυση στην ακαδημία νέων." #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Ακαδημία νέων" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Η ακαδημία νέων είναι απενεÏγοποιημένη γι αυτόν τον οÏισμό χώÏας." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "ΠÏοπονητής νέων" #: src/interface.c:304 msgid "_File" msgstr "_ΑÏχείο" #: src/interface.c:1059 msgid "_Help" msgstr "_Βοήθεια" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_ΦόÏτωση παιχνιδιοÏ" #: src/interface.c:347 msgid "_Options" msgstr "_Επιλογές" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_ΠαÏση" #: src/interface.c:766 msgid "_Player" msgstr "_Παίκτης" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Συνέχεια" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Συνέχεια παιχνιδιοÏ" #: src/interface.c:460 msgid "_Team" msgstr "_Ομάδα" #: src/interface.c:850 msgid "_User" msgstr "_ΧÏήστης" #: src/treeview.c:1644 msgid "interest rate" msgstr "Επιτόκιο" bygfoot-2.3.2/po/it.po0000644000175000017500000026235311225071373013551 0ustar eliaselias# Italian translations for bygfoot package. # Copyright (C) 2007 THE bygfoot'S COPYRIGHT HOLDER # This file is distributed under the same license as the bygfoot package. # Basilio Silvio Greco aKa BAx , 2008. # msgid "" msgstr "" "Project-Id-Version: bygfoot 2.2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-07-03 22:25+0200\n" "Last-Translator: Mihai \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" #: src/bet.c:262 #: src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Non hai soldi." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "L'ufficio scommesse non ti consente di puntare più di %s." #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "La Banca non ti concede ulteriori prestiti" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Puoi chiedere al massimo %s'" #: src/callback_func.c:397 msgid "Loan" msgstr "Prestito" #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Non sei indebitato" #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Non hai soldi per estinguere il debito" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Puoi estinguere al massimo %s" #: src/callback_func.c:427 msgid "Payback" msgstr "Estingui" #: src/callback_func.c:455 msgid "There are some offers for the player which you rejected or will see next week." msgstr "Ci sono delle offerte per il giocatore che hai rifiutato o le vedrai la prossima settimana" #: src/callback_func.c:464 msgid " more" msgstr "di piu'" #: src/callback_func.c:466 msgid " less" msgstr "di meno" #: src/callback_func.c:468 #, c-format msgid "%s would like to buy %s. They offer %s for him, which is %s than the player's value. Do you accept?" msgstr "%s vorrebbe comprare %s. L'offerta e' di %s che e' %s piu' del suo valore. Accetti?" #: src/callback_func.c:498 #: src/callbacks.c:429 msgid "Your offer has been removed." msgstr "La tua offerta e' stata rimossa." #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "La rosa e' completa. Non puoi piu' acquistare giocatori." #: src/callback_func.c:512 #, c-format msgid "You offered a transfer fee of %s and a wage of %s for %s. The owners and the player are satisfied with your offer. Do you still want to buy the player?" msgstr "Hai offerto %s per il cartellino e uno stipendio di %s per %s. La societa' e il giocatore sono soddisfatti dell'offerta. Vuoi comprare il giocatore?" #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "L'utente %s non ha ancora valutato la tua offerta" #: src/callback_func.c:552 msgid "The player is locked (the team owners are considering an offer currently)." msgstr "Il giocatore e' bloccato (la societa' sta valutando un'offerta)" #: src/callback_func.c:559 #: src/callbacks.c:226 #: src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Il calciomercato e' chiuso." #: src/callback_func.c:571 #, c-format msgid "You are making an offer for %s. Your scout's recommendations for fee and wage are preset." msgstr "Stai facendo un'offerta per %s. I suggerimenti del tuo direttore sportivo sul prezzo del cartellino e dello stipendio sono stati preimpostati." #: src/callback_func.c:574 #: src/callback_func.c:582 msgid "Fee" msgstr "Compenso" #: src/callback_func.c:575 #: src/callback_func.c:582 #: src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Stipendio" #: src/callback_func.c:579 #, c-format msgid "You are making an offer for %s again. Your previous values for fee and wage are preset." msgstr "Stai facendo un per %s di nuovo. La precedente offerta per il cartellino e lo stipendio sara' sostituita con questa." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "Non puoi proporre un nuovo contratto se l'attuale scade tra piu' di due anni" #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Il giocatore non vuole piu' negoziare." #: src/callback_func.c:615 msgid "The player feels he doesn't have a future in your star-studded team. He refuses to negotiate." msgstr "Il giocatore si sente di avere un futuro nella tua squadra di stelle. Egli si rifiuta di negoziare." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what you're doing; if you don't come to terms with him within %d offers, he's going to leave your team after his current contract expires (unless you sell him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Stai discudendo il rinnovo del contratto con %s. Fai attenzione a cio' che fai; se non raggiungi un accordo entro %d, lascera'la squadra alla scadenza del contratto (a meno che tu non lo venda prima).Puoi solamente uscire prima di fare la prima offerta. \n" "I suggerimenti del tuo direttore sportivo sono stati preimpostati:" #: src/callback_func.c:771 #, c-format msgid "You want to fire %s. Since his contract expires in %.1f years, he demands a compensation of %s. Do you accept?" msgstr "Vuoi licenziare %s. Siccome il suo contratto scade tra %-1f un anno, chiede un compenso di %s. Accetti?" #: src/callback_func.c:930 msgid "Left click to move players to and from the youth academy; right click for context menu." msgstr "Click sinistro per spostare i giocatori dentro o fuori dalla primavera. Click destro per il menu contestuale." #: src/callbacks.c:133 #: src/game_gui.c:468 #: src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "L'opzione Boost On e' disabilitata in questa lega." #: src/callbacks.c:206 #: src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Il calciomercato e' disabilitato in questa lega" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Click sinistro per fare un'offerta, click destro per ritirarla." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Il calciomerato finisce la settimana %d" #: src/callbacks.c:239 #: src/callbacks.c:1355 #: src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Hai ancora alcuni trasferimenti da gestire." #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Almeno un utente non ha ancora giocato questa settimana. Continuo?" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "Ci sono dei giocatori infortunati o squalificati nella squadra. Continuo?" #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Non hai fatto offerte per il giocatore." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "Non puoi accettare un ingaggio all'estero se c'e' piu' di un giocatore." #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "La coppa non ha calendario." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Il gioco non e' stato salvato e sara' perso. Continuo?" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Tasto sinistro per vedere il tabellone." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Non ci sono campionati o coppe con classifiche per questa nazione." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Tasto sinistro per vedere le partite." #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Non ci sono campionati per questa nazione (solo coppe)." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Non ci sono statistiche stagionali disponibili." #: src/callbacks.c:817 #: src/callbacks.c:836 #: src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Le giovanili sono disabilitate in questa lega." #: src/callbacks.c:842 #: src/interface.c:667 msgid "Set the percentage of your income you want to devote to your youth academy." msgstr "Scegli la percentuale di entrate da destinare alla squadra primavera" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "Click destro per candidarsi per il posto, click sinistro per vedere le informazioni sulla squadra." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "L'intervallo di aggiornamento per la lista dei lavori e' %d settimane." #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Il ritiro e' disabilitato in questa lega." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "La tua squadra ha già effettuato abbastanza allenamenti questa settimana." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Hai raggiunto il limite di %d allenamenti per la stagione." #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Inserisci un modulo. La somma deve essere 10" #: src/callbacks.c:936 msgid "Structure" msgstr "Modulo" #: src/callbacks.c:972 #: src/callbacks.c:1023 #: src/callbacks.c:1043 #: src/callbacks.c:1065 #: src/callbacks.c:1085 #: src/callbacks.c:1105 #: src/callbacks.c:1125 #: src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Nessun giocatore selezionato." #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "I contratti sono disabilitati in questa lega." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Il giocatore e' gia' in lista." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Il giocatore non e' nella lista." #: src/callbacks.c:1107 #: src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "La squadra non puo' avere meno di 11 giocatori" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Tiratore Rigori/Punizioni deselezionato" #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s calcera' i rigori e le punizioni quando giochera'." #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Questo giocatore e' troppo vecchio per la squadra giovanile." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Non puoi spostare il giocatore. Ci sono pochi giocatori disponibili in squadra." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Non c'e' spazio nella squadra giovanile." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Non puoi avere piu' di %d giocatori in squadra." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Vuoi veramente buttare fuori il ragazzo dalla squadra giovanile?" #: src/callbacks.c:1412 #: src/callbacks.c:1432 #: src/callbacks.c:1572 #: src/misc2_callback_func.c:326 #: src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Nessuna partita salvata." #: src/callbacks.c:1485 #: src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Il bilancio e' disabilitato in questa lega." #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Non hai debiti." #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "E' troppo tardi nella stagione per il rinnovo automatico dell prestito." #: src/callbacks.c:1518 msgid "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "Click sinistro richiede un finanziamento; click destro: restituisce il finanziamento; click medio: vai allo stadio" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "La gestione dello stadio e' disabilitata in questa lega." #: src/cup.c:1094 msgid "Round robin" msgstr "Girone" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Ultimo %d" #: src/cup.c:1105 msgid "Final" msgstr "Finale" #: src/cup.c:1108 msgid "Semi-final" msgstr "Semifinale" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Quarti di finale" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Copiando %s" #: src/file.c:396 #: src/misc3_interface.c:412 msgid "Ready" msgstr "Pronto" #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Devi rimborsare il prestito questa settimana." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "La tua banca aumentera' il tuo fido la settimana prossima." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Hai %d settimane per rimborsare il prestito." #: src/finance.c:281 msgid "You are free from debt." msgstr "Non hai piu' debiti" #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Hai %d settimane per rimborsare il resto del prestito." #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " Rig." #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr "ET" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Secondo turno" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Primo turno" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Rigioca gli incontri" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 #: src/treeview_helper.c:1218 msgid " (P)" msgstr " (RIG)" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (PUN)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (AG)" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "La prossima settimana sara' licenziato e ne verra' assunto uno nuovo." #: src/game_gui.c:806 #, c-format msgid "The team owners have fired you because of financial mismanagement. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:" msgstr "La societa' ti ha licenziato perche' ci sono stati errori nella gestione finanziaria. Fortunatamente, la societa' %s e' convinta che non sia colpa tua e ti offre un contratto. Ecco alcune informazioni su %s:" #: src/game_gui.c:809 #, c-format msgid "The team owners have fired you because of unsuccessfulness. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:" msgstr "La societa' ti ha licenziato per gli insuccessi sul campo.Fortunatamente la societa' %s e' convinta che non sia colpa tua e ti offre un contratto.Ecco alcune informazioni su %s:" #: src/game_gui.c:812 #, c-format msgid "The owners of %s are deeply impressed by your success with %s and would like to hire you. Here's some information on %s:" msgstr "La societa' %s e' rimasta positivamente impressionata dai tuoi successi conseguiti con %s e vorrebbe assumerti. Ecco alcune informazioni su %s:" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "Clicca OK per candidarsi al lavoro. Clicca ANNULLA per chiudere la finestra." #: src/game_gui.c:818 msgid "Accept?" msgstr "Accetti?" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Vuoi candidarti per il posto?" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (ATTENZIONE: Se non accetti, il gioco verrà chiuso.)" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Le offerte di lavoro sono impostate a %s." #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Live game e' impostata a %s." #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Sovrascrittura impostata a %s" #: src/game_gui.c:940 msgid "Bygfoot is a very intuitive and simple game, so there isn't a full-grown documentation. However, if you have trouble, there are a few places to go.\n" msgstr "Bygfoot e' un gioco semplice e intuitivo, non ha una documentazione completa.In ogni caso se hai bisogno, puoi andare qui.\n" #: src/game_gui.c:942 msgid "At the Bygfoot forums you can report bugs, ask for help and discuss the game:\n" msgstr "Nei forum di Bygfoot puoi segnalare bugs, chiedere aiuto e discutere del gioco:\n" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Puoi anche scrivere una email agli autori:\n" #: src/interface.c:304 msgid "_File" msgstr "File" #: src/interface.c:319 msgid "L_oad last save" msgstr "Carica l'ultimo salvataggio" #: src/interface.c:347 msgid "_Options" msgstr "Opzioni" #: src/interface.c:354 msgid "Preferences" msgstr "Preferenze" #: src/interface.c:370 msgid "Job offers" msgstr "Offerte di lavoro" #: src/interface.c:375 #: src/misc_interface.c:500 #: src/options_interface.c:650 msgid "Live game" msgstr "Partita Live" #: src/interface.c:379 msgid "Overwrite" msgstr "Sovrascrivi" #: src/interface.c:389 msgid "Save window geometry" msgstr "Salva l'aspetto della finestra" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Salva la dimensione e l'aspetto della finestra" #: src/interface.c:398 msgid "F_igures" msgstr "C_lassifiche" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Calendario della settimana" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Calendario delle competizioni" #: src/interface.c:427 msgid "Tables" msgstr "Classifiche" #: src/interface.c:438 msgid "My league results" msgstr "Risultati campionato" #: src/interface.c:449 msgid "Season results" msgstr "Risultati della stagione" #: src/interface.c:460 msgid "_Team" msgstr "Squadra" #: src/interface.c:467 #: src/treeview.c:1887 msgid "Playing style" msgstr "Stile di gioco" #: src/interface.c:478 msgid "All Out Defend" msgstr "Tutti in difesa" #: src/interface.c:484 #: src/treeview.c:1776 msgid "Defend" msgstr "Difensivo" #: src/interface.c:490 msgid "Balanced" msgstr "Bilanciato" #: src/interface.c:496 #: src/treeview.c:1778 msgid "Attack" msgstr "Offensivo" #: src/interface.c:502 msgid "All Out Attack" msgstr "Tutti in attacco" #: src/interface.c:508 #: src/treeview.c:1524 msgid "Scout" msgstr "Osservatore" #: src/interface.c:519 #: src/interface.c:554 #: src/interface.c:603 msgid "Best" msgstr "Il migliore" #: src/interface.c:525 #: src/interface.c:560 #: src/interface.c:609 msgid "Good" msgstr "Buono" #: src/interface.c:531 #: src/interface.c:566 #: src/interface.c:615 msgid "Average" msgstr "Medio" #: src/interface.c:537 #: src/interface.c:572 #: src/interface.c:621 msgid "Bad" msgstr "Scadente" #: src/interface.c:543 #: src/treeview.c:1523 msgid "Physio" msgstr "Fisioterapista" #: src/interface.c:578 #: src/treeview.c:1526 msgid "Youth academy" msgstr "Squadra Giovanili" #: src/interface.c:589 msgid "Show youth academy" msgstr "Mostra giovanili" #: src/interface.c:596 #: src/treeview.c:1525 msgid "Youth coach" msgstr "Allenatore delle giovanili" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Preferenza assunzione" #: src/interface.c:634 msgid "Goalies" msgstr "Portieri" #: src/interface.c:640 msgid "Defenders" msgstr "Difensori" #: src/interface.c:646 msgid "Midfielders" msgstr "Centrocampisti" #: src/interface.c:652 msgid "Forwards" msgstr "Attaccanti" #: src/interface.c:658 msgid "Any" msgstr "Nessuno" #: src/interface.c:664 msgid "Set investment" msgstr "Configura investimenti" #: src/interface.c:669 msgid "Boost" msgstr "Boost" #: src/interface.c:680 msgid "On" msgstr "Acceso" #: src/interface.c:686 msgid "Off" msgstr "Spento" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:703 #: src/options_interface.c:1151 #: src/training_interface.c:60 #: src/treeview.c:1616 #: src/window.c:1007 msgid "Training camp" msgstr "Ritiro" #: src/interface.c:712 msgid "Reset player list" msgstr "Ripristina lista giocatori" #: src/interface.c:714 #: src/interface.c:1377 msgid "Reset player list to the formation at the beginning of the live game pause (right click on player list)" msgstr "Ripristina la lista dei giocatori a prima dell'inizio della pausa(click destro sulla lista giocatori)" #: src/interface.c:720 msgid "Enter custom structure" msgstr "Scegli il modulo:" #: src/interface.c:728 msgid "Rearrange team" msgstr "Riorganizza squadra" #: src/interface.c:731 msgid "Try to put the startup players onto their favoured positions and sort the substitutes (Ctrl-R or middle click)" msgstr "Prova a mettere i giocatori nelle loro posizioni preferite.Ctrl]r o click con il tasto in mezzo." #: src/interface.c:745 msgid "Browse teams" msgstr "Vedi le squadre" #: src/interface.c:758 msgid "Show job exchange" msgstr "Visualizza lista squadre senza manager" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Visualizza la lista disponibilita' lavori" #: src/interface.c:766 msgid "_Player" msgstr "Giocatore" #: src/interface.c:773 #: src/interface.c:2010 msgid "Show info" msgstr "Visualizza informazioni" #: src/interface.c:781 #: src/interface.c:2014 msgid "Put on transfer list" msgstr "Metti sul mercato" #: src/interface.c:789 #: src/interface.c:2018 msgid "Remove from transfer list" msgstr "Togli dal mercato" #: src/interface.c:797 #: src/interface.c:2022 msgid "Offer new contract" msgstr "Offri un nuovo contratto" #: src/interface.c:805 #: src/interface.c:2026 msgid "Fire" msgstr "Licenzia" #: src/interface.c:813 #: src/interface.c:2030 msgid "Shoots penalties" msgstr "Seleziona per calciare i rigori" #: src/interface.c:821 #: src/interface.c:2034 msgid "Move to youth academy" msgstr "Sposta nella squadra giovanile" #: src/interface.c:829 #: src/interface.c:2038 msgid "Edit name" msgstr "Modifica nome" #: src/interface.c:842 msgid "Browse players" msgstr "Visualizza giocatori" #: src/interface.c:850 msgid "_User" msgstr "Utente" #: src/interface.c:857 msgid "Show last match" msgstr "Mostra l'ultima partita" #: src/interface.c:868 msgid "Show last match stats" msgstr "Mostra le statistiche dell'ultima partita" #: src/interface.c:879 msgid "Show coming matches" msgstr "Mostra i prossimi incontri" #: src/interface.c:895 msgid "Next user" msgstr "Prossimo utente" #: src/interface.c:906 msgid "Previous user" msgstr "Utente precedente" #: src/interface.c:917 msgid "Manage users" msgstr "Gestisci utenti" #: src/interface.c:928 msgid "Fin_Stad" msgstr "Bilancio & Stadio" #: src/interface.c:935 msgid "Show finances" msgstr "Mostra bilancio" #: src/interface.c:946 msgid "Show stadium" msgstr "Mostra stadio" #: src/interface.c:957 #: src/misc3_interface.c:543 #: src/window.c:1015 msgid "Automatic loan repayment" msgstr "Rinnovo automatico dei prestiti" #: src/interface.c:969 #: src/options_interface.c:1084 #: src/treeview.c:1520 #: src/treeview.c:1530 #: src/window.c:992 msgid "Betting" msgstr "Scommesse" #: src/interface.c:972 msgid "Show the betting window" msgstr "Mostra la finestra scommesse" #: src/interface.c:977 msgid "St_ats" msgstr "Statistiche" #: src/interface.c:984 #: src/options_interface.c:1203 msgid "News" msgstr "News" #: src/interface.c:991 msgid "League stats" msgstr "Statistiche del campionato" #: src/interface.c:1002 msgid "Season history" msgstr "Cronologia della stagione" #: src/interface.c:1013 msgid "User history" msgstr "Storia utente" #: src/interface.c:1024 #: src/window.c:984 msgid "Memorable matches" msgstr "Partite indimenticabili" #: src/interface.c:1035 msgid "Add last match" msgstr "Aggiungi ultima partita" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Aggiungi l'ultimo incontro agli incontri indimenticabili." #: src/interface.c:1047 msgid "Manage matches" msgstr "Gestisci incontri" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Rivedi, aggiungi o cancella le partite indimenticabili." #: src/interface.c:1059 msgid "_Help" msgstr "Aiuto" #: src/interface.c:1066 #: src/misc2_interface.c:1092 msgid "About" msgstr "Informazioni su" #: src/interface.c:1074 #: src/misc2_interface.c:1106 #: src/misc3_interface.c:237 msgid "Contributors" msgstr "Collaboratori" #: src/interface.c:1082 #: src/misc2_interface.c:1132 msgid "Help" msgstr "Aiuto" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Carica gioco (Ctrl - 0)" #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Salva gioco (ctrl + s)" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Esci (ctrl + Q)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Torna al menu' principale (Esc)" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Mostra calciomercato (T)" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Inizia nuova settimana (Spazio)" #: src/interface.c:1200 msgid " Season " msgstr " Stagione " #: src/interface.c:1210 msgid " Week " msgstr " Settimana " #: src/interface.c:1220 msgid " Round " msgstr " Turno " #: src/interface.c:1241 #: src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Click destro e sinistro per cambiare lo stile di gioco" #: src/interface.c:1251 #: src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Click destro e sinistro per cambiare lo stato del Boost" #: src/interface.c:1281 msgid "Rank " msgstr "Posizione" #: src/interface.c:1296 msgid "Money " msgstr "Soldi " #: src/interface.c:1314 msgid "First value: average current skill of the first 11 players. Second value: average skill of all players." msgstr "Primo valore: media attuale delle abilita' dei primi 11 giocatori. Secondo valore: media abilita' di tutti i giocatori." #: src/interface.c:1320 msgid "Av. skills: " msgstr "Media Abilita': " #: src/interface.c:1363 msgid "Player list 1" msgstr "Lista giocatori 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Lista giocatori 2" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Precedente Campionato/Coppa (1)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Prossimo lega/coppa (2)" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Precedente (Q)" #: src/interface.c:1434 msgid "Next (W)" msgstr "Successiva (W)" #: src/interface.c:2092 msgid "Move to team" msgstr "Vai alla squadra" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Butta fuori dalle giovanili" #: src/league_table_interface.c:39 msgid "League table" msgstr "Classifica campionato" #: src/league_table_interface.c:49 msgid "Headline" msgstr "Titolo" #: src/lg_commentary.c:529 #: src/team.c:618 msgid "ALL OUT DEFEND" msgstr "Tutti in difesa" #: src/lg_commentary.c:532 #: src/team.c:620 msgid "DEFEND" msgstr "Difensivo" #: src/lg_commentary.c:535 #: src/team.c:622 msgid "BALANCED" msgstr "Bilanciato" #: src/lg_commentary.c:538 #: src/team.c:624 msgid "ATTACK" msgstr "Attacco" #: src/lg_commentary.c:541 #: src/team.c:626 msgid "ALL OUT ATTACK" msgstr "Tutti in attacco" #. Boost value. #: src/lg_commentary.c:544 #: src/team.c:634 msgid "ANTI" msgstr "Anti" #. Boost value. #: src/lg_commentary.c:547 #: src/team.c:637 msgid "OFF" msgstr "SPENTO" #. Boost value. #: src/lg_commentary.c:550 #: src/team.c:640 msgid "ON" msgstr "ACCESO" #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d dopo i rig" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d dopo i t.s." #: src/load_save.c:79 msgid "Saving options..." msgstr "Sto salvando le opzioni..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Sto salvando i campionati e le coppe..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Sto salvando gli utenti..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Sto salvando la lista trasferimenti..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Sto salvando le statistiche della stagione..." #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Salvataggio scambio lavoro..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Salvataggio giornali..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Salvataggio varie..." #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Compressione salvataggio..." #: src/load_save.c:169 #: src/load_save.c:319 msgid "Done." msgstr "Fatto." #: src/load_save.c:218 msgid "Last save file not found." msgstr "Ultimo salvataggio non presente." #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Decompressione salvataggio..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Caricando opzioni..." #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Caricando campionati e coppe..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Caricando utenti..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Caricando lista trasferimenti..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Caricando statistiche stagione..." #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Caricando lista lavori..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Caricando giornali..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Caricando impostazioni varie" #: src/main.c:94 msgid "Load last savegame" msgstr "Carica ultimo salvataggio" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "Specifica directory alternativa (ha la priorità su quella di default)" #: src/main.c:99 msgid "String id of the country to load" msgstr "Stringa id della nazione da caricare" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Linguaggio da utilizzare (un codice tipo 'de')" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Testa un file XML di commento" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Nome file Commento (potrebbe essere nella directory support)" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "File contenente pezzi di gioco (potrebbe essere nella directory support)" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "Commento evento di prova; lasciare a prova tutti i commenti" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Quanti commenti genera per evento" #: src/main.c:134 #: src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- un semplice ed entusiasmante GTK2 football manager" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s non puo' permettersi di acquistare %s o la sua rosa e' piena" #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "Non hai soldi per comprare %s o la tua rosa e' completa." #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "La tua rosa giocatori e' completa oppure non hai soldi." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Il modulo inserito %d non e' valido." #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s accetta la tua offerta." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s rifiuta la tua offerta. Puoi fare ancora %d offerte." #: src/misc2_callback_func.c:226 #, c-format msgid "%s rejects your offer and won't negotiate with you anymore. You should sell him before his contract expires (he'll simply leave your team otherwise)." msgstr "%s rifiuta la tua offerta e non vuole negoziare con te ancora. Dovresti venderlo prima che il suo contratto scada (altrimenti si svincolera' dalla tua squadra)." #: src/misc2_callback_func.c:348 #, c-format msgid "The owners of %s politely reject your application. You're not successful enough in their eyes." msgstr "La societa' del %s educatamente rifiuta la tua candidatura. Ai loro occhi non sei in grado di ricoprire questo ruolo." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "The owners of %s accept your application. Since %s don't want to get stuck with a lame duck, you get fired instantly and spend the rest of the current season tending your garden." msgstr "I proprietari di %s accetttano la tua richiesta. Poiché %s non vogliono rimanere con un perdente, tu vieni licenziato immediatamente e trascorri il resto dell'attuale stagione curando il tuo giardino." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "La societa' del %s accettano la tua candidatura." #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Regolare il piano dei rinnovi?" #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "La tua offerta e' stata aggiornata." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "La tua offerta verra' valutata la prossima settimana." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Non puoi giocare a Bygfoot senza utenti!" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Vuoi rimuovere l'utente %s dal gioco?" #: src/misc2_interface.c:70 #: src/window.c:898 msgid "Job offer" msgstr "Offerta di lavoro" #: src/misc2_interface.c:97 #: src/treeview2.c:791 #: src/treeview.c:304 #: src/treeview.c:778 #: src/treeview.c:2163 msgid "Name" msgstr "Nome" #: src/misc2_interface.c:102 #: src/treeview2.c:514 #: src/treeview.c:170 #: src/treeview.c:332 #: src/treeview.c:780 msgid "League" msgstr "Campionato" #: src/misc2_interface.c:107 #: src/treeview.c:1866 msgid "Rank" msgstr "Posizione" #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Soldi (approx.)" #: src/misc2_interface.c:117 #: src/treeview.c:1483 msgid "Stadium capacity" msgstr "Capienza stadio" #: src/misc2_interface.c:122 #: src/treeview.c:1487 msgid "Stadium safety" msgstr "Sicurezza stadio" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Lista giocatore" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Media abilita':" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 #: src/player.c:1406 #: src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Conferma & Pianifica rinnovamento" #: src/misc2_interface.c:480 #: src/misc2_interface.c:577 #: src/misc2_interface.c:1139 #: src/misc2_interface.c:1234 #: src/misc3_interface.c:107 #: src/misc3_interface.c:403 #: src/misc3_interface.c:816 #: src/misc_interface.c:296 #: src/misc_interface.c:1149 #: src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 anno" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 anni" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 anni" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 anni" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Fai offerta" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Utenti -- click per rimuovere" #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Clicca su un utente per rimuoverlo dal gioco." #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Squadre disponibili" #: src/misc2_interface.c:899 #: src/misc_interface.c:191 msgid "Add user" msgstr "Aggiungi utente" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Debug" #: src/misc2_interface.c:982 msgid "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY (otherwise your CPU will be destroyed by overheating)." msgstr "Finestra di debug per Bygfoot. Se sei arrivato qui per sbaglio, CHIUDI IMMEDIATAMENTE (altrimenti la tua CPU sara distrutta per surriscaldamento)." #: src/misc2_interface.c:1222 #: src/misc_interface.c:1125 msgid "Return" msgstr "Return" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Decidi dopo" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "File attuale" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Apri un file di partite memorabili" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Ricarica partite dal file" #: src/misc2_interface.c:1368 #: src/options_interface.c:411 msgid "Reload" msgstr "Ricarica" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importa le partite da un file che conserva i matches indimenticabili" #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importa file" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Salva cambiamenti apportati e chiudi" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Salva e chiudi" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Ricarica partite dal file e chiudi" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Ricarica e chiudi" #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Scommetti sul risultato %d che ha una quota di %.2f. Quanto vuoi scommettere?" #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Importo scommesso" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Per scommettere -- Clicca col sinistro sulla quota per piazzare o rimuovere la scommessa" #: src/misc3_interface.c:74 #: src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Mostra partite di tutti i campionati" #: src/misc3_interface.c:77 msgid "Whether to show matches of all leagues. Use the options window to toggle permanently." msgstr "Se visualizzare le partite di tutti i campionati. Utilizzare la finestra delle opzioni per attivare o disattivare in modo permanente." #: src/misc3_interface.c:79 #: src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Mostra partite di coppa" #: src/misc3_interface.c:82 msgid "Whether to show cup matches. Use the options window to toggle permanently." msgstr "Se per visualizzare le partite di coppa. Utilizzare la finestra delle opzioni per attivare o disattivare in modo permanente." #: src/misc3_interface.c:84 #: src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Mostra solo le mie recenti scommesse" #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Se visualizzare solo le tue puntate nella lista delle puntate recenti" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Sapevi che..." #: src/misc3_interface.c:295 msgid "Previous" msgstr "Precedente" #: src/misc3_interface.c:315 msgid "Next" msgstr "Prossimo" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Inizio _nuovo gioco" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "Carica gioco" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "Riprendi gioco" #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "I tuo debiti:" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Impostazioni correnti:" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Inizio nella settimana:" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Rata settimanale:" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nuove impostazioni:" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Inizio nella settimana" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Rata settimanale" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Calcolare rata settimanale" #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Calcolare la settimana di partenza" #: src/misc3_interface.c:790 #: src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoot News" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "Miglioramenti per la sicurezza troppo elevati, scegli il massimo possibile valore." #: src/misc_callbacks.c:232 msgid "There were too many substitutions. Only 3 per game are allowed. Player list reset." msgstr "Troppe sostituzioni. Solo 3 per partita sono consentite. Lista calciatori resettata." #: src/misc_callbacks.c:468 msgid "None" msgstr "Niente" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Scegli nazione" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Scegli squadra" #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Clicca su un utente per rimuoverlo." #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Scegli la lega dove iniziare" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Scegli nome utente" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Carica definizioni per le squadre" #: src/misc_interface.c:207 msgid "Load teams from definition files (note that the official Bygfoot package doesn't contain team definition files, you have to get them from the homepage or via the bygfoot-update script)" msgstr "Carica squadre dal file di definizione (N.B. il pacchetto ufficiale Bygfoot non contiene i file per le definizione delle squadre, puoi averlo attraverso la homepage o attraverso lo script bygfoot-update)" #: src/misc_interface.c:211 msgid "Only names" msgstr "Solo nomi" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Carica solo i nomi dei giocatori nel file di definizione" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Non caricare definizioni" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Non caricare tutte le definizioni della squadra" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Randomizza squadre nelle coppe" #: src/misc_interface.c:233 msgid "Randomise the order of teams in cups. This only makes sense in supernational definitions like the World Cup where the order of teams is fixed." msgstr "Randomizza l'ordine delle squadre nelle coppe. Questo ha senso solo nelle definizioni internazionali tipo la World Cup dove l'ordine delle squadre e' fissato." #: src/misc_interface.c:249 msgid "Space" msgstr "Spazio" #: src/misc_interface.c:266 msgid "Start" msgstr "Inizio" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Torna indietro alla splash screen" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Torna allo splash" #: src/misc_interface.c:387 #: src/window.c:922 msgid "Select font" msgstr "Seleziona font" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Commento" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statistiche" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Media Abilita': " #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Lista giocatori avversari" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Return / Space" #: src/misc_interface.c:664 msgid "_Pause" msgstr "Pausa" #: src/misc_interface.c:671 #: src/misc_interface.c:693 msgid "Return / Space" msgstr "Return / Space" #: src/misc_interface.c:685 msgid "_Resume" msgstr "Riprendi" #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "Cambia velocita' partita. Piu' alto sara' il valore, piu' veloce sara' la partita" #: src/misc_interface.c:710 msgid "Speed" msgstr "Velocita'" #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Verbosita'" #: src/misc_interface.c:729 msgid "Change commentary verbosity. The higher this value the more events you can see." msgstr "Cambia dettagli commenti. Piu' alto sara' il valore, piu' frasi che spiegheranno l'evento leggerai" #: src/misc_interface.c:934 msgid " seats" msgstr "posti a sedere" #: src/misc_interface.c:951 msgid "Status:" msgstr "Stato:" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Capacita' attuale" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Sicurezza attuale" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Media spettatori" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Media spettatori %" #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Cambiare prezzo biglietto" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Prezzo per biglietto" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Aumento" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capacita' (posti a sedere)" #: src/misc_interface.c:1061 #: src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Click destro per impostare a 0" #: src/misc_interface.c:1067 #: src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Costi" #: src/misc_interface.c:1071 #: src/misc_interface.c:1079 #: src/misc_interface.c:1105 #: src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc_interface.c:1075 #: src/misc_interface.c:1109 msgid "Expected duration" msgstr "Durata prevista" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Sicurezza (%)" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Conferma!" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Scegli file" #: src/misc_interface.c:1310 msgid "There are a few companies interested in sponsoring your team. Please select one:" msgstr "Ci sono diverse compagnie interessate a sponsorizzare la tua squadra. Scegli quella che piu' ti piace: " #: src/misc_interface.c:1345 msgid "Accept" msgstr "Accetta" #: src/misc_interface.c:1352 msgid "If you don't like any of the sponsors, you can go a few weeks without sponsor and wait for new offers." msgstr "Se non ti piace nessuno sponsor, puoi iniziare senza uno sponsor per alcune settimane e aspettare nuove offerte." #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Respingi per adesso" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s e %s (%d)" #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s e %s" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Conferma uscita quando non e' salvato" #: src/options_interface.c:259 msgid "Whether to show a confirmation popup when you press quit and the game state is not saved" msgstr "Se per visualizzare la conferma quando si chiude il gioco, ma non è stato salvato" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Conferma quando non pronti" #: src/options_interface.c:264 msgid "Whether to show a confirmation popup if a user team has an injured or banned player in the startup formation" msgstr "Se per visualizzare la conferma quando la squadra dell'utente ha un giocatore infortunato o squalificato nella formazione di partenza" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Salva sovrascritture" #: src/options_interface.c:269 msgid "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "'Salva' sovrascrive il salvataggio corrente oppure apre la finestra 'Salva come'" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Massimizza finestra principale" #: src/options_interface.c:279 msgid "Whether game starts with a maximized main window (doesn't work with all window managers)" msgstr "Se il gioco inizia con una finestra principale ingrandita (non funziona con tutti i sistemi operativi)" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Messaggi preferiti" #: src/options_interface.c:284 msgid "Whether to show warnings and such in the message area in the main window when possible" msgstr "Se visualizzare gli avvisi e simili nell'area messaggi nella finistra principale quando è possibile" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Mostra barra di caricamento" #: src/options_interface.c:289 msgid "Whether to show pictures on top of the progressbar when loading/saving or calculating results" msgstr "Se visualizzare le immagini sopra la barra di caricamento quando vengono caricati/salvati o calcolati i risultati" #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Salta settimane senza partite dell'utente" #: src/options_interface.c:299 msgid "If checked, weeks without user teams playing are calculated automatically (without the user having to press 'New week')" msgstr "Se spuntata, le settimane che trascorrono senza una squadra gestita da un umano sono calcolate automaticamente (altrimenti devi premere 'Nuova settimana')" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Intervallo di auto-salvataggio" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Ogni quanto il gioco e' salvato automaticamente" #: src/options_interface.c:329 msgid " Autosave files " msgstr " Salvataggio files automatico" #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Quanti files di autosave utilizzare" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Giocatore attributo precisione" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Frequenza di aggiornamento lista giocatore" #: src/options_interface.c:353 msgid "Constants file" msgstr "Costanti file" #: src/options_interface.c:365 #: src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Font usato nei menù" #: src/options_interface.c:379 msgid "Font name" msgstr "Nome Font" #: src/options_interface.c:392 msgid "File containing settings which determine a lot of aspects of the game behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "File contente le impostazioni che determinano molti aspetti del comportamento del gioco. NON MODIFICARLI SE NON SAI COSA STAI FACENDO." #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Ricarica i file costanti" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "Modifica le costanti usate nel gioco" #: src/options_interface.c:432 msgid "Edit" msgstr "Modifica" #: src/options_interface.c:436 msgid "Language" msgstr "Linguaggio" #: src/options_interface.c:443 msgid "Autosave" msgstr "Salvataggio automatico" #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Se il salvataggio automatico della partita avviene regolarmente" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Quante cifre dopo la virgola ci sono per le abilita' etc." #: src/options_interface.c:465 msgid "How often the player list gets refreshed during a live game (in live game minutes)" msgstr "Ogni quanto la lista giocatori viene aggiornata durante una partita live (minuti virtuali riferiti alla partita)" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Scegli linguaggio (potrebbe non funzionare nella versione Windows)" #: src/options_interface.c:486 msgid "Global" msgstr "Globali" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Confermi la rimozione dei giovani" #: src/options_interface.c:501 msgid "Whether a confirmation popup is shown when you kick out a youth from your academy" msgstr "Mostra popup quando butti fuori un allievo dalle giovanili" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Visualizza offerte di lavoro" #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Se visualizzare le offerte di lavoro quando un utente ha successo" #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Imposta a 0 per non visualizzare gli avvertimenti" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Mostra avviso se il contratto di un giocatore sta scadendo" #: src/options_interface.c:527 msgid " months" msgstr " mesi" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Mostra tutti i campionati nella modalita' visione calendari" #: src/options_interface.c:534 msgid "Whether in the weekly fixture view all leagues or only the user league is shown" msgstr "Se durante la partita settimanale visualizza tutti i campionati oppure solo il campionato dell'utente" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Imposta struttura adatta" #: src/options_interface.c:552 msgid "Whether swapping two players automatically adapts the team structure to the player positions" msgstr "Se scambiando due giocatori automaticamente adatta la struttura della squadra alle posizioni dei giocatori" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Visione globale games/goals" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Se visualizzare le partite/reti del giocatore in tutti i campionati" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "Devi sempre salvare/ripristinare la squadra default" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "Devi sempre salvare/ripristinare la squadra default prima/dopo una partita" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Stile di gioco" #: src/options_interface.c:576 msgid "Show live game" msgstr "Mostra partita live" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Visualizza la barra tendenza" #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Velocita' partita live" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Dettagli partita live" #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "Piu' basso sara' questo valore, piu' velocemente il commento della partita live scorrera'. " #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Piu' alto sara' questo valore, piu' il commento sara' dettagliato." #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Sostituzioni automatiche" #: src/options_interface.c:624 msgid "Whether the subs (e.g. for injured players) are made by the CPU. This is automatically done if the live game is off." msgstr "Se le sostituzioni (es: per giocatori infortunati) sono fatte dal computer. Questo viene fatto automaticamente se la partita Live è spenta." #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pausa se c'e un infortunio" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Se la partita Live si ferma quando un giocatore dell'utente si infortuna" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pausa se c'e un cartellino rosso" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Se la partita Live si ferma quando un giocatore dell'utente viene mandato fuori" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pausa nell'intervallo" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Se la partita Live si ferma dopo il primo tempo e nei tempi supplementari" #: src/options_interface.c:658 msgid "Name " msgstr "Nome " #: src/options_interface.c:665 msgid "CPos " msgstr "PosA" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos " #: src/options_interface.c:679 msgid "CSkill " msgstr "Abilita'Attuale" #: src/options_interface.c:686 msgid "Skill " msgstr "Abilita' " #: src/options_interface.c:693 msgid "Fitness " msgstr "Forma" #: src/options_interface.c:700 msgid "Games " msgstr "Partite" #: src/options_interface.c:707 msgid "Shots " msgstr "Tiri " #: src/options_interface.c:714 msgid "Goals " msgstr "Reti" #: src/options_interface.c:721 msgid "Status " msgstr "Stato" #: src/options_interface.c:728 msgid "Cards " msgstr "Cartellini" #: src/options_interface.c:735 msgid "Age " msgstr "Eta'" #: src/options_interface.c:742 msgid "ETal " msgstr "Potenziale" #: src/options_interface.c:749 msgid "Value " msgstr "Valore" #: src/options_interface.c:756 msgid "Wage " msgstr "Stipendio" #: src/options_interface.c:763 msgid "Contract " msgstr "Contratto" #: src/options_interface.c:770 msgid "League " msgstr "Campionato" #: src/options_interface.c:777 msgid "Team " msgstr "Squadra " #: src/options_interface.c:1014 msgid "Attribute " msgstr "Caratteristiche " #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2 " #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Imposta visione caratteristiche giocatori" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Se visualizzare le partite di tutti i campionati nella finestra delle scommesse" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Se per visualizzare le partite di coppa nella finestra delle scommesse" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Importo predefinito" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Quanto scommetti di default " #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Hotel predefinito" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Ricreazione predefinita:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Allenamento predefinito:" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Crea news utente" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Crea news di coppa" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Crea news del campionato" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Mostra solo le news recenti" #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "No popup automatico" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Popup per news utente" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "Visualizza la finestra news dopo una giornata in cui è stata creata una nuova news utente" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Popup automatico" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Mostrare sempre le news dopo una partita" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Salva impostazioni generali" #: src/options_interface.c:1223 msgid "Whether to save the global settings to file (so that they get loaded next time you start a new game)" msgstr "Se per salvare le impostazioni globali nel file (in modo che vengano caricate la prossima volta che si avvia un nuovo gioco)" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Salva impostazioni utente" #: src/options_interface.c:1228 msgid "Whether to save the user settings to file (so that they get loaded next time this user starts a new game)" msgstr "Se per salvare le impostazioni utente nel file (in modo che vengano caricate la prossima volta che si avvia un nuovo gioco)" #: src/options_interface.c:1527 msgid "Integer" msgstr "Intero" #: src/options_interface.c:1541 msgid "Float" msgstr "Float" #: src/options_interface.c:1555 msgid "String" msgstr "Stringa" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Aspetto" #: src/options_interface.c:1581 msgid "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "Salvare le modifiche al file di costanti. NON MODIFICARLI SE NON SAI DAVVERO COSA STAI FACENDO." #: src/options_interface.c:1595 msgid "Save to file" msgstr "Salva impostazioni utente" #: src/options_interface.c:1602 msgid "Reload constants files. This will overwrite any changes you made in the current game session." msgstr " Ricarica costanti dei files. Ciò sovrascriverà le eventuali modifiche apportate nel corso dell'attuale sessione di gioco." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "Ricarica da file" #: src/options_interface.c:1623 msgid "Close window. Changes will only be saved for the current session, unless you also save to file." msgstr "Chiudi la finestra. Le modifiche verranno salvate solamente per la sessione corrente, a meno che non salvi in file." #: src/options_interface.c:1640 msgid "Close" msgstr "Chiudi" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Non puoi sostituire un giocatore squalificato." #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "Il contratto di %s scadra' fra %.1f anni." #: src/player.c:1409 msgid "Concussion" msgstr "Commozione celebrale" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Strappo muscolare" #: src/player.c:1415 msgid "Hamstring" msgstr "Hamstring" #: src/player.c:1418 msgid "Groin injury" msgstr "Infortunio all'inguine" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Caviglia fratturata" #: src/player.c:1424 msgid "Broken rib" msgstr "Costola rotta" #: src/player.c:1427 msgid "Broken leg" msgstr "Gamba rotta" #: src/player.c:1430 msgid "Broken ankle" msgstr "Caviglia rotta" #: src/player.c:1433 msgid "Broken arm" msgstr "Braccio rotto" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Spalla rotta" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Rottura legamento crociato" #: src/support.c:96 #: src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Impossibile trovare file pixmap: %s" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Lo stile di gioco della squadra e' stato cambiato in %s." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Boost impostato su %s (costa %d per minuto)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Boost impostato su %s." #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "Vittoria %d : %d" #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "Persa %d : %d" #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Pa %d : %d" #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (C) " #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (F) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #. draw #: src/team.c:1150 msgid "Dw " msgstr "Pa" #. lost #: src/team.c:1154 msgid "L " msgstr "P" #. won #: src/team.c:1157 msgid "W " msgstr "V" #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d lascia l'allenamento questa stagione." #: src/training_interface.c:84 msgid "Camp points" msgstr "Punti campo" #: src/training_interface.c:98 msgid "Recreation" msgstr "Passatempi" #: src/training_interface.c:117 msgid "Training" msgstr "Allenamento" #: src/training_interface.c:161 #: src/treeview.c:2940 msgid "Good Hotel" msgstr "Buon Hotel" #: src/training_interface.c:168 #: src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hotel di prima classe" #: src/training_interface.c:175 #: src/treeview.c:2946 msgid "Premium Hotel" msgstr "Premium Hotel" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Salva impostazioni come predefinite" #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s e' stato aggiunto alla lista dei trasferimenti for %d settimane." #: src/treeview2.c:68 msgid "REPLAY" msgstr "REPLAY" #: src/treeview2.c:69 msgid "REMOVE" msgstr "TOGLI" #: src/treeview2.c:70 msgid "EXPORT" msgstr "ESPORTA" #: src/treeview2.c:91 msgid "Your team" msgstr "La tua squadra" #: src/treeview2.c:92 #: src/treeview2.c:212 msgid "Opponent" msgstr "Avversari" #: src/treeview2.c:93 #: src/treeview2.c:214 msgid "Result" msgstr "Risultato" #: src/treeview2.c:94 #: src/treeview2.c:211 msgid "Competition" msgstr "Competizione" #: src/treeview2.c:95 #: src/treeview2.c:515 msgid "Country" msgstr "Nazione" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Noi" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Ro" #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "Current bets" msgstr "Scommesse attuali" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "Recent bets" msgstr "Scommesse recenti" #: src/treeview2.c:393 msgid "Team1" msgstr "Squadra 1" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "1" #: src/treeview2.c:396 msgid "Draw" msgstr "X" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "2" #: src/treeview2.c:399 msgid "Team2" msgstr "Squadra 2" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Importo scommesso/\n" "Vinti/Persi" #: src/treeview2.c:513 #: src/treeview.c:161 #: src/treeview.c:331 #: src/treeview.c:779 #: src/treeview.c:1384 #: src/treeview.c:1858 #: src/treeview.c:2012 #: src/treeview.c:2350 msgid "Team" msgstr "Squadra" #: src/treeview2.c:516 msgid "Av.skill" msgstr "Med.abilita'" #: src/treeview2.c:517 msgid "Talent %" msgstr "Potenziale %" #: src/treeview2.c:600 msgid "No news available." msgstr "No news disponibili." #: src/treeview2.c:626 #: src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Settimana %d Turno %d" #: src/treeview2.c:792 #: src/treeview.c:328 #: src/treeview.c:2172 msgid "Value" msgstr "Valore" #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Media qualita'" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "PosA" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "AbA" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Ab" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Adattare" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Par" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Tiri" #. Goals of a player. #. Goals. #: src/treeview.c:320 #: src/treeview.c:2480 msgid "Go" msgstr "Via" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Stato" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "CG" #: src/treeview.c:325 #: src/treeview.c:2170 msgid "Age" msgstr "Eta'" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "Potenziale" #: src/treeview.c:330 #: src/treeview.c:2174 msgid "Contract" msgstr "Contratto" #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Reti (regolare)" #: src/treeview.c:836 #: src/treeview_helper.c:933 msgid "Shots" msgstr "Tiri" #: src/treeview.c:837 #: src/treeview.c:2422 msgid "Shot %" msgstr "Tiro %" #: src/treeview.c:838 msgid "Possession" msgstr "Possesso" #: src/treeview.c:839 msgid "Penalties" msgstr "Rigori" #: src/treeview.c:840 msgid "Fouls" msgstr "Falli" #: src/treeview.c:841 #: src/treeview_helper.c:934 msgid "Yellows" msgstr "Gialli" #: src/treeview.c:842 #: src/treeview_helper.c:935 msgid "Reds" msgstr "Rossi" #: src/treeview.c:843 msgid "Injuries" msgstr "Infortuni" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Spettatori\n" "%s" #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Si sono verificati problemi tecnici\n" "nello stadio." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "C'erano delle sommosse\n" "nello stadio." #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "C'era un incendio\n" "nello stadio." #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Settimana %d Turno %d\n" "Turno di coppa %d" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Gruppo %d" #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "PG" #. Games won. #. Won. #: src/treeview.c:1388 #: src/treeview_helper.c:1738 msgid "W" msgstr "V" #. Games drawn. #. Draw. #: src/treeview.c:1390 #: src/treeview_helper.c:1756 msgid "Dw" msgstr "N" #. Games lost. #. Lost. #: src/treeview.c:1392 #: src/treeview_helper.c:1749 msgid "L" msgstr "P" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GF" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GS" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "GD" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PNT" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadio" #: src/treeview.c:1493 #: src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Miglioramenti in corso.\n" "%d posti a sedere e %d%% sicurezza saranno realizzati.\n" "Fine lavori prevista: %d settimane." #: src/treeview.c:1501 msgid "Stadium status" msgstr "Stato stadio" #: src/treeview.c:1517 msgid "Prize money" msgstr "Premio in denaro" #: src/treeview.c:1518 msgid "Ticket income" msgstr "Incassi partite" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsorizzazione" #: src/treeview.c:1522 msgid "Wages" msgstr "Stipendi" #: src/treeview.c:1527 msgid "Journey costs" msgstr "Costi di viaggio" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Compensi" #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Costi Boost" #: src/treeview.c:1546 #: src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Bilancio Bisettimanale\n" "(Settimana %d e %d)" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Bilancio Bisettimanale" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Bilancio" #: src/treeview.c:1598 msgid "Transfers" msgstr "Trasferimenti" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Spese stadio" #: src/treeview.c:1629 msgid "Money" msgstr "Soldi" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Credito massimo" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Attuali interessi di mercato" #: src/treeview.c:1644 msgid "interest rate" msgstr "tasso d'interesse" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Debito (estingui in %d settimane)" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Rinnovo automatico" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(settimana di partenza %d)" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f mesi / %s" #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contratto / Soldi" #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Investimento sui giovani" #: src/treeview.c:1703 msgid "Income" msgstr "Entrate" #: src/treeview.c:1704 msgid "Expenses" msgstr "Uscite" #: src/treeview.c:1775 msgid "Goalie" msgstr "Portiere" #: src/treeview.c:1777 msgid "Midfield" msgstr "Centrocampista" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Prossimi avversari" #: src/treeview.c:1836 #: src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Settimana %d Turno %d" #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Campo neutro" #: src/treeview.c:1849 msgid "Home" msgstr "Casa" #: src/treeview.c:1851 msgid "Away" msgstr "Fuori" #: src/treeview.c:1884 msgid "Average skill" msgstr "Media abilita'" #: src/treeview.c:1892 msgid "Team structure" msgstr "Modulo squadra" #: src/treeview.c:1898 msgid "Latest results" msgstr "Ultimi risultati" #: src/treeview.c:1900 #: src/treeview.c:2446 #: src/treeview_helper.c:932 msgid "Goals" msgstr "Reti" #: src/treeview.c:1904 msgid "Overall results" msgstr "Risultati complessivi" #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "I tuoi risultati" #: src/treeview.c:1913 msgid "Your overall results" msgstr "I tuoi risultati complessivi" #: src/treeview.c:2013 msgid "Results" msgstr "Risultati" #: src/treeview.c:2164 msgid "Position" msgstr "Posizione" #: src/treeview.c:2165 msgid "Current position" msgstr "Posizione attuale" #: src/treeview.c:2166 msgid "Skill" msgstr "Abilita'" #: src/treeview.c:2167 msgid "Current skill" msgstr "Abilita' attuale" #: src/treeview.c:2168 msgid "Fitness" msgstr "Forma" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Potenziale stimato" #: src/treeview.c:2171 msgid "Health" msgstr "Salute" #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Partite/Reti\n" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Limite cartellini gialli\n" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Squalificato\n" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Serie" #: src/treeview.c:2182 msgid "Career values" msgstr "Valori Carriera" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Nuovo contratto\n" "offerte" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Stag" #: src/treeview.c:2350 msgid "Week" msgstr "Settimana" #: src/treeview.c:2378 msgid "Event" msgstr "Evento" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Miglior attacco" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Miglior difesa" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Miglior cannoniere" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Miglior portiere" #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Parate %" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Go/Ga" #: src/treeview.c:2590 msgid "League champions" msgstr "Champions League" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Coppa campioni" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Stagione %d" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Impossibile trovare file 'bygfoot_help'." #: src/treeview.c:2829 msgid "Current league" msgstr "Lega attuale" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Sistema" #: src/treeview.c:3017 msgid "Company" msgstr "Compagnia" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Lunghezza contratto\n" "(Mesi)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Soldi / settimana" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Il giocatore non vuole piu' negoziare" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Il giocatore accetta nuove offerte" #: src/treeview_helper.c:931 msgid "Games" msgstr "Partite" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Rete/Partita %.1f Salva %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Rete/Partita %.1f Tiro %% %.1f" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d settimane\n" #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (senza limite)\n" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Il giocatore e' in serie positiva" #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Il giocatore e' in serie negativa" #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (recupero in %d settimane)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "INF (%d)" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "SQL(%d)" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "P" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "D" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "C" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "A" #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "AGG ULTIMA PARTITA" #: src/user.c:382 #, c-format msgid "The owners of %s are not satisfied with the recent performance of the team. There are rumours they're looking for a new manager." msgstr "La societa' del %s non e' soddisfatta dalla recenti prestazioni della squadra. Le speculazioni sono sempre piu' forti e sta prendendo sempre piu' piede l'ipotesi di un cambio di panchina." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s si e' svincolato dalla tua squadra perche' il suo contratto e' scaduto." #: src/user.c:578 #, c-format msgid "You have overdrawn your bank account. The team owners give you %d weeks to get above your drawing credit limit." msgstr "Hai superato il limite di fido. La societa' ti da' %d settimane per rientrare nel limite." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Hai superato il limite di fido ancora una volta. Cerca di capire che dopo la quarta volta sarai licenziato.\n" "La societa' ti concede %d settimane per riportare nel limite consentito dalla banca il fido." #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Controlla la lista trasferimenti, c'e' un offerta per %s." #: src/user.c:587 #, c-format msgid "Your offer for %s has been accepted. If you still want to buy him, go to the transfer list and left click on the player." msgstr "La tua offerta per %s e' stata accettata. Se ancora vuoi comprarlo, vai alla lista trasferimenti e clicca col sinistro sul giocatore." #: src/user.c:593 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. There was a better offer for the player than yours." msgstr "La societa' del %s rifiuta la tua offerta (%s / %s) per %s. C'e' un' offerta migliora della tua per questo giocatore." #: src/user.c:598 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee nor the wage you offered were acceptable, they say." msgstr "La societa' del %s rifiuta la tua offerta (%s / %s) per %s. Ne' la somma offerto ne' lo stipendio sono accettabili.Migliora l'offerta." #: src/user.c:603 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. The team owners weren't satisfied with the fee you offered." msgstr "La societa' del %s rifiuta la tua offerta (%s / %s) per %s. La somma offerta non soddisfa i proprietari della squadra." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the wage you offered." msgstr "%s del %s ha rifiutato la tua offerta (%s / %s). Non e' soddisfatto dell'offerta." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "%s of %s has rejected your offer because your team has too many star players already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "%s di %s ha rifiutato l'offerta perchè la tua squadra ha già troppi giocatori importanti. 'Un giocatore del mio valore non gioca nelle seconde linee,' ha commentato." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Non hai soldi per comprare %s dal %s." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "La rosa e' completa. Non puoi piu' acquistare %s dal %s." #: src/user.c:630 #, c-format msgid "%s's injury was so severe that he can't play football on a professional level anymore. He leaves your team." msgstr "L'infortunio di %s e' talmente grave da impedirgli di poter giocare ancora in una lega professionale. Va via dalla tua squadra." #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Per fortuna ha avuto un cugino che può aiutare la tua squadra fuori." #: src/user.c:642 msgid "The team owners are very satisfied with your financial management. Since the team's been earning a lot of money lately, they decide to donate half of it to charity." msgstr "La societa' e' molto soddisfatta della tua gestione finanziaria. Dal momento che la squadra sta guadagnando molti soldi ultimamente, i soci decidono di donare meta' dei soldi in cassa in beneficienza." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Cominci il gioco con %s nella %s." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s ti licenzia a causa di una cattiva gestione finanziaria.\n" "Trovi un nuovo lavoro con %s nella %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s ti licenzia a causa di scarse prestazioni.\n" "Trovi un nuovo lavoro con %s nella %s." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s ti offre un lavoro nel %s.\n" "Accetti la sfida e vai via dal %s." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Hai terminato la stagione al %s posto nel campionato di %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Se stato promosso in %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Sei retrocesso in %s." #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Hai vinto la finale di %s contro %s." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Hai perso nella finale di %s contro %s." #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Hai raggiunto il %s (%s turno) della %s." #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Tu sei il campione della %s!" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Sistemi" #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Comunicazioni" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holdings" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industrie" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Compagnia" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telecomunicazioni" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratori" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Tecnologie" #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Prodotti chimici" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energia" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Banca" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Prodotti" #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Scientifico" #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Finanze" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petrolieri" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Ristoranti" #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Sistema di dati" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd." #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Assoc." #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Gruppo" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Fratelli" #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Sorelle" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Bros." #: src/user.c:1126 #, c-format msgid "Your current sponsor is satisfied with your results and would like to renew the contract. Currently they're paying you %d a week." msgstr "Il tuo attuale sponsor e' contento dei tuoi risultati e vorrebbe rinnovare l'accordo. Attualmente loro stanno pagando %d per settimana." #: src/user.c:1214 msgid "Memorable match added." msgstr "Partita indimenticabile aggiunta." #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoot Salvataggi" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Partite indimenticabili di Bygfoot" #: src/window.c:399 msgid "All Files" msgstr "Tutti i Files" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Nessun file Bygfoot Partite Memorabili valido." #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Attualmente non ci sono miglioramenti in corso" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Benventuo in Bygfoot %s" #: src/window.c:865 msgid "Erm..." msgstr "Erm..." #: src/window.c:882 msgid "Numbers..." msgstr "Numeri..." #: src/window.c:890 msgid "Your stadium" msgstr "Il tuo stadio" #: src/window.c:914 msgid "Options" msgstr "Opzioni" #: src/window.c:937 msgid "Contract offer" msgstr "Offerta di contratto" #: src/window.c:945 msgid "User management" msgstr "Gestione utenti" #: src/window.c:968 msgid "Transfer offer" msgstr "Offerta di trasferimento" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Offerte di sponsorizzazione" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Costanti BygFoot" #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Caricando league: %s" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Caricando la coppa: %s" #: src/youth_academy.c:215 #, c-format msgid "Youth %s will be too old for the youth academy soon. Move him to your team or kick him out of the academy. Otherwise he'll probably look for another team to play in." msgstr "L'allievo %s sara' presto troppo vecchio per le giovanili. Spostalo in prima squadra o buttalo fuori dalle giovanili. Altrimenti lui cerchera' un' altra squadra in cui giocare." #: src/youth_academy.c:220 #, c-format msgid "Youth %s thought he's old enough for a real contract and left your youth academy." msgstr "Il giovanile %s pensa che e' abbastanza maturo per avere un contratto vero e decide di lasciare le giovanili." #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Un nuovo giocatore entra a far parte delle giovanili" #: src/youth_academy.c:257 msgid "A new youth wanted to registered at your youth academy but there was no room for him." msgstr "Un nuovo giovane vorrebbe entrare nelle giovanili ma non c'e posto per lui." #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Se pensi di aver trovato qualcosa del gioco che merita di essere " #~ "condiviso, puoi aggiungerlo al Wiki di Bygfoot:\n" #~ msgid "Improve!" #~ msgstr "Migliora!" #~ msgid "Misc." #~ msgstr "Vari" #~ msgid "Show history" #~ msgstr "Mostra cronologia" bygfoot-2.3.2/po/sv.po0000644000175000017500000026110611225071373013560 0ustar eliaselias# Swedish translation of bygfoot. # This file is distributed under the same license as the bygfoot package. # Daniel Nylander , 2006, 2007, 2008, 2009. # msgid "" msgstr "" "Project-Id-Version: bygfoot\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-03-26 23:29+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "MÃ¥l/Match %.1f Räddningar %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "MÃ¥l/Match %.1f Skott %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Du kan även skriva e-post till upphovsmännen:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & AB" #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Döttrar" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Söner" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (FS)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (OBSERVERA: Om inte, sÃ¥ är spelet över för dig.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (EM)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (S)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Första halvlek" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Spela om matcher" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Andra halvlek" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " KB" #: src/options_interface.c:329 msgid " Autosave files " msgstr " Autospara filer " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bank" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " " #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Kemikalier" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " HB" #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Ã…keri" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Företag" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " " #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Datasystem" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energi" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " " #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Finansbolag" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Som tur är har han en kusin som kan hjälpa ditt lag." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Grupp" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Datorer" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industrier" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratorier" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " KB" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petroleum" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Produkter" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restauranger" #: src/interface.c:1220 msgid " Round " msgstr " OmgÃ¥ng " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Utveckling" #: src/interface.c:1200 msgid " Season " msgstr " Säsong " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Rörläggeri" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " System" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " MÃ¥leri" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Telekommunikation" #: src/interface.c:1210 msgid " Week " msgstr " Vecka " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " e.t." #: src/callback_func.c:466 msgid " less" msgstr " mindre" #: src/options_interface.c:527 msgid " months" msgstr " mÃ¥nader" #: src/callback_func.c:464 msgid " more" msgstr " mer" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " s." #: src/misc_interface.c:934 msgid " seats" msgstr " platser" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f mÃ¥nader / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d e.t." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d s." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d träningsläger kvar denna säsong." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (H) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (förväntas vara Ã¥terhämtad om %d veckor)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grupp %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s accepterar ditt erbjudande." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s och %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s och %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s hade inte rÃ¥d att köpa %s eller att hans lista var full." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s sparkar dig pÃ¥ grund av dÃ¥ligt skötta finanser.\n" "Du hittar ett nytt jobb hos %s i %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s sparkar dig pÃ¥ grund av dÃ¥liga framgÃ¥ngar.\n" "Du hittar ett nytt jobb hos %s i %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s har varit pÃ¥ övergÃ¥ngslistan i %d veckor." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s har lämnat ditt lag pÃ¥ grund av att hans kontrakt gick ut." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s av %s har tackat nej till ditt erbjudande (%s / %s). Han har inte nöjd " "med lönen du erbjöd." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s frÃ¥n %s har avvisat ditt erbjudande därför att ditt lag har för mÃ¥nga " "stjärnspelare redan. 'En spelare av min kaliber spelar inte i bakgrunden,' " "svarade han." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s erbjuder dig ett jobb i %s.\n" "Du accepterar utmaningen och lämnar %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s tackar nej till ditt erbjudande och kommer inte att förhandla med dig " "igen. Du bör sälja honom före hans kontrakt gÃ¥r ut (han kommer att lämna " "ditt lag annars)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "" "%s tackar nej till ditt erbjudande. Du kan fortfarande lämna %d erbjudanden." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s kommer att lägga straffar och frisparkar när han spelar." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s önskar köpa %s. De erbjuder %s för honom, vilket är %s av spelarens " "värde. Accepterar du?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "Kontraktet för %s gÃ¥r ut om %.1f Ã¥r." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "Skadan som %s pÃ¥drog sig är sÃ¥ allvarlig att han aldrig kan spela fotboll pÃ¥ " "en professionell nivÃ¥ igen. Han lämnar ditt lag." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (ingen gräns)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d veckor\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(startar vecka %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- en enkel och vanebildande fotbollsmanager" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 Ã¥r" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 Ã¥r" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 Ã¥r" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 Ã¥r" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (B) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Det inträffade en brand\n" "pÃ¥ stadion." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Det inträffade upplopp\n" "pÃ¥ stadion." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Det inträffade tekniska problem\n" "pÃ¥ stadion." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Aktuella insatser" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Tidigare insatser" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Vecka %d OmgÃ¥ng %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "En ny ung spelare är registrerad i din fotbollsskola." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "En ny ung spelare ville bli registrerad i din fotbollsskola men det fanns " "ingen plats för honom." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "LÄGG TILL SENASTE MATCH" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "ALLA SOM ANFALL" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "ALLA SOM FÖRSVAR" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ANFALL" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "Om" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Acceptera" #: src/game_gui.c:818 msgid "Accept?" msgstr "Acceptera?" #: src/interface.c:1035 msgid "Add last match" msgstr "Lägg till senaste match" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Lägg till senaste match till aktuell fil för minnesvärda matcher." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Lägg till användare" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Justera amorteringsplan?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Ã…lder" #: src/options_interface.c:735 msgid "Age " msgstr "Ã…lder " #: src/window.c:399 msgid "All Files" msgstr "Alla filer" #: src/interface.c:502 msgid "All Out Attack" msgstr "Alla som anfall" #: src/interface.c:478 msgid "All Out Defend" msgstr "Alla som försvar" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Visa alltid nyhetsfönster efter en matchdag" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Alla" #: src/options_interface.c:1569 msgid "Appearance" msgstr "Utseende" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Söka jobbet?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Ã…tminstone en användare gjorde inte sin omgÃ¥ng denna vecka. Fortsätta?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "PÃ¥ Bygfoots forum kan du rapportera fel, frÃ¥ga efter hjälp och diskutera " "spelet:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Anfall" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Publik\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Attribut " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Automatisk amortering" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Automatisk popup" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Automatisk amortering" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Automatiska inbytare" #: src/options_interface.c:443 msgid "Autosave" msgstr "Autospara" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Intervall för autospar " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Med.skick: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Med.skick: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Me.ski" #: src/treeview2.c:516 msgid "Av.skill" msgstr "Med.skick" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Tillgängliga lag" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Medel" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Genomsnittlig publik" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Genomsnittlig publik %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Medelskicklighet" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Medelskicklighet:" #: src/treeview.c:1851 msgid "Away" msgstr "Borta" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "BALANSERAD" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "AVS(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Tillbaka till huvudmeny (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Tillbaka till huvudmenyn" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "DÃ¥lig" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Saldo" #: src/interface.c:490 msgid "Balanced" msgstr "Balanserad" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Avstängd\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Börja en ny vecka (Mellanslag)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Bäst" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Bästa defensiva lag" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Bästa mÃ¥lgörare" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Bästa mÃ¥lvakter" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Bästa offensiva lag" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Vadslagning" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Vadslagning -- Vänsterklick pÃ¥ udda för göra eller ta bort ett vad" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Saldo (2-veckors)" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Saldo (2-veckors)\n" "(Vecka %d och %d)" #: src/interface.c:669 msgid "Boost" msgstr "Boost" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Boost PÃ… är inaktiverad i det här landets definition." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Boost ändrad till %s (kostar %d per minut)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Boost ändrad till %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Boost kostar" #: src/player.c:1430 msgid "Broken ankle" msgstr "Bruten ankel" #: src/player.c:1433 msgid "Broken arm" msgstr "Bruten arm" #: src/player.c:1427 msgid "Broken leg" msgstr "Brutet ben" #: src/player.c:1424 msgid "Broken rib" msgstr "Brutet revben" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Bruten axel" #: src/interface.c:842 msgid "Browse players" msgstr "Bläddra spelare" #: src/interface.c:745 msgid "Browse teams" msgstr "Bläddra lag" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Bygfoot - Minnesvärda matcher" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoot - Nyheter" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoot - Sparade filer" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Bygfoot-konstanter" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Felsökningsfönster för Bygfoot. Om du kom hit av misstag, STÄNG OMEDELBART " "(annars förstörs din processor pÃ¥ grund av överhettning)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot är ett mycket intuitivt och enkelt spel, sÃ¥ det finns ingen " "fullvuxen dokumentation. Dock, om du har problem, sÃ¥ finns det ett nÃ¥gra " "platser att leta.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "Npos" #: src/options_interface.c:665 msgid "CPos " msgstr "Npos " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "ASk" #: src/options_interface.c:679 msgid "CSkill " msgstr "ASkick " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Beräkna startvecka" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Beräkna amortering per vecka" #: src/training_interface.c:84 msgid "Camp points" msgstr "Lägerpoäng" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Kapacitet (platser)" #: src/options_interface.c:728 msgid "Cards " msgstr "Kort " #: src/treeview.c:2182 msgid "Career values" msgstr "Karriärvärden" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Ändra informationsnivÃ¥ för kommentatorn. Desto högre värde, desto fler " "händelser kan du se." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Ändra hastighet för livematch. Desto högre värde, desto snabbare livematch." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Ändra biljettpriset" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Välj land" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Välj fil" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Välj sprÃ¥k i spelet (kanske inte fungerar i Windows-versioner)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Välj liga att starta i" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Välj lag" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Välj användarnamn" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Klicka pÃ¥ OK för att söka jobbet. Klicka pÃ¥ AVBRYT för att stänga fönstret." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Klicka pÃ¥ en användare för att ta bort honom frÃ¥n spelet." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Klicka pÃ¥ en användare för att ta bort honom." #: src/options_interface.c:1640 msgid "Close" msgstr "Stäng" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" "Stäng fönstret. Ändringar kommer endast att sparas för den aktuella " "sessionen, sÃ¥vida inte du även sparar till fil." #: src/misc_interface.c:573 msgid "Commentary" msgstr "Kommentator" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Kommentatorhändelse att testa; lämna tom för att testa alla kommentarer" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Filnamn för kommentatorer (kan vara i en stödkatalog)" #: src/treeview.c:3017 msgid "Company" msgstr "Företag" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Kompensationer" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Tävling" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Komprimerar sparat spel..." #: src/player.c:1409 msgid "Concussion" msgstr "Hjärnskakning" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Bekräfta och schemalägg amortering" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Bekräfta avslut när spel behöver sparas" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Bekräfta borttagning av ungdomar" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Bekräfta om ej spelbar" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Bekräfta!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Fil för \"constants\"" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Kontrakt" #: src/options_interface.c:763 msgid "Contract " msgstr "Kontrakt " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Kontrakt / Pengar" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Kontraktslängd\n" "(MÃ¥nader)" #: src/window.c:937 msgid "Contract offer" msgstr "Kontraktserbjudande" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Kontrakt är inaktiverade i det här landets definition." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Bidragsgivare" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Kopierar %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Kostnader" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Kunde inte hitta bildfil: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Land" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Skapa cupnyheter" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Skapa liganyheter" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Skapa användarnyheter" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Cupmästare" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Cupen har inga tabeller." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Aktuell kapacitet" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Aktuell fil" #: src/treeview.c:2829 msgid "Current league" msgstr "Aktuell liga" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Aktuell räntesats" #: src/treeview.c:2165 msgid "Current position" msgstr "Aktuell position" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Aktuell säkerhet" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Aktuella inställningar:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Aktuell skicklighet" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "B" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "FÖRSVAR" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Skuld (Ã¥terbetala om %d veckor)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Felsökning" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Bestäm senare" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Standardhotell" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "StandardÃ¥terhämtning:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Standardträning:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Standardinsats" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Försvar" #: src/interface.c:640 msgid "Defenders" msgstr "Försvarare" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Visste du det?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Hittade inte filen \"bygfoot_help\"." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "" "Vill du verkligen sparka ut den stackars pojken frÃ¥n din fotbollsskola?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Läs inte in definitioner" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Läs inte in lagdefinitioner alls" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Klar." #: src/treeview2.c:396 msgid "Draw" msgstr "Lika" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Uttagskredit" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "Lk" #. draw #: src/team.c:1150 msgid "Dw " msgstr "Lk " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Lk %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "UTal " #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTERA" #: src/options_interface.c:432 msgid "Edit" msgstr "Redigera" #: src/interface.c:829 src/interface.c:2038 msgid "Edit name" msgstr "Redigera namn" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "Redigera konstanterna som används i spelet" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Ange en struktur. Siffrorna mÃ¥ste bli 10 tillsammans." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Ange anpassad struktur" #: src/window.c:865 msgid "Erm..." msgstr "Erm..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Return / Mellanslag" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Ungefärlig talang" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "Utal" #: src/treeview.c:2378 msgid "Event" msgstr "Händelse" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Förväntad längd" #: src/treeview.c:1704 msgid "Expenses" msgstr "Utgifter" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "F" #: src/interface.c:398 msgid "F_igures" msgstr "S_iffror" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Summa" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "Fil som innehÃ¥ller livematchsymboler (kan finnas i en stödkatalog)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Fil som innehÃ¥ller inställningar som bestämmer en hel del aspekter i spelets " "beteende. ÄNDRA INTE DET HÄR OM DU VERKLIGEN INTE VET VAD DU GÖR." #: src/interface.c:928 msgid "Fin_Stad" msgstr "Fin_Stad" #: src/cup.c:1105 msgid "Final" msgstr "Final" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Finanser är inaktiverade i det här landets definition." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Sparka ut" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Första värdet: genomsnittlig aktuell skicklighet av de första 11 spelarna. " "Andra värdet: genomsnittlig skicklighet av alla spelare." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Första klass-hotell" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Form" #: src/treeview.c:2168 msgid "Fitness" msgstr "Form" #: src/options_interface.c:693 msgid "Fitness " msgstr "Form" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Matchprogram (tävlingar)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Matchprogram (vecka)" #: src/options_interface.c:1541 msgid "Float" msgstr "Float" #: src/options_interface.c:379 msgid "Font name" msgstr "Typsnittsnamn" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Typsnitt som används i trädvyer" #: src/interface.c:652 msgid "Forwards" msgstr "Forwarder" #: src/treeview.c:840 msgid "Fouls" msgstr "AvblÃ¥sningar" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Ankelfraktur" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "M" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "MM" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "MS" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "MF" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Ma" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Spel" #: src/treeview_helper.c:931 msgid "Games" msgstr "Matcher" #: src/options_interface.c:700 msgid "Games " msgstr "Matcher " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Matcher/MÃ¥l\n" #: src/options_interface.c:486 msgid "Global" msgstr "Globalt" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "MÃ¥" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "GÃ¥ tillbaka till huvudmenyn" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "MÃ¥/Ma" #: src/treeview.c:1775 msgid "Goalie" msgstr "MÃ¥lvakt" #: src/interface.c:634 msgid "Goalies" msgstr "MÃ¥lvakter" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "MÃ¥l" #: src/options_interface.c:714 msgid "Goals " msgstr "MÃ¥l " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "MÃ¥l (vanliga)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Bra" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Bra hotell" #: src/player.c:1418 msgid "Groin injury" msgstr "Ljumskskada" #: src/player.c:1415 msgid "Hamstring" msgstr "Knäsena" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Ta en titt pÃ¥ övergÃ¥ngslistan, där finns ett erbjudande för %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Rubrik" #: src/treeview.c:2171 msgid "Health" msgstr "Hälsa" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Hjälp" #: src/treeview.c:1849 msgid "Home" msgstr "Hemma" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Hur mÃ¥nga kommentarer att generera per händelse" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "Hur mÃ¥nga siffror efter kommatecknet det är för skicklighet etc." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Hur mÃ¥nga filer som autospar använder" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Hur mycket du satsar som standard" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "Hur ofta spelet sparas automatiskt" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Hur ofta spelarlistan blir uppdaterad under en livematch (i livematch-" "minuter)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "SKA(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Om kryssad, veckor utan att användarnas lag spelar beräknas automatiskt " "(utan att användare behöver trycka \"Ny vecka\")" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Om du inte tycker om nÃ¥gra av sponsorerna kan du fortsätta nÃ¥gra veckor utan " "sponsor och vänta pÃ¥ nya erbjudanden." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importera fil" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importera matcher frÃ¥n en fil med minnesvärda matcher" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Förbättringar genomförs.\n" "%d platser och %d%% säkerhet Ã¥terstÃ¥r.\n" "Förväntas vara klar om %d veckor." #: src/treeview.c:1703 msgid "Income" msgstr "Inkomst" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Öka" #: src/treeview.c:843 msgid "Injuries" msgstr "Skador" #: src/options_interface.c:1527 msgid "Integer" msgstr "Heltal" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Det är för sent i säsongen för automatisk amortering." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Jobberbjudande" #: src/interface.c:370 msgid "Job offers" msgstr "Jobberbjudanden" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Jobberbjudanden inställd till %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Resa kostar" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Sparka ut frÃ¥n skolan" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "F" #. lost #: src/team.c:1154 msgid "L " msgstr "F " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "F %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "L_äs in senast sparade" #: src/options_interface.c:436 msgid "Language" msgstr "SprÃ¥k" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "SprÃ¥k att använda (en kod liknande \"sv\")" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Sista %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Senaste sparfilen hittades inte." #: src/treeview.c:1898 msgid "Latest results" msgstr "Senaste resultaten" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga " #: src/treeview.c:2590 msgid "League champions" msgstr "Ligamästare" #: src/interface.c:991 msgid "League stats" msgstr "Ligastatistik" #: src/league_table_interface.c:39 msgid "League table" msgstr "Ligatabell" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "" "Vänsterklick för att lämna ett erbjudande. Högerklick för att ta bort " "erbjudande." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Vänsterklick för att flytta spelare till och frÃ¥n fotbollsskolan; högerklick " "för kontextmenyn." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Vänsterklicka för att visa matchprogram." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Vänsterklicka för att visa tabell." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Vänsterklick: ansök om lÃ¥n; Högerklick: betala tillbaka; Mittenklick: " "stadiumfönster." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Livematch" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Livematch inställd till %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Hastighet för livematch" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "InformationsnivÃ¥ för livematch" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Läs in spel (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Läs in senast sparade spelet" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Läs endast in spelarnamnen i definitionsfilerna" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Läs in lagdefinitioner" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Läs in lag frÃ¥n definitionsfiler (notera att det officiella Bygfoot-paketet " "inte innehÃ¥ller lagdefinitionsfiler, du mÃ¥ste hämta dem frÃ¥n hemsidan eller " "via skriptet bygfoot-update)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Läser in cup: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Läser in jobbförmedling..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Läser in liga: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Läser in ligor och cuper..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Läser in diverse..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Läser in tidning..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Läser in alternativ..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Läser in säsongsstatistik..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Läser in övergÃ¥ngslista..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Läser in användare..." #: src/callback_func.c:397 msgid "Loan" msgstr "LÃ¥n" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Ge erbjudande" #: src/interface.c:1047 msgid "Manage matches" msgstr "Hantera matcher" #: src/interface.c:917 msgid "Manage users" msgstr "Hantera användare" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximera huvudfönster" #: src/user.c:1214 msgid "Memorable match added." msgstr "Minnesvärd match lades till." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Minnesvärda matcher" #: src/treeview.c:1777 msgid "Midfield" msgstr "Mittfält" #: src/interface.c:646 msgid "Midfielders" msgstr "Mittfältare" #: src/treeview.c:1629 msgid "Money" msgstr "Pengar" #: src/interface.c:1296 msgid "Money " msgstr "Pengar " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Pengar (ungefär)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Pengar / vecka" #: src/interface.c:2092 msgid "Move to team" msgstr "Flytta till lag" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Flytta till fotbollsskola" #: src/interface.c:438 msgid "My league results" msgstr "Mina ligaresultat" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Namn" #: src/options_interface.c:658 msgid "Name " msgstr "Namn " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Neutral mark" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Nya kontrakt-\n" "erbjudanden" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nya inställningar:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Nyheter" #: src/misc3_interface.c:315 msgid "Next" msgstr "Nästa" #: src/interface.c:1434 msgid "Next (W)" msgstr "Nästa (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Nästa liga/cup (2)" #: src/interface.c:895 msgid "Next user" msgstr "Nästa användare" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "Nästa vecka sparkar du honom och anställer en ny." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Inga automatiska popup" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Inga förbättringar görs för tillfället." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Ingen match lagrad." #: src/treeview2.c:600 msgid "No news available." msgstr "Inga nyheter tillgängliga." #: src/misc_callbacks.c:468 msgid "None" msgstr "Ingen" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Inte ett giltigt filnamn för Bygfoots minnesvärda matcher." #: src/window.c:882 msgid "Numbers..." msgstr "Siffror..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "AV" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "PÃ…" #: src/interface.c:686 msgid "Off" msgstr "Av" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Erbjud nytt kontrakt" #: src/interface.c:680 msgid "On" msgstr "PÃ¥" #: src/misc_interface.c:211 msgid "Only names" msgstr "Endast namn" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Öppna en fil med minnesvärda matcher" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "MotstÃ¥ndare" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "MotstÃ¥ndarens spelarlista" #: src/window.c:914 msgid "Options" msgstr "Alternativ" #: src/treeview.c:1904 msgid "Overall results" msgstr "Totala resultat" #: src/interface.c:379 msgid "Overwrite" msgstr "Skriv över" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Skriva över inställd till %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "SP" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "POÄ" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Paus vid avbrott" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Paus vid skada" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Paus vid rött kort" #: src/callback_func.c:427 msgid "Payback" msgstr "Ã…terbetalning" #: src/treeview.c:839 msgid "Penalties" msgstr "Straffsparkar" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Läggare av straffspark/frispark avmarkerad." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Fysik" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Spelare accepterar nya erbjudanden" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Precision för spelarattribut" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Spelarattribut visas" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Spelaren förhandlar inte mer" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Spelarlista" #: src/interface.c:1363 msgid "Player list 1" msgstr "Spelarlista 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Spelarlista 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Uppdateringshastighet för spelarlista" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Spelstil" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Popup för användarnyheter" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos " #: src/treeview.c:2164 msgid "Position" msgstr "Position" #: src/treeview.c:838 msgid "Possession" msgstr "Bollinnehav" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Föredra meddelanden" #: src/interface.c:354 msgid "Preferences" msgstr "Inställningar" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Normalt hotell" #: src/misc3_interface.c:295 msgid "Previous" msgstr "FöregÃ¥ende" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "FöregÃ¥ende (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "FöregÃ¥ende liga/cup (1)" #: src/interface.c:906 msgid "Previous user" msgstr "FöregÃ¥ende användare" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Pris per biljett" #: src/treeview.c:1517 msgid "Prize money" msgstr "Prispengar" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Sträckning" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Sätt pÃ¥ övergÃ¥ngslista" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Kvartsfinal" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Avsluta (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "TA BORT" #: src/treeview2.c:68 msgid "REPLAY" msgstr "SPELA UPP" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Slumpa lag i cuper" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Slumpa ordningen pÃ¥ lagen i cuper. Det här används bara i supernationella " "definitioner sÃ¥som World Cup där ordningen av lagen redan är klar." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Rank" #: src/interface.c:1281 msgid "Rank " msgstr "Rank " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Klar" #: src/interface.c:728 msgid "Rearrange team" msgstr "Arrangera om laget" #: src/training_interface.c:98 msgid "Recreation" msgstr "Ã…terhämtning" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Inställningar för rekrytering" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Röda" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Tacka nej för tillfället" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Uppdatera" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Uppdatera och stäng" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" "Läs om constants-filerna. Detta kommer att skriva över ändringar som du har " "gjort i den aktuella spelsessionen." #: src/options_interface.c:1616 msgid "Reload from file" msgstr "Läs om frÃ¥n fil" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Uppdatera matcher frÃ¥n fil" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Uppdatera matcher frÃ¥n fil och stäng" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Läs om \"constants\"-filen" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Ta bort frÃ¥n övergÃ¥ngslista" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Ta bort användaren %s frÃ¥n spelet?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Spela upp igen, ta bort eller lägg till minnesvärda matcher." #: src/interface.c:712 msgid "Reset player list" msgstr "Ã…terställ spelarlistan" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Ã…terställ spelarlistan till formationen i början av livematchens paus " "(högerklick pÃ¥ spelarlistan)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Resultat" #: src/treeview.c:2013 msgid "Results" msgstr "Resultat" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Return" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Return / Mellanslag" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Högerklick och vänsterklick för att ändra boost" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Högerklick och vänsterklick för att ändra din spelstil" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Högerklick för att söka jobbet pÃ¥ en gÃ¥ng, vänsterklick för att se " "laginformation." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Högerklicka för att sätta till 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Omg" #: src/cup.c:1094 msgid "Round robin" msgstr "Alla mot alla" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Säkerhet (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "Säkerhetsförbättring för hög, Ã¥terställer till högsta möjliga värde." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Räddningar %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Spara och stäng" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Spara ändringar till fil och stäng" #: src/options_interface.c:1581 msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Spara ändringar i constants-filen. ÄNDRA INTE DET HÄR OM DU VERKLIGEN INTE " "VET VAD DU GÖR." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Spara spel (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Spara globala inställningar till fil" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Spara skriver över" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Spara inställningar som standard" #: src/options_interface.c:1595 msgid "Save to file" msgstr "Spara till fil" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Spara användarinställningar till fil" #: src/interface.c:389 msgid "Save window geometry" msgstr "Spara fönstergeometri" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "Spara fönsterstorlek, position och vertikala avgränsare" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Sparar jobbförmedling..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Sparar ligor och cuper..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Sparar diverse..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Sparar tidning..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Sparar alternativ..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Sparar säsongsstatistik..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Sparar övergÃ¥ngslista..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Sparar användare..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Talangscout" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Säs" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Säsong %d" #: src/interface.c:1002 msgid "Season history" msgstr "Säsongshistorik" #: src/interface.c:449 msgid "Season results" msgstr "Säsongsresultat" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Välj typsnitt" #: src/cup.c:1108 msgid "Semi-final" msgstr "Semi-final" #: src/interface.c:664 msgid "Set investment" msgstr "Ställ in investering" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Ställ in antalet procent av din inkomst som du vill satsa i din " "fotbollsskola." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Ställ in till 0 för att stänga av varning" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Sk" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Lägger straffsparkar" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Skott %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Skott" #: src/options_interface.c:707 msgid "Shots " msgstr "Skott " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Visa alla ligor i matchprogrammet" #: src/interface.c:879 msgid "Show coming matches" msgstr "Visa kommande matcher" #: src/interface.c:935 msgid "Show finances" msgstr "Visa finanser" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Visa info" #: src/interface.c:758 msgid "Show job exchange" msgstr "Visa jobbförmedling" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Visa jobberbjudanden" #: src/interface.c:857 msgid "Show last match" msgstr "Visa senaste match" #: src/interface.c:868 msgid "Show last match stats" msgstr "Visa statistik pÃ¥ senaste match" #: src/options_interface.c:576 msgid "Show live game" msgstr "Visa livematch" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Visa matcher frÃ¥n alla ligor" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Visa matcher frÃ¥n cuper" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "Visa nyhetsfönster efter en matchdag när nya användarnyheter skapats" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Visa endast mina senaste vad" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Visa endast senaste nyheter" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Visa alla matcher/mÃ¥l" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Visa förloppsbilder" #: src/interface.c:946 msgid "Show stadium" msgstr "Visa stadium" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Visa tendenser" #: src/interface.c:972 msgid "Show the betting window" msgstr "Visa vadslagningsfönstret" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Visa listan över tillgängliga managerjobb" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Visa övergÃ¥ngslista (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Visa varning om ett spelarkontrakt kommer under " #: src/interface.c:589 msgid "Show youth academy" msgstr "Visa fotbollsskola" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Sk" #: src/treeview.c:2166 msgid "Skill" msgstr "Skicklighet" #: src/options_interface.c:686 msgid "Skill " msgstr "Skicklighet " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Hoppa över veckor utan matcher för nÃ¥gon användare" #: src/misc_interface.c:249 msgid "Space" msgstr "Mellanslag" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "Ange ytterligare stödkatalog (Ã¥sidosätter standardkataloger)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Hastighet" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsring" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Erbjudanden om sponsring" #: src/interface.c:977 msgid "St_ats" msgstr "St_atistik" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadium" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Kapacitet för stadium" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Utgifter för stadium" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "Stadiumhantering är inaktiverad i denna landsdefinition." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Säkerhet för stadium" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Status för stadium" #: src/misc_interface.c:266 msgid "Start" msgstr "Starta" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Starta _nytt spel" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Starta i vecka" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Starta i vecka:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statistik" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Status" #: src/options_interface.c:721 msgid "Status " msgstr "Status " #: src/misc_interface.c:951 msgid "Status:" msgstr "Status:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "FramgÃ¥ng" #: src/options_interface.c:1555 msgid "String" msgstr "Sträng" #: src/main.c:99 msgid "String id of the country to load" msgstr "Sträng-id för landet att läsa in" #: src/callbacks.c:936 msgid "Structure" msgstr "Struktur" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Byte anpassar struktur" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "System" #: src/interface.c:427 msgid "Tables" msgstr "Tabeller" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talang %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Lag" #: src/options_interface.c:777 msgid "Team " msgstr "Lag " #: src/treeview.c:1892 msgid "Team structure" msgstr "Lagstruktur" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Lagstil ändrad till %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Lag1" #: src/treeview2.c:399 msgid "Team2" msgstr "Lag2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Testa en XML-kommentatorsfil" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Banken ger dig inte mer pengar." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "VadslagningsbyrÃ¥n lÃ¥ter dig inte satsa mer än %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Aktuellt spel har inte sparats och kommer att förloras. Fortsätta?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Desto högre värdet är, desto mer kommentarer ser du." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "Uppdatering av jobbförmedlingsintervallen är %d veckor." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Desto lägre värdet är, desto snabbare kommer kommentarerna för livematchen " "att rulla." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "Ägarna av %s accepterar din ansökan." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Ägarna av %s accepterar din ansökan. Eftersom %s inte vill blir sittande med " "en handlingsförlamad tränare blir du sparkad direkt och fÃ¥r spendera resten " "av säsongen med att sköta om din trädgÃ¥rd." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Ägarna av %s är mycket imponerade av din framgÃ¥ng med %s och önskar anställa " "dig. Här är lite information om %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Ägarna av %s är inte nöjda med senaste händelserna i laget. Det gÃ¥r rykten " "om att de letar efter en ny manager." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Ägarna av %s har tackat nej till ditt erbjudande (%s / %s) för %s. Varken " "summan eller lönen du erbjöd accepterades, sa de." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Ägarna av %s har tackat nej till ditt erbjudande (%s / %s) för %s. Lagets " "ägare var inte nöjda med summan du erbjöd." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Ägarna av %s har tackat nej till ditt erbjudande (%s / %s) för %s. Det fanns " "ett bättre erbjudande för spelaren än ditt." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Ägarna av %s tackar snällt nej till din ansökan. Du är inte tillräckligt " "framgÃ¥ngsrik i deras ögon." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Spelaren känner att han inte har en framtid i ditt stjärnfyllda lag. Han " "vägrar att förhandla." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Spelaren är redan pÃ¥ listan." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "Spelaren är lÃ¥st (lagets ägare funderar fortfarande pÃ¥ ett erbjudande)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Spelaren är inte pÃ¥ listan." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Spelaren är pÃ¥ väg nerÃ¥t" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Spelaren är pÃ¥ väg uppÃ¥t" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Spelaren är för gammal för fotbollsskolan." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Spelaren vill inte förhandla mer med dig." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Strukturvärdet %d är ogiltigt." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Ägarna till laget är mycket nöjda med din finansiella hantering. Eftersom " "laget har tjänat en massa pengar pÃ¥ sista tiden, har de beslutat att donera " "hälften till välgörenhet." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Lagets ägare har sparkat dig pÃ¥ grund av dÃ¥lig hantering av finanserna. " "Lyckligtvis har ägarna av %s hört om din situation och erbjuder dig ett " "jobb. Här är lite information om %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Lagets ägare har sparkat dig pÃ¥ grund av dina misslyckanden. Lyckligtvis har " "ägarna av %s hört om din situation och erbjuder dig ett jobb. Här är lite " "information om %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Tidsgräns för övergÃ¥ng slut." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Det finns ett antal företag som är intresserade av att sponsra ditt lag. " "Välj ett av dem:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Det finns skadade eller avstängda spelare i ett av användarlagen. Fortsätta?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "Det finns inga ligor i denna landsdefinition (endast cuper)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "Det finns inga ligor eller cuper med tabeller i denna landsdefinition." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Det finns ingen säsonghistorik lagrad ännu." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Det det nÃ¥gra erbjudanden för spelaren som du tackade nej till eller kommer " "att se nästa vecka." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Det finns ingen ledig plats i din fotbollsskola." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Det blev för mÃ¥nga byten. Endast 3 per match är tillÃ¥tet. Spelarlista " "Ã¥terställd." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Biljettintäkter" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Skadat korsband" #: src/training_interface.c:117 msgid "Training" msgstr "Träning" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Träningsläger" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Träningsläger är inaktiverat i denna landsdefinition." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Tidsgräns för övergÃ¥ng är vecka %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Erbjudande om övergÃ¥ng" #: src/treeview.c:1598 msgid "Transfers" msgstr "ÖvergÃ¥ngar" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "ÖvergÃ¥ngar är inaktiverade i denna landsdefinition." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Försök att sätta uppstartsspelarna pÃ¥ deras favoritpositioner och sortera " "inhopparna (Ctrl-R eller mittenklick)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Packar upp sparat spel..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Användare %s har inte bestämt sig om ditt erbjudande än." #: src/interface.c:1013 msgid "User history" msgstr "Användarhistorik" #: src/window.c:945 msgid "User management" msgstr "Hantera användare" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Användare -- klicka för att ta bort" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Värde" #: src/options_interface.c:749 msgid "Value " msgstr "Värde " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "InformationsnivÃ¥" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "V" #. won #: src/team.c:1157 msgid "W " msgstr "V " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "V %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Lön" #: src/options_interface.c:756 msgid "Wage " msgstr "Lön " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Insats" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Insats/\n" "Vinst/Förlust" #: src/treeview.c:1522 msgid "Wages" msgstr "Löner" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Ve" #: src/treeview.c:2350 msgid "Week" msgstr "Vecka" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Vecka %d OmgÃ¥ng %d" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "Vecka %d OmgÃ¥ng %d\n" "CupomgÃ¥ng %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Amortering per vecka" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Amortering per vecka:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Välkommen till Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Om \"Spara\" skriver över aktuell sparfil eller poppa upp ett \"Spara som\"-" "fönster" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Om en bekräftelse ska poppa upp när du sparkar ut en ungdom frÃ¥n din " "fotbollsskola" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Om spelet startar med ett maximerat huvudfönster (fungerar inte med alla " "fönsterhanterare)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Om alla ligor ska visas i veckans matchprogram eller endast visa användarens " "liga" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "Om byte av tvÃ¥ spelare automatiskt anpassar lagets struktur till spelarnas " "positioner" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Om livematchen pausas vid halvlek och extratid" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Om livematchen pausas när en användares spelare blir skadad" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Om livematchen pausas när en användares spelare blir utvisad" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Om inhoppare (exempelvis för skadade spelare) sätts in av datorn. Det här " "görs automatiskt om livematch är av." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Om spelet ska automatiskt sparas regelbundet" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Om globala inställningar ska sparas till fil (sÃ¥ att de läses in nästa gÃ¥ng " "du startar ett nytt spel)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Om användarens inställningar ska sparas till fil (sÃ¥ att de kan läsas in " "nästa gÃ¥ng den här användaren startar ett nytt spel)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Om en bekräftelse ska poppa upp om en användares lag har en skadad eller " "avstängd spelare i startformationen" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Om en bekräftelse ska poppa upp när du trycker avsluta och spelet inte är " "sparat" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Om cupmatcher ska visas i vadslagningsfönstret" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Om cupmatcher ska visas. Använd alternativfönstret för att växla permanent." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Om jobberbjudanden ska visas när en användare är framgÃ¥ngsrik" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Om matcher i alla ligor ska visas i vadslagningsfönstret" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Om matcher i alla ligor ska visas. Använd alternativfönstret för att växla " "permanent." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Om endast dina vad ska visas i listan för tidigare vadslagningar" #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Om bilder ska visas pÃ¥ toppen av förloppsmätaren vid inläsning/sparning " "eller beräkning av resultat" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Om spelarens värde för matcher/mÃ¥l i alla tävlingar ska visas" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Om varningar ska visas och om de ska visas i meddelanderutan i huvudfönstret " "om möjligt" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Vinst1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Vinst2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "GK" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Gula kort (gräns)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Gula" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Du är vinnaren av %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Du är skuldfri." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Du gör ytterligare ett erbjudande för %s. Din talangscouts rekommendation " "för summa och lön är redan satt." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Du gör ett erbjudande för %s. Din talangscouts rekommendation för summa och " "lön är redan satt." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Du förhandlar med %s om ett nytt kontrakt. Var uppmärksam pÃ¥ vad du gör; om " "du inte blir enig med honom inom %d erbjudanden, kommer han att lämna ditt " "lag efter hans aktuella kontrakt gÃ¥r ut (om du inte säljer honom). Du kan " "endast avbryta FÖRE du lämnar det första erbjudandet.\n" "Din talangscouts rekommendationer är redan satta:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Du är inte skuldsatt." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Du är inte skuldsatt." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Du satsar pÃ¥ resultatet %d med ett odds pÃ¥ %.2f. Hur mycket satsar du?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Du kan betala tillbaka som mest %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Du kan ta ut som mest %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "Du kan inte söka ett nytt jobb om det finns fler än en användare." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Du kan inte har fler än %d spelare i laget." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Du kan inte flytta spelaren, det finns för fÃ¥ spelare i ditt lag." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Du kan inte erbjuda ett nytt kontrakt om det gamla fortfarande är över 2 Ã¥r." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Du kan inte spela Bygfoot utan användare!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Du kan inte ersätta en avstängd spelare." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Du hade inte tillräckligt med pengar för att köpa %s frÃ¥n %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Du hade inte tillräckligt med pengar för att köpa %s eller att din lista var " "full." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Du har inte tillräckligt med pengar för att betala tillbaka." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Du har inte de pengarna." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Du avslutar säsongen i %s pÃ¥ plats %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Du har gÃ¥tt upp till %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Du har gÃ¥tt ned till %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Du har %d veckor pÃ¥ dig att betala tillbaka resten av ditt lÃ¥n." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Du har %d veckor pÃ¥ dig att betala tillbaka ditt lÃ¥n." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Du har övertrasserat ditt bankkonto ännu en gÃ¥ng. Tänk pÃ¥ att efter fjärde " "gÃ¥ngen blir du sparkad.\n" "Lagets ägare ger dig %d veckor att komma över din kreditgräns." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Du har övertrasserat ditt bankkonto. Lagets ägare ger dig %d veckor att " "komma över kreditgränsen." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Du mÃ¥ste betala tillbaka ditt lÃ¥n den här veckan." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Du har inte lämnat nÃ¥got erbjudande för spelaren." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Du har inte valt en spelare." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Du förlorar i finalen av %s mot %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Du erbjud en övergÃ¥ngssumma pÃ¥ %s och en lön pÃ¥ %s för %s. Ägarna och " "spelaren är nöjda med ditt erbjudande. Vill du fortfarande köpa spelaren?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Du har nÃ¥tt %s (omgÃ¥ng %s) av %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Du börjar spelet med %s i %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Du har fortfarande ett par övergÃ¥ngar att ta hand om." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Du vill sparka %s. Eftersom hans kontrakt gÃ¥r ut om %.1f Ã¥r, kräver han en " "kompensation pÃ¥ %s. Accepterar du?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Du vinner %s-finalen mot %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "Du har nÃ¥tt gränsen pÃ¥ %d träningsläger för säsongen." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "Ditt bankkontosaldo mÃ¥ste vara över gränsen för din uttagskredit nästa vecka." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Din aktuella sponsor är nöjd med dina resultat och vill förnya kontraktet " "med dig. För närvarande betalar de dig %d per vecka." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Din skuld:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Din nästa motstÃ¥ndare" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Ditt erbjudande för %s har accepterats. Om du fortfarande vill köpa honom, " "gÃ¥ till övergÃ¥ngslistan och vänsterklicka pÃ¥ spelaren." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Ditt erbjudande har tagits bort." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Ditt erbjudande har uppdaterats." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Ditt erbjudande kommer att övervägas nästa vecka." #: src/treeview.c:1913 msgid "Your overall results" msgstr "Dina totala resultat" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Din spelarlista är full eller du har inte tillräckligt med pengar." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Dina resultat" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Din lista är redan full. Du kan inte köpa fler spelare." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Din lista är full. Du kan inte köpa %s frÃ¥n %s." #: src/window.c:890 msgid "Your stadium" msgstr "Din stadium" #: src/treeview2.c:91 msgid "Your team" msgstr "Ditt lag" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Ditt lag kan inte ha mindre än 11 spelare." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Ditt lag har redan fÃ¥tt tillräckligt mÃ¥nga träningsläger denna vecka." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Junioren %s tänkte att han är tillräckligt gammal för ett riktigt kontrakt " "och har lämnat din fotbollsskola." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Junioren %s kommer att bli för gammal för fotbollsskolan snart. Flytta honom " "till ditt lag eller sparka ut honom frÃ¥n skolan. Annars kommer han " "antagligen att leta efter ett annat lag att spela i." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Investering i skola" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Fotbollsskola" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Fotbollsskolan är inaktiverad i denna landsdefinition." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Ungdomsledare" #: src/interface.c:304 msgid "_File" msgstr "_Arkiv" #: src/interface.c:1059 msgid "_Help" msgstr "_Hjälp" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Läs in spel" #: src/interface.c:347 msgid "_Options" msgstr "Alt_ernativ" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Gör paus" #: src/interface.c:766 msgid "_Player" msgstr "S_pelare" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Ã…teruppta" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "Ã…te_ruppta spel" #: src/interface.c:460 msgid "_Team" msgstr "_Lag" #: src/interface.c:850 msgid "_User" msgstr "Anv_ändare" #: src/treeview.c:1644 msgid "interest rate" msgstr "ränta" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Om du känner att du kommit pÃ¥ nÃ¥got om spelet som andra bör känna till, " #~ "kan du lägga till det pÃ¥ Bygfoots Wiki:\n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Bygfoot - Sparade filer" #~ msgid "Improve!" #~ msgstr "Förbättra!" #~ msgid "Misc." #~ msgstr "Diverse" #~ msgid "Show history" #~ msgstr "Visa historik" bygfoot-2.3.2/po/zh.po0000644000175000017500000025523611225071373013560 0ustar eliaselias# Chinese translations for bygfoot package # bygfoot 软件包的简体中文翻译. # Copyright (C) 2005 THE bygfoot'S COPYRIGHT HOLDER # This file is distributed under the same license as the bygfoot package. # root , 2005. # msgid "" msgstr "" "Project-Id-Version: bygfoot 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-07-07 22:03+0800\n" "Last-Translator: liubenyuan \n" "Language-Team: Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "è¿›çƒ/比赛 %.1f æ•‘çƒ %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "è¿›çƒ/比赛 %.1f å°„é—¨ %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "您也å¯ä»¥å†™å°ç”µé‚®ç»™åˆ›ä½œè€…:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & å§å¦¹" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & 父å­" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (ä»»æ„çƒ)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (注æ„ï¼šè¦æ˜¯æ‹’ç»çš„è¯, 这个游æˆå°±ç»“æŸäº†)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (乌龙çƒ)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 #: src/treeview_helper.c:1218 msgid " (P)" msgstr " (点çƒ)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- 第一局" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- 游æˆé‡æ”¾" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- 第二局" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " å会" #: src/options_interface.c:329 msgid " Autosave files " msgstr " 自动存档" #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " 银行" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " 兄弟" #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " 化学" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " 交谈" #. Company name. #: src/user.c:990 msgid " Company" msgstr " å…¬å¸" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " å会" #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " æ•°æ®ç³»ç»Ÿ" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " 能æº" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " 娱ä¹" #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " 财政" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " 很幸è¿ä»–的朋å‹å¯ä»¥å¸®åŠ©ä½ çš„çƒé˜Ÿåº¦è¿‡éš¾å…³" #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " 团体" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " æŒæœ‰" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " 工业" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " 实验室" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " 有é™å…¬å¸" #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " 石油" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " é›¶å”®" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " é¤é¥®" #: src/interface.c:1220 msgid " Round " msgstr " è½® " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " 科技" #: src/interface.c:1200 msgid " Season " msgstr " 赛季 " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " 软件" #. Company name. #: src/user.c:982 msgid " Systems" msgstr "系统" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " 技术" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " 电讯" #: src/interface.c:1210 msgid " Week " msgstr " 周 " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr "加时赛" #: src/callback_func.c:466 msgid " less" msgstr "æ›´å°‘" #: src/options_interface.c:527 msgid " months" msgstr " 月" #: src/callback_func.c:464 msgid " more" msgstr " 更多" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " 点çƒ" #: src/misc_interface.c:934 msgid " seats" msgstr " åº§ä½æ•°" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f 月/ %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d e.t." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d p." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "本季度剩余 %d 期训练è¥" #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (主场)" #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (中立场地)" #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (将会在%d周åŽç—Šæ„ˆ)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s 第%då°ç»„" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s 答应了你的出价" #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s å’Œ %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s å’Œ %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s 没有充足财力购买 %s 或者çƒé˜Ÿçƒå‘˜äººæ•°å·²æ»¡" #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "由于ç»è¥ä¸å–„, %s 解雇了你. \n" "之åŽä½ ä¸Ž%s签定了一份åˆåŒ, 你将在%s继续你的教练生涯. " #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "在认真分æžäº†è¿™ä¸ªèµ›å­£çƒé˜Ÿçš„糟糕表现åŽ, %s的董事会解雇了你. \n" "之åŽä½ ä¸Ž%s签定了一份åˆåŒ, 你将在%s继续你的教练生涯. " #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s 被添加到转会列表, 他被挂牌 %d 周" #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s 因为åˆåŒåˆ°æœŸç¦»å¼€äº†ä½ çš„çƒé˜Ÿ" #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the wage you offered." msgstr "%s (%s) æ‹’ç»äº†ä½ çš„出价 (%s / %s).他对你出的工资ä¸å¾ˆæ»¡æ„" #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "%s of %s has rejected your offer because your team has too many star players already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "%s ( %s )æ‹’ç»ä½ çš„邀请, å› ä¸ºä½ çš„é˜Ÿä¼æœ‰å¤ªå¤šæ˜Žæ˜Ÿäº†. “一山难容二虎â€, ä¹Ÿè®¸æ˜¯è¿™ä¸ªæ„æ€. " #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s å‘ä½ æå‡ºåˆåŒ, 邀请你去 %s 执教\n" "ä½ å¯ä»¥æŽ¥å—这个挑战, 为此你ä¸å¾—ä¸ç¦»å¼€å¿ƒçˆ±çš„%s" #: src/misc2_callback_func.c:226 #, c-format msgid "%s rejects your offer and won't negotiate with you anymore. You should sell him before his contract expires (he'll simply leave your team otherwise)." msgstr "%s æ‹’ç»äº†ä½ çš„出价并表示ä¸ä¼šå†ä¸Žä½ è°ˆåˆ¤ä¸‹åŽ»äº†. 你应该在他的åˆåŒåˆ°æœŸå‰å°†ä»–å–出(因为ä¸ç®¡æ€Žæ ·, 他都会离开你的çƒé˜Ÿçš„)" #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s æ‹’ç»äº†ä½ çš„出价, 你还有 %d 次还价的机会" #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s 将会主罚点çƒåŠä»»æ„çƒï¼ˆå¦‚果他在场上的è¯ï¼‰" #: src/callback_func.c:468 #, c-format msgid "%s would like to buy %s. They offer %s for him, which is %s than the player's value. Do you accept?" msgstr "%s 对 %s 产生了兴趣, 他们原æ„出 %s æ¥èŽ·å¾—ä»–çš„æ‰€æœ‰æƒ, 该报价与这åçƒå‘˜çš„ä»·å€¼ç›¸æ¯”è¦ %s ,æŽ¥å—æŠ¥ä»·ï¼Ÿ" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "%s çš„åˆåŒå°†äºŽ %.1f å¹´åŽåˆ°æœŸ" #: src/user.c:630 #, c-format msgid "%s's injury was so severe that he can't play football on a professional level anymore. He leaves your team." msgstr "%s 严é‡çš„伤病使他彻底的告别了èŒä¸šèµ›åœº. ä»–å·²ç»ç¦»å¼€äº†ä½ çš„çƒé˜Ÿ" #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (没有黄牌累计)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d 周\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(首周 %d)" #: src/main.c:134 #: src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- 易于上手的基于 GTK2 的足çƒç»ç†æ¸¸æˆ" #: src/misc_interface.c:1071 #: src/misc_interface.c:1079 #: src/misc_interface.c:1105 #: src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1å¹´" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2å¹´" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3å¹´" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4å¹´" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (客场) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "ä½ çš„çƒåœº\n" "å‘生了ç«ç¾" #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "ä½ çš„çƒåœº\n" "æš´å‘了çƒè¿·éªšä¹±" #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "ä½ çš„çƒåœº\n" "有设施问题" #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "Current bets" msgstr "当å‰ä¸‹æ³¨" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "Recent bets" msgstr "最近下注" #: src/treeview.c:1836 #: src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "第%d周 第%dè½®" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "有一åå¹´è½»çƒå‘˜æ³¨å†Œè¿›å…¥äº†ä½ çš„é’年队" #: src/youth_academy.c:257 msgid "A new youth wanted to registered at your youth academy but there was no room for him." msgstr "一åå¹´è½»çƒå‘˜å¸Œæœ›èƒ½å¤ŸåŠ å…¥ä½ çš„é’年队, 但是当å‰çƒé˜Ÿä¸­åé¢å·²æ»¡" #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "添加上一场比赛" #: src/lg_commentary.c:541 #: src/team.c:626 msgid "ALL OUT ATTACK" msgstr "全力进攻" #: src/lg_commentary.c:529 #: src/team.c:618 msgid "ALL OUT DEFEND" msgstr "全力防守" #. Boost value. #: src/lg_commentary.c:544 #: src/team.c:634 msgid "ANTI" msgstr "防守å击" #: src/lg_commentary.c:538 #: src/team.c:624 msgid "ATTACK" msgstr "进攻" #: src/interface.c:1066 #: src/misc2_interface.c:1092 msgid "About" msgstr "关于" #: src/misc_interface.c:1345 msgid "Accept" msgstr "接å—" #: src/game_gui.c:818 msgid "Accept?" msgstr "准备接å—?" #: src/interface.c:1035 msgid "Add last match" msgstr "添加上一场比赛" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "将上一场ä¿å­˜çš„æ¯”赛移至比赛集锦中" #: src/misc2_interface.c:899 #: src/misc_interface.c:191 msgid "Add user" msgstr "添加玩家" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "调整支付计划?" #: src/treeview.c:325 #: src/treeview.c:2170 msgid "Age" msgstr "年龄" #: src/options_interface.c:735 msgid "Age " msgstr "年龄 " #: src/window.c:399 msgid "All Files" msgstr "所有文件" #: src/interface.c:502 msgid "All Out Attack" msgstr "全力压上" #: src/interface.c:478 msgid "All Out Defend" msgstr "全力防守" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "æ€»æ˜¯åœ¨æ¯”èµ›æ—¥åŽæ˜¾ç¤ºè®¯æ¯çª—å£" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "总是 ä¿å­˜/å›žå¤ ä½ çš„é»˜è®¤çƒé˜Ÿè®¾ç½®" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "在比赛 之å‰/ä¹‹åŽ æ€»æ˜¯ ä¿å­˜/æ¢å¤ 你的默认çƒé˜Ÿè®¾ç½®" #: src/interface.c:692 msgid "Anti" msgstr "防守å击" #: src/interface.c:658 msgid "Any" msgstr "自由人" #: src/options_interface.c:1569 msgid "Appearance" msgstr "外观" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "接å—这份工作?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "è¿˜æœ‰çŽ©å®¶æ²¡æœ‰ç»“æŸæœ¬å‘¨å·¥ä½œ. 继续?" #: src/game_gui.c:942 msgid "At the Bygfoot forums you can report bugs, ask for help and discuss the game:\n" msgstr "在Bygfoot的论å›ä½ å¯ä»¥æäº¤bug, 寻求帮助, 还å¯ä»¥å‚与到游æˆå¿ƒå¾—讨论中:\n" #: src/interface.c:496 #: src/treeview.c:1778 msgid "Attack" msgstr "进攻" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "到场çƒè¿·\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "属性 " #: src/interface.c:957 #: src/misc3_interface.c:543 #: src/window.c:1015 msgid "Automatic loan repayment" msgstr "自动å¿è¿˜è´·æ¬¾" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "自动弹出窗å£" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "自动å¿è¿˜" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "è‡ªåŠ¨æ›´æ¢æ›¿è¡¥çƒå‘˜" #: src/options_interface.c:443 msgid "Autosave" msgstr "自动ä¿å­˜" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "自动ä¿å­˜é—´éš”" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "å¹³å‡æŠ€èƒ½ï¼š" #: src/interface.c:1320 msgid "Av. skills: " msgstr "å¹³å‡æŠ€èƒ½ï¼š" #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "å¹³å‡æŠ€èƒ½å€¼" #: src/treeview2.c:516 msgid "Av.skill" msgstr "å¹³å‡æŠ€èƒ½ï¼š" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "å¯ä¾›é€‰æ‹©çš„çƒé˜Ÿ" #: src/interface.c:531 #: src/interface.c:566 #: src/interface.c:615 msgid "Average" msgstr "æ¢å¤" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "å¹³å‡ä¸Šåº§çއ" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "å¹³å‡ä¸Šåº§çއ %" #: src/treeview.c:1884 msgid "Average skill" msgstr "å¹³å‡æŠ€èƒ½" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "å¹³å‡æŠ€èƒ½å€¼" #: src/treeview.c:1851 msgid "Away" msgstr "客场" #: src/lg_commentary.c:535 #: src/team.c:622 msgid "BALANCED" msgstr "平衡" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "ç¦èµ›(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "回到主èœå•(Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "回到开始画é¢" #: src/interface.c:537 #: src/interface.c:572 #: src/interface.c:621 msgid "Bad" msgstr "疲惫" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "结余" #: src/interface.c:490 msgid "Balanced" msgstr "平衡" #: src/treeview.c:2179 msgid "Banned\n" msgstr "ç¦èµ›\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "开始新的一周" #: src/interface.c:519 #: src/interface.c:554 #: src/interface.c:603 msgid "Best" msgstr "çŠ¶æ€æœ€ä½³" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "防守最佳çƒé˜Ÿ" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "最佳进çƒ" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "最佳门将" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "进攻最佳çƒé˜Ÿ" #: src/interface.c:969 #: src/options_interface.c:1084 #: src/treeview.c:1520 #: src/treeview.c:1530 #: src/window.c:992 msgid "Betting" msgstr "下注" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "下注 -- 左键å•击å¯ä»¥æ·»åŠ æˆ–è€…ç§»å‡ºä¸‹æ³¨" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "åŒå‘¨è´¢æ”¿æ”¶æ”¯" #: src/treeview.c:1546 #: src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "åŒå‘¨è´¢æ”¿æ”¶æ”¯ \n" "(第 %d-%d 周)" #: src/interface.c:669 msgid "Boost" msgstr "加强模å¼" #: src/callbacks.c:133 #: src/game_gui.c:468 #: src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "在这个地区定义文件中 Boost ON 被ç¦ç”¨" #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Boost 设定为 %s (æ¯åˆ†é’Ÿæ¶ˆè€— %d)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Boost 设定为 %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Boost耗费" #: src/player.c:1430 msgid "Broken ankle" msgstr "脚è¸éª¨æŠ˜" #: src/player.c:1433 msgid "Broken arm" msgstr "胳膊骨折" #: src/player.c:1427 msgid "Broken leg" msgstr "腿骨骨折" #: src/player.c:1424 msgid "Broken rib" msgstr "肋骨骨折" #: src/player.c:1436 msgid "Broken shoulder" msgstr "é”骨骨折" #: src/interface.c:842 msgid "Browse players" msgstr "çƒå‘˜ä¸€è§ˆ" #: src/interface.c:745 msgid "Browse teams" msgstr "çƒé˜Ÿä¸€è§ˆ" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Bygfoot集锦" #: src/misc3_interface.c:790 #: src/window.c:1023 msgid "Bygfoot News" msgstr "Bygfoot讯æ¯" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Bygfoot存档" #: src/window.c:1031 msgid "Bygfoot constants" msgstr "Bygfoot常é‡" #: src/misc2_interface.c:982 msgid "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY (otherwise your CPU will be destroyed by overheating)." msgstr "Bygfoot调试窗å£. 如果你åªä¸è¿‡æ˜¯ç¢°å·§æ¥åˆ°äº†è¿™é‡Œ, 请赶快关闭它(å¦åˆ™ä½ çš„cpuå¯èƒ½å› è¿‡çƒ­è€Œå¯¼è‡´æŸåï¼ï¼šï¼‰" #: src/game_gui.c:940 msgid "Bygfoot is a very intuitive and simple game, so there isn't a full-grown documentation. However, if you have trouble, there are a few places to go.\n" msgstr "Bygfoot很容易上手, ä¸è¿‡åˆ°çŽ°åœ¨ä¸ºæ­¢è¿˜æ²¡æœ‰ä¸€ä¸ªå®Œæ•´çš„å¸®åŠ©æ–‡æ¡£. 如果你有任何疑问, å¯ä»¥åˆ°è¿™äº›åœ°æ–¹æ¥å¯»æ‰¾ç­”案. \n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "当å‰ä½ç½®" #: src/options_interface.c:665 msgid "CPos " msgstr "当å‰ä½ç½®" #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "å½“å‰æŠ€èƒ½" #: src/options_interface.c:679 msgid "CSkill " msgstr "å½“å‰æŠ€èƒ½" #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "计算开始的星期" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "计算周租" #: src/training_interface.c:84 msgid "Camp points" msgstr "训练点数" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "容é‡ï¼ˆåº§ä½æ•°ï¼‰" #: src/options_interface.c:728 msgid "Cards " msgstr "得牌 " #: src/treeview.c:2182 msgid "Career values" msgstr "身价" #: src/misc_interface.c:729 msgid "Change commentary verbosity. The higher this value the more events you can see." msgstr "该表现场解说的细致度, 数值越大你就会看到更多的çƒåœºä¸Šå‘生的细节" #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "改å˜çŽ°åœºæ¸¸æˆçš„进度. 数值越大游æˆå°±ä¼šè¶Šå¿«. " #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "改å˜ç¥¨ä»·" #: src/misc_interface.c:97 msgid "Choose country" msgstr "选择国家/地区" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "选择文件" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "选择游æˆè¯­è¨€(å¯èƒ½åœ¨Windows下无法工作)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "选择起始è”èµ›" #: src/misc_interface.c:107 msgid "Choose team" msgstr "选择çƒé˜Ÿ" #: src/misc_interface.c:159 msgid "Choose username" msgstr "选择用户" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "å•击OK接å—,å•击CANCEL将会关闭窗å£" #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "点击一个玩家将他移除" #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "点击一个玩家å¯ä»¥ç§»é™¤ä»–" #: src/options_interface.c:1640 msgid "Close" msgstr "关闭" #: src/options_interface.c:1623 msgid "Close window. Changes will only be saved for the current session, unless you also save to file." msgstr "关闭窗å£. åªä¼šä¿å­˜å½“剿–‡ä»¶æ‰€ä½œçš„修改, 除éžä½ é€‰æ‹©ä¿å­˜åˆ°æ–‡ä»¶" #: src/misc_interface.c:573 msgid "Commentary" msgstr "现场解说" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "ç”¨æ¥æµ‹è¯•解说事件" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "解说文件(应该在support文件夹中)" #: src/treeview.c:3017 msgid "Company" msgstr "å…¬å¸" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "解约金" #: src/treeview2.c:94 #: src/treeview2.c:211 msgid "Competition" msgstr "比赛" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "压缩游æˆè¿›åº¦..." #: src/player.c:1409 msgid "Concussion" msgstr "脑震è¡" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "确认和计划 还贷" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "没ä¿å­˜é€€å‡ºæ—¶æç¤ºçީ家" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "移除年轻çƒå‘˜æ—¶è¦ç¡®è®¤" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "ä¸é€‚时需è¦ç¡®è®¤" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "确认了ï¼" #: src/options_interface.c:353 msgid "Constants file" msgstr "文件" #: src/treeview.c:330 #: src/treeview.c:2174 msgid "Contract" msgstr "åˆåŒ" #: src/options_interface.c:763 msgid "Contract " msgstr "åˆåŒ " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "åˆåŒ/费用" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "åˆåŒæœ‰æ•ˆæœŸ\n" "(月)" #: src/window.c:937 msgid "Contract offer" msgstr "æä¾›åˆåŒ" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "在这个地区定义文件中 签约解约 è¢«ç¦æ­¢" #: src/interface.c:1074 #: src/misc2_interface.c:1106 #: src/misc3_interface.c:237 msgid "Contributors" msgstr "æçŒ®è€…" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "å¤åˆ¶ %s" #: src/misc_interface.c:1067 #: src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "消费" #: src/support.c:96 #: src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "找ä¸åˆ°å›¾ç‰‡ï¼š%s" #: src/treeview2.c:95 #: src/treeview2.c:515 msgid "Country" msgstr "地区" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "创造优胜æ¯è®¯æ¯" #: src/options_interface.c:1171 msgid "Create league news" msgstr "创造è”赛讯æ¯" #: src/options_interface.c:1163 msgid "Create user news" msgstr "创造玩家讯æ¯" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "æ¯èµ›å† å†›" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "æ— ä¼˜èƒœæ¯æ¯”赛表" #: src/misc_interface.c:965 msgid "Current capacity" msgstr "当å‰å®¹é‡" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "当剿–‡ä»¶" #: src/treeview.c:2829 msgid "Current league" msgstr "当å‰è”èµ›" #: src/treeview.c:1637 msgid "Current market interest" msgstr "当å‰å¸‚场利率" #: src/treeview.c:2165 msgid "Current position" msgstr "当å‰ä½ç½®" #: src/misc_interface.c:978 msgid "Current safety" msgstr "当å‰å®‰å…¨ç³»æ•°" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "当å‰è®¾ç½®ï¼š" #: src/treeview.c:2167 msgid "Current skill" msgstr "å½“å‰æŠ€èƒ½å€¼" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "åŽå«" #: src/lg_commentary.c:532 #: src/team.c:620 msgid "DEFEND" msgstr "防守" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "负债(在%d周内å¿è¿˜)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "调试" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "推迟决定" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "默认宾馆" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "é»˜è®¤æ¶ˆé£æ´»åŠ¨ï¼š" #: src/options_interface.c:1141 msgid "Default training:" msgstr "默认训练:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "默认赌注" #: src/interface.c:484 #: src/treeview.c:1776 msgid "Defend" msgstr "防守" #: src/interface.c:640 msgid "Defenders" msgstr "åŽå«" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "你知é“å—?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "没有找到bygfoot帮助文件" #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "ä½ ç¡®å®šæŠŠè¿™ä¸ªå¯æ€œçš„çƒå‘˜å¼€é™¤å‡ºä½ çš„çƒé˜Ÿå—?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "ä¸è¯»å–定义文件" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "å®Œå…¨ç”±ç³»ç»Ÿéšæœºç”Ÿæˆçƒé˜Ÿ, ä¸è¯»å–çƒé˜Ÿå®šä¹‰æ–‡ä»¶" #: src/load_save.c:169 #: src/load_save.c:319 msgid "Done." msgstr "完æˆ." #: src/treeview2.c:396 msgid "Draw" msgstr "支出" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "逿”¯" #. Games drawn. #. Draw. #: src/treeview.c:1390 #: src/treeview_helper.c:1756 msgid "Dw" msgstr "å¹³" #. draw #: src/team.c:1150 msgid "Dw " msgstr "å¹³" #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "å¹³ %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "潜力值" #: src/treeview2.c:70 msgid "EXPORT" msgstr "导出" #: src/options_interface.c:432 msgid "Edit" msgstr "编辑" #: src/interface.c:829 #: src/interface.c:2038 msgid "Edit name" msgstr "编辑姓å" #: src/options_interface.c:418 msgid "Edit the constants used in the game" msgstr "编辑系统å˜é‡" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "键入çƒé˜Ÿé˜µå®¹ï¼ˆ3个数字之和必须等于10)" #: src/interface.c:720 msgid "Enter custom structure" msgstr "设定阵容" #: src/window.c:865 msgid "Erm..." msgstr "汇率机制 (Exchange Rate Mechanism) ..." #: src/misc2_interface.c:480 #: src/misc2_interface.c:577 #: src/misc2_interface.c:1139 #: src/misc2_interface.c:1234 #: src/misc3_interface.c:107 #: src/misc3_interface.c:403 #: src/misc3_interface.c:816 #: src/misc_interface.c:296 #: src/misc_interface.c:1149 #: src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc/返回/空格" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "潜力" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "潜力" #: src/treeview.c:2378 msgid "Event" msgstr "事件" #: src/misc_interface.c:1075 #: src/misc_interface.c:1109 msgid "Expected duration" msgstr "预计工期" #: src/treeview.c:1704 msgid "Expenses" msgstr "消费" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "å‰é”‹" #: src/interface.c:398 msgid "F_igures" msgstr "图表" #: src/callback_func.c:574 #: src/callback_func.c:582 msgid "Fee" msgstr "转会费" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "比赛现场文件(应该在support文件夹中)" #: src/options_interface.c:392 msgid "File containing settings which determine a lot of aspects of the game behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "设置文件会很大程度上决定游æˆçš„å¯çŽ©æ€§. 除éžä½ çœŸçš„知é“如何去åš, å¦åˆ™ä¸è¦è½»æ˜“改动设置文件" #: src/interface.c:928 msgid "Fin_Stad" msgstr "财政状况" #: src/cup.c:1105 msgid "Final" msgstr "决赛" #: src/callbacks.c:1485 #: src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "在这个地区定义文件中 财政选项 被ç¦ç”¨" #: src/interface.c:805 #: src/interface.c:2026 msgid "Fire" msgstr "解除åˆåŒ" #: src/interface.c:1314 msgid "First value: average current skill of the first 11 players. Second value: average skill of all players." msgstr "第一个值:首å‘11äººçš„å¹³å‡æŠ€èƒ½å€¼. 第二个值:所有çƒå‘˜çš„æŠ€èƒ½å¹³å‡å€¼. " #: src/training_interface.c:168 #: src/treeview.c:2943 msgid "First-Class Hotel" msgstr "顶级宾馆" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "å¥åº·æƒ…况" #: src/treeview.c:2168 msgid "Fitness" msgstr "å¥åº·çж况" #: src/options_interface.c:693 msgid "Fitness " msgstr "å¥åº·æƒ…况" #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "赛程(对手)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "赛程(周)" #: src/options_interface.c:1541 msgid "Float" msgstr "浮点" #: src/options_interface.c:379 msgid "Font name" msgstr "字体åç§°" #: src/options_interface.c:365 #: src/options_interface.c:473 msgid "Font used in treeviews" msgstr "设定显示所用的字体" #: src/interface.c:652 msgid "Forwards" msgstr "å‰é”‹" #: src/treeview.c:840 msgid "Fouls" msgstr "失误" #: src/player.c:1421 msgid "Fractured ankle" msgstr "è„šè¸æ‰­ä¼¤" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "守门员" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "失çƒ" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "净胜çƒ" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "è¿›çƒ" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "比赛" #: src/options_interface.c:564 msgid "Gameplay" msgstr "游æˆè§„则" #: src/treeview_helper.c:931 msgid "Games" msgstr "比赛" #: src/options_interface.c:700 msgid "Games " msgstr "比赛" #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "比赛/è¿›çƒ\n" #: src/options_interface.c:486 msgid "Global" msgstr "全局选项" #. Goals of a player. #. Goals. #: src/treeview.c:320 #: src/treeview.c:2480 msgid "Go" msgstr "è¿›çƒ" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "回到起始画é¢" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "è¿›çƒ/比赛" #: src/treeview.c:1775 msgid "Goalie" msgstr "门将" #: src/interface.c:634 msgid "Goalies" msgstr "门将" #: src/treeview.c:1900 #: src/treeview.c:2446 #: src/treeview_helper.c:932 msgid "Goals" msgstr "è¿›çƒ" #: src/options_interface.c:714 msgid "Goals " msgstr "è¿›çƒ" #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "è¿›çƒï¼ˆæ­£å¸¸æ¯”赛)" #: src/interface.c:525 #: src/interface.c:560 #: src/interface.c:609 msgid "Good" msgstr "é€‚åˆæ¯”èµ›" #: src/training_interface.c:161 #: src/treeview.c:2940 msgid "Good Hotel" msgstr "宾馆" #: src/player.c:1418 msgid "Groin injury" msgstr "腹股沟肌肉拉伤" #: src/player.c:1415 msgid "Hamstring" msgstr "肌腱æŸä¼¤" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "请查看一下转会çƒå‘˜åˆ—表, 有人为 %s 出价" #: src/league_table_interface.c:49 msgid "Headline" msgstr "头æ¡" #: src/treeview.c:2171 msgid "Health" msgstr "身体" #: src/interface.c:1082 #: src/misc2_interface.c:1132 msgid "Help" msgstr "帮助" #: src/treeview.c:1849 msgid "Home" msgstr "主场" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "设定对于æ¯ä¸€ä¸ªç‰¹å®šäº‹ä»¶ä½¿ç”¨å¤šå°‘解说è¯" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "ç”¨å‡ ä½æ•°å­—æ¥è¡¨å¾çƒå‘˜æŠ€èƒ½å€¼." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "确定系统使用多少个文件用于自动存档" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "决定你的默认下注的多少" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "用æ¥ç¡®å®šç³»ç»Ÿè‡ªåЍä¿å­˜çš„周期" #: src/options_interface.c:465 msgid "How often the player list gets refreshed during a live game (in live game minutes)" msgstr "在实时比赛中çƒå‘˜åˆ—表的更新速度(以实时比赛的计时å•ä½ åˆ† 为标准)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "伤(%d)" #: src/options_interface.c:299 msgid "If checked, weeks without user teams playing are calculated automatically (without the user having to press 'New week')" msgstr "如果选择了这项, 当所在的周没有玩家比赛时, 系统会自动计算(也就是说, ä½ ä¸ç”¨åœ¨è¿™æ—¶å€™ç‚¹å‡»â€œæ–°çš„ä¸€å‘¨â€æŒ‰é’®äº†ï¼‰" #: src/misc_interface.c:1352 msgid "If you don't like any of the sponsors, you can go a few weeks without sponsor and wait for new offers." msgstr "如果没有你中æ„的赞助商, ä½ å¯ä»¥ç»´æŒå½“å‰çš„æ— èµžåŠ©çŠ¶æ€ç­‰å¾…新的赞助" #: src/misc2_interface.c:1389 msgid "Import file" msgstr "导入文件" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "从 赛季集锦 中导入比赛" #: src/treeview.c:1493 #: src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "正在å‡çº§\n" "还有 %d 的座ä½ä»¥åŠ %d%%的安全度未完æˆ\n" "工期将会在 %d 周åŽå®Œæˆ" #: src/treeview.c:1703 msgid "Income" msgstr "æ”¶å…¥" #: src/misc_interface.c:1041 msgid "Increase" msgstr "增长" #: src/treeview.c:843 msgid "Injuries" msgstr "伤病" #: src/options_interface.c:1527 msgid "Integer" msgstr "æ•´åž‹" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "本赛季的自动å¿è¿˜è´·æ¬¾å·²ç»è¿‡æœŸäº†. " #: src/misc2_interface.c:70 #: src/window.c:898 msgid "Job offer" msgstr "工作邀请" #: src/interface.c:370 msgid "Job offers" msgstr "工作邀请" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "工作邀请被设置为 %s" #: src/treeview.c:1527 msgid "Journey costs" msgstr "季票收入" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "开除出çƒé˜Ÿ" #. Games lost. #. Lost. #: src/treeview.c:1392 #: src/treeview_helper.c:1749 msgid "L" msgstr "输" #. lost #: src/team.c:1154 msgid "L " msgstr "输 " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "输 %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "继续游æˆ" #: src/options_interface.c:436 msgid "Language" msgstr "语言" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "语言设置(如 'zh')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "还有 %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "å…ˆå‰è¿›åº¦æ–‡ä»¶ä¸¢å¤±" #: src/treeview.c:1898 msgid "Latest results" msgstr "最近比分" #: src/misc2_interface.c:102 #: src/treeview2.c:514 #: src/treeview.c:170 #: src/treeview.c:332 #: src/treeview.c:780 msgid "League" msgstr "所在è”èµ›" #: src/options_interface.c:770 msgid "League " msgstr "è”èµ› " #: src/treeview.c:2590 msgid "League champions" msgstr "è”赛冠军" #: src/interface.c:991 msgid "League stats" msgstr "è”赛状æ€" #: src/league_table_interface.c:39 msgid "League table" msgstr "è”赛表" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "左键å•击å¯ä»¥å¯¹çƒå‘˜å‡ºä»·. å³é”®å•击移除报价" #: src/callback_func.c:930 msgid "Left click to move players to and from the youth academy; right click for context menu." msgstr "左键点击å¯ä»¥å°†çƒå‘˜åŠ å…¥æˆ–è€…ç§»å‡ºé’年队;å³é”®ç‚¹å‡»å¯ä»¥æ‰“开相关èœå•" #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "å•击滑鼠左键显示赛程" #: src/callbacks.c:708 msgid "Left click to show table." msgstr "å•击滑鼠左键显示çƒèµ›è¡¨" #: src/callbacks.c:1518 msgid "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "左键å•击:申请贷款;å³é”®å•击:å¿è¿˜è´·æ¬¾ï¼›é¼ æ ‡ä¸­é”®ï¼šçƒåœºçª—å£" #: src/options_interface.c:1021 msgid "List 1 " msgstr "列表 1" #: src/options_interface.c:1028 msgid "List 2" msgstr "列表 2" #: src/interface.c:375 #: src/misc_interface.c:500 #: src/options_interface.c:650 msgid "Live game" msgstr "比赛现场" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "比赛现场被设定为 %s" #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "比赛现场速度" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "比赛现场解说细致度" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "读å–进度(Ctrl-O)" #: src/main.c:94 msgid "Load last savegame" msgstr "读å–上一次ä¿å­˜çš„æ¸¸æˆ" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "åªä»Žå®šä¹‰æ–‡ä»¶ä¸­è¯»å–çƒå‘˜å§“å" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "读å–çƒé˜Ÿå®šä¹‰æ–‡ä»¶" #: src/misc_interface.c:207 msgid "Load teams from definition files (note that the official Bygfoot package doesn't contain team definition files, you have to get them from the homepage or via the bygfoot-update script)" msgstr "从定义文件中读å–çƒé˜Ÿä¿¡æ¯ï¼ˆæ³¨æ„, 官方å‘布的bygfoot没有包括所有的çƒé˜Ÿå®šä¹‰, ä½ å¯ä»¥ä»Žbygfoot主页或者通过bygfoot-update脚本æ¥å¾—到他们)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "è¯»å–æ¯èµ›ï¼š%s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "读å–工作列表..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "读å–è”赛:%s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "读å–è”赛和æ¯èµ›..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "读å–å…¶ä»–..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "è¯»å–æŠ¥å‘Š..." #: src/load_save.c:236 msgid "Loading options..." msgstr "读å–设置..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "读å–赛季数æ®..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "读å–转会列表..." #: src/load_save.c:260 msgid "Loading users..." msgstr "读å–玩家..." #: src/callback_func.c:397 msgid "Loan" msgstr "贷款" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "中场" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "æå‡ºåˆåŒ" #: src/interface.c:1047 msgid "Manage matches" msgstr "ç®¡ç†æ¯”赛记录" #: src/interface.c:917 msgid "Manage users" msgstr "管ç†çީ家" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "最大化主窗å£" #: src/user.c:1214 msgid "Memorable match added." msgstr "添加至比赛集锦" #: src/interface.c:1024 #: src/window.c:984 msgid "Memorable matches" msgstr "比赛集锦" #: src/treeview.c:1777 msgid "Midfield" msgstr "中场" #: src/interface.c:646 msgid "Midfielders" msgstr "中场" #: src/treeview.c:1629 msgid "Money" msgstr "资金" #: src/interface.c:1296 msgid "Money " msgstr "资金" #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "资金(估计.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "资金/周" #: src/interface.c:2092 msgid "Move to team" msgstr "移至çƒé˜Ÿ" #: src/interface.c:821 #: src/interface.c:2034 msgid "Move to youth academy" msgstr "移至é’年队" #: src/interface.c:438 msgid "My league results" msgstr "我的çƒé˜Ÿ" #: src/misc2_interface.c:97 #: src/treeview2.c:791 #: src/treeview.c:304 #: src/treeview.c:778 #: src/treeview.c:2163 msgid "Name" msgstr "å§“å" #: src/options_interface.c:658 msgid "Name " msgstr "å§“å " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "中立çƒåœº" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "æ–°åˆåŒ\n" "出价" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "新设置:" #: src/interface.c:984 #: src/options_interface.c:1203 msgid "News" msgstr "æ–°é—»" #: src/misc3_interface.c:315 msgid "Next" msgstr "下一个" #: src/interface.c:1434 msgid "Next (W)" msgstr "下一个 (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "下一场 è”èµ›/æ¯èµ›(2)" #: src/interface.c:895 msgid "Next user" msgstr "下一个玩家" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "下周你应该解雇他并且雇佣一个新的" #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "无自动弹出窗å£" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "当å‰è¿˜æ²¡æœ‰æ­£åœ¨è¿›è¡Œä¸­çš„设施å‡çº§å·¥ç¨‹" #: src/callbacks.c:1412 #: src/callbacks.c:1432 #: src/callbacks.c:1572 #: src/misc2_callback_func.c:326 #: src/misc2_callbacks.c:733 msgid "No match stored." msgstr "没有ä¿å­˜çš„æ¯”赛记录" #: src/treeview2.c:600 msgid "No news available." msgstr "无新讯æ¯" #: src/misc_callbacks.c:468 msgid "None" msgstr "æ— " #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "䏿˜¯ä¸€ä¸ªæœ‰æ•ˆçš„bygfoot比赛集锦文件å" #: src/window.c:882 msgid "Numbers..." msgstr "æ•°å­—..." #. Boost value. #: src/lg_commentary.c:547 #: src/team.c:637 msgid "OFF" msgstr "å…³" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 #: src/player.c:1406 #: src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "正常" #. Boost value. #: src/lg_commentary.c:550 #: src/team.c:640 msgid "ON" msgstr "å¼€" #: src/interface.c:686 msgid "Off" msgstr "å…³" #: src/interface.c:797 #: src/interface.c:2022 msgid "Offer new contract" msgstr "æå‡ºæ–°åˆåŒ" #: src/interface.c:680 msgid "On" msgstr "å¼€" #: src/misc_interface.c:211 msgid "Only names" msgstr "åªæ˜¯å§“å" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "打开一个 赛季集锦 文件" #: src/treeview2.c:92 #: src/treeview2.c:212 msgid "Opponent" msgstr "对手" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "对手列表" #: src/window.c:914 msgid "Options" msgstr "选项" #: src/treeview.c:1904 msgid "Overall results" msgstr "赛季结果" #: src/interface.c:379 msgid "Overwrite" msgstr "覆盖" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "覆盖被设定为 %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "比赛" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "得分" #: src/options_interface.c:645 msgid "Pause when break" msgstr "ä¸­åœºä¼‘æ¯æš‚åœ" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "伤病自动暂åœ" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "红牌自动暂åœ" #: src/callback_func.c:427 msgid "Payback" msgstr "å¿è¿˜" #: src/treeview.c:839 msgid "Penalties" msgstr "点çƒ" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "å–æ¶ˆ 点çƒ/ä»»æ„çƒ ä¸»ç½šçƒå‘˜" #: src/interface.c:543 #: src/treeview.c:1523 msgid "Physio" msgstr "队医" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "çƒå‘˜æŽ¥å—了新的出价" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "çƒå‘˜å±žæ€§ç²¾åº¦è®¾å®š" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "显示çƒå‘˜å±žæ€§" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "çƒå‘˜ä¸æ„¿å†ä¸Žä½ è°ˆåˆ¤ä¸‹åŽ»äº†" #: src/misc2_interface.c:165 msgid "Player list" msgstr "çƒå‘˜åˆ—表" #: src/interface.c:1363 msgid "Player list 1" msgstr "çƒå‘˜åˆ—表1" #: src/interface.c:1371 msgid "Player list 2" msgstr "çƒå‘˜åˆ—表2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "çƒå‘˜åˆ—表更新频率" #: src/interface.c:467 #: src/treeview.c:1887 msgid "Playing style" msgstr "比赛风格" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "显示玩家讯æ¯åœ¨å¼¹å‡ºçª—å£å†…" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "ä½ç½®" #: src/options_interface.c:672 msgid "Pos " msgstr "ä½ç½®" #: src/treeview.c:2164 msgid "Position" msgstr "ä½ç½®" #: src/treeview.c:838 msgid "Possession" msgstr "控çƒ" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "æç¤ºä¿¡æ¯" #: src/interface.c:354 msgid "Preferences" msgstr "傿•°è®¾ç½®" #: src/training_interface.c:175 #: src/treeview.c:2946 msgid "Premium Hotel" msgstr "豪åŽå®¾é¦†" #: src/misc3_interface.c:295 msgid "Previous" msgstr "å‰ä¸€ä¸ª" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "å‰ä¸€ä¸ª (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "å…ˆå‰çš„ è”èµ›/æ¯èµ›(1)" #: src/interface.c:906 msgid "Previous user" msgstr "å‰ä¸€ä¸ªçީ家" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "票价" #: src/treeview.c:1517 msgid "Prize money" msgstr "奖金" #: src/player.c:1412 msgid "Pulled muscle" msgstr "肌肉拉伤" #: src/interface.c:781 #: src/interface.c:2014 msgid "Put on transfer list" msgstr "挂牌出售" #: src/cup.c:1111 msgid "Quarter-final" msgstr "1/4决赛" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "é€€å‡ºæ¸¸æˆ (Ctrl-Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "移除" #: src/treeview2.c:68 msgid "REPLAY" msgstr "釿”¾" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "æ¯èµ›ä¸­éšæœºåˆ†ç»„çƒé˜Ÿ" #: src/misc_interface.c:233 msgid "Randomise the order of teams in cups. This only makes sense in supernational definitions like the World Cup where the order of teams is fixed." msgstr "在æ¯èµ›ä¸­éšæœºåˆ†ç»„çƒé˜Ÿ, è¿™ä¸ªåªæœ‰åœ¨ç±»ä¼¼ä¸–界æ¯è¿™ç§æ€§è´¨çš„æ¯”èµ›ä¸­æ‰æœ‰æ•ˆ" #: src/misc2_interface.c:107 #: src/treeview.c:1866 msgid "Rank" msgstr "排å" #: src/interface.c:1281 msgid "Rank " msgstr "排å" #: src/file.c:396 #: src/misc3_interface.c:412 msgid "Ready" msgstr "就绪" #: src/interface.c:728 msgid "Rearrange team" msgstr "釿–°é…ç½®çƒé˜Ÿ" #: src/training_interface.c:98 msgid "Recreation" msgstr "æ¶ˆé£æ´»åЍ" #: src/interface.c:627 msgid "Recruiting preference" msgstr "购入选项" #: src/treeview.c:842 #: src/treeview_helper.c:935 msgid "Reds" msgstr "红牌" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "æ‹’ç»" #: src/misc2_interface.c:1368 #: src/options_interface.c:411 msgid "Reload" msgstr "釿–°åŠ è½½" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "读å–并关闭" #: src/options_interface.c:1602 msgid "Reload constants files. This will overwrite any changes you made in the current game session." msgstr "读å–系统文件. ä¼šè¦†ç›–å½“å‰æ¸¸æˆä¸­æ‰€ä½œçš„å˜åЍ" #: src/options_interface.c:1616 msgid "Reload from file" msgstr "釿–°ä»Žæ–‡ä»¶ä¸­åŠ è½½æ¯”èµ› " #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "从文件中加载比赛" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "ä»Žæ–‡ä»¶ä¸­è¯»å–æ¯”赛并关闭" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "釿–°è¯»å–文件" #: src/interface.c:789 #: src/interface.c:2018 msgid "Remove from transfer list" msgstr "从转会åå•中移除" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "确认将玩家 %s 从游æˆä¸­åˆ é™¤ï¼Ÿ" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "釿”¾/删除/添加 比赛集锦" #: src/interface.c:712 msgid "Reset player list" msgstr "釿–°è®¾å®šçƒå‘˜åˆ—表" #: src/interface.c:714 #: src/interface.c:1377 msgid "Reset player list to the formation at the beginning of the live game pause (right click on player list)" msgstr "以 çŽ°åœºæ¸¸æˆ æ—¶çš„é˜µå®¹é‡æ–°è®¾å®šçƒå‘˜åˆ—表(å³é”®å•击)" #: src/treeview2.c:93 #: src/treeview2.c:214 msgid "Result" msgstr "比赛结果" #: src/treeview.c:2013 msgid "Results" msgstr "比赛结果" #: src/misc2_interface.c:1222 #: src/misc_interface.c:1125 msgid "Return" msgstr "返回" #: src/misc_interface.c:671 #: src/misc_interface.c:693 msgid "Return / Space" msgstr "返回/空格" #: src/interface.c:1251 #: src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "左键或å³é”®å•击坿”¹å˜ boost 的设定" #: src/interface.c:1241 #: src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "左键或å³é”®å•击坿”¹å˜ç•Œé¢é£Žæ ¼" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "å³é”®ç‚¹å‡»å¯ä»¥ç›´æŽ¥æŽ¥å—这份工作,左键å•击å¯ä»¥æŸ¥çœ‹çƒé˜Ÿè¯¦ç»†ä¿¡æ¯" #: src/misc_interface.c:1061 #: src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "å³é”®å•击设定为0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "è½®" #: src/cup.c:1094 msgid "Round robin" msgstr "循环赛" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "安全度(%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "çƒåœºå®‰å…¨æŽªæ–½æå‡è¿‡é«˜, 釿–°è®¾ç½®åˆ°æ ‡å‡†æ°´å¹³" #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "æ•‘çƒ %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "ä¿å­˜å¹¶å…³é—­" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "ä¿å­˜è®¾ç½®å¹¶å…³é—­" #: src/options_interface.c:1581 msgid "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "å°†å˜æ›´ä¿å­˜åˆ°ç³»ç»Ÿæ–‡ä»¶. 除éžä½ çœŸçš„知é“如何去åš, å¦åˆ™ä¸è¦è½»æ˜“改动设置文件" #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "ä¿å­˜æ¸¸æˆ(Ctrl-S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "ä¿å­˜å…¨å±€è®¾ç½®åˆ°æ–‡ä»¶" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "ä¿å­˜å¹¶è¦†ç›–" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "ä¿å­˜ä¸ºé»˜è®¤è®¾ç½®æ–‡ä»¶" #: src/options_interface.c:1595 msgid "Save to file" msgstr "ä¿å­˜çŽ©å®¶è®¾ç½®åˆ°æ–‡ä»¶ " #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "ä¿å­˜çŽ©å®¶è®¾ç½®åˆ°æ–‡ä»¶" #: src/interface.c:389 msgid "Save window geometry" msgstr "ä¿å­˜çª—å£çжæ€" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "ä¿å­˜çª—å£å¤§å°,ä½ç½®å’Œåž‚直分割æ¡" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "ä¿å­˜å·¥ä½œåˆ—表..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "ä¿å­˜è”赛和æ¯èµ›..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "ä¿å­˜å…¶ä»–..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "ä¿å­˜æŠ¥å‘Š..." #: src/load_save.c:79 msgid "Saving options..." msgstr "ä¿å­˜è®¾ç½®..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "ä¿å­˜èµ›å­£æ•°æ®..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "ä¿å­˜è½¬ä¼šåˆ—表..." #: src/load_save.c:102 msgid "Saving users..." msgstr "ä¿å­˜çީ家..." #: src/interface.c:508 #: src/treeview.c:1524 msgid "Scout" msgstr "çƒæŽ¢" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "赛季" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "第%d赛季" #: src/interface.c:1002 msgid "Season history" msgstr "赛季历å²" #: src/interface.c:449 msgid "Season results" msgstr "赛季结果" #: src/misc_interface.c:387 #: src/window.c:922 msgid "Select font" msgstr "选择字体" #: src/cup.c:1108 msgid "Semi-final" msgstr "åŠå†³èµ›" #: src/interface.c:664 msgid "Set investment" msgstr "设置投资" #: src/callbacks.c:842 #: src/interface.c:667 msgid "Set the percentage of your income you want to devote to your youth academy." msgstr "设定你决定用收入的多少(百分比)用于é’年队建设" #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "设定为0æ¥å–消警告信æ¯" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "å°„é—¨" #: src/interface.c:813 #: src/interface.c:2030 msgid "Shoots penalties" msgstr "罚点çƒ" #: src/treeview.c:837 #: src/treeview.c:2422 msgid "Shot %" msgstr "å°„é—¨ %" #: src/treeview.c:836 #: src/treeview_helper.c:933 msgid "Shots" msgstr "å°„é—¨" #: src/options_interface.c:707 msgid "Shots " msgstr "å°„é—¨" #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "在赛程表中显示所有è”赛信æ¯" #: src/interface.c:879 msgid "Show coming matches" msgstr "显示下一场比赛" #: src/interface.c:935 msgid "Show finances" msgstr "显示财政信æ¯" #: src/interface.c:773 #: src/interface.c:2010 msgid "Show info" msgstr "显示信æ¯" #: src/interface.c:758 msgid "Show job exchange" msgstr "显示当å‰å¯ç”³è¯·å·¥ä½œ" #: src/options_interface.c:503 msgid "Show job offers" msgstr "显示工作邀请" #: src/interface.c:857 msgid "Show last match" msgstr "显示上一场比赛" #: src/interface.c:868 msgid "Show last match stats" msgstr "显示最近的比赛" #: src/options_interface.c:576 msgid "Show live game" msgstr "显示比赛现场" #: src/misc3_interface.c:74 #: src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "显示所有è”èµ›" #: src/misc3_interface.c:79 #: src/options_interface.c:1059 msgid "Show matches from cups" msgstr "显示所有æ¯èµ›" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "å¦‚èµ›æ—¥åŽæœ‰æ–°çŽ©å®¶è¢«åˆ›å»º, 在窗å£å†…显示相关讯æ¯" #: src/misc3_interface.c:84 #: src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "显示我的最近下注" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "显示最近讯æ¯" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "显示所有 比赛/è¿›çƒ" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "显示进度æ¡å›¾ç‰‡" #: src/interface.c:946 msgid "Show stadium" msgstr "现èŒçƒåœºä¿¡æ¯" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "显示形势æ¡" #: src/interface.c:972 msgid "Show the betting window" msgstr "显示下注窗å£" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "显示当å‰ç©ºç¼ºç»ç†åˆ—表" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "显示转会列表(T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "显示警告信æ¯å½“俱ä¹éƒ¨ä¸­æœ‰çƒå‘˜åˆåŒæœŸé™ä½ŽäºŽ " #: src/interface.c:589 msgid "Show youth academy" msgstr "显示你的é’年队" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "技能" #: src/treeview.c:2166 msgid "Skill" msgstr "技能值" #: src/options_interface.c:686 msgid "Skill " msgstr "技能" #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "跳过没有玩家比赛的周次" #: src/misc_interface.c:249 msgid "Space" msgstr "空格" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "指定é¢å¤–的附带文件夹(将会优先于原始文件夹)" #: src/misc_interface.c:710 msgid "Speed" msgstr "速度" #: src/treeview.c:1667 msgid "Sponsor" msgstr "赞助商" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "赞助" #: src/window.c:976 msgid "Sponsorship offers" msgstr "赞助请求" #: src/interface.c:977 msgid "St_ats" msgstr "统计表" #: src/treeview.c:1477 msgid "Stadium" msgstr "çƒåœº" #: src/misc2_interface.c:117 #: src/treeview.c:1483 msgid "Stadium capacity" msgstr "çƒåœºåº§ä½æ•°" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "çƒåœºç»´æŠ¤è´¹" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "在这个地区定义文件中 çƒåœºè®¾æ–½ç®¡ç† è¢«ç¦æ­¢" #: src/misc2_interface.c:122 #: src/treeview.c:1487 msgid "Stadium safety" msgstr "çƒåœºæ²»å®‰" #: src/treeview.c:1501 msgid "Stadium status" msgstr "çƒåœºæ•°æ®" #: src/misc_interface.c:266 msgid "Start" msgstr "开始" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "开始 _新游æˆ" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "开赛周" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "开赛周:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "统计" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "状æ€" #: src/options_interface.c:721 msgid "Status " msgstr "状æ€" #: src/misc_interface.c:951 msgid "Status:" msgstr "状æ€ï¼š" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "连胜" #: src/options_interface.c:1555 msgid "String" msgstr "字符" #: src/main.c:99 msgid "String id of the country to load" msgstr "读å–国家编å·" #: src/callbacks.c:936 msgid "Structure" msgstr "çƒé˜Ÿé˜µå®¹" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "自动改å˜é˜µå½¢" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "系统" #: src/interface.c:427 msgid "Tables" msgstr "积分表" #: src/treeview2.c:517 msgid "Talent %" msgstr "潜力 %" #: src/treeview2.c:513 #: src/treeview.c:161 #: src/treeview.c:331 #: src/treeview.c:779 #: src/treeview.c:1384 #: src/treeview.c:1858 #: src/treeview.c:2012 #: src/treeview.c:2350 msgid "Team" msgstr "çƒé˜Ÿ" #: src/options_interface.c:777 msgid "Team " msgstr "çƒé˜Ÿ " #: src/treeview.c:1892 msgid "Team structure" msgstr "çƒé˜Ÿæˆ˜æœ¯" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "çƒé˜Ÿé£Žæ ¼è®¾å®šä¸º %s." #: src/treeview2.c:393 msgid "Team1" msgstr "çƒé˜Ÿ1" #: src/treeview2.c:399 msgid "Team2" msgstr "çƒé˜Ÿ2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "测试一个XMLè§£è¯´è¯æ–‡ä»¶" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "银行ä¸ä¼šå†ç»™ä½ æ›´å¤šçš„借贷资金" #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "庄家ä¸å…许你的出价高于 %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "当剿¸¸æˆè¿˜æœªä¿å­˜, 退出游æˆä¼šä½¿è¿›åº¦ä¸¢å¤±. 继续?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "数值越高, 你就会看到更详细的评论" #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "å¯ä¾›ç”³è¯·çš„工作列表的更新周期是 %d 周" #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "数值越低现场评论的滚动速度就会越快" #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "%s 的董事接å—了你的申请" #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "The owners of %s accept your application. Since %s don't want to get stuck with a lame duck, you get fired instantly and spend the rest of the current season tending your garden." msgstr "%s 的董事接å—了你的申请, %s 䏿ƒ³ç”±äºŽä½ çš„æ¶ˆæžæ€åº¦æ‹–ç´¯çƒé˜Ÿ, 你被当å³è§£é›‡, 在剩下的赛季中好好的去照料你的花园å§." #: src/game_gui.c:812 #, c-format msgid "The owners of %s are deeply impressed by your success with %s and would like to hire you. Here's some information on %s:" msgstr "%s çš„è€æ¿å¾ˆæ¬£èµä½ åœ¨ %s 所å–得的骄人æˆç»©, 他们想邀请你去他们那里执教. 这里是%s 详细信æ¯" #: src/user.c:382 #, c-format msgid "The owners of %s are not satisfied with the recent performance of the team. There are rumours they're looking for a new manager." msgstr "%s çš„è‘£äº‹ä¼šå¾ˆä¸æ»¡æ„çƒé˜Ÿçƒé˜Ÿè¿‘æ¥çš„表现, ä¼ è¨€ä»–ä»¬æ­£åœ¨å¯»æ‰¾ä¸€åæ–°çš„主教练" #: src/user.c:598 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee nor the wage you offered were acceptable, they say." msgstr "%s çš„ç»ç†äººæ‹’ç»äº†ä½ çš„出价 (%s / %s). %s 声称:无论是你的报价还是工资对他æ¥è¯´éƒ½ä¸å…·å¤‡å¸å¼•力" #: src/user.c:603 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. The team owners weren't satisfied with the fee you offered." msgstr "%s çš„ç»ç†äººæ‹’ç»äº†ä½ çš„出价 (%s / %s), %s å¯¹äºŽè½¬ä¼šè´¹ä¸æ˜¯å¾ˆæ»¡æ„, 他认为他应该得到更高的转会费" #: src/user.c:593 #, c-format msgid "The owners of %s have rejected your offer (%s / %s) for %s. There was a better offer for the player than yours." msgstr "%s çš„ç»ç†äººæ‹’ç»äº†ä½ çš„出价 (%s / %s). 对于 %s 的出价有人比你高很多" #: src/misc2_callback_func.c:348 #, c-format msgid "The owners of %s politely reject your application. You're not successful enough in their eyes." msgstr "%s 的董事礼貌的拒ç»äº†ä½ çš„申请, 他们认为你还ä¸å¤ŸæˆåŠŸ" #: src/callback_func.c:615 msgid "The player feels he doesn't have a future in your star-studded team. He refuses to negotiate." msgstr "è¿™åçƒå‘˜è§‰å¾—在你明星阵è¥ä¸­æ²¡æœ‰å‰ç¨‹. ä»–æ‹’ç»å•†è°ˆ. " #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "æ­¤çƒå‘˜å·²å¤„于çƒå‘˜åˆ—表中" #: src/callback_func.c:552 msgid "The player is locked (the team owners are considering an offer currently)." msgstr "该çƒå‘˜è¢«æ‘˜ç‰Œï¼ˆçƒé˜Ÿè‘£äº‹æ­£åœ¨è€ƒè™‘其中一个报价)" #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "æ­¤çƒå‘˜ä¸åœ¨çƒå‘˜åˆ—表中" #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "这个çƒå‘˜æœ€è¿‘倒霉é€é¡¶" #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "这个çƒå‘˜æœ€è¿‘势头很盛" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "çƒå‘˜çš„年龄过大, 䏿»¡è¶³é’å¹´è”èµ›çš„è¦æ±‚" #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "çƒå‘˜ä¸ä¼šå†å°±åˆåŒä¸Žä½ è°ˆåˆ¤ä¸‹åŽ»äº†" #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "çƒé˜Ÿé˜µå®¹è®¾ç½® %d 䏿˜¯æ»¡è¶³é˜µåž‹è¦æ±‚" #: src/user.c:642 msgid "The team owners are very satisfied with your financial management. Since the team's been earning a lot of money lately, they decide to donate half of it to charity." msgstr "队ä¼çš„æ‹¥æœ‰è€…对你的财政管ç†éžå¸¸æ»¡æ„, 由于最近çƒé˜Ÿæ”¶ç›Šå¾ˆå¤š, 他们决定æèµ ä¸€åŠç»™æ…ˆå–„机构. " #: src/game_gui.c:806 #, c-format msgid "The team owners have fired you because of financial mismanagement. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:" msgstr "由于你ç»è¥ä¸å–„çƒé˜Ÿè‘£äº‹ä¼šå†³å®šè§£å‡ºä½ çš„主教练èŒåŠ¡. 幸è¿çš„æ˜¯, %s çš„è€æ¿å¬è¯´äº†ä½ è¢«è§£é›‡åŽå‘ä½ æå‡ºåˆåŒ, 想邀请你去他们那里试试, 这里是 %s 的简介" #: src/game_gui.c:809 #, c-format msgid "The team owners have fired you because of unsuccessfulness. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:" msgstr "é¢å¯¹ä¸€ä¸ªå¤±è´¥çš„赛季加上çƒè¿·çš„压力çƒé˜Ÿ, 董事会决定解雇了你. 幸è¿çš„æ˜¯, %s çš„è€æ¿åœ¨å¬è¯´ä½ è¢«è§£é›‡åŽå‘ä½ æå‡ºåˆåŒ, 邀请你去他们那里执教, 这里是 %s 的信æ¯" #: src/callback_func.c:559 #: src/callbacks.c:226 #: src/transfer.c:574 msgid "The transfer deadline is over." msgstr "çƒå‘˜è½¬ä¼šæˆªæ­¢æ—¥æœŸå·²è¿‡" #: src/misc_interface.c:1310 msgid "There are a few companies interested in sponsoring your team. Please select one:" msgstr "有很多公å¸ä¹æ„å‘ä½ çš„çƒé˜Ÿæä¾›èµžåŠ©, 请选择一个:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "çƒé˜Ÿå¤§åå•䏭仿œ‰ä¼¤ç—…或者ç¦èµ›çš„çƒå‘˜. 继续?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "这个地区定义文件中没有è”赛制(åªæœ‰æ¯èµ›)" #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "这个地区定义文件中没有è”赛和æ¯èµ›çš„ä¿¡æ¯" #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "到现在为止还没有赛季历å²è®°å½•" #: src/callback_func.c:455 msgid "There are some offers for the player which you rejected or will see next week." msgstr "ä½ æ‹’ç»äº†æˆ–è€…åªæœ‰åˆ°ä¸‹å‘¨æ‰å¯ä»¥çœ‹åˆ°å¯¹äºŽè¿™åçƒå‘˜çš„æŠ¥ä»·" #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "ä½ çš„é’年对ä¸èƒ½å†åŠ å…¥æ›´å¤šçƒå‘˜äº†" #: src/misc_callbacks.c:232 msgid "There were too many substitutions. Only 3 per game are allowed. Player list reset." msgstr "你选择了过多的替补. æ¯åœºæ¯”èµ›åªå…许有3åæ›¿è¡¥ä¸Šåœº. é‡ç½®çƒå‘˜åˆ—表" #: src/treeview.c:1518 msgid "Ticket income" msgstr "门票收入" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "韧带æŸä¼¤" #: src/training_interface.c:117 msgid "Training" msgstr "训练" #: src/interface.c:703 #: src/options_interface.c:1151 #: src/training_interface.c:60 #: src/treeview.c:1616 #: src/window.c:1007 msgid "Training camp" msgstr "训练è¥" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "è¿™ä¸ªåœ°åŒºå®šä¹‰æ–‡ä»¶ä¸­ç¦æ­¢è®­ç»ƒè¥" #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "转会截止日期是第 %d 周" #: src/window.c:968 msgid "Transfer offer" msgstr "转会请求" #: src/treeview.c:1598 msgid "Transfers" msgstr "转会" #: src/callbacks.c:206 #: src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "è¿™ä¸ªåœ°åŒºå®šä¹‰æ–‡ä»¶ä¸­ç¦æ­¢äº†çƒå‘˜è½¬ä¼šäº¤æ˜“" #: src/interface.c:731 msgid "Try to put the startup players onto their favoured positions and sort the substitutes (Ctrl-R or middle click)" msgstr "尽釿 ¹æ®çƒå‘˜çš„æ“…é•¿ä½ç½®è®¾å®šé¦–å‘阵容并且将替补çƒå‘˜æŽ’åº(Ctrl-R 或者 中键å•击)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "解压缩游æˆå­˜æ¡£..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "%s 正在考虑你的报价" #: src/interface.c:1013 msgid "User history" msgstr "玩家历å²" #: src/window.c:945 msgid "User management" msgstr "管ç†çީ家" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "玩家 -- 点击移除" #: src/treeview2.c:792 #: src/treeview.c:328 #: src/treeview.c:2172 msgid "Value" msgstr "身价" #: src/options_interface.c:749 msgid "Value " msgstr "身价 " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "显示更多讯æ¯" #. Games won. #. Won. #: src/treeview.c:1388 #: src/treeview_helper.c:1738 msgid "W" msgstr "胜" #. won #: src/team.c:1157 msgid "W " msgstr "胜 " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "胜 %d : %d" #: src/callback_func.c:575 #: src/callback_func.c:582 #: src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "赌注" #: src/options_interface.c:756 msgid "Wage " msgstr "赌注" #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "下注方" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "下注方/\n" "胜/è´¥" #: src/treeview.c:1522 msgid "Wages" msgstr "赌资" #. Week #: src/treeview2.c:208 msgid "We" msgstr "周" #: src/treeview.c:2350 msgid "Week" msgstr "周" #: src/treeview2.c:626 #: src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "第%d周 第%dè½®" #: src/treeview.c:1030 #, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "" "第 %d 周 第 %d è½®\n" "æ¯èµ›ç¬¬ %d è½®" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "周租" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "周租:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "欢迎æ¥åˆ° Bygfoot %sï¼" #: src/options_interface.c:269 msgid "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "设定ä¿å­˜é€‰é¡¹ä¸ºï¼š 覆盖掉原先文件 或者 å¼¹å‡ºå¯¹è¯æ¡†æ˜¾ç¤ºå¦å­˜ä¸º" #: src/options_interface.c:501 msgid "Whether a confirmation popup is shown when you kick out a youth from your academy" msgstr "当你想将一åå¹´è½»çƒå‘˜æ‰«åœ°å‡ºé—¨æ—¶å¼¹å‡ºå¯¹è¯æ¡†åŠ ä»¥ç¡®è®¤" #: src/options_interface.c:279 msgid "Whether game starts with a maximized main window (doesn't work with all window managers)" msgstr "是å¦åœ¨æ¸¸æˆå¼€å§‹æ—¶è¿›å…¥æœ€å¤§åŒ–窗å£ï¼ˆæ³¨æ„ï¼šå¹¶ä¸æ˜¯å¯¹æ‰€æœ‰çš„窗å£ç®¡ç†å™¨éƒ½æœ‰ç”¨ï¼‰" #: src/options_interface.c:534 msgid "Whether in the weekly fixture view all leagues or only the user league is shown" msgstr "决定是å¦åœ¨æ¯å‘¨çš„赛程表中显示所有è”èµ› 或者 åªæ˜¾ç¤ºçŽ©å®¶æ‰€åœ¨è”èµ›" #: src/options_interface.c:552 msgid "Whether swapping two players automatically adapts the team structure to the player positions" msgstr "å½“å˜æ›´çƒå‘˜æ—¶æ˜¯å¦æ ¹æ®çƒå‘˜çš„ä½ç½®è‡ªåŠ¨æ›´æ–°çƒé˜Ÿé˜µå½¢" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "åœ¨ä¸­åœºä¼‘æ¯æˆ–è€…åŠ æ—¶èµ›æ—¶è‡ªåŠ¨æš‚åœæ¸¸æˆ" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "当有çƒå‘˜å—伤时是å¦è‡ªåŠ¨æš‚åœæ¸¸æˆ" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "当çƒå‘˜è¢«çº¢ç‰Œç½šä¸‹æ—¶è‡ªåŠ¨æš‚åœæ¸¸æˆ" #: src/options_interface.c:624 msgid "Whether the subs (e.g. for injured players) are made by the CPU. This is automatically done if the live game is off." msgstr "替补çƒå‘˜æ›¿ä¸‹ä¸»åŠ›çƒå‘˜ï¼ˆä¼¤ç—…等原因)是由系统决定的. 当 比赛现场 è¢«ç¦æ­¢æ—¶æ­¤ä¸ºé»˜è®¤é€‰é¡¹" #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "是å¦è‡ªåŠ¨å­˜æ¡£" #: src/options_interface.c:1223 msgid "Whether to save the global settings to file (so that they get loaded next time you start a new game)" msgstr "决定是å¦å°†å…¨å±€è®¾ç½®ä¿å­˜åˆ°æ–‡ä»¶ï¼ˆé‚£æ ·å½“ä½ ä¸‹æ¬¡å¼€å§‹ä¸€ä¸ªæ–°çš„æ¸¸æˆæ—¶ä¼šè‡ªåŠ¨è¯»å–)" #: src/options_interface.c:1228 msgid "Whether to save the user settings to file (so that they get loaded next time this user starts a new game)" msgstr "决定是å¦å°†çŽ©å®¶è®¾ç½®ä¿å­˜åˆ°æ–‡ä»¶ï¼ˆé‚£æ ·å½“çŽ©å®¶å¼€å§‹ä¸€ä¸ªæ–°çš„æ¸¸æˆæ—¶ä¼šè¢«è‡ªåŠ¨è¯»å–)" #: src/options_interface.c:264 msgid "Whether to show a confirmation popup if a user team has an injured or banned player in the startup formation" msgstr "是å¦åœ¨çƒé˜Ÿé¦–å‘阵容中有 å—伤/ç¦èµ› çƒå‘˜æ—¶å¼¹å‡ºä¸€ä¸ªå¯¹è¯æ¡†åŠ ä»¥ç¡®è®¤" #: src/options_interface.c:259 msgid "Whether to show a confirmation popup when you press quit and the game state is not saved" msgstr "在退出时, 对未ä¿å­˜çš„æ¸¸æˆæ˜¾ç¤ºä¸€ä¸ªå¼¹å‡ºç¤ºçª—å£åŠ ä»¥ç¡®è®¤" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "是å¦åœ¨ä¸‹æ³¨çª—å£ä¸­æ˜¾ç¤ºæ¯èµ›ä¿¡æ¯" #: src/misc3_interface.c:82 msgid "Whether to show cup matches. Use the options window to toggle permanently." msgstr "æ˜¯å¦æ˜¾ç¤ºæ¯èµ›ä¿¡æ¯. 调用选项设置å¯ä»¥æ°¸ä¹…改å˜" #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "当玩家å–å¾—æˆåŠŸæ—¶æ˜¾ç¤ºå…¶ä»–çƒä¼šçš„ 邀请执教 ä¿¡æ¯" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "是å¦åœ¨ä¸‹æ³¨çª—å£ä¸­æ˜¾ç¤ºæ‰€æœ‰è”赛的比赛信æ¯" #: src/misc3_interface.c:77 msgid "Whether to show matches of all leagues. Use the options window to toggle permanently." msgstr "æ˜¯å¦æ˜¾ç¤ºè”赛所有比赛信æ¯, 调用选项进行设置å¯ä»¥æ°¸ä¹…改å˜" #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "是å¦åªåœ¨æœ€è¿‘ä¸‹æ³¨åˆ—è¡¨ä¸­åªæ˜¾ç¤ºä½ çš„相关信æ¯" #: src/options_interface.c:289 msgid "Whether to show pictures on top of the progressbar when loading/saving or calculating results" msgstr "是å¦åœ¨ 读å–/ä¿å­˜ 或者计算结果时在进度æ¡ä¸Šæ˜¾ç¤ºå›¾ç‰‡" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "是å¦åœ¨æ‰€æœ‰æ¯”赛中显示çƒå‘˜çš„ æ¯”èµ›/è¿›çƒ å€¼" #: src/options_interface.c:284 msgid "Whether to show warnings and such in the message area in the main window when possible" msgstr "是å¦åœ¨å°½å¯èƒ½çš„æƒ…况下在主窗å£çš„æ¶ˆæ¯æ ä¸­æ˜¾ç¤ºè­¦å‘Šä¿¡æ¯æˆ–者其他相关信æ¯" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "首胜" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "å†èƒœ" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "黄牌" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "黄牌ç¦èµ›\n" #: src/treeview.c:841 #: src/treeview_helper.c:934 msgid "Yellows" msgstr "黄牌" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "你最终赢得了 %s 的冠军ï¼" #: src/finance.c:281 msgid "You are free from debt." msgstr "你没有负债" #: src/callback_func.c:579 #, c-format msgid "You are making an offer for %s again. Your previous values for fee and wage are preset." msgstr "你正在对 %s 报价, å…ˆå‰çš„æŠ¥ä»·è¢«è®¾å®šä¸ºé»˜è®¤å‡ºä»·" #: src/callback_func.c:571 #, c-format msgid "You are making an offer for %s. Your scout's recommendations for fee and wage are preset." msgstr "你决定对 %s 报价, ä½ çš„çƒæŽ¢å¯¹äºŽè½¬ä¼šè´¹ä»¥åŠå·¥èµ„的建议被设定为默认出价" #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what you're doing; if you don't come to terms with him within %d offers, he's going to leave your team after his current contract expires (unless you sell him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "你正在与 %s 商谈新的åˆåŒ, 请注æ„:你必须于 %d 次谈判之内达æˆä¸€è‡´, å¦åˆ™è¿™åçƒå‘˜å°†ä¼šåœ¨å½“å‰åˆåŒç»“æŸä¹‹åŽç¦»å¼€ä½ çš„çƒé˜Ÿï¼ˆé™¤éžä½ å°†ä»–挂牌å–出). ä½ åªèƒ½åœ¨ç¬¬ä¸€æ¬¡å‡ºä»·å‰æ’¤æ¶ˆ. \n" "ä»¥ä¸‹æ˜¯ä½ çš„çƒæŽ¢çš„å»ºè®®ï¼š" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "你没有负债" #: src/callback_func.c:413 msgid "You are not indebted." msgstr "你没有负债" #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "你赌最终结果 %d (åšå½©å…¬å¸èµ”率 %.2f). 你决定下多大的注?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "你最多å¯ä»¥å¿è¿˜ %s." #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "你最多å¯ä»¥æå– %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "å½“æœ‰ä¸æ­¢ä¸€å玩家时, ä½ ä¸èƒ½åº”è˜æµ·å¤–èŒåŠ¡" #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "ä½ çš„çƒé˜Ÿæœ€å¤šåªèƒ½æœ‰ %d 个çƒå‘˜" #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "ä½ ä¸èƒ½ç§»åŠ¨è¯¥çƒå‘˜, 你的大åå•中çƒå‘˜äººæ•°ä¸è¶³" #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "当原先çƒå‘˜åˆåŒå¤šäºŽä¸¤å¹´æ—¶, ä½ ä¸èƒ½æä¾›æ–°åˆåŒ" #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "你应该添加一个玩家" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "ä½ ä¸èƒ½æ›¿æ¢ä¸€ä¸ªè¢«ç½šä¸‹çš„çƒå‘˜" #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "你没有足够的资金出价购买 %s (%s)" #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "你没有足够资金购买 %s 或者çƒé˜Ÿçƒå‘˜äººæ•°å·²æ»¡" #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "你没有充足的资金æ¥å¿è¿˜è´·æ¬¾" #: src/bet.c:262 #: src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "你没有足够的资金" #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "ä½ å®Œæˆæœ¬èµ›å­£åœ¨ %s 的所有比赛, 最终è”èµ›æŽ’åæŽ’å %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "你带领çƒé˜Ÿå‡åˆ°äº† %s" #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "ä½ çš„çƒé˜Ÿä¸å¹¸é™çº§, 下赛季åªå¾—在 %s 继续拼æäº†" #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "你还有 %d 周的时间æ¥å¿å‰©ä¸‹çš„贷款" #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "你还有 %d 周的时间æ¥å¿è¿˜è´·æ¬¾" #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "你的银行å¸ç›®åˆé€æ”¯äº†, 时刻记ä½åœ¨ç¬¬å››æ¬¡ä¹‹åŽä½ å°±ä¼šè¢«è§£é›‡.\n" "çƒé˜Ÿè‘£äº‹ç»™ä½ %d周的时间æ¥è¿˜æ¸…欠款. " #: src/user.c:578 #, c-format msgid "You have overdrawn your bank account. The team owners give you %d weeks to get above your drawing credit limit." msgstr "你的银行å¸ç›®é€æ”¯äº†. çƒé˜Ÿè‘£äº‹å†³å®šå†ç»™äºˆä½ %d周的时间æ¥è¿˜æ¸…债务" #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "你必须在本周å¿è¿˜ä¸€éƒ¨åˆ†è´·æ¬¾" #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "你还没有对这åçƒå‘˜å‡ºä»·" #: src/callbacks.c:972 #: src/callbacks.c:1023 #: src/callbacks.c:1043 #: src/callbacks.c:1065 #: src/callbacks.c:1085 #: src/callbacks.c:1105 #: src/callbacks.c:1125 #: src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "请选择一个玩家" #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "ä½ å¾ˆé—æ†¾çš„在 %s 决赛中数给了 %s" #: src/callback_func.c:512 #, c-format msgid "You offered a transfer fee of %s and a wage of %s for %s. The owners and the player are satisfied with your offer. Do you still want to buy the player?" msgstr "你决定出 %s 的转会费外加 %s/周 的工资购买 %s 的所有æƒ, çƒå‘˜å’Œä»–çš„ç»ç†äººéžå¸¸æ»¡æ„并接å—了该报价. 确认对çƒå‘˜çš„出价?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "你带领çƒé˜Ÿæ‰“进了 %s (第 %s è½® %s æ¯)" #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "你开始了在%s的执教生涯(%s è”赛)" #: src/callbacks.c:239 #: src/callbacks.c:1355 #: src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "你还有一些转会交易没有处ç†" #: src/callback_func.c:771 #, c-format msgid "You want to fire %s. Since his contract expires in %.1f years, he demands a compensation of %s. Do you accept?" msgstr "你想与 %s 解除åˆåŒ. 他的当å‰åˆåŒè¿˜æœ‰ %.1f å¹´, ä»–è¦æ±‚解约之åŽèŽ·å¾— %s 的解约金, 接å—?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "你最终赢得了 %s , 在这场精彩的比赛中勇敢的战胜对手 %s" #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "ä½ å·²ç»è¾¾åˆ°äº†æœ¬èµ›å­£ %d 的训练è¥é™åˆ¶ " #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "你的银行存款应该于下周å‰å¤„于 逿”¯åº•线 以上" #: src/user.c:1126 #, c-format msgid "Your current sponsor is satisfied with your results and would like to renew the contract. Currently they're paying you %d a week." msgstr "你当å‰çš„赞助商对你迄今所å–å¾—çš„æˆæžœéžå¸¸æ»¡æ„, 原æ„与你续签赞助和约. 当å‰ä»–们æ¯å‘¨ä¼šæ”¯ä»˜ä½ : %d" #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "你的债务:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "你的下一个对手" #: src/user.c:587 #, c-format msgid "Your offer for %s has been accepted. If you still want to buy him, go to the transfer list and left click on the player." msgstr "你对 %s çš„å‡ºä»·è¢«åŒæ„了. 如果你确定è¦è´­ä¹°æ­¤åçƒå‘˜, å¯ä»¥åŽ»è½¬ä¼šåˆ—è¡¨ä¸­, 左键å•击他的åå­—å³å¯å®Œæˆäº¤æ˜“" #: src/callback_func.c:498 #: src/callbacks.c:429 msgid "Your offer has been removed." msgstr "你的报价被撤消了" #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "你釿–°å¼€å‡ºäº†æŠ¥ä»·" #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "对于你的报价他们将会在下周给你答å¤" #: src/treeview.c:1913 msgid "Your overall results" msgstr "赛季结果" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "ä½ çš„çƒé˜Ÿäººæ•°å·²æ»¡æˆ–者你没有充足的资金" #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "比赛结果" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "çƒé˜Ÿäººå‘˜å·²æ»¡, ä½ ä¸èƒ½å†ä¹°è¿›çƒå‘˜äº†" #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "ä½ çš„çƒé˜Ÿå¤§åå•人数已满. ä½ ä¸èƒ½å¤Ÿä¹°å…¥ %s (%s)" #: src/window.c:890 msgid "Your stadium" msgstr "ä½ çš„çƒåœº" #: src/treeview2.c:91 msgid "Your team" msgstr "ä½ çš„çƒé˜Ÿ" #: src/callbacks.c:1107 #: src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "你的出场阵容ä¸è¶³11人" #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "你的队ä¼å·²ç»äºŽæœ¬å‘¨è¿›è¡Œäº†è¶³å¤Ÿå¤šçš„训练" #: src/youth_academy.c:220 #, c-format msgid "Youth %s thought he's old enough for a real contract and left your youth academy." msgstr "é’å¹´çƒå‘˜ %s 认为他已ç»è¾¾åˆ°åˆé€‚的年龄, 应该得到一份真正æ„义上的åˆçº¦. 他离开了你的é’年队. " #: src/youth_academy.c:215 #, c-format msgid "Youth %s will be too old for the youth academy soon. Move him to your team or kick him out of the academy. Otherwise he'll probably look for another team to play in." msgstr "é’å¹´çƒå‘˜ %s 的年龄很快就è¦è¶…过é’年队的é™åˆ¶äº†, ä½ å¯ä»¥æŠŠä»–移至主力阵容或者将他开除出你的çƒé˜Ÿ. 除此之外他很å¯èƒ½è‡ªå·±åŽ»å¯»æ‰¾ä¸€å®¶æ–°çš„ä¿±ä¹éƒ¨ä»¥ç»§ç»­ä»–çš„çƒå‘˜ç”Ÿæ¶¯" #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "é’年队投资" #: src/interface.c:578 #: src/treeview.c:1526 msgid "Youth academy" msgstr "é’年队" #: src/callbacks.c:817 #: src/callbacks.c:836 #: src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "当å‰åœ°åŸŸæœªé€‰ä¸­é’å¹´è”èµ›" #: src/interface.c:596 #: src/treeview.c:1525 msgid "Youth coach" msgstr "é’年队教练" #: src/interface.c:304 msgid "_File" msgstr "_文件" #: src/interface.c:1059 msgid "_Help" msgstr "_帮助" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_è¯»å–æ¸¸æˆ" #: src/interface.c:347 msgid "_Options" msgstr "_选项" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_æš‚åœ" #: src/interface.c:766 msgid "_Player" msgstr "_çƒå‘˜" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_返回" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_继续游æˆ" #: src/interface.c:460 msgid "_Team" msgstr "_çƒé˜Ÿ" #: src/interface.c:850 msgid "_User" msgstr "_玩家" #: src/treeview.c:1644 msgid "interest rate" msgstr "利率" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "如果想与大家分享你游æˆä¸­çš„æ„Ÿå—, 心得, ä½ å¯ä»¥æŠŠå®ƒä»¬å†™åˆ°Bygfootçš„WIKI页中:\n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Bygfoot存档文件" #~ msgid "Improve!" #~ msgstr "晋级ï¼" #, fuzzy #~ msgid "Left- and right click to change boost" #~ msgstr "左键或å³é”®å•击坿”¹å˜ boost state" #~ msgid "Load the last game that was saved or loaded." #~ msgstr "读å–上一个ä¿å­˜çš„æ¸¸æˆ" #~ msgid "Loading cups..." #~ msgstr "è¯»å–æ¯èµ›..." #~ msgid "Misc." #~ msgstr "其它" #~ msgid "Saving cups..." #~ msgstr "ä¿å­˜æ¯èµ›..." #~ msgid "" #~ "Setting the language only works for installed packages (not for the " #~ "binary package)" #~ msgstr "è®¾å®šå®‰è£…åŒ…çš„è¯­è¨€é€‰é¡¹ï¼ˆä¸æ˜¯äºŒè¿›åˆ¶å‘布包)" #~ msgid "Show history" #~ msgstr "显示历å²" #~ msgid "There are no offers for the player." #~ msgstr "到现在为止还没有人对这åçƒå‘˜æŠ¥ä»·" #~ msgid "This is your first season." #~ msgstr "这是你的第一个赛季" #~ msgid "Username" #~ msgstr "玩家姓å" #~ msgid "label26" #~ msgstr "标签26" #~ msgid "label27" #~ msgstr "标签27" #~ msgid "label48" #~ msgstr "标签48" bygfoot-2.3.2/po/pl.po0000644000175000017500000026023011225071373013540 0ustar eliaselias# translation of pl.po to Polish # Michal Rudolf , 2005, 2006. 2007, 2009. # # msgid "" msgstr "" "Project-Id-Version: bygfoot 2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2009-01-11 19:11+0200\n" "Last-Translator: Mihai \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Polish\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Poedit-Country: Poland\n" "X-Poedit-SourceCharset: utf-8\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Bramki/Spotkania %.1f Obronione %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Bramki/Spotkania %.1f Skuteczność %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" "Możesz także wysÅ‚ać wiadomość do autorów:\n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " Center" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Co." #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (w)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr " (Uwaga: jeÅ›li nie przyjmiesz propozycji, gra bÄ™dzie skoÅ„czona.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (sam.)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (k)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Pierwszy mecz" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Powtórzone mecze" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Rewanż" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " s.c." #: src/options_interface.c:329 msgid " Autosave files " msgstr " Pliki autozapisu " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Polska" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " i spółka" #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Holding S.A." #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Communications" #. Company name. #: src/user.c:990 msgid " Company" msgstr " SA" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Data Systems" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Leasing" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Consulting" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Na szczęście jego kuzyn może pomóc Twojej drużynie." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Group" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holdings" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industries" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Centrum" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " Ltd." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Sp. z o.o." #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Express" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Solutions" #: src/interface.c:1220 msgid " Round " msgstr " Runda " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Export" #: src/interface.c:1200 msgid " Season " msgstr " Sezon " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Software" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Sp z o.o." #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " International" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Communications" #: src/interface.c:1210 msgid " Week " msgstr " TydzieÅ„ " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " dogr." #: src/callback_func.c:466 msgid " less" msgstr " mniej" #: src/options_interface.c:527 msgid " months" msgstr " miesiÄ™cy" #: src/callback_func.c:464 msgid " more" msgstr " wiÄ™cej" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " k." #: src/misc_interface.c:934 msgid " seats" msgstr " miejsc" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f miesiÄ™cy / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d (dogr.)" #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d (k)" #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "W tym sezonie pozostaÅ‚o %d obozów treningowych." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (D) " #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N) " #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (spodziewany powrót do zdrowia: %d tyg.)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Grupa %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s akceptuje TwojÄ… ofertÄ™." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s i %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s i %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "%s nie stać na kupno %s lub ma peÅ‚nÄ… listÄ™ graczy." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s zwalnia CiÄ™ z powodu niezadowalajÄ…cego zarzÄ…dzania finansami. ZostaÅ‚eÅ› " "zatrudniony przez klub %s (%s)." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s zwalnia CiÄ™ z powodu niezadowalajÄ…cych wyników. ZostaÅ‚eÅ› zatrudniony " "przez klub %s (%s)." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s zostaÅ‚ dodany do listy transferowej na %d tygodni." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s opuÅ›ciÅ‚ drużynÄ™ po zakoÅ„czeniu kontraktu." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s z klubu %s odrzuciÅ‚ twojÄ… ofertÄ™ (%s / %s). Zaproponowana pensja jego " "zdaniem jest za niska." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "%s z klubu %s odrzuciÅ‚ TwojÄ… ofertÄ™, ponieważ Twoja drużyna ma już zbyt " "wiele gwiazd: \"Zawodnik mojego kalibru nie bÄ™dzie graÅ‚ drugich skrzypiec\"." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s (%s) zaproponowaÅ‚ Ci pracÄ™.\n" "Przyjmujesz jÄ… i opuszczasz klub %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s odrzuciÅ‚ TwojÄ… ofertÄ™ i nie bÄ™dzie dalej negocjowaÅ‚. PowinieneÅ› sprzedać " "go, zanim skoÅ„czy siÄ™ jego kontrakt (w przeciwnym razie po prostu opuÅ›ci " "TwojÄ… drużynÄ™)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s odrzuciÅ‚ TwojÄ… ofertÄ™. Nadal możesz zÅ‚ożyć %d ofert." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s bÄ™dzie strzelaÅ‚ karne i wolne, o ile wystÄ…pi w meczu." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s chce kupić: %s. Oferuje za niego %s, czyli %s niż wynosi jego wartość. " "Akceptujesz ofertÄ™?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "%s koÅ„czy kontrakt za %.1f lat." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "%s jest kontuzjowany na tyle poważnie, że nie może dalej grać zawodowo w " "piÅ‚kÄ™. Zawodnik opuszcza TwojÄ… drużynÄ™." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (bez ograniczeÅ„)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d tygodni\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(poczÄ…tek w tygodniu %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- prosty, ale wciÄ…gajÄ…cy menedżer piÅ‚karski" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 rok" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 lata" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 lata" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 lata" #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (W) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Na stadionie\n" "wybuchÅ‚ pożar." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Na stadionie nastÄ…piÅ‚o\n" "naruszenie porzÄ…dku." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Na stadionie wystÄ…piÅ‚y\n" "problemy techniczne." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Aktualne zakÅ‚ady" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Ostatnie zakÅ‚ady" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "TydzieÅ„ %d Kolejka %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Do szkółki przyjÄ™to nowego zawodnika." #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "Nowy zawodnik zgÅ‚osiÅ‚ siÄ™ do szkółki, ale brakuje wolnych miejsc." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "DODAJ OSTATNI MECZ" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "ATAK WSZYSTKIMI SIÅAMI" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "GÅĘBOKA OBRONA" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTY" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ATAK" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "O programie" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Akceptuj" #: src/game_gui.c:818 msgid "Accept?" msgstr "Przyjmujesz?" #: src/interface.c:1035 msgid "Add last match" msgstr "Dodaj ostatni mecz" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "Dodaj ostatni mecz do listy zapamiÄ™tanych meczów" #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Dodaj użytkownika" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Zmienić harmonogram spÅ‚at?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Wiek" #: src/options_interface.c:735 msgid "Age " msgstr "Wiek " #: src/window.c:399 msgid "All Files" msgstr "Wszystkie pliki" #: src/interface.c:502 msgid "All Out Attack" msgstr "Atak wszystkimi siÅ‚ami" #: src/interface.c:478 msgid "All Out Defend" msgstr "Głęboka obrona" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Zawsze pokazuj okno wiadomoÅ›ci po meczu" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anty" #: src/interface.c:658 msgid "Any" msgstr "Wszyscy" #: src/options_interface.c:1569 msgid "Appearance" msgstr "" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "ZgÅ‚osić siÄ™ do pracy?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "" "Przynajmniej jeden użytkownik nie wykonaÅ‚ dziaÅ‚aÅ„ na ten tydzieÅ„. " "Kontynuować?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Na forum Bygfoot można zgÅ‚aszać błędy, prosić o pomoc i dyskutować o grze:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Atak" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Publiczność\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Atrybut " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Automatyczne spÅ‚acanie pożyczki" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Automatyczne okienka" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Automatyczne spÅ‚aty" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Automatyczne zmiany" #: src/options_interface.c:443 msgid "Autosave" msgstr "Autozapis" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "CzÄ™stotliwość autozapisu" #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Åšr. poziom: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Åšr. poziomy: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Åšr.poz." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Åšr.poziom" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "DostÄ™pne drużyny" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Åšredni" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Åšrednia publiczność" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Åšrednia publiczność %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Åšredni poziom" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Åšredni poziom:" #: src/treeview.c:1851 msgid "Away" msgstr "Na wyjeździe" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "ZRÓWNOWAÅ»ONY" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "PAUZ(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Powrót do głównego menu (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Powrót do ekranu powitalnego" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "ZÅ‚y" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Bilans" #: src/interface.c:490 msgid "Balanced" msgstr "Zrównoważony" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Pauzuje\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Nowy tydzieÅ„ (Spacja)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Bardzo dobry" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Najlepsza obrona" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Najlepsi strzelcy" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Najlepsi bramkarze" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Najlepszy atak" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "ZakÅ‚ady" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "ZakÅ‚ady -- Lewy przycisk na kursie umieszcza/wycofuje zakÅ‚ad" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Bilans dwutygodniowy" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Bilans dwutygodniowy\n" "(TydzieÅ„ %d i %d)" #: src/interface.c:669 msgid "Boost" msgstr "Mobilizacja" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Mobilizacja jest wyłączona w tej definicji kraju." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Mobilizacja zmieniona na %s (koszt %d na minutÄ™)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Mobilizacja zmieniona na %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Koszt mobilizacji" #: src/player.c:1430 msgid "Broken ankle" msgstr "ZÅ‚amana kostka" #: src/player.c:1433 msgid "Broken arm" msgstr "ZÅ‚amana rÄ™ka" #: src/player.c:1427 msgid "Broken leg" msgstr "ZÅ‚amana noga" #: src/player.c:1424 msgid "Broken rib" msgstr "ZÅ‚amane żebro" #: src/player.c:1436 msgid "Broken shoulder" msgstr "ZÅ‚amane ramiÄ™" #: src/interface.c:842 msgid "Browse players" msgstr "PrzeglÄ…daj zawodników" #: src/interface.c:745 msgid "Browse teams" msgstr "PrzeglÄ…daj drużyny" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Mecze Bygfoot" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "WiadomoÅ›ci Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Pliki Bygfoot" #: src/window.c:1031 #, fuzzy msgid "Bygfoot constants" msgstr "Koszt mobilizacji" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Okno debuggera Bygfoot. JeÅ›li włączyÅ‚eÅ› je przez przypadek, WYÅÄ„CZ " "NATYCHMIAST (w przeciwnym razie Twój komputer zostanie zniszczony)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot jest grÄ… prostÄ… i intuicyjnÄ…, dlatego nie ma peÅ‚nej dokumentacji. " "JeÅ›li jednak masz problemy, jest parÄ™ miejsc, w które można zajrzeć\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "APz" #: src/options_interface.c:665 msgid "CPos " msgstr "AP " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "APoz" #: src/options_interface.c:679 msgid "CSkill " msgstr "APoz " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Oblicz poczÄ…tkowy tydzieÅ„" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Oblicz ratÄ™ tygodniowÄ…" #: src/training_interface.c:84 msgid "Camp points" msgstr "Punkty treningowe" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Wielkość (liczba miejsc)" #: src/options_interface.c:728 msgid "Cards " msgstr "Kartki " #: src/treeview.c:2182 msgid "Career values" msgstr "Kariera" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Zmienia szczegółowość komentarza. Im wiÄ™ksza wartość, tym wiÄ™cej wydarzeÅ„ " "widać." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Zmienia szybkość relacji na żywo. Im wyższa wartość, tym szybsza relacja." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "ZmieÅ„ cenÄ™ biletów" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Wybierz kraj" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Wybierz plik" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Wybierz jÄ™zyk gry (może nie dziaÅ‚ać w wersji dla Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Wybierz poczÄ…tkowÄ… ligÄ™" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Wybierz drużynÄ™" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Wybierz nazwÄ™ użytkownika" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "WciÅ›nij OK by zgÅ‚osić siÄ™ do pracy. ANULUJ zamyka okno." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Kliknij na użytkowniku, by usunąć go z gry." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Kliknij na użytkowniku, by go usunąć." #: src/options_interface.c:1640 #, fuzzy msgid "Close" msgstr "APz" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Komentarz" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "" "Zdarzenie komentarza do testowania; jeÅ›li niewybrane, testuje wszystkie " "komentarze" #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Nazwa pliku z komentarzem (może być w katalogu z danymi)" #: src/treeview.c:3017 msgid "Company" msgstr "Firma" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Wyrównanie" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Zawody" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Kompresowanie zapisu gry..." #: src/player.c:1409 msgid "Concussion" msgstr "WstrzÄ…s mózgu" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Potwierdź i rozplanuj spÅ‚atÄ™" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Potwierdź wyjÅ›cie bez zapisania gry" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Potwierdź usuniÄ™cie mÅ‚odzików" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Ostrzeżenie przed niepeÅ‚nym skÅ‚adem" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Potwierdź!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Plik staÅ‚ych" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Kontrakt" #: src/options_interface.c:763 msgid "Contract " msgstr "Kontrakt " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Kontrakt / pieniÄ…dze" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Czas\n" "(miesiÄ…ce)" #: src/window.c:937 msgid "Contract offer" msgstr "Oferta kontraktu" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Kontrakty sÄ… wyłączone w tej definicji kraju." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "PodziÄ™kowania" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Kopiowanie %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Koszty" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Nie można znaleźć pliku z obrazkiem: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Kraj" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Utwórz wiadomoÅ›ci z pucharów" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Utwórz wiadomoÅ›ci z lig" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Utwórz wiadomoÅ›ci użytkownika" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Zdobywcy pucharów" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Puchar nie ma tabeli." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Aktualna wielkość" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Aktualny plik" #: src/treeview.c:2829 msgid "Current league" msgstr "Aktualna liga" #: src/treeview.c:1637 msgid "Current market interest" msgstr "Aktualne oprocentowanie" #: src/treeview.c:2165 msgid "Current position" msgstr "Aktualna pozycja" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Aktualne bezpieczeÅ„stwo" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Aktualne ustawienia:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Aktualny poziom" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "O" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "OBRONA" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "DÅ‚ug (spÅ‚ata w %d tygodni)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Debugger" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Zdecyduj później" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "DomyÅ›lny hotel" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "DomyÅ›lna rozrywka:" #: src/options_interface.c:1141 msgid "Default training:" msgstr "DomyÅ›lny trening:" #: src/options_interface.c:1073 msgid "Default wager" msgstr "DomyÅ›lna stawka" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Obrona" #: src/interface.c:640 msgid "Defenders" msgstr "ObroÅ„cy" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Czy wiesz, że...?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Brak pliku 'bygfoot_help'." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "Na pewno wyrzucić biednego chÅ‚opca ze szkółki?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Nie wczytuj definicji" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Nie wczytuj definicji drużyn" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Gotowe." #: src/treeview2.c:396 msgid "Draw" msgstr "Remis" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "ZaciÄ…ganie kredytu" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "R" #. draw #: src/team.c:1150 msgid "Dw " msgstr "R " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "R %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "Tal " #: src/treeview2.c:70 msgid "EXPORT" msgstr "EKSPORT" #: src/options_interface.c:432 msgid "Edit" msgstr "" #: src/interface.c:829 src/interface.c:2038 #, fuzzy msgid "Edit name" msgstr "Nazwa czcionki" #: src/options_interface.c:418 #, fuzzy msgid "Edit the constants used in the game" msgstr "Ponownie odczytaj plik staÅ‚ych" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Podaj ustawienie. Cyfry muszÄ… sumować siÄ™ do 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Podaj wÅ‚asne ustawienie" #: src/window.c:865 msgid "Erm..." msgstr "Hmm..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Esc" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Esc / Return / Spacja" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Szacowany talent" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "SzTal" #: src/treeview.c:2378 msgid "Event" msgstr "Zdarzenie" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Spodziewany czas realizacji" #: src/treeview.c:1704 msgid "Expenses" msgstr "Wydatki" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "N" #: src/interface.c:398 msgid "F_igures" msgstr "_Wyniki" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Transfer" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Plik zawierajÄ…cy zmienne relacji na żywo (może być w katalogu z danymi)" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Plik zawierajÄ…cy ustawienia okreÅ›lajÄ…ce mnóstwo aspektów gry. Tylko dla " "ekspertów!" #: src/interface.c:928 msgid "Fin_Stad" msgstr "ZarzÄ…dzanie" #: src/cup.c:1105 msgid "Final" msgstr "FinaÅ‚" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Finanse sÄ… wyłączone w tej definicji kraju." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Zwolnij" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Pierwsza wartość: Å›redni poziom 11 pierwszych zawodników. Druga wartość: " "Å›redni poziom wszystkich zawodników." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hotel piÄ™ciogwiazdkowy" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "Kond" #: src/treeview.c:2168 msgid "Fitness" msgstr "Kondycja" #: src/options_interface.c:693 msgid "Fitness " msgstr "Kondycja " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Spotkania (zawody)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Spotkania (tydzieÅ„)" #: src/options_interface.c:1541 msgid "Float" msgstr "" #: src/options_interface.c:379 msgid "Font name" msgstr "Nazwa czcionki" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Czcionka używana w listach" #: src/interface.c:652 msgid "Forwards" msgstr "Napastnicy" #: src/treeview.c:840 msgid "Fouls" msgstr "Faule" #: src/player.c:1421 msgid "Fractured ankle" msgstr "PÄ™kniÄ™cie kostki" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "B" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "GS" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "RG" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "GZ" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Sp" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Rozgrywanie" #: src/treeview_helper.c:931 msgid "Games" msgstr "Spotkania" #: src/options_interface.c:700 msgid "Games " msgstr "Spotkania " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Spotkania/bramki\n" #: src/options_interface.c:486 msgid "Global" msgstr "Globalne" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Br" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Wróć do ekranu powitalnego" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Bz/Bs" #: src/treeview.c:1775 msgid "Goalie" msgstr "Bramkarz" #: src/interface.c:634 msgid "Goalies" msgstr "Bramkarze" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Bramki" #: src/options_interface.c:714 msgid "Goals " msgstr "Bramki " #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Gole (z gry)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Dobry" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Dobry hotel" #: src/player.c:1418 msgid "Groin injury" msgstr "Uraz pachwiny" #: src/player.c:1415 msgid "Hamstring" msgstr "NadciÄ…gniÄ™te Å›ciÄ™gno" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Zajrzyj na listÄ™ transferowÄ…, %s otrzymaÅ‚ propozycjÄ™ z innego klubu." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Nagłówek" #: src/treeview.c:2171 msgid "Health" msgstr "Zdrowie" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Pomoc" #: src/treeview.c:1849 msgid "Home" msgstr "U siebie" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Liczba komentarzy generowanych dla jednego zdarzenia" #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "OkreÅ›la liczbÄ™ cyfr po przecinku w poziomach zawodników itd." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Liczba plików autozapisu" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Ile chcesz stawiać domyÅ›lnie" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "OkreÅ›la, jak czÄ™sto gra jest zapisywana automatycznie" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "OkreÅ›la czÄ™stość odÅ›wieżania listy graczy podczas relacji na żywo." #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "KONT(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "JeÅ›li ta opcja jest włączona, tygodnie bez meczów użytkownika sÄ… pomijane " "(bez koniecznoÅ›ci wybierania 'Nowy tydzieÅ„')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "JeÅ›li nie akceptujesz żadnej propozycji, możesz grać kilka tygodni bez " "sponsora i czekać na nowe oferty." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "Importuj plik" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importuj mecze z pliku z meczami" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Trwa rozbudowa.\n" "Do wykonania: %d miejsc i %d%% bezpieczeÅ„stwa.\n" "Spodziewane zakoÅ„czenie prac: %d." #: src/treeview.c:1703 msgid "Income" msgstr "WpÅ‚ywy" #: src/misc_interface.c:1041 msgid "Increase" msgstr "ZwiÄ™ksz" #: src/treeview.c:843 msgid "Injuries" msgstr "Kontuzje" #: src/options_interface.c:1527 msgid "Integer" msgstr "" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "Za późno na automatyczne rozplanowanie spÅ‚aty w tym sezonie." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Oferta pracy" #: src/interface.c:370 msgid "Job offers" msgstr "Oferty pracy" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Oferty pracy ustawione na %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Koszty podróży" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Wyrzuć ze szkółki" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "P" #. lost #: src/team.c:1154 msgid "L " msgstr "P " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "P %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "Przywróć _ostatniÄ… grÄ™" #: src/options_interface.c:436 msgid "Language" msgstr "JÄ™zyk" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Używany jÄ™zyk (kod jÄ™zyka, np. 'pl')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Ostatnie %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Nie znaleziono ostatnio zapisywanego pliku." #: src/treeview.c:1898 msgid "Latest results" msgstr "Ostatnie wyniki" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Liga" #: src/options_interface.c:770 msgid "League " msgstr "Liga " #: src/treeview.c:2590 msgid "League champions" msgstr "Mistrzowie lig" #: src/interface.c:991 msgid "League stats" msgstr "Statystyka" #: src/league_table_interface.c:39 msgid "League table" msgstr "Tabela ligowa" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "" "Kliknij, by zÅ‚ożyć ofertÄ™. Kliknij prawym przyciskiem myszy, by usunąć " "ofertÄ™." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Lewy przycisk przenosi gracza do/ze szkółki mÅ‚odzików; prawy przycisk - menu " "podrÄ™czne." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Kliknij, żeby pokazać nastÄ™pne spotkania." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Kliknij, żeby wyÅ›wietlić tabelÄ™." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "Lwy przycisk: pożyczka, prawy: spÅ‚ata, Å›rodkowy: stadion." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Lista 1 " #: src/options_interface.c:1028 msgid "List 2" msgstr "Lista 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Relacja na żywo" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Relacja na żywo ustawiona na %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Szybkość relacji na żywo" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Szczegółowość relacji na żywo" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Wczytaj grÄ™ (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Przywróć ostatniÄ… grÄ™" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "Wczytaj tylko nazwiska zawodników z plików definicji" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Wczytaj definicje drużyn" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Wczytuje definicje drużyn z plików (oryginalne pakiety Bygfoot nie zawierajÄ… " "definicji drużyn - trzeba je pobrać ze strony domowej programu albo " "zainstalować skryptem bygfoot-update)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Wczytywanie pucharu: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Wczytywanie ofert pracy..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Wczytywanie ligi: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Wczytywanie lig i pucharów.." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Wczytywanie pozostaÅ‚ych danych..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Wczytywanie gazety..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Wczytywanie ustawieÅ„..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Wczytywanie statystyk sezonu..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Wczytywanie listy transferowej..." #: src/load_save.c:260 msgid "Loading users..." msgstr "Wczytywanie użytkowników..." #: src/callback_func.c:397 msgid "Loan" msgstr "Pożyczka" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "P" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Złóż ofertÄ™" #: src/interface.c:1047 msgid "Manage matches" msgstr "ZarzÄ…dzaj meczami" #: src/interface.c:917 msgid "Manage users" msgstr "ZarzÄ…dzaj użytkownikami" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maksymalizuj główne okno" #: src/user.c:1214 msgid "Memorable match added." msgstr "Dodano mecz." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "ZapamiÄ™tane mecze" #: src/treeview.c:1777 msgid "Midfield" msgstr "Pomocnik" #: src/interface.c:646 msgid "Midfielders" msgstr "Pomocnicy" #: src/treeview.c:1629 msgid "Money" msgstr "PieniÄ…dze" #: src/interface.c:1296 msgid "Money " msgstr "PieniÄ…dze " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "PieniÄ…dze (szac.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "PieniÄ…dze / tydzieÅ„" #: src/interface.c:2092 msgid "Move to team" msgstr "PrzenieÅ› do drużyny" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "PrzenieÅ› do szkółki mÅ‚odzików" #: src/interface.c:438 msgid "My league results" msgstr "Moje wyniki ligowe" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Zawodnik" #: src/options_interface.c:658 msgid "Name " msgstr "Nazwa " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Neutralny stadion" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Oferty\n" "nowego kontraktu" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nowe ustawienia:" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "WiadomoÅ›ci" #: src/misc3_interface.c:315 msgid "Next" msgstr "NastÄ™pny" #: src/interface.c:1434 msgid "Next (W)" msgstr "NastÄ™pny (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "NastÄ™pna liga/puchar (2)" #: src/interface.c:895 msgid "Next user" msgstr "NastÄ™pny użytkownik" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "W przyszÅ‚ym tygodniu zostanie zwolniony i zatrudnisz nowego." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Bez automatycznych okienek" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Aktualnie nie ma rozbudowy w toku." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Brak zapisanego meczu." #: src/treeview2.c:600 msgid "No news available." msgstr "Brak dostÄ™pnych wiadomoÅ›ci." #: src/misc_callbacks.c:468 msgid "None" msgstr "Brak" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "To nie jest poprawna nazwa pliku z meczami." #: src/window.c:882 msgid "Numbers..." msgstr "Liczby..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "NIE" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "TAK" #: src/interface.c:686 msgid "Off" msgstr "Nie" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Zaproponuj nowy kontrakt" #: src/interface.c:680 msgid "On" msgstr "Tak" #: src/misc_interface.c:211 msgid "Only names" msgstr "Tylko nazwiska" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Otwórz plik z meczami" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Przeciwnik" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "SkÅ‚ad drużyny przeciwnej" #: src/window.c:914 msgid "Options" msgstr "Ustawienia" #: src/treeview.c:1904 #, fuzzy msgid "Overall results" msgstr "Wyniki w sezonie" #: src/interface.c:379 msgid "Overwrite" msgstr "Nadpisywanie" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Nadpisywanie ustawione na %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "G" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PKT" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pauza w czasie przerwy" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pauza po kontuzji" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pauza po czerwonej kartce" #: src/callback_func.c:427 msgid "Payback" msgstr "SpÅ‚ata" #: src/treeview.c:839 msgid "Penalties" msgstr "Karne" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Strzelec karnych/wolnych anulowany." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Lekarz" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Zawodnik przyjmuje nowe oferty" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Precyzja atrybutów zawodników" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "WyÅ›wietlane atrybuty zawodnika" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Zawodnik odmawia dalszych negocjacji" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Lista zawodników" #: src/interface.c:1363 msgid "Player list 1" msgstr "Lista zawodników 1" #: src/interface.c:1371 msgid "Player list 2" msgstr "Lista zawodników 2" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "CzÄ™stość odÅ›wieżania listy zawodników" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Styl gry" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Okienko wiadomoÅ›ci użytkownika" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pz" #: src/options_interface.c:672 msgid "Pos " msgstr "Pz " #: src/treeview.c:2164 msgid "Position" msgstr "Pozycja" #: src/treeview.c:838 msgid "Possession" msgstr "Posiadanie piÅ‚ki" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Pokazuj okienka" #: src/interface.c:354 msgid "Preferences" msgstr "Ustawienia" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Bardzo dobry hotel" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Poprzedni" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Poprzedni (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Poprzednia liga/puchar (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Poprzedni użytkownik" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Cena biletu" #: src/treeview.c:1517 msgid "Prize money" msgstr "Nagroda pieniężna" #: src/player.c:1412 msgid "Pulled muscle" msgstr "NadciÄ…gniÄ™ty miÄ™sieÅ„" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Wstaw na listÄ™ transferowÄ…" #: src/cup.c:1111 msgid "Quarter-final" msgstr "ĆwierćfinaÅ‚" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "ZakoÅ„cz (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "USUŃ" #: src/treeview2.c:68 msgid "REPLAY" msgstr "POKAÅ»" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Losuj drużyny do pucharów" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Losuje drużyny do pucharów. Ma to sens w przypadku miÄ™dzynarodowych " "pucharów, takich jak mistrzostwa Å›wiata, gdzie skÅ‚ad poszczególnych grup " "jest ustalony." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Miejsce" #: src/interface.c:1281 msgid "Rank " msgstr "Miejsce " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Gotowe" #: src/interface.c:728 msgid "Rearrange team" msgstr "ZmieÅ„ ukÅ‚ad drużyny" #: src/training_interface.c:98 msgid "Recreation" msgstr "Rekreacja" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Kolejność naboru" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Czerwone kartki" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Odrzuć" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Wczytaj ponownie" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Wczytaj ponownie i zamknij" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" #: src/options_interface.c:1616 #, fuzzy msgid "Reload from file" msgstr "Ponownie odczytaj mecze z pliku" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Ponownie odczytaj mecze z pliku" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Wczytaj mecze z pliku i zamknij" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Ponownie odczytaj plik staÅ‚ych" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "UsuÅ„ z listy transferowej" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Usunąć użytkownika %s z gry?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "OglÄ…danie, usuwanie i dodawanie meczów." #: src/interface.c:712 msgid "Reset player list" msgstr "Przywróć listÄ™ zawodników" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Przywróć listÄ™ zawodników do ustawienia z poczÄ…tku pauzy (kliknij prawym " "przyciskiem na liÅ›cie graczy)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Wynik" #: src/treeview.c:2013 msgid "Results" msgstr "Wyniki" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Wróć" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Return / Spacja" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Prawy i lewy przycisk zmieniajÄ… stan mobilizacji" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Prawy i lewy przycisk zmieniajÄ… styl gry" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Prawy przycisk , aby zgÅ‚osić siÄ™ do drużyny, lewy, by zobaczyć informacje o " "drużynie." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Kliknij prawym przyciskiem, by wyzerować" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "R" #: src/cup.c:1094 msgid "Round robin" msgstr "Rozgrywki grupowe" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "BezpieczeÅ„stwo (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Zbyt wysoka wartość bezpieczeÅ„stwa, wybrano maksymalnÄ… dopuszczalnÄ… wartość." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Obrona %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Zapisz i zamknij" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Zapisz zmiany do pliku i zamknij" #: src/options_interface.c:1581 #, fuzzy msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Plik zawierajÄ…cy ustawienia okreÅ›lajÄ…ce mnóstwo aspektów gry. Tylko dla " "ekspertów!" #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Zapisz grÄ™ (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Zapisz ustawienia globalne" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Nadpisywanie przy zapisie" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Zapisz ustawienia jako domyÅ›lne" #: src/options_interface.c:1595 #, fuzzy msgid "Save to file" msgstr "Zapisz ustawienia użytkownika" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Zapisz ustawienia użytkownika" #: src/interface.c:389 msgid "Save window geometry" msgstr "ZapamiÄ™taj ukÅ‚ad okien" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "ZapamiÄ™tuje rozmiar i pozycje okna oraz poÅ‚ożenie separatora" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Zapisywanie ofert pracy..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Zapisywanie lig i pucharów..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Zapisywanie pozostaÅ‚ych danych..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Zapisywanie wiadomoÅ›ci..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Zapisywanie ustawieÅ„..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Zapisywanie statystyk sezonu..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Zapisywanie listy transferowej..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Zapisywanie użytkowników..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Åowca talentów" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sezon" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Sezon %d" #: src/interface.c:1002 msgid "Season history" msgstr "Historia" #: src/interface.c:449 msgid "Season results" msgstr "Wyniki w sezonie" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Wybierz czcionkÄ™" #: src/cup.c:1108 msgid "Semi-final" msgstr "PółfinaÅ‚" #: src/interface.c:664 msgid "Set investment" msgstr "Finansowanie" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "Podaj procent dochodów, jaki chcesz przeznaczyć na szkółkÄ™ mÅ‚odzików." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Ustawienie na 0 wyłącza ostrzeżenie" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "St" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Wybierz do strzelania karnych" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Skuteczność" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "StrzaÅ‚y" #: src/options_interface.c:707 msgid "Shots " msgstr "StrzaÅ‚y " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Pokaż wszystkie ligi w widoku meczów" #: src/interface.c:879 msgid "Show coming matches" msgstr "NastÄ™pne mecze" #: src/interface.c:935 msgid "Show finances" msgstr "Finanse" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Pokaż informacjÄ™" #: src/interface.c:758 msgid "Show job exchange" msgstr "Pokaż oferty pracy" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Pokaż oferty pracy" #: src/interface.c:857 msgid "Show last match" msgstr "Relacja z poprzedniego meczu" #: src/interface.c:868 msgid "Show last match stats" msgstr "Statystyka poprzedniego meczu" #: src/options_interface.c:576 msgid "Show live game" msgstr "Pokaż relacjÄ™ na żywo" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Pokaż mecze ze wszystkich lig" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Pokaż mecze z pucharów" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "Pokaż okno wiadomoÅ›ci po meczu, kiedy utworzono wiadomoÅ›ci użytkownika" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Pokaż tylko ostatnie zakÅ‚ady" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Pokaż tylko ostatnie wiadomoÅ›ci" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Pokaż caÅ‚kowitÄ… liczbÄ™ spotkaÅ„/bramek" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Pokaż obrazki nad paskiem postÄ™pu" #: src/interface.c:946 msgid "Show stadium" msgstr "Stadion" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Pokaż pasek akcji" #: src/interface.c:972 msgid "Show the betting window" msgstr "Pokaż okno zakÅ‚adów" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Pokaż listÄ™ dostÄ™pnych ofert pracy" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Lista transferowa (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Ostrzeżenie, gdy kontrakt zawodnika jest krótszy niż " #: src/interface.c:589 msgid "Show youth academy" msgstr "Pokaż szkółkÄ™ mÅ‚odzików" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Poz" #: src/treeview.c:2166 msgid "Skill" msgstr "Poziom" #: src/options_interface.c:686 msgid "Skill " msgstr "Poz " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "PomiÅ„ tygodnie bez meczów użytkownika" #: src/misc_interface.c:249 msgid "Space" msgstr "Spacja" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "Dodatkowy katalog z danymi (używany zamiast domyÅ›lnego)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Szybkość" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsoring" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Oferta sponsoringu" #: src/interface.c:977 msgid "St_ats" msgstr "_Statystyka" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stadion" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Wielkość stadionu" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Koszty stadionu" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "ZarzÄ…dzanie stadionem jest wyłączone w tej definicji kraju." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "BezpieczeÅ„stwo stadionu" #: src/treeview.c:1501 msgid "Stadium status" msgstr "Stan stadionu" #: src/misc_interface.c:266 msgid "Start" msgstr "Start" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "_Nowa gra" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "PoczÄ…tek w tygodniu" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "PoczÄ…tek w tygodniu:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statystyka" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Stan" #: src/options_interface.c:721 msgid "Status " msgstr "Stan " #: src/misc_interface.c:951 msgid "Status:" msgstr "Stan:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Passa" #: src/options_interface.c:1555 #, fuzzy msgid "String" msgstr "NadciÄ…gniÄ™te Å›ciÄ™gno" #: src/main.c:99 msgid "String id of the country to load" msgstr "Identyfikator kraju do wczytania" #: src/callbacks.c:936 msgid "Structure" msgstr "Ustawienie" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Zamiana uaktualnia ustawienie" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Systemowy" #: src/interface.c:427 msgid "Tables" msgstr "Tabele" #: src/treeview2.c:517 msgid "Talent %" msgstr "Talent %" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Drużyna" #: src/options_interface.c:777 msgid "Team " msgstr "Drużyna " #: src/treeview.c:1892 msgid "Team structure" msgstr "Ustawienie drużyny" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Styl gry zostaÅ‚ zmieniony na %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Drużyna1" #: src/treeview2.c:399 msgid "Team2" msgstr "Drużyna2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Testuj plik komentarza XML" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "Bank odmówiÅ‚ udzielenia dalszych pożyczek." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Bukmacher nie pozwala na postawienie kwoty wiÄ™kszej niż %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "Stan bieżącej gry nie zostaÅ‚ zapisany i bÄ™dzie stracony. Kontynuować?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Im wyższa wartość, tym wiÄ™cej komentarzy." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "CzÄ™stość uaktualniania listy ofert wynosi %d tygodni." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Im niższa ta wartość, tym szybciej bÄ™dÄ… przewijane komentarze w relacji na " "żywo." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "WÅ‚aÅ›ciciele klubu %s akceptujÄ… TwojÄ… ofertÄ™." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "WÅ‚aÅ›ciciele klubu %s akceptujÄ… TwojÄ… ofertÄ™. W zwiÄ…zku z tym %s zwalnia ciÄ™ " "i spÄ™dzasz resztÄ™ sezonu, uprawiajÄ…c ogródek." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "WÅ‚aÅ›ciciele klubu %s pod wrażeniem Twoich sukcesów w klubie %s zaproponowali " "Ci pracÄ™. Oto podstawowe wiadomoÅ›ci o %s:" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "WÅ‚aÅ›ciciele klubu %s nie sÄ… zadowoleni z ostatnich wyników drużyny. Podobno " "szukajÄ… nowego menedżera." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "WÅ‚aÅ›ciciele klubu %s odrzucili TwojÄ… ofertÄ™ (%s / %s). Kwota transferu byÅ‚a " "za niska, a %s nie zaakceptowaÅ‚ proponowanej pensji." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "WÅ‚aÅ›ciciele klubu %s odrzucili TwojÄ… ofertÄ™ (%s / %s). Ich zdaniem %s jest " "wart wiÄ™cej." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "WÅ‚aÅ›ciciele klubu %s odrzucili TwojÄ… ofertÄ™ (%s / %s). %s dostaÅ‚ lepszÄ… " "propozycjÄ™." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "WÅ‚aÅ›ciciele klubu %s odrzucili TwojÄ… ofertÄ™. Ich zdaniem nie odniosÅ‚eÅ› " "wystarczajÄ…cych sukcesów." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Ten zawodnik nie widzi przyszÅ‚oÅ›ci w Twojej peÅ‚nej gwiazd drużynie. Nie chce " "negocjować kontraktu." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Zawodnik jest już na liÅ›cie." #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "Zawodnik jest aktualnie zablokowany (wÅ‚aÅ›ciciele rozważajÄ… ofertÄ™)." #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Zawodnik nie jest na liÅ›cie." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Zawodnik ma dobrÄ… passÄ™." #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Zawodnik ma dobrÄ… passÄ™" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Zawodnik jest za stary na szkółkÄ™ mÅ‚odzików." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Zawodnik odmawia dalszych negocjacji." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "Wartość ustawienia %d jest nieprawidÅ‚owa." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "WÅ‚aÅ›ciciele klubu sÄ… bardzo zadowoleni z Twojego zarzÄ…dzania. Ponieważ klub " "zarobiÅ‚ ostatnio mnóstwo pieniÄ™dzy, zdecydowali siÄ™ przeznaczyć ich poÅ‚owÄ™ " "na cele charytatywne." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "WÅ‚aÅ›ciciele klubu zwolnili CiÄ™ z powodu niekompetencji w zarzÄ…dzaniu " "finansami. Na szczęście wÅ‚aÅ›ciciele klubu %s na wieść o Twoim zwolnieniu " "zaproponowali Ci pracÄ™. Oto podstawowe wiadomoÅ›ci o %s:" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "WÅ‚aÅ›ciciele klubu zwolnili CiÄ™ z powodu braku sukcesów. Na szczęście " "wÅ‚aÅ›ciciele klubu %s na wieść o Twoim zwolnieniu zaproponowali Ci pracÄ™. Oto " "podstawowe wiadomoÅ›ci o %s:" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "Okres transferów zostaÅ‚ zakoÅ„czony." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Kilka firm jest zainteresowanych sponsorowaniem Twojej drużyny. ProszÄ™ " "wybrać:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "W drużynie jednego z użytkowników sÄ… zawodnicy pauzujÄ…cy lub kontuzjowani. " "Kontynuować?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "W tej definicji kraju nie ma lig (tylko puchary)." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "W tej definicji kraju nie ma lig ani pucharów z tabelami." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Na razie nie ma jeszcze żadnych sezonów w historii." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Oferty dla zawodnika zostaÅ‚y odrzucone albo zobaczysz je w przyszÅ‚ym " "tygodniu." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Brak miejsc w Twojej szkole mÅ‚odzików." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "Zbyt wiele zmian - maksimum to 3. Przywrócono oryginalny skÅ‚ad." #: src/treeview.c:1518 msgid "Ticket income" msgstr "WpÅ‚ywy z biletów" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Zerwane wiÄ…zadÅ‚o" #: src/training_interface.c:117 msgid "Training" msgstr "Trening" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Obóz treningowy" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "W tej definicji kraju obozy treningowe sÄ… wyłączone." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "Koniec transferów: tydzieÅ„ %d" #: src/window.c:968 msgid "Transfer offer" msgstr "Oferta transferu" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transfery" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "W tej definicji kraju transfery sÄ… wyłączone." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Próbuje ustawić graczy podstawowego skÅ‚adu na ich oryginalnych pozycjach i " "sortuje rezerwowych (Ctrl - R lub Å›rodkowy przycisk)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Rozpakowywanie zapisu gry..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "Użytkownik %s jeszcze nie rozpatrzyÅ‚ Twojej oferty." #: src/interface.c:1013 msgid "User history" msgstr "Historia użytkownika" #: src/window.c:945 msgid "User management" msgstr "ZarzÄ…dzanie użytkownikami" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Użytkownicy -- kliknij, by usunąć" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Wartość" #: src/options_interface.c:749 msgid "Value " msgstr "Wartość " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Szczegółowość" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "W" #. won #: src/team.c:1157 msgid "W " msgstr "Z " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "Z %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Pensja" #: src/options_interface.c:756 msgid "Wage " msgstr "Pensja " #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Stawka" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Stawka/\n" "Zysk/strata" #: src/treeview.c:1522 msgid "Wages" msgstr "PÅ‚ace" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Ty" #: src/treeview.c:2350 msgid "Week" msgstr "TydzieÅ„" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "TydzieÅ„ %d Kolejka %d" #: src/treeview.c:1030 #, fuzzy, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "TydzieÅ„ %d Kolejka %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Rata tygodniowa" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Rata tygodniowa:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Witamy w programie Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "OkreÅ›la, czy 'Zapisz' nadpisuje aktualny plik, czy też wyÅ›wietla okno wyboru " "pliku" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "OkreÅ›la, czy potwierdzać usuniÄ™cie mÅ‚odzików ze szkółki." #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "OkreÅ›la, czy gra ma startować ze zmaksymalizowanym głównym oknem (nie dziaÅ‚a " "z niektórymi menedżerami okien)." #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "OkreÅ›la, czy w widoku tygodniowym widać wszystkie ligi, czy tylko ligi " "użytkownika" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "" "OkreÅ›la, czy zamiana dwóch zawodników ma automatycznie zmieniać ustawienie " "zgodnie z pozycjami zawodników" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "" "OkreÅ›la, czy relacja na żywo ma siÄ™ automatycznie zatrzymywać miÄ™dzy " "poÅ‚owami i przed dogrywkÄ…." #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "" "OkreÅ›la, czy relacja na żywo ma siÄ™ automatycznie zatrzymywać po kontuzji " "zawodnika użytkownika." #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "" "OkreÅ›la, czy relacja na żywo ma siÄ™ automatycznie zatrzymywać po wyrzuceniu " "z boiska zawodnika użytkownika." #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "OkreÅ›la, czy zmiany (np. kontuzjowanych graczy) sÄ… dokonywane automatyczne. " "Jest to automatycznie robione, gdy relacja na żywo jest wyłączone." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "OkreÅ›la, czy gra ma być automatycznie zapisywana co pewien czas." #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "OkreÅ›la, czy zapisać globalne ustawienia do pliku (by zostaÅ‚y przywrócone " "nastÄ™pnym razem)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "OkreÅ›la, czy zapisać ustawienia użytkownika do pliku (by zostaÅ‚y przywrócone " "nastÄ™pnym razem)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "OkreÅ›la, czy ostrzegać przed wystawieniem skÅ‚adu z zawodnikiem pauzujÄ…cym " "lub kontuzjowanym" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "OkreÅ›la, czy potwierdzać wyjÅ›cie z programu, kiedy jej stan nie zostaÅ‚ " "zapisany." #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Czy wyÅ›wietlać mecze pucharowe w oknie zakÅ‚adów" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Czy wyÅ›wietlać mecze pucharowe. TÄ™ opcje można skonfigurować na staÅ‚e w " "oknie ustawieÅ„." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "OkreÅ›la, czy wyÅ›wietlać oferty pracy, gdy użytkownik odnosi sukcesy" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Czy pokazywać mecze we wszystkich ligach w oknie zakÅ‚adów" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Czy pokazywać mecze we wszystkich ligach w oknie zakÅ‚adów. TÄ™ opcje można " "skonfigurować na staÅ‚e w oknie ustawieÅ„." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Czy wyÅ›wietlać tylko Twoje zakÅ‚ady na liÅ›cie ostatnich zakÅ‚adów." #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Czy wyÅ›wietlać obrazki nad paskiem postÄ™pu podczas wczytywania/zapisu oraz " "generowania wyników" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "" "OkreÅ›la, czy wyÅ›wietlać łącznÄ… liczbÄ™ spotkaÅ„/bramek we wszystkich zawodach." #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "OkreÅ›la, czy wyÅ›wietlać ostrzeżenia i inne komunikaty w polu wiadomoÅ›ci." #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "ZwyciÄ™stwo1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "ZwyciÄ™stwo2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "Å»" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Żółte kartki (limit)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Żółte kartki" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Mistrzostwo: %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "SpÅ‚aciÅ‚eÅ› pożyczkÄ™." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "%s: skÅ‚adasz ofertÄ™ ponownie. Poniżej Twoja poprzednia oferta." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "%s: skÅ‚adasz ofertÄ™. Poniżej sugerowana przez Twojego Å‚owcÄ™ talentów opÅ‚ata " "transferowa i pensja." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "%s negocjuje z TobÄ… nowy kontrakt. Uwaga: jeÅ›li %d Twoje propozycje nie " "zostanÄ… przyjÄ™te, zawodnik opuÅ›ci CiÄ™ po zakoÅ„czeniu kontraktu (o ile nie " "sprzedasz go wczeÅ›niej). Można wycofać siÄ™ jedynie przed zÅ‚ożeniem pierwszej " "oferty.\n" "Zalecenia Twojego Å‚owcy talentów poniżej:" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Nie jesteÅ› zadÅ‚użony." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Nie jesteÅ› zadÅ‚użony." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Obstawiasz wynik %d po kursie %.2f. Ile stawiasz?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Możesz spÅ‚acić najwyżej %s" #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Możesz pobrać co najwyżej %s." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "" "Nie możesz starać siÄ™ o pracÄ™ za granicÄ…, jeżeli gra wiÄ™cej niż jeden " "użytkownik." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Twoja drużyna nie może mieć mniej niż %d zawodników." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "Nie można przenieść zawodnika, za maÅ‚o zawodników w drużynie." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Nie możesz proponować nowego kontraktu, jeÅ›li poprzedni jest ważny ponad 2 " "lata." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Nie można grać w Bygfoota bez użytkowników!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Nie można zmienić zawodnika wyrzuconego z boiska." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "" "%s z klubu %s: nie masz wystarczajÄ…cej iloÅ›ci pieniÄ™dzy do kupna tego " "zawodnika." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "%s: nie masz pieniÄ™dzy na kupno zawodnika lub brak miejsca na liÅ›cie " "zawodników." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Nie masz pieniÄ™dzy na spÅ‚atÄ™." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Nie masz pieniÄ™dzy." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "%s: koniec sezonu na miejscu %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Awans: %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Spadek: %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Masz %d tygodni na spÅ‚atÄ™ pozostaÅ‚ej pożyczki." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Masz %d tygodni na spÅ‚atÄ™ pożyczki." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Ponownie przekroczyÅ‚eÅ› limit swojego konta bankowego. PamiÄ™taj, że za " "czwartym razem zostaniesz za to zwolniony.\n" "WÅ‚aÅ›ciciele drużyny dajÄ… Ci %d tygodni na spÅ‚atÄ™ debetu." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "PrzekroczyÅ‚eÅ› limit swojego konta bankowego. WÅ‚aÅ›ciciele drużyny dajÄ… Ci %d " "tygodni na spÅ‚atÄ™ debetu." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Musisz spÅ‚acić pożyczkÄ™ w tym tygodniu." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Nie zÅ‚ożyÅ‚eÅ› oferty dla zawodnika." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Nie wybrano zawodnika." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "%s: porażka w finale z klubem %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "ZaoferowaÅ‚eÅ› transfer %s oraz pensjÄ™ %s za zawodnika: %s. WÅ‚aÅ›ciciele i " "zawodnik przyjÄ™li TwojÄ… ofertÄ™. Czy nadal chcesz kupić zawodnika?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Awans do %s (runda %s): %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "PoczÄ…tek gry: %s, %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "PozostaÅ‚y jeszcze transfery do rozstrzygniÄ™cia." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "%s ma zostać zwolniony. Ponieważ jego kontrakt ma jeszcze %.1f lat, żąda " "rekompensaty w wysokoÅ›ci %s. Zgadzasz siÄ™?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "%s: ZwyciÄ™stwo w finale z klubem %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "OsiÄ…gnÄ…Å‚eÅ› limit %d obozów treningowych w sezonie." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "W przyszÅ‚ym tygodniu stan Twojego konta bankowego musi przekraczać Twój " "limit debetowy." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Twój sponsor jest zadowolony z wyników i chce przedÅ‚użyć kontrakt. Obecnie " "pÅ‚aci %d na tydzieÅ„." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Twój dÅ‚ug:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "NastÄ™pny przeciwnik" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "%s: twoja oferta zostaÅ‚a przyjÄ™ta. JeÅ›li nadal chcesz kupić tego zawodnika, " "przejdź na listÄ™ transferowÄ… i kliknij na zawodniku." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Twoja oferta zostaÅ‚a usuniÄ™ta." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Twoja oferta zostaÅ‚a uaktualniona." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Twoja oferta zostanie rozpatrzona w przyszÅ‚ym tygodniu." #: src/treeview.c:1913 #, fuzzy msgid "Your overall results" msgstr "Twoje wyniki" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Twoja lista zawodników jest peÅ‚na lub nie masz pieniÄ™dzy." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Twoje wyniki" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "Twoja lista jest już peÅ‚na, nie możesz kupować zawodników." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "%s z klubu %s: nie możesz kupować zawodników, Twoja lista jest peÅ‚na." #: src/window.c:890 msgid "Your stadium" msgstr "Twój stadion" #: src/treeview2.c:91 msgid "Your team" msgstr "Twoja drużyna" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Twoja drużyna nie może mieć mniej niż 11 zawodników." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Twoja drużyna w tym tygodniu miaÅ‚a już dosyć obozów treningowych." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "MÅ‚odzik %s uznaÅ‚, że jest wystarczajÄ…co dorosÅ‚y, by dostać prawdziwy " "kontrakt i opuÅ›ciÅ‚ TwojÄ… szkółkÄ™." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "MÅ‚odzik %s niebawem bÄ™dzie za stary dla Twojej szkółki. PrzenieÅ› go do " "drużyny, jeÅ›li nie chcesz, by opuÅ›ciÅ‚ TwojÄ… szkółkÄ™." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Szkółka mÅ‚odzików" #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Szkółka mÅ‚odzików" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Szkółka mÅ‚odzików jest wyłączona w tej definicji kraju." #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Trener mÅ‚odzików" #: src/interface.c:304 msgid "_File" msgstr "_Plik" #: src/interface.c:1059 msgid "_Help" msgstr "Pomo_c" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "_Wczytaj grÄ™" #: src/interface.c:347 msgid "_Options" msgstr "_Ustawienia" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pauza" #: src/interface.c:766 msgid "_Player" msgstr "_Zawodnik" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Kontynuuj" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "Wczytaj _ostatniÄ… grÄ™" #: src/interface.c:460 msgid "_Team" msgstr "_Drużyna" #: src/interface.c:850 msgid "_User" msgstr "_Użytkownik" #: src/treeview.c:1644 msgid "interest rate" msgstr "oprocentowanie" bygfoot-2.3.2/po/POTFILES.in0000644000175000017500000000130711225071373014340 0ustar eliaselias# List of source files containing translatable strings. src/bet.c src/callback_func.c src/callbacks.c src/cup.c src/file.c src/finance.c src/fixture.c src/game.c src/game_gui.c src/interface.c src/league_table_interface.c src/lg_commentary.c src/live_game.c src/load_save.c src/main.c src/misc2_callback_func.c src/misc2_callbacks.c src/misc2_interface.c src/misc3_callbacks.c src/misc3_interface.c src/misc_callback_func.c src/misc_callbacks.c src/misc_interface.c src/news.c src/options_interface.c src/player.c src/support.c src/team.c src/training_callbacks.c src/training_interface.c src/transfer.c src/treeview2.c src/treeview.c src/treeview_helper.c src/user.c src/window.c src/xml.c src/youth_academy.c bygfoot-2.3.2/po/fr.po0000644000175000017500000027062311225071373013543 0ustar eliaselias# French translation of Bygfoot. # Copyright (C) 2005 Gyozo Both # This file is distributed under the same license as the Bygfoot package. # French translatrors # Forjan Frédéric # Alexandre Coutherez # Marc Schneider msgid "" msgstr "" "Project-Id-Version: Bygfoot 2.2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-26 12:12+0200\n" "PO-Revision-Date: 2008-12-18 22:54+0200\n" "Last-Translator: Mihai \n" "Language-Team: French\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/treeview_helper.c:951 #, c-format msgid "" "\n" "Goals/Game %.1f Save %% %.1f" msgstr "" "\n" "Buts/Match %.1f Arrêté %% %.1f" #: src/treeview_helper.c:958 #, c-format msgid "" "\n" "Goals/Game %.1f Shot %% %.1f" msgstr "" "\n" "Buts/Match %.1f Tiré %% %.1f" #: src/game_gui.c:944 msgid "" "\n" "You can also write an email to the authors:\n" msgstr "" "\n" " Vous pouvez aussi écrire un e-mail aux auteurs: \n" #. Company short name. Copy the '&'. #: src/user.c:1027 msgid " & Co." msgstr " & Co." #. Company addition. Copy the '&'. #: src/user.c:1036 msgid " & Daughters" msgstr " & Père" #. Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. #: src/user.c:1034 msgid " & Sons" msgstr " & Fils" #. A goal scored with a free kick. #: src/game.c:1030 msgid " (FK)" msgstr " (CF)" #: src/game_gui.c:822 msgid " (NOTE: If you don't, the game is over for you.)" msgstr "(Note : si vous ne le faites pas, la partie est terminée pour vous.)" #. An own goal #: src/game.c:1033 msgid " (OG)" msgstr " (BC)" #. A goal scored with penalty. #. Penalty shooter. #: src/game.c:1027 src/treeview_helper.c:1218 msgid " (P)" msgstr " (P)" #: src/fixture.c:1803 msgid " -- First leg" msgstr " -- Premier tour" #: src/fixture.c:1806 msgid " -- Replay matches" msgstr " -- Rejouer les matchs" #: src/fixture.c:1801 msgid " -- Second leg" msgstr " -- Deuxième tour" #. Company short name. #: src/user.c:1021 msgid " Assoc." msgstr " Assoc." #: src/options_interface.c:329 msgid " Autosave files " msgstr " Fichiers de sauvegarde automatique " #. Company name. #: src/user.c:1002 msgid " Bank" msgstr " Bank" #. Company addition. #: src/user.c:1038 msgid " Bros." msgstr " Bros." #. Company name. #: src/user.c:998 msgid " Chemicals" msgstr " Produits chimiques" #. Company short name. #: src/user.c:1023 msgid " Co." msgstr " Co." #. Company name. #: src/user.c:984 msgid " Communications" msgstr " Communications" #. Company name. #: src/user.c:990 msgid " Company" msgstr " Société" #. Company short name. #: src/user.c:1029 msgid " Corp." msgstr " Corp." #. Company name. #: src/user.c:1016 msgid " Data Systems" msgstr " Système de données" #. Company name. #: src/user.c:1000 msgid " Energy" msgstr " Energie" #. Company short name. #: src/user.c:1025 msgid " Ent." msgstr " Ent." #. Company name. #: src/user.c:1010 msgid " Financial" msgstr " Finances" #: src/user.c:633 msgid " Fortunately he's got a cousin who can help your team out." msgstr " Heureusement il a un cousin qui peut venir en aide à votre équipe." #. Company short name. #: src/user.c:1031 msgid " Group" msgstr " Groupe" #. Company name. #: src/user.c:986 msgid " Holdings" msgstr " Holdings" #. Company name. #: src/user.c:988 msgid " Industries" msgstr " Industries" #. Company name. #: src/user.c:994 msgid " Labs" msgstr " Laboratoire" #. Company short name, leading to things like 'Marshall Data Systems Ltd.' #: src/user.c:1019 msgid " Ltd." msgstr " S.A." #. Company name. #: src/user.c:1012 msgid " Petroleum" msgstr " Petroleum" #. Company name. #: src/user.c:1004 msgid " Products" msgstr " Produits" #. Company name. #: src/user.c:1014 msgid " Restaurants" msgstr " Restaurants" #: src/interface.c:1220 msgid " Round " msgstr " Tour " #. Company name. #: src/user.c:1008 msgid " Scientific" msgstr " Scientifique" #: src/interface.c:1200 msgid " Season " msgstr " Saison " #. Company name. #: src/user.c:1006 msgid " Software" msgstr " Logiciel" #. Company name. #: src/user.c:982 msgid " Systems" msgstr " Systèmes" #. Company name. #: src/user.c:996 msgid " Technologies" msgstr " Technologies" #. Company name. #: src/user.c:992 msgid " Telecommunications" msgstr " Télécommunications" #: src/interface.c:1210 msgid " Week " msgstr " Semaine " #. Game was decided in extra time. #: src/fixture.c:1075 msgid " e.t." msgstr " a.p." #: src/callback_func.c:466 msgid " less" msgstr " moins" #: src/options_interface.c:527 msgid " months" msgstr " mois" #: src/callback_func.c:464 msgid " more" msgstr " plus" #. Game was decided in penalty shoot-out. #: src/fixture.c:1072 msgid " p." msgstr " p." #: src/misc_interface.c:934 msgid " seats" msgstr " sièges" #. Contract time and money a sponsor pays. #: src/treeview.c:1672 #, c-format msgid "%.1f months / %s" msgstr "%.1f mois / %s" #. A result after extra time. #: src/live_game.c:1854 #, c-format msgid "%d : %d e.t." msgstr "%d : %d p." #. A result after penalties. #: src/live_game.c:1850 #, c-format msgid "%d : %d p." msgstr "%d : %d t.a.b." #: src/training_callbacks.c:121 #, c-format msgid "%d training camps left this season." msgstr "%d des camps d'entraînement encore possible cette saison." #. a match at home #: src/team.c:1080 #, c-format msgid "%s (H) " msgstr "%s (D)" #. a match on neutral ground #: src/team.c:1096 #, c-format msgid "%s (N) " msgstr "%s (N)" #: src/treeview_helper.c:1087 #, c-format msgid "%s (expected recovery in %d weeks)" msgstr "%s (guérison espérée dans %d semaines)" #. A group of a round robin stage of a cup. #: src/treeview.c:1251 #, c-format msgid "%s Group %d" msgstr "%s Groupe %d" #: src/misc2_callback_func.c:214 #, c-format msgid "%s accepts your offer." msgstr "%s accepte votre offre." #: src/news.c:509 #, c-format msgid "%s and %s" msgstr "%s et %s" #: src/news.c:507 #, c-format msgid "%s and %s (%d)" msgstr "%s et %s (%d)" #: src/misc2_callback_func.c:92 #, c-format msgid "%s couldn't afford to buy %s or his roster was full." msgstr "" "%s n'a pas les moyens d'acheter %s ou bien son effectif est au complet." #. Team fires, team in a league. #: src/user.c:834 #, c-format msgid "" "%s fires you because of financial mismanagement.\n" "You find a new job with %s in the %s." msgstr "" "%s vous licencie pour votre mauvaise gestion des finances.\n" "Vous trouvez un nouvel emploi chez %s dans la %s." #. Team fires, team in a league. #: src/user.c:841 #, c-format msgid "" "%s fires you because of unsuccessfulness.\n" "You find a new job with %s in the %s." msgstr "" "%s vous licencie pour manque d'efficacité.\n" "Vous trouvez un nouvel emploi chez %s dans la %s." #: src/transfer.c:567 #, c-format msgid "%s has been added to the transfer list for %d weeks." msgstr "%s a été ajouté à la liste des transferts pour %d semaines." #: src/user.c:558 #, c-format msgid "%s has left your team because his contract expired." msgstr "%s a quitté votre équipe car son contrat a expiré." #. A player from a team has rejected a transfer offer. #: src/user.c:609 #, c-format msgid "" "%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the " "wage you offered." msgstr "" "%s de %s a rejeté votre offre (%s / %s). Il n'était pas satisfait du salaire " "que vous proposiez." #. A player from a team has rejected a transfer offer. #: src/user.c:615 #, c-format msgid "" "%s of %s has rejected your offer because your team has too many star players " "already. 'A player of my caliber doesn't play second fiddle,' he was quoted." msgstr "" "% s de% s a refusé votre offre parce que votre équipe a un trop grand nombre " "de joueurs étoiles déjà. \"Un joueur de mon calibre ne joue pas de deuxième " "violon», il a été cité." #. Team in a league. Leave team. #: src/user.c:848 #, c-format msgid "" "%s offer you a job in the %s.\n" "You accept the challenge and leave %s." msgstr "" "%s vous offre un travail dans la %s.\n" "Vous acceptez le challenge et quittez %s." #: src/misc2_callback_func.c:226 #, c-format msgid "" "%s rejects your offer and won't negotiate with you anymore. You should sell " "him before his contract expires (he'll simply leave your team otherwise)." msgstr "" "%s rejette votre offre et ne négociera plus avec vous. Vous devriez le " "vendre avant que son contrat n'expire (sinon il quittera simplement " "votreéquipe)." #: src/misc2_callback_func.c:221 #, c-format msgid "%s rejects your offer. You may still make %d offers." msgstr "%s rejette votre offre. Vous pouvez encore formuler %d offres." #: src/callbacks.c:1136 #, c-format msgid "%s will shoot penalties and free kicks when he plays." msgstr "%s tirera les pénalty et les coup-francs s'il joue." #: src/callback_func.c:468 #, c-format msgid "" "%s would like to buy %s. They offer %s for him, which is %s than the " "player's value. Do you accept?" msgstr "" "%s voudrait acheter %s. Ils offrent %s pour l'obtenir, ce qui représente %s " "de plus que la valeur du joueur. Acceptez-vous?" #: src/player.c:1243 #, c-format msgid "%s's contract expires in %.1f years." msgstr "Le contrat de %s expire dans %.1f ans." #: src/user.c:630 #, c-format msgid "" "%s's injury was so severe that he can't play football on a professional " "level anymore. He leaves your team." msgstr "" "La blessure de %s est si grave qu'il ne peut plus jouer au football à un " "niveau professionnel. Il quitte votre équipe." #. Yellow cards of a player in a cup/league. No limit means there isn't a limit #. after which the player gets banned for a match automatically. #: src/treeview_helper.c:1028 #, c-format msgid "%s: %d (no limit)\n" msgstr "%s: %d (sans limite)\n" #. Ban info of a player in the format: #. 'Cup/league name: Number of weeks banned' #: src/treeview_helper.c:987 #, c-format msgid "%s: %d weeks\n" msgstr "%s: %d semaines\n" #: src/treeview.c:1658 #, c-format msgid "(starting week %d)" msgstr "(semaine de début %d)" #: src/main.c:134 src/main.c:209 msgid "- a simple and addictive GTK2 football manager" msgstr "- Un jeux de manager de football simple et accrocheur" #: src/misc_interface.c:1071 src/misc_interface.c:1079 #: src/misc_interface.c:1105 src/misc_interface.c:1113 msgid "0" msgstr "0" #: src/misc2_interface.c:660 msgid "1 year" msgstr "1 an" #: src/misc2_interface.c:684 msgid "2 years" msgstr "2 ans" #: src/misc2_interface.c:668 msgid "3 years" msgstr "3 ans" #: src/misc2_interface.c:676 msgid "4 years" msgstr "4 ans " #. a match away #: src/team.c:1086 #, c-format msgid "%s (A) " msgstr "%s (E) " #: src/treeview.c:922 #, c-format msgid "" "There was a fire\n" "in the stadium." msgstr "" "Il y a eu un incendie\n" "dans le stade." #: src/treeview.c:919 #, c-format msgid "" "There were riots\n" "in the stadium." msgstr "" "Il y a eu des émeutes\n" "dans le stade." #: src/treeview.c:916 #, c-format msgid "" "There were technical problems\n" "in the stadium." msgstr "" "Il y a eu des problèmes techniques\n" "dans le stade." #. Copy the stuff, translate in between. #: src/treeview2.c:300 msgid "" "Current bets" msgstr "" "Les paris courants" #. Copy the stuff, translate in between. #: src/treeview2.c:302 msgid "" "Recent bets" msgstr "" "Les paris récents" #: src/treeview.c:1836 src/treeview.c:1841 #, c-format msgid "Week %d Round %d" msgstr "Semaine %d Partie %d" #: src/youth_academy.c:253 msgid "A new youth registered at your youth academy." msgstr "Un nouveau jeune a rejoint votre centre de formation" #: src/youth_academy.c:257 msgid "" "A new youth wanted to registered at your youth academy but there was no room " "for him." msgstr "" "Un nouveau jeune voulait rejoindre votre centre de formation, mais il ne " "reste plus de place pour lui." #: src/treeview_helper.c:1649 msgid "ADD LAST MATCH" msgstr "AJOUTER LE DERNIER MATCH" #: src/lg_commentary.c:541 src/team.c:626 msgid "ALL OUT ATTACK" msgstr "ATTAQUE TOTALE" #: src/lg_commentary.c:529 src/team.c:618 msgid "ALL OUT DEFEND" msgstr "DÉFENSE TOTALE" #. Boost value. #: src/lg_commentary.c:544 src/team.c:634 msgid "ANTI" msgstr "ANTI" #: src/lg_commentary.c:538 src/team.c:624 msgid "ATTACK" msgstr "ATTAQUE" #: src/interface.c:1066 src/misc2_interface.c:1092 msgid "About" msgstr "À propos" #: src/misc_interface.c:1345 msgid "Accept" msgstr "Accepter" #: src/game_gui.c:818 msgid "Accept?" msgstr "Accepter?" #: src/interface.c:1035 msgid "Add last match" msgstr "Ajouter le dernier match" #: src/interface.c:1038 msgid "Add last recorded match to the current memorable matches file." msgstr "" "Ajouter le dernier match enregistré dans le fichier des matchs mémorables " "courant." #: src/misc2_interface.c:899 src/misc_interface.c:191 msgid "Add user" msgstr "Ajouter un utilisateur" #: src/misc2_callbacks.c:162 msgid "Adjust repayment schedule?" msgstr "Ajustez calendrier de remboursement?" #: src/treeview.c:325 src/treeview.c:2170 msgid "Age" msgstr "Age" #: src/options_interface.c:735 msgid "Age " msgstr "Age " #: src/window.c:399 msgid "All Files" msgstr "Tous les fichiers" #: src/interface.c:502 msgid "All Out Attack" msgstr "Tout en attaque" #: src/interface.c:478 msgid "All Out Defend" msgstr "Tout en défense" #: src/options_interface.c:1199 msgid "Always show news window after a matchday" msgstr "Toujours afficher la nouvelle fenêtre, après une journée" #: src/options_interface.c:559 msgid "Always store/restore your default team" msgstr "" #: src/options_interface.c:562 msgid "Always store/restore your default team before/after a match" msgstr "" #: src/interface.c:692 msgid "Anti" msgstr "Anti" #: src/interface.c:658 msgid "Any" msgstr "Tous" #: src/options_interface.c:1569 msgid "Appearance" msgstr "" #: src/game_gui.c:818 msgid "Apply for the job?" msgstr "Postuler pour le poste?" #: src/callbacks.c:243 msgid "At least one user didn't take his turn this week. Continue?" msgstr "Au moins un joueur n'a pas joué ce tour. Continuer quand même?" #: src/game_gui.c:942 msgid "" "At the Bygfoot forums you can report bugs, ask for help and discuss the " "game:\n" msgstr "" "Dans le forum de Bygfoot, vous pouvez rapporter des bugs, demander de l'aide " "ou discuter du jeu:\n" #: src/interface.c:496 src/treeview.c:1778 msgid "Attack" msgstr "Attaque" #: src/treeview.c:908 #, c-format msgid "" "Attendance\n" "%s" msgstr "" "Spectateurs\n" "%s" #: src/options_interface.c:1014 msgid "Attribute " msgstr "Attribut " #: src/interface.c:957 src/misc3_interface.c:543 src/window.c:1015 msgid "Automatic loan repayment" msgstr "Remboursement automatique des prêts" #: src/options_interface.c:1196 msgid "Automatic popup" msgstr "Popup automatique" #: src/treeview.c:1653 msgid "Automatic repayment" msgstr "Remboursement automatique" #: src/options_interface.c:621 msgid "Automatic substitutions" msgstr "Changements automatiques" #: src/options_interface.c:443 msgid "Autosave" msgstr "Sauvegarde automatique" #: src/options_interface.c:318 msgid "Autosave interval " msgstr "Intervale de sauvegarde auto " #: src/misc_interface.c:624 msgid "Av. skill: " msgstr "Eff. moy.: " #: src/interface.c:1320 msgid "Av. skills: " msgstr "Eff. moy.: " #. Average skill #: src/treeview.c:179 msgid "Av.Sk." msgstr "Ef.Mo." #: src/treeview2.c:516 msgid "Av.skill" msgstr "Eff. moy" #: src/misc2_interface.c:863 msgid "Available teams" msgstr "Équipes disponibles" #: src/interface.c:531 src/interface.c:566 src/interface.c:615 msgid "Average" msgstr "Moyen" #: src/misc_interface.c:985 msgid "Average attendance" msgstr "Fréquentation moyenne" #: src/misc_interface.c:992 msgid "Average attendance %" msgstr "Fréquentation moyenne %" #: src/treeview.c:1884 msgid "Average skill" msgstr "Efficacité moyenne" #: src/misc2_interface.c:173 msgid "Average skill:" msgstr "Efficacité moyenne:" #: src/treeview.c:1851 msgid "Away" msgstr "Extérieur" #: src/lg_commentary.c:535 src/team.c:622 msgid "BALANCED" msgstr "ÉQUILIBRÉ" #: src/treeview_helper.c:1377 #, c-format msgid "BAN(%d)" msgstr "EXC(%d)" #: src/interface.c:1138 msgid "Back to main menu (Esc)" msgstr "Retour à la fenêtre principale (Esc)" #: src/misc_interface.c:288 msgid "Back to splash" msgstr "Retour au démarrage" #: src/interface.c:537 src/interface.c:572 src/interface.c:621 msgid "Bad" msgstr "Mauvais" #. Finances balance. #: src/treeview.c:1580 msgid "Balance" msgstr "Balance" #: src/interface.c:490 msgid "Balanced" msgstr "Équilibré" #: src/treeview.c:2179 msgid "Banned\n" msgstr "Exclu\n" #: src/interface.c:1169 msgid "Begin a new week (Space)" msgstr "Commencer une nouvelle semaine (Espace)" #: src/interface.c:519 src/interface.c:554 src/interface.c:603 msgid "Best" msgstr "Meilleur" #: src/treeview.c:2419 msgid "Best defensive teams" msgstr "Meilleures défenses" #: src/treeview.c:2422 msgid "Best goal scorers" msgstr "Meilleurs buteurs" #: src/treeview.c:2423 msgid "Best goalkeepers" msgstr "Meilleurs gardiens" #: src/treeview.c:2418 msgid "Best offensive teams" msgstr "Meilleures attaques" #: src/interface.c:969 src/options_interface.c:1084 src/treeview.c:1520 #: src/treeview.c:1530 src/window.c:992 msgid "Betting" msgstr "Parier" #: src/misc3_interface.c:61 msgid "Betting -- Left click on odd to place or remove bet" msgstr "Parier -- Clic gauche pour ajouter ou retirer un pari" #: src/treeview.c:1553 msgid "Bi-weekly balance" msgstr "Balance bi-hebdomadaire" #: src/treeview.c:1546 src/treeview.c:1549 #, c-format msgid "" "Bi-weekly balance\n" "(Week %d and %d)" msgstr "" "Balance bi-hebdomadaire\n" "(Semaine %d et %d)" #: src/interface.c:669 msgid "Boost" msgstr "Boost" #: src/callbacks.c:133 src/game_gui.c:468 src/misc_callbacks.c:560 msgid "Boost ON is disabled in this country definition." msgstr "Boost ON désactivé dans cette définition de pays." #: src/team.c:672 #, c-format msgid "Boost changed to %s (costs %d per minute)." msgstr "Boost changé en %s.(coûte %d par minute)." #: src/team.c:677 #, c-format msgid "Boost changed to %s." msgstr "Boost changé en %s." #. Applying boost costs money. #: src/treeview.c:1532 msgid "Boost costs" msgstr "Coûts du boost" #: src/player.c:1430 msgid "Broken ankle" msgstr "Cheville brisée" #: src/player.c:1433 msgid "Broken arm" msgstr "Bras cassé" #: src/player.c:1427 msgid "Broken leg" msgstr "Jambe cassée" #: src/player.c:1424 msgid "Broken rib" msgstr "Côte cassée" #: src/player.c:1436 msgid "Broken shoulder" msgstr "Épaule brisée" #: src/interface.c:842 msgid "Browse players" msgstr "Parcourir les joueurs" #: src/interface.c:745 msgid "Browse teams" msgstr "Parcourir les équipes" #: src/window.c:393 msgid "Bygfoot Memorable Matches" msgstr "Matchs Mémorables Bygfoot" #: src/misc3_interface.c:790 src/window.c:1023 msgid "Bygfoot News" msgstr "Nouvelle Bygfoot" #: src/window.c:387 msgid "Bygfoot Save Files" msgstr "Fichiers de sauvegardes de Bygfoot" #: src/window.c:1031 #, fuzzy msgid "Bygfoot constants" msgstr "Coûts du boost" #: src/misc2_interface.c:982 msgid "" "Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY " "(otherwise your CPU will be destroyed by overheating)." msgstr "" "Fenêtre de débogage de Bygfoot. Si vous êtes arrivé ici par accident, FERMEZ " "CETTE FENÊTRE IMMÉDIATEMENT (autrement votre ordinateur chauffera jusqu'à " "l'autodestruction)." #: src/game_gui.c:940 msgid "" "Bygfoot is a very intuitive and simple game, so there isn't a full-grown " "documentation. However, if you have trouble, there are a few places to go.\n" msgstr "" "Bygfoot est un jeu particulièrement simple et intuitif. Vous ne devriez pas " "avoir besoin d'une documentation complète. Cependant, si vous rencontrez des " "difficultés, voici des endroits où vous pourrez vous adresser.\n" #. Current position of a player. #: src/treeview.c:306 msgid "CPos" msgstr "PosA" #: src/options_interface.c:665 msgid "CPos " msgstr "PosA " #. Current skill of a player. #: src/treeview.c:310 msgid "CSk" msgstr "EfA" #: src/options_interface.c:679 msgid "CSkill " msgstr "EffAc " #: src/misc3_interface.c:679 msgid "Calculate start week" msgstr "Calculez le semaine de début" #: src/misc3_interface.c:657 msgid "Calculate weekly installment" msgstr "Calculez le versement hebdomadaire" #: src/training_interface.c:84 msgid "Camp points" msgstr "Points du camp" #: src/misc_interface.c:1053 msgid "Capacity (seats)" msgstr "Capacité (sièges)" #: src/options_interface.c:728 msgid "Cards " msgstr "Cartons " #: src/treeview.c:2182 msgid "Career values" msgstr "Valeurs de carrière" #: src/misc_interface.c:729 msgid "" "Change commentary verbosity. The higher this value the more events you can " "see." msgstr "" "Changer le niveau de détail des commentaires. Plus le valeur est haute, plus " "vous pourrez voir d'évènements." #: src/misc_interface.c:707 msgid "Change live game speed. The higher the value the faster the live game." msgstr "" "Changer la vitesse du jeu live. Plus la valeur est basse plus le jeu va vite." #: src/misc_interface.c:1017 msgid "Change ticket price" msgstr "Changez le prix des billets" #: src/misc_interface.c:97 msgid "Choose country" msgstr "Choisissez un pays" #: src/misc_interface.c:1241 msgid "Choose file" msgstr "Choisissez le fichier" #: src/options_interface.c:480 msgid "Choose game language (might not work in Windows versions)" msgstr "Choisir la langue du jeu (peut ne pas marcher dans la version Windows)" #: src/misc_interface.c:146 msgid "Choose league to start in" msgstr "Niveau (division) initial" #: src/misc_interface.c:107 msgid "Choose team" msgstr "Choisissez une équipe" #: src/misc_interface.c:159 msgid "Choose username" msgstr "Nom du joueur" #: src/game_gui.c:815 msgid "Click on OK to apply for the job. Click on CANCEL to close the window." msgstr "" "Cliquer sur OK pour candidater. Cliquer sur \"Annuler\" pour fermer la " "fenêtre." #: src/misc2_interface.c:857 msgid "Click on a user to remove him from the game." msgstr "Cliquer sur un utilisateur pour le retirer du jeu." #: src/misc_interface.c:126 msgid "Click on a user to remove him." msgstr "Cliquer sur un utilisateur pour le retirer." #: src/options_interface.c:1640 #, fuzzy msgid "Close" msgstr "PosA" #: src/options_interface.c:1623 msgid "" "Close window. Changes will only be saved for the current session, unless you " "also save to file." msgstr "" #: src/misc_interface.c:573 msgid "Commentary" msgstr "Commentaire" #: src/main.c:115 msgid "Commentary event to test; leave out to test all commentaries" msgstr "Commentaire d'évènement à tester; laisse vide pour tous les tests." #: src/main.c:106 msgid "Commentary file name (may be in a support dir)" msgstr "Fichier de commentaires (peut-être dans le répertoire \"support\")" #: src/treeview.c:3017 msgid "Company" msgstr "Compagnie" #. Money paid to players a user fired. #: src/treeview.c:1529 msgid "Compensations" msgstr "Compensation" #: src/treeview2.c:94 src/treeview2.c:211 msgid "Competition" msgstr "Compétition" #: src/load_save.c:160 msgid "Compressing savegame..." msgstr "Compression de la sauvegarde..." #: src/player.c:1409 msgid "Concussion" msgstr "Commotion" #: src/misc2_interface.c:473 msgid "Confirm & schedule repayment" msgstr "Confirmez & calendrier le remboursement" #: src/options_interface.c:256 msgid "Confirm quit when not saved" msgstr "Confirmer quitter si non sauvegardé" #: src/options_interface.c:498 msgid "Confirm removing youths" msgstr "Confirmation de la suppression de jeunes du centre de formation" #: src/options_interface.c:261 msgid "Confirm when unfit" msgstr "Confirmer si inutilisable" #: src/misc_interface.c:1142 msgid "Confirm!" msgstr "Confirmez!" #: src/options_interface.c:353 msgid "Constants file" msgstr "Fichier des constantes" #: src/treeview.c:330 src/treeview.c:2174 msgid "Contract" msgstr "Contrat" #: src/options_interface.c:763 msgid "Contract " msgstr "Contrat " #: src/treeview.c:1674 msgid "Contract / Money" msgstr "Contrat / Argent" #: src/treeview.c:3018 msgid "" "Contract length\n" "(Months)" msgstr "" "Durée de contrat\n" "(Mois)" #: src/window.c:937 msgid "Contract offer" msgstr "Offre de contrat" #: src/callbacks.c:1017 msgid "Contracts are disabled in this country definition." msgstr "Les contrats sont désactivés dans cette définition de pays." #: src/interface.c:1074 src/misc2_interface.c:1106 src/misc3_interface.c:237 msgid "Contributors" msgstr "Contributeurs" #: src/file.c:384 #, c-format msgid "Copying %s" msgstr "Copie de %s" #: src/misc_interface.c:1067 src/misc_interface.c:1101 #: src/training_interface.c:103 msgid "Costs" msgstr "Coûts" #: src/support.c:96 src/support.c:120 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "Impossible de trouver l'image: %s" #: src/treeview2.c:95 src/treeview2.c:515 msgid "Country" msgstr "Pays" #: src/options_interface.c:1167 msgid "Create cup news" msgstr "Créer nouvelle pour la tasse" #: src/options_interface.c:1171 msgid "Create league news" msgstr "Créer nouvelles de ligue" #: src/options_interface.c:1163 msgid "Create user news" msgstr "Créer nouvelle pour l'utilisateur" #: src/misc3_interface.c:331 msgid "Ctrl-N" msgstr "Ctrl-N" #: src/misc3_interface.c:355 msgid "Ctrl-O" msgstr "Ctrl-O" #: src/misc3_interface.c:379 msgid "Ctrl-R" msgstr "Ctrl-R" #: src/treeview.c:2591 msgid "Cup champions" msgstr "Champions de coupe" #: src/callbacks.c:478 msgid "Cup has no tables." msgstr "Ce coupe n'a pas de tables." #: src/misc_interface.c:965 msgid "Current capacity" msgstr "Capacité actuelle" #: src/misc2_interface.c:1338 msgid "Current file" msgstr "Fichier courant" #: src/treeview.c:2829 msgid "Current league" msgstr "Ligue actuelle" #: src/treeview.c:1637 msgid "Current market interest" msgstr "L'intérêt du marché actuel" #: src/treeview.c:2165 msgid "Current position" msgstr "Position actuelle" #: src/misc_interface.c:978 msgid "Current safety" msgstr "Sécurité actuelle" #: src/misc3_interface.c:568 msgid "Current settings:" msgstr "Paramètres d'utilisateur actuelle:" #: src/treeview.c:2167 msgid "Current skill" msgstr "Efficacité actuelle" #. Defender #: src/treeview_helper.c:1506 msgid "D" msgstr "D" #: src/lg_commentary.c:532 src/team.c:620 msgid "DEFEND" msgstr "DÉFENDRE" #: src/treeview.c:1645 #, c-format msgid "Debt (repay in %d weeks)" msgstr "Dette (remboursement dans %d semaines)" #: src/misc2_interface.c:975 msgid "Debug" msgstr "Déboguage" #: src/misc2_interface.c:1251 msgid "Decide later" msgstr "Décider plus tard" #: src/options_interface.c:1098 msgid "Default hotel" msgstr "Hotel par défaut" #: src/options_interface.c:1121 msgid "Default recreation:" msgstr "Loisir par défaut" #: src/options_interface.c:1141 msgid "Default training:" msgstr "Formation par défaut" #: src/options_interface.c:1073 msgid "Default wager" msgstr "Pari par défaut" #: src/interface.c:484 src/treeview.c:1776 msgid "Defend" msgstr "Défense" #: src/interface.c:640 msgid "Defenders" msgstr "Défenseurs" #. Splash screen hint question. #: src/misc3_interface.c:259 msgid "Did you know?" msgstr "Le saviez vous ?" #: src/treeview.c:2769 msgid "Didn't find file 'bygfoot_help'." msgstr "Fichier 'bygfoot_help' introuvable." #: src/callbacks.c:1330 msgid "Do you really want to kick the poor boy out of your academy?" msgstr "" "Voulez-vous vraiment renvoyer ce pauvre garçon de votre centre de formation?" #: src/misc_interface.c:218 msgid "Don't load definitions" msgstr "Ne charger aucune définition" #: src/misc_interface.c:221 msgid "Don't load team definitions at all" msgstr "Ne charger aucune définition d'équipe" #: src/load_save.c:169 src/load_save.c:319 msgid "Done." msgstr "Fait." #: src/treeview2.c:396 msgid "Draw" msgstr "Nul" #: src/treeview.c:1633 msgid "Drawing credit" msgstr "Crédit" #. Games drawn. #. Draw. #: src/treeview.c:1390 src/treeview_helper.c:1756 msgid "Dw" msgstr "N" #. draw #: src/team.c:1150 msgid "Dw " msgstr "N " #. a drawn match #: src/team.c:1070 #, c-format msgid "Dw %d : %d" msgstr "Nul %d : %d" #: src/options_interface.c:742 msgid "ETal " msgstr "TalE" #: src/treeview2.c:70 msgid "EXPORT" msgstr "EXPORTER" #: src/options_interface.c:432 msgid "Edit" msgstr "" #: src/interface.c:829 src/interface.c:2038 #, fuzzy msgid "Edit name" msgstr "Nom de la police de caractères" #: src/options_interface.c:418 #, fuzzy msgid "Edit the constants used in the game" msgstr "Recharger le fichier des constantes" #: src/callbacks.c:935 msgid "Enter a structure. The digits must sum up to 10." msgstr "Entrer une formation. La somme des chiffres doit faire 10." #: src/interface.c:720 msgid "Enter custom structure" msgstr "Entrer une structure personnalisée" #: src/window.c:865 msgid "Erm..." msgstr "Euh..." #: src/misc2_interface.c:480 src/misc2_interface.c:577 #: src/misc2_interface.c:1139 src/misc2_interface.c:1234 #: src/misc3_interface.c:107 src/misc3_interface.c:403 #: src/misc3_interface.c:816 src/misc_interface.c:296 #: src/misc_interface.c:1149 src/options_interface.c:1237 msgid "Esc" msgstr "Ech" #: src/misc_interface.c:647 msgid "Esc / Return / Space" msgstr "Ech / Entrée / Espace" #: src/treeview.c:2169 msgid "Estimated talent" msgstr "Talent estimé" #. Estimated talent of a player. #: src/treeview.c:327 msgid "Etal" msgstr "TalE" #: src/treeview.c:2378 msgid "Event" msgstr "Évènement" #: src/misc_interface.c:1075 src/misc_interface.c:1109 msgid "Expected duration" msgstr "Durée estimée" #: src/treeview.c:1704 msgid "Expenses" msgstr "Dépenses" #. Forward #: src/treeview_helper.c:1522 msgid "F" msgstr "F" #: src/interface.c:398 msgid "F_igures" msgstr "Résultats (_i)" #: src/callback_func.c:574 src/callback_func.c:582 msgid "Fee" msgstr "Montant" #. Live game tokens are strings like _AT_ in live game commentary files #. which will be filled in by the program during runtime; e.g. _AT_ becomes #. the attendace for the match. #: src/main.c:112 msgid "File containing live game tokens (may be in a support dir)" msgstr "" "Fichier contenant les balises de jeux en direct (peut-être dans le " "répertoire \"support\")" #: src/options_interface.c:392 msgid "" "File containing settings which determine a lot of aspects of the game " "behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING." msgstr "" "Le fichier contient des paramètres qui détermine beaucoup des aspects du " "jeu. NE CHANGEZ RIEN SAUF SI VOUS SAVEZ CE QUE VOUS FAITES." #: src/interface.c:928 msgid "Fin_Stad" msgstr "$ Stade" #: src/cup.c:1105 msgid "Final" msgstr "Finale" #: src/callbacks.c:1485 src/callbacks.c:1513 msgid "Finances are disabled in this country definition." msgstr "Les finances sont désactivées dans cette définition de pays." #: src/interface.c:805 src/interface.c:2026 msgid "Fire" msgstr "Renvoyer" #: src/interface.c:1314 msgid "" "First value: average current skill of the first 11 players. Second value: " "average skill of all players." msgstr "" "Première valeur : moyenne de l'efficacité actuelle des 11 premiers joueurs. " "Deuxième valeur : moyenne de l'efficacité de tous les joueurs." #: src/training_interface.c:168 src/treeview.c:2943 msgid "First-Class Hotel" msgstr "Hôtel 2 étoiles" #. Fitness of a player. #: src/treeview.c:314 msgid "Fit" msgstr "For" #: src/treeview.c:2168 msgid "Fitness" msgstr "Forme" #: src/options_interface.c:693 msgid "Fitness " msgstr "Forme " #: src/interface.c:416 msgid "Fixtures (competitions)" msgstr "Rencontres (compétitions)" #: src/interface.c:405 msgid "Fixtures (week)" msgstr "Rencontres (semaine)" #: src/options_interface.c:1541 msgid "Float" msgstr "" #: src/options_interface.c:379 msgid "Font name" msgstr "Nom de la police de caractères" #: src/options_interface.c:365 src/options_interface.c:473 msgid "Font used in treeviews" msgstr "Police de caractères" #: src/interface.c:652 msgid "Forwards" msgstr "Attaquants" #: src/treeview.c:840 msgid "Fouls" msgstr "Fautes" #: src/player.c:1421 msgid "Fractured ankle" msgstr "Cheville fracturée" #. Goalie #: src/treeview_helper.c:1498 msgid "G" msgstr "B" #. Goals against. #: src/treeview.c:1396 msgid "GA" msgstr "BC" #. Goal difference. #: src/treeview.c:1398 msgid "GD" msgstr "DB" #. Goals for. #: src/treeview.c:1394 msgid "GF" msgstr "BP" #. Games of a player. #: src/treeview.c:316 msgid "Ga" msgstr "Ma" #: src/options_interface.c:564 msgid "Gameplay" msgstr "Gameplay" #: src/treeview_helper.c:931 msgid "Games" msgstr "Matchs" #: src/options_interface.c:700 msgid "Games " msgstr "Matchs " #: src/treeview.c:2175 msgid "Games/Goals\n" msgstr "Matchs/Buts\n" #: src/options_interface.c:486 msgid "Global" msgstr "Général" #. Goals of a player. #. Goals. #: src/treeview.c:320 src/treeview.c:2480 msgid "Go" msgstr "Bu" #: src/misc_interface.c:274 msgid "Go back to the splash screen" msgstr "Retour à l'écran de démarrage" #. Goals per game. #: src/treeview.c:2482 msgid "Go/Ga" msgstr "Bu/Ma" #: src/treeview.c:1775 msgid "Goalie" msgstr "Gardiens de but" #: src/interface.c:634 msgid "Goalies" msgstr "Gardiens de but" #: src/treeview.c:1900 src/treeview.c:2446 src/treeview_helper.c:932 msgid "Goals" msgstr "Buts" #: src/options_interface.c:714 msgid "Goals " msgstr "Buts" #. 'Normal' goals, ie. no penalties or free kicks. #: src/treeview.c:835 msgid "Goals (regular)" msgstr "Buts (normaux)" #: src/interface.c:525 src/interface.c:560 src/interface.c:609 msgid "Good" msgstr "Bon" #: src/training_interface.c:161 src/treeview.c:2940 msgid "Good Hotel" msgstr "Hôtel sans étoile" #: src/player.c:1418 msgid "Groin injury" msgstr "Blessure au visage" #: src/player.c:1415 msgid "Hamstring" msgstr "Élongation" #: src/user.c:583 #, c-format msgid "Have a look at the transfer list, there's an offer for %s." msgstr "Jetez un oeil à la liste des transfers, il y a une offre pour %s." #: src/league_table_interface.c:49 msgid "Headline" msgstr "Titre" #: src/treeview.c:2171 msgid "Health" msgstr "Santé" #: src/interface.c:1082 src/misc2_interface.c:1132 msgid "Help" msgstr "Aide" #: src/treeview.c:1849 msgid "Home" msgstr "Domicile" #: src/main.c:118 msgid "How many commentaries to generate per event" msgstr "Combien de commentaires à générer par évènement." #: src/options_interface.c:456 msgid "How many digits after the comma there are for skill etc." msgstr "" "Nombre de chiffres après la virgule pour les attributs des joueurs, etc." #: src/options_interface.c:337 msgid "How many files the autosave uses" msgstr "Nombre de fichiers utilisés par la sauvegarde automatique" #: src/options_interface.c:1081 msgid "How much you wager by default" msgstr "Prix du pari par défaut" #: src/options_interface.c:326 msgid "How often the game is saved automatically" msgstr "À quelle fréquence le jeu est-il sauvegardé automatiquement" #: src/options_interface.c:465 msgid "" "How often the player list gets refreshed during a live game (in live game " "minutes)" msgstr "" "Fréquence du rafraichissement de la liste des joueurs pendant un match en " "direct (en minutes de temps de jeu)" #: src/treeview_helper.c:1363 #, c-format msgid "INJ(%d)" msgstr "BLS(%d)" #: src/options_interface.c:299 msgid "" "If checked, weeks without user teams playing are calculated automatically " "(without the user having to press 'New week')" msgstr "" "Si activé, les semaines sans équipes d'utilisateurs impliquées seront " "calculées automatiquement (sans que l'utilisateur doive appuyer sur " "'Nouvelle semaine')" #: src/misc_interface.c:1352 msgid "" "If you don't like any of the sponsors, you can go a few weeks without " "sponsor and wait for new offers." msgstr "" "Si vous n'apréciez aucun sponsor, vous pouvez attendre quelques semaines " "sans sponsor et attendre de nouvelles offres." #: src/misc2_interface.c:1389 msgid "Import file" msgstr "importer un fichier" #: src/misc2_interface.c:1375 msgid "Import the matches from a memorable matches file" msgstr "Importer les matchs depuis un fichier de matchs mémorables" #: src/treeview.c:1493 src/window.c:654 #, c-format msgid "" "Improvement in progress.\n" "%d seats and %d%% safety still to be done.\n" "Expected finish: %d weeks." msgstr "" "Améliorations en cours.\n" "%d sièges et %d%% de sécurité à ajouter.\n" "Durée des travaux: %d semaines." #: src/treeview.c:1703 msgid "Income" msgstr "Revenu" #: src/misc_interface.c:1041 msgid "Increase" msgstr "Augmentation" #: src/treeview.c:843 msgid "Injuries" msgstr "Blessures" #: src/options_interface.c:1527 msgid "Integer" msgstr "" #: src/callbacks.c:1496 msgid "It's too late in the season for automatic loan repayment." msgstr "" "Il est trop tard dans la saison pour le remboursement automatique du prêt." #: src/misc2_interface.c:70 src/window.c:898 msgid "Job offer" msgstr "Offre d'emploi" #: src/interface.c:370 msgid "Job offers" msgstr "Offres d'emploi" #: src/game_gui.c:898 #, c-format msgid "Job offers set to %s." msgstr "Offres d'emploi réglées à %s." #: src/treeview.c:1527 msgid "Journey costs" msgstr "Coûts de déplacement" #: src/interface.c:2100 msgid "Kick out of academy" msgstr "Renvoyer du centre de formation" #. Games lost. #. Lost. #: src/treeview.c:1392 src/treeview_helper.c:1749 msgid "L" msgstr "P" #. lost #: src/team.c:1154 msgid "L " msgstr "P " #. a lost match #: src/team.c:1065 #, c-format msgid "L %d : %d" msgstr "P %d : %d" #: src/interface.c:319 msgid "L_oad last save" msgstr "Charger et sauvegarder (L_)" #: src/options_interface.c:436 msgid "Language" msgstr "Langue" #: src/main.c:101 msgid "Language to use (a code like 'de')" msgstr "Langue à utiliser (un code de type 'fr')" #. A cup stage, e.g. Last 32 when there are only 32 teams left. #: src/cup.c:1102 #, c-format msgid "Last %d" msgstr "Dernier %d" #: src/load_save.c:218 msgid "Last save file not found." msgstr "Dernière sauvegarde introuvable." #: src/treeview.c:1898 msgid "Latest results" msgstr "Dernier résultats" #: src/misc2_interface.c:102 src/treeview2.c:514 src/treeview.c:170 #: src/treeview.c:332 src/treeview.c:780 msgid "League" msgstr "Ligue" #: src/options_interface.c:770 msgid "League " msgstr "Ligue " #: src/treeview.c:2590 msgid "League champions" msgstr "Champions de ligue" #: src/interface.c:991 msgid "League stats" msgstr "Statistiques du championnat" #: src/league_table_interface.c:39 msgid "League table" msgstr "Tableau de la ligue" #: src/callbacks.c:213 msgid "Left click to make an offer. Right click to remove offer." msgstr "Clic gauche pour faire une offre. Clic droit pour retirer une offre." #: src/callback_func.c:930 msgid "" "Left click to move players to and from the youth academy; right click for " "context menu." msgstr "" "Clic gauche pour déplacer les joueurs vers et depuis le centre de formation, " "clic droit pour le menu contextuel." #: src/callbacks.c:748 msgid "Left click to show fixtures." msgstr "Cliquez a gauche pur afficher les planifications." #: src/callbacks.c:708 msgid "Left click to show table." msgstr "Cliquez a gauche pur afficher la table." #: src/callbacks.c:1518 msgid "" "Left-click: get loan; Right-click: pay back; Middle click: stadium window." msgstr "" "Clic gauche : obtenir un prêt ; clic droit : rembourser ; clic du milieu : " "stade." #: src/options_interface.c:1021 msgid "List 1 " msgstr "Liste 1" #: src/options_interface.c:1028 msgid "List 2" msgstr "Liste 2" #: src/interface.c:375 src/misc_interface.c:500 src/options_interface.c:650 msgid "Live game" msgstr "Match en direct" #: src/game_gui.c:907 #, c-format msgid "Live game set to %s." msgstr "Matchs en direct réglés à %s." #: src/options_interface.c:589 msgid "Live game speed factor" msgstr "Vitesse des matchs en direct" #: src/options_interface.c:596 msgid "Live game verbosity" msgstr "Niveau de verbosité des matchs en direct" #: src/interface.c:1098 msgid "Load game (Ctrl - O)" msgstr "Charger le jeu (Ctrl - O)" #: src/main.c:94 msgid "Load last savegame" msgstr "Charger la dernier partie sauvegardée" #: src/misc_interface.c:214 msgid "Load only the player names in the definition files" msgstr "" "Charger uniquement les noms de joueurs dans les fichiers de définitions" #: src/misc_interface.c:204 msgid "Load team definitions" msgstr "Charger les définitions d'équipes" #: src/misc_interface.c:207 msgid "" "Load teams from definition files (note that the official Bygfoot package " "doesn't contain team definition files, you have to get them from the " "homepage or via the bygfoot-update script)" msgstr "" "Charger les équipes à partir des fichiers de définitions (notez que le " "paquetage officiel de Bygfoot ne contient aucune définition, vous devez les " "récupérer sur le site web ou avec le script bygfoot-update)" #: src/xml.c:123 #, c-format msgid "Loading cup: %s" msgstr "Chargement de la coupe: %s" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:291 msgid "Loading job exchange..." msgstr "Chargement des offres d'emploi..." #: src/xml.c:92 #, c-format msgid "Loading league: %s" msgstr "Chargement de la ligue: %s" #: src/load_save.c:250 msgid "Loading leagues and cups..." msgstr "Chargement des championnats et coupes..." #: src/load_save.c:311 msgid "Loading miscellaneous..." msgstr "Chargement du reste..." #: src/load_save.c:301 msgid "Loading newspaper..." msgstr "Chargement des journales..." #: src/load_save.c:236 msgid "Loading options..." msgstr "Chargement des options..." #: src/load_save.c:280 msgid "Loading season stats..." msgstr "Chargement des statistiques de saison..." #: src/load_save.c:270 msgid "Loading transfer list..." msgstr "Chargement de la liste de transferts" #: src/load_save.c:260 msgid "Loading users..." msgstr "Chargement des utilisateurs..." #: src/callback_func.c:397 msgid "Loan" msgstr "Emprunt" #. Midfielder #: src/treeview_helper.c:1514 msgid "M" msgstr "M" #: src/misc2_interface.c:747 msgid "Make offer" msgstr "Faire une offre" #: src/interface.c:1047 msgid "Manage matches" msgstr "Gérer les matchs" #: src/interface.c:917 msgid "Manage users" msgstr "Gérer les utilisateurs" #: src/options_interface.c:276 msgid "Maximize main window" msgstr "Maximiser la fenêtre principale" #: src/user.c:1214 msgid "Memorable match added." msgstr "Match mémorable ajouté." #: src/interface.c:1024 src/window.c:984 msgid "Memorable matches" msgstr "Matchs mémorables" #: src/treeview.c:1777 msgid "Midfield" msgstr "Milieu de terrain" #: src/interface.c:646 msgid "Midfielders" msgstr "Milieux de terrain" #: src/treeview.c:1629 msgid "Money" msgstr "Argent" #: src/interface.c:1296 msgid "Money " msgstr "Argent " #: src/misc2_interface.c:112 msgid "Money (approx.)" msgstr "Argent (approx.)" #: src/treeview.c:3019 msgid "Money / week" msgstr "Argent / semaine" #: src/interface.c:2092 msgid "Move to team" msgstr "Intégrer à l'équipe" #: src/interface.c:821 src/interface.c:2034 msgid "Move to youth academy" msgstr "Intégrer au centre de formation" #: src/interface.c:438 msgid "My league results" msgstr "Mes résultats de championnat" #: src/misc2_interface.c:97 src/treeview2.c:791 src/treeview.c:304 #: src/treeview.c:778 src/treeview.c:2163 msgid "Name" msgstr "Nom" #: src/options_interface.c:658 msgid "Name " msgstr "Nom " #: src/treeview.c:1847 msgid "Neutral ground" msgstr "Terrain neutre" #: src/treeview.c:2183 msgid "" "New contract\n" "offers" msgstr "" "Offres de\n" "nouveau contrat" #: src/misc3_interface.c:612 msgid "New settings:" msgstr "Nouveaux paramètres d'utilisateur" #: src/interface.c:984 src/options_interface.c:1203 msgid "News" msgstr "Nouvelle" #: src/misc3_interface.c:315 msgid "Next" msgstr "Prochain" #: src/interface.c:1434 msgid "Next (W)" msgstr "Prochain (W)" #: src/interface.c:1408 msgid "Next league/cup (2)" msgstr "Prochain championnat/coupe" #: src/interface.c:895 msgid "Next user" msgstr "Utilisateur suivant" #: src/game_gui.c:516 msgid "Next week you'll fire him and hire a new one." msgstr "La semaine prochaine, vous le renverrez et en embaucherez un autre." #: src/options_interface.c:1183 msgid "No automatic popup" msgstr "Pas de fenêtre pop-up automatique" #: src/window.c:664 msgid "No improvements currently in progress." msgstr "Aucune amélioration en cours." #: src/callbacks.c:1412 src/callbacks.c:1432 src/callbacks.c:1572 #: src/misc2_callback_func.c:326 src/misc2_callbacks.c:733 msgid "No match stored." msgstr "Pas de match enregistré." #: src/treeview2.c:600 msgid "No news available." msgstr "Pas de nouvelles disponibles." #: src/misc_callbacks.c:468 msgid "None" msgstr "Aucun" #: src/window.c:451 msgid "Not a valid Bygfoot Memorable Matches filename." msgstr "Nom de fichier de matchs invalide." #: src/window.c:882 msgid "Numbers..." msgstr "Nombres..." #. Boost value. #: src/lg_commentary.c:547 src/team.c:637 msgid "OFF" msgstr "OFF" #. Player health: ok. #. Player status: ok. #: src/misc2_interface.c:221 src/player.c:1406 src/treeview_helper.c:1094 #: src/treeview_helper.c:1390 msgid "OK" msgstr "OK" #. Boost value. #: src/lg_commentary.c:550 src/team.c:640 msgid "ON" msgstr "ON" #: src/interface.c:686 msgid "Off" msgstr "Désactivé" #: src/interface.c:797 src/interface.c:2022 msgid "Offer new contract" msgstr "Proposer un nouveau contrat" #: src/interface.c:680 msgid "On" msgstr "Activé" #: src/misc_interface.c:211 msgid "Only names" msgstr "Charger uniquement les noms" #: src/misc2_interface.c:1349 msgid "Open a memorable matches file" msgstr "Ouvrir un fichier de matchs mémorables" #: src/treeview2.c:92 src/treeview2.c:212 msgid "Opponent" msgstr "Adversaire" #: src/misc_interface.c:636 msgid "Opponent player list" msgstr "Liste des joueurs adverses" #: src/window.c:914 msgid "Options" msgstr "Options" #: src/treeview.c:1904 #, fuzzy msgid "Overall results" msgstr "Résultats de la saison" #: src/interface.c:379 msgid "Overwrite" msgstr "Écraser" #: src/game_gui.c:916 #, c-format msgid "Overwrite set to %s." msgstr "Écrasement des anciens fichiers réglé à %s." #. Games played (a number). #: src/treeview.c:1386 msgid "PL" msgstr "JO" #. Points. #: src/treeview.c:1400 msgid "PTS" msgstr "PTS" #: src/options_interface.c:645 msgid "Pause when break" msgstr "Pause à la mi-temps" #: src/options_interface.c:635 msgid "Pause when injury" msgstr "Pause en cas de blessure" #: src/options_interface.c:640 msgid "Pause when red card" msgstr "Pause en cas de carton rouge" #: src/callback_func.c:427 msgid "Payback" msgstr "Remboursement" #: src/treeview.c:839 msgid "Penalties" msgstr "Penalties" #: src/callbacks.c:1130 msgid "Penalty/free kick shooter deselected." msgstr "Tireur de penalty/coup franc désélectionné." #: src/interface.c:543 src/treeview.c:1523 msgid "Physio" msgstr "Kiné" #: src/treeview_helper.c:915 msgid "Player accepts new offers" msgstr "Le joueur accepte de nouvelles offres" #: src/options_interface.c:339 msgid "Player attribute precision" msgstr "Attribut du joueur : précision" #: src/options_interface.c:1042 msgid "Player attributes shown" msgstr "Attributs de joueur affichés" #: src/treeview_helper.c:913 msgid "Player doesn't negotiate anymore" msgstr "Le joueur ne négocie plus" #: src/misc2_interface.c:165 msgid "Player list" msgstr "Liste des joueurs" #: src/interface.c:1363 msgid "Player list 1" msgstr "Liste des joueurs (1)" #: src/interface.c:1371 msgid "Player list 2" msgstr "Liste des joueurs (2)" #: src/options_interface.c:346 msgid "Player list refresh rate" msgstr "Taux de rafraichissement de la liste des joueurs" #: src/interface.c:467 src/treeview.c:1887 msgid "Playing style" msgstr "Style de jeu" #: src/options_interface.c:1189 msgid "Popup for user news" msgstr "Pop-up pour les nouvelles de l'utilisateur" #. Position of a player. #: src/treeview.c:308 msgid "Pos" msgstr "Pos" #: src/options_interface.c:672 msgid "Pos " msgstr "Pos" #: src/treeview.c:2164 msgid "Position" msgstr "Position" #: src/treeview.c:838 msgid "Possession" msgstr "Possession" #: src/options_interface.c:281 msgid "Prefer messages" msgstr "Préférer les messages" #: src/interface.c:354 msgid "Preferences" msgstr "Préférences" #: src/training_interface.c:175 src/treeview.c:2946 msgid "Premium Hotel" msgstr "Hôtel 4 étoiles" #: src/misc3_interface.c:295 msgid "Previous" msgstr "Précédent" #: src/interface.c:1421 msgid "Previous (Q)" msgstr "Précédent (Q)" #: src/interface.c:1395 msgid "Previous league/cup (1)" msgstr "Championnat/Coupe précédent (1)" #: src/interface.c:906 msgid "Previous user" msgstr "Utilisateur précédent" #: src/misc_interface.c:1025 msgid "Price per ticket" msgstr "Prix par billet" #: src/treeview.c:1517 msgid "Prize money" msgstr "Récompense" #: src/player.c:1412 msgid "Pulled muscle" msgstr "Élongation" #: src/interface.c:781 src/interface.c:2014 msgid "Put on transfer list" msgstr "Placer sur la liste de transfert" #: src/cup.c:1111 msgid "Quarter-final" msgstr "Quart de finale" #: src/interface.c:1118 msgid "Quit (Ctrl - Q)" msgstr "Quitter (Ctrl - Q)" #: src/treeview2.c:69 msgid "REMOVE" msgstr "SUPPRIMER" #: src/treeview2.c:68 msgid "REPLAY" msgstr "REJOUER" #: src/misc_interface.c:230 msgid "Randomise teams in cups" msgstr "Mélanger les équipes dans cette coupe" #: src/misc_interface.c:233 msgid "" "Randomise the order of teams in cups. This only makes sense in supernational " "definitions like the World Cup where the order of teams is fixed." msgstr "" "Mélange l'ordre des équipes dans le coupes. Cela à seulement du sens dans " "les définitions \"inter-nationales\" comme la Coupe du Monde où l'ordre des " "équipes est fixé." #: src/misc2_interface.c:107 src/treeview.c:1866 msgid "Rank" msgstr "Classement" #: src/interface.c:1281 msgid "Rank " msgstr "Classement " #: src/file.c:396 src/misc3_interface.c:412 msgid "Ready" msgstr "Prêt" #: src/interface.c:728 msgid "Rearrange team" msgstr "Réarranger l'équipe" #: src/training_interface.c:98 msgid "Recreation" msgstr "Récréation" #: src/interface.c:627 msgid "Recruiting preference" msgstr "Préférence de recrutement" #: src/treeview.c:842 src/treeview_helper.c:935 msgid "Reds" msgstr "Rouges" #: src/misc_interface.c:1366 msgid "Reject for now" msgstr "Rejeter pour le moment" #: src/misc2_interface.c:1368 src/options_interface.c:411 msgid "Reload" msgstr "Recharger" #: src/misc2_interface.c:1446 msgid "Reload and close" msgstr "Recharger et fermer" #: src/options_interface.c:1602 msgid "" "Reload constants files. This will overwrite any changes you made in the " "current game session." msgstr "" #: src/options_interface.c:1616 #, fuzzy msgid "Reload from file" msgstr "Recharger les matchs depuis un fichier" #: src/misc2_interface.c:1354 msgid "Reload matches from file" msgstr "Recharger les matchs depuis un fichier" #: src/misc2_interface.c:1432 msgid "Reload matches from file and close" msgstr "Recharger les matchs depuis le fichier et fermer" #: src/options_interface.c:397 msgid "Reload the constants file" msgstr "Recharger le fichier des constantes" #: src/interface.c:789 src/interface.c:2018 msgid "Remove from transfer list" msgstr "Retirer de la liste de transfert" #: src/misc2_callbacks.c:412 #, c-format msgid "Remove user %s from the game?" msgstr "Retirer l'utilisateur %s du jeu?" #: src/interface.c:1050 msgid "Replay, delete or add memorable matches." msgstr "Rejouer, supprimer ou ajouter des matchs mémorables." #: src/interface.c:712 msgid "Reset player list" msgstr "Réinitialiser la liste des joueurs" #: src/interface.c:714 src/interface.c:1377 msgid "" "Reset player list to the formation at the beginning of the live game pause " "(right click on player list)" msgstr "" "Réinitialiser la liste des joueurs à l'état précédent la pause du jeu (clic " "droit sur la liste des joueurs)" #: src/treeview2.c:93 src/treeview2.c:214 msgid "Result" msgstr "Résultat" #: src/treeview.c:2013 msgid "Results" msgstr "Résultats" #: src/misc2_interface.c:1222 src/misc_interface.c:1125 msgid "Return" msgstr "Revenir" #: src/misc_interface.c:671 src/misc_interface.c:693 msgid "Return / Space" msgstr "Entrée / Espace" #: src/interface.c:1251 src/misc_interface.c:740 msgid "Right click and left click to change boost state" msgstr "Clic droit et clic gauche pour changer le statut de motivation" #: src/interface.c:1241 src/misc_interface.c:749 msgid "Right click and left click to change your playing style" msgstr "Clic droit et clic gauche pour changer le style de jeu" #: src/callbacks.c:861 msgid "Right click to apply for job at once, left click to see team info." msgstr "" "Clic droit pour candidater à un poste, clic gauche pour voir les " "informations de l'équipe." #: src/misc_interface.c:1061 src/misc_interface.c:1095 msgid "Right-click to set to 0" msgstr "Clic droit pour mettre à 0" #. Round #: src/treeview2.c:210 msgid "Ro" msgstr "Tour" #: src/cup.c:1094 msgid "Round robin" msgstr "Tour préliminaire" #: src/misc_interface.c:1087 msgid "Safety (%)" msgstr "Sécurité (%)" #: src/misc_callback_func.c:306 msgid "Safety improvement too high, reset to highest possible value." msgstr "" "Les améliorations de la sécurité sont trop élevez, revenez en arrière et " "choisissez la plus grande valeur possible." #. % of saves for goalies (#goals / #shots) #: src/treeview.c:2425 msgid "Save %" msgstr "Arrêts %" #: src/misc2_interface.c:1425 msgid "Save and close" msgstr "Sauvegarder et fermer" #: src/misc2_interface.c:1411 msgid "Save changes to file and close" msgstr "Sauvegarder les changements sous... et fermer." #: src/options_interface.c:1581 #, fuzzy msgid "" "Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW " "WHAT YOU ARE DOING." msgstr "" "Le fichier contient des paramètres qui détermine beaucoup des aspects du " "jeu. NE CHANGEZ RIEN SAUF SI VOUS SAVEZ CE QUE VOUS FAITES." #: src/interface.c:1108 msgid "Save game (Ctrl - S)" msgstr "Sauvegarder (Ctrl - S)" #: src/options_interface.c:1220 msgid "Save global settings to file" msgstr "Sauvegarder les paramètres globaux dans un fichier" #: src/options_interface.c:266 msgid "Save overwrites" msgstr "Écrasement de sauvegarde" #: src/training_interface.c:197 msgid "Save settings as default" msgstr "Sauvegarder les paramètres d'utilisateur comme défaut" #: src/options_interface.c:1595 #, fuzzy msgid "Save to file" msgstr "Sauvegarder les paramètres d'utilisateur dans un fichier" #: src/options_interface.c:1225 msgid "Save user settings to file" msgstr "Sauvegarder les paramètres d'utilisateur dans un fichier" #: src/interface.c:389 msgid "Save window geometry" msgstr "Sauvegarder la géométrie de la fenêtre" #: src/interface.c:392 msgid "Save window size, position and vertical divider" msgstr "" "Sauvegarde la position de la fenêtre, sa taille et la division vertical" #. The 'job exchange' is a list of teams looking for a manager. #: src/load_save.c:133 msgid "Saving job exchange..." msgstr "Sauvegarde des offres d'emploi..." #: src/load_save.c:92 msgid "Saving leagues and cups..." msgstr "Sauvegarde des championnats et coupes..." #: src/load_save.c:153 msgid "Saving miscellaneous..." msgstr "Sauvegarde du reste..." #: src/load_save.c:143 msgid "Saving newspaper..." msgstr "Sauvegarde des journales..." #: src/load_save.c:79 msgid "Saving options..." msgstr "Sauvegarde des options..." #: src/load_save.c:122 msgid "Saving season stats..." msgstr "Sauvegarde des paramètres de saison..." #: src/load_save.c:112 msgid "Saving transfer list..." msgstr "Sauvegarde de la liste de transferts..." #: src/load_save.c:102 msgid "Saving users..." msgstr "Sauvegarde des utilisateurs..." #: src/interface.c:508 src/treeview.c:1524 msgid "Scout" msgstr "Observateur" #. Season. #: src/treeview.c:2349 msgid "Sea" msgstr "Sai" #: src/treeview.c:2641 #, c-format msgid "Season %d" msgstr "Saison %d" #: src/interface.c:1002 msgid "Season history" msgstr "Historique de la saison" #: src/interface.c:449 msgid "Season results" msgstr "Résultats de la saison" #: src/misc_interface.c:387 src/window.c:922 msgid "Select font" msgstr "Choisir une police" #: src/cup.c:1108 msgid "Semi-final" msgstr "Demi-finale" #: src/interface.c:664 msgid "Set investment" msgstr "Fixer l'investissement" #: src/callbacks.c:842 src/interface.c:667 msgid "" "Set the percentage of your income you want to devote to your youth academy." msgstr "" "Fixer le pourcentage de vos revenus que vous souhaitez allouer à votre " "centre de formation." #: src/options_interface.c:511 msgid "Set to 0 to switch off warning" msgstr "Mettre à 0 pour désactiver les avertissements" #. Shots of a player. #: src/treeview.c:318 msgid "Sh" msgstr "Ti" #: src/interface.c:813 src/interface.c:2030 msgid "Shoots penalties" msgstr "Tire les penalty" #: src/treeview.c:837 src/treeview.c:2422 msgid "Shot %" msgstr "Tir %" #: src/treeview.c:836 src/treeview_helper.c:933 msgid "Shots" msgstr "Tirs" #: src/options_interface.c:707 msgid "Shots " msgstr "Tirs " #: src/options_interface.c:531 msgid "Show all leagues in the fixture view" msgstr "Montrer tous les championnats dans la fenêtre des rencontres" #: src/interface.c:879 msgid "Show coming matches" msgstr "Montrer les matchs suivants" #: src/interface.c:935 msgid "Show finances" msgstr "Montrer le bilan financier" #: src/interface.c:773 src/interface.c:2010 msgid "Show info" msgstr "Montrer les informations" #: src/interface.c:758 msgid "Show job exchange" msgstr "Montrer les offres d'emploi" #: src/options_interface.c:503 msgid "Show job offers" msgstr "Montrer les offres d'emploi" #: src/interface.c:857 msgid "Show last match" msgstr "Montrer le dernier match" #: src/interface.c:868 msgid "Show last match stats" msgstr "Montrer les statistiques du dernier match" #: src/options_interface.c:576 msgid "Show live game" msgstr "Montrer les matchs en direct" #: src/misc3_interface.c:74 src/options_interface.c:1054 msgid "Show matches from all leagues" msgstr "Voir les matches de tous les championnats" #: src/misc3_interface.c:79 src/options_interface.c:1059 msgid "Show matches from cups" msgstr "Voir les matches des différentes Coupes" #: src/options_interface.c:1192 msgid "Show news window after a matchday when new user news was created" msgstr "" "Voir la fenêtre des nouvelle, après une journée lorsque de nouvelles news de " "l'utilisateur a été créé" #: src/misc3_interface.c:84 src/options_interface.c:1065 msgid "Show only my recent bets" msgstr "Afficher seulement mes récents paris" #: src/options_interface.c:1175 msgid "Show only recent news" msgstr "Afficher seulement mes récents nouvelles" #: src/options_interface.c:554 msgid "Show overall games/goals" msgstr "Montrer tous les matchs/buts" #: src/options_interface.c:286 msgid "Show progressbar pictures" msgstr "Montrer les barres de progression" #: src/interface.c:946 msgid "Show stadium" msgstr "Montrer le stade" #: src/options_interface.c:580 msgid "Show tendency bar" msgstr "Montrer la barre de tendance" #: src/interface.c:972 msgid "Show the betting window" msgstr "Afficher la fenêtre des paris" #: src/interface.c:761 msgid "Show the list of available manager jobs" msgstr "Montrer la liste des postes d'entraîneur disponibles" #: src/interface.c:1151 msgid "Show transferlist (T)" msgstr "Montrer la liste de transferts (T)" #: src/options_interface.c:517 msgid "Show warning if a player contract gets below " msgstr "Avertir quand le contrat d'un joueur descend sous " #: src/interface.c:589 msgid "Show youth academy" msgstr "Montrer le centre de formation" #. Skill of a player. #: src/treeview.c:312 msgid "Sk" msgstr "Ta" #: src/treeview.c:2166 msgid "Skill" msgstr "Talent" #: src/options_interface.c:686 msgid "Skill " msgstr "Talent " #: src/options_interface.c:296 msgid "Skip weeks without user matches" msgstr "Sauter les semaines sans match" #: src/misc_interface.c:249 msgid "Space" msgstr "Espace" #: src/main.c:97 msgid "Specify additional support directory (takes priority over default ones)" msgstr "" "Spécifier des chemins de répertoires additionnels pour le \"support\" (prend " "la priorité sur ceux par défault)" #: src/misc_interface.c:710 msgid "Speed" msgstr "Vitesse" #: src/treeview.c:1667 msgid "Sponsor" msgstr "Sponsor" #: src/treeview.c:1519 msgid "Sponsorship" msgstr "Sponsoring" #: src/window.c:976 msgid "Sponsorship offers" msgstr "Offres de sponsoring" #: src/interface.c:977 msgid "St_ats" msgstr "St_atistiques" #: src/treeview.c:1477 msgid "Stadium" msgstr "Stade" #: src/misc2_interface.c:117 src/treeview.c:1483 msgid "Stadium capacity" msgstr "Capacité du stade" #: src/treeview.c:1608 msgid "Stadium expenses" msgstr "Dépenses de stade" #: src/callbacks.c:1537 msgid "Stadium management is disabled in this country definition." msgstr "La gestion du stade est désactivée dans cette définition de pays." #: src/misc2_interface.c:122 src/treeview.c:1487 msgid "Stadium safety" msgstr "Sécurité du stade" #: src/treeview.c:1501 msgid "Stadium status" msgstr "État du stade" #: src/misc_interface.c:266 msgid "Start" msgstr "Commencer" #: src/misc3_interface.c:348 msgid "Start _new game" msgstr "Commencer" #: src/misc3_interface.c:623 msgid "Start in week" msgstr "Commencer en semaine" #: src/misc3_interface.c:577 msgid "Start in week:" msgstr "Commencer en semaine:" #: src/misc_interface.c:587 msgid "Statistics" msgstr "Statistiques" #. Status of a player. #: src/treeview.c:322 msgid "Status" msgstr "Statut" #: src/options_interface.c:721 msgid "Status " msgstr "Statut " #: src/misc_interface.c:951 msgid "Status:" msgstr "Statut:" #. Hot streak or cold streak of a player. #: src/treeview.c:2181 msgid "Streak" msgstr "Formes" #: src/options_interface.c:1555 #, fuzzy msgid "String" msgstr "Élongation" #: src/main.c:99 msgid "String id of the country to load" msgstr "String id du pays à charge" #: src/callbacks.c:936 msgid "Structure" msgstr "Formation" #: src/options_interface.c:549 msgid "Swap adapts structure" msgstr "Changement adapte la formation" #. Language is system-set (not user chosen). #: src/treeview.c:2883 msgid "System" msgstr "Système" #: src/interface.c:427 msgid "Tables" msgstr "Classements" #: src/treeview2.c:517 msgid "Talent %" msgstr "% Talent" #: src/treeview2.c:513 src/treeview.c:161 src/treeview.c:331 #: src/treeview.c:779 src/treeview.c:1384 src/treeview.c:1858 #: src/treeview.c:2012 src/treeview.c:2350 msgid "Team" msgstr "Équipe" #: src/options_interface.c:777 msgid "Team " msgstr "Équipe " #: src/treeview.c:1892 msgid "Team structure" msgstr "Formation" #: src/team.c:665 #, c-format msgid "Team style changed to %s." msgstr "Style de l'équipe changé en %s." #: src/treeview2.c:393 msgid "Team1" msgstr "Équipe 1" #: src/treeview2.c:399 msgid "Team2" msgstr "Équipe 2" #: src/main.c:103 msgid "Test an XML commentary file" msgstr "Test d'un commentaire dans un fichier XML" #: src/callback_func.c:389 msgid "The bank doesn't grant you more money." msgstr "La banque refuse de vous prêter plus d'argent." #: src/bet.c:269 #, c-format msgid "The betting office doesn't allow you to wager more than %s." msgstr "Le bureau des paris ne vous autorise pas à parier plus de %s." #: src/callbacks.c:648 msgid "The current game state is unsaved and will be lost. Continue?" msgstr "" "La partie actuelle n'a pas été sauvegardée et sera perdue. Continuer quand " "même?" #: src/options_interface.c:618 msgid "The higher this value, the more commentary you'll see." msgstr "Plus cette valeur est élevée et plus vous verrez de commentaires." #: src/callbacks.c:863 #, c-format msgid "The job exchange update interval is %d weeks." msgstr "L'intervalle pour les échanges de poste est de %d semaines." #: src/options_interface.c:609 msgid "The lower this value the faster the live game commentary will scroll." msgstr "" "Plus cette valeur est faible et plus les commentaires du match vont défiler " "rapidement." #: src/misc2_callback_func.c:365 #, c-format msgid "The owners of %s accept your application." msgstr "Les propriétaires de %s acceptent votre offre." #. A lame duck is someone who will quit his job soon and thus doesn't have #. a lot of influence/impact anymore, e.g. an American president during #. the last 2 years of his second presidency. #: src/misc2_callback_func.c:359 #, c-format msgid "" "The owners of %s accept your application. Since %s don't want to get stuck " "with a lame duck, you get fired instantly and spend the rest of the current " "season tending your garden." msgstr "" "Les propriétaires de %s acceptent votre candidature. Puisque %s ne veut pas " "s'encombrer d'un traître, vous êtes renvoyé sur le champ et passez le reste " "de la saison à vous occupper de votre jardin." #: src/game_gui.c:812 #, c-format msgid "" "The owners of %s are deeply impressed by your success with %s and would like " "to hire you. Here's some information on %s:" msgstr "" "Les dirigeants de %s sont impressionnés par votre succès avec %s, et " "voudraient vous débaucher. Voici quelques informations sur %s :" #: src/user.c:382 #, c-format msgid "" "The owners of %s are not satisfied with the recent performance of the team. " "There are rumours they're looking for a new manager." msgstr "" "Les actionnaires de %s ne sont pas satisfaits des performances récentes de " "l'équipe. Des rumeurs courrent selon lesquelles ils chercheraient un nouveau " "manager." #: src/user.c:598 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee " "nor the wage you offered were acceptable, they say." msgstr "" "Les dirigeants de %s ont rejeté votre offre (%s / %s) pour %s. Ni le montant " "du transfert ni le salaire n'étaient acceptables, d'après eux." #: src/user.c:603 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. The team owners " "weren't satisfied with the fee you offered." msgstr "" "Les dirigeants de %s ont rejeté votre offre (%s / %s) pour %s. Ils n'étaient " "pas satisfaits du montant du transfert que vous avez proposé." #: src/user.c:593 #, c-format msgid "" "The owners of %s have rejected your offer (%s / %s) for %s. There was a " "better offer for the player than yours." msgstr "" "Les dirigeants de %s ont rejeté votre offre (%s / %s) pour %s. Une meilleure " "offre a été formulée pour ce joueur." #: src/misc2_callback_func.c:348 #, c-format msgid "" "The owners of %s politely reject your application. You're not successful " "enough in their eyes." msgstr "" "Les propriétaires de %s rejettent poliment votre candidature. Vous n'êtes " "pas assez efficace à leurs yeux." #: src/callback_func.c:615 msgid "" "The player feels he doesn't have a future in your star-studded team. He " "refuses to negotiate." msgstr "" "Le joueur estime qu'il ne dispose pas d'une future dans votre équipe pleine " "des étolies. Il refuse de négocier." #: src/callbacks.c:1067 msgid "The player is already on the list." msgstr "Le joueur est déja sur la liste. " #: src/callback_func.c:552 msgid "" "The player is locked (the team owners are considering an offer currently)." msgstr "" "Le joueur est bloqué (les dirigeants de l'équipe sont déja en train " "d'examiner une proposition). " #: src/callbacks.c:1087 msgid "The player is not on the list." msgstr "Le joueur n'est pas sur la liste." #: src/treeview_helper.c:1073 msgid "The player is on a cold streak" msgstr "Le joueur est dans une mauvaise série." #: src/treeview_helper.c:1071 msgid "The player is on a hot streak" msgstr "Le joueur est dans une bonne série" #: src/callbacks.c:1170 msgid "The player is too old for the youth academy." msgstr "Le joueur est trop âgé pour le centre de formation." #: src/callback_func.c:609 msgid "The player won't negotiate with you anymore." msgstr "Le joueur ne négociera plus avec vous." #: src/misc2_callback_func.c:168 #, c-format msgid "The structure value %d is invalid." msgstr "La formation %d n'est pas valide." #: src/user.c:642 msgid "" "The team owners are very satisfied with your financial management. Since the " "team's been earning a lot of money lately, they decide to donate half of it " "to charity." msgstr "" "Les propriétaires du club sont très satisfaits de votre gestion financière. " "Récemment, le club s'est mis à gagner beaucoup d'argent, ils ont donc décidé " "de faire un don à hauteur de 50% du total." #: src/game_gui.c:806 #, c-format msgid "" "The team owners have fired you because of financial mismanagement. Luckily, " "the owners of %s have heard of your dismissal and offer you a job. Here's " "some information on %s:" msgstr "" "Les dirigeants de l'équipe vous ont licencié à cause de vos erreurs sur le " "plan financier. Heureusement pour vous, l'équipe de %s a entendu parler de " "votre renvoi et vous propose un emploi. Voici quelques informations sur %s :" #: src/game_gui.c:809 #, c-format msgid "" "The team owners have fired you because of unsuccessfulness. Luckily, the " "owners of %s have heard of your dismissal and offer you a job. Here's some " "information on %s:" msgstr "" "Les dirigeants de votre club vont ont licencié à cause de vos mauvais " "résultats. Heureusement pour vous, l'équipe de %s a eu vent de votre renvoi " "et vous proposent un emploi. Voici quelques informations sur %s :" #: src/callback_func.c:559 src/callbacks.c:226 src/transfer.c:574 msgid "The transfer deadline is over." msgstr "La date limite de transfert est dépassée." #: src/misc_interface.c:1310 msgid "" "There are a few companies interested in sponsoring your team. Please select " "one:" msgstr "" "Certaines sociétés voudraient sponsoriser votre équipe. Veuillez en choisir " "une:" #: src/callbacks.c:249 msgid "There are injured or banned players in one of the user teams. Continue?" msgstr "" "Il y a des joueurs blessés ou suspendus dans l'une des équipes. Continuer " "quand même?" #: src/callbacks.c:769 msgid "There are no leagues in this country definition (only cups)." msgstr "" "Il n'y a pas de championnats de définit pour ce pays - seulement des coupes." #: src/callbacks.c:743 msgid "There are no leagues or cups with tables in this country definition." msgstr "" "Il n'y a pas de championnats ou de coupes avec tableaux de définis pour ce " "pays." #: src/callbacks.c:791 msgid "There are no season history elements stored yet." msgstr "Il n'y a pas encore d'historique enregistré." #: src/callback_func.c:455 msgid "" "There are some offers for the player which you rejected or will see next " "week." msgstr "" "Il y a des offres concernant le joueur que vous avez rejeté ou que vous " "désirez étudier la semaine prochaine." #: src/callbacks.c:1176 msgid "There is no room in your youth academy." msgstr "Il n'y a pas de place dans votre centre de formation." #: src/misc_callbacks.c:232 msgid "" "There were too many substitutions. Only 3 per game are allowed. Player list " "reset." msgstr "" "Trop de changements. Seulement 3 sont permis par match. Liste des joueurs " "réinitialisée." #: src/treeview.c:1518 msgid "Ticket income" msgstr "Revenu des entrées" #: src/player.c:1439 msgid "Torn crucial ligament" msgstr "Elongation du ligament croisé" #: src/training_interface.c:117 msgid "Training" msgstr "Entrainement" #: src/interface.c:703 src/options_interface.c:1151 #: src/training_interface.c:60 src/treeview.c:1616 src/window.c:1007 msgid "Training camp" msgstr "Camp d'entrainement" #: src/callbacks.c:878 msgid "Training camp is disabled in this country definition." msgstr "Le camp d'entrainement est désactivé dans cette définition de pays." #: src/callbacks.c:215 #, c-format msgid "Transfer deadline is Week %d" msgstr "La date limite de transfert est la semaine %d." #: src/window.c:968 msgid "Transfer offer" msgstr "Offre de transfert" #: src/treeview.c:1598 msgid "Transfers" msgstr "Transferts" #: src/callbacks.c:206 src/callbacks.c:1063 msgid "Transfers are disabled in this country definition." msgstr "Les transferts sont désactivés dans cette définition de pays." #: src/interface.c:731 msgid "" "Try to put the startup players onto their favoured positions and sort the " "substitutes (Ctrl-R or middle click)" msgstr "" "Essayer de mettre les joueurs de départ à leur place préférée, et trier les " "remplaçants (Ctrl-R ou clic du milieu)" #: src/load_save.c:226 msgid "Uncompressing savegame..." msgstr "Décompression de la sauvegarde..." #: src/callback_func.c:545 #, c-format msgid "User %s didn't consider your offer yet." msgstr "L'utilisateur %s n'a pas encore examiné votre offre." #: src/interface.c:1013 msgid "User history" msgstr "Historique de l'utilisateur" #: src/window.c:945 msgid "User management" msgstr "Gestion des utilisateurs" #: src/misc2_interface.c:842 msgid "Users -- click to remove" msgstr "Utilisateurs -- cliquez pour enlever" #: src/treeview2.c:792 src/treeview.c:328 src/treeview.c:2172 msgid "Value" msgstr "Valeur" #: src/options_interface.c:749 msgid "Value " msgstr "Valeur " #: src/misc_interface.c:717 msgid "Verbosity" msgstr "Détails" #. Games won. #. Won. #: src/treeview.c:1388 src/treeview_helper.c:1738 msgid "W" msgstr "G" #. won #: src/team.c:1157 msgid "W " msgstr "G " #. a won match #: src/team.c:1059 #, c-format msgid "W %d : %d" msgstr "G %d : %d" #: src/callback_func.c:575 src/callback_func.c:582 src/treeview.c:329 #: src/treeview.c:2173 msgid "Wage" msgstr "Salaire" #: src/options_interface.c:756 msgid "Wage " msgstr "Salaire" #. 'Wager' is the amount of money the user placed on a bet. #: src/misc3_callbacks.c:162 msgid "Wager" msgstr "Mise" #. How much the user wagers; how much he won or lost. #: src/treeview2.c:401 msgid "" "Wager/\n" "Win/Loss" msgstr "" "Parie/\n" "Gagner/Perdre" #: src/treeview.c:1522 msgid "Wages" msgstr "Salaires" #. Week #: src/treeview2.c:208 msgid "We" msgstr "Sem" #: src/treeview.c:2350 msgid "Week" msgstr "Semaine" #: src/treeview2.c:626 src/treeview.c:1023 #, c-format msgid "Week %d Round %d" msgstr "Semaine %d Partie %d" #: src/treeview.c:1030 #, fuzzy, c-format msgid "" "Week %d Round %d\n" "Cup round %d" msgstr "Semaine %d Partie %d" #: src/misc3_interface.c:631 msgid "Weekly installment" msgstr "Versement hebdomadaire" #: src/misc3_interface.c:585 msgid "Weekly installment:" msgstr "Versement hebdomadaire:" #: src/window.c:834 #, c-format msgid "Welcome to Bygfoot %s" msgstr "Bienvenue dans Bygfoot %s" #: src/options_interface.c:269 msgid "" "Whether 'Save' overwrites the current save file or pops up a 'Save as' window" msgstr "" "Ecraser la sauvegarde actuelle ou proposer une fenêtre 'Sauvegarder sous'" #: src/options_interface.c:501 msgid "" "Whether a confirmation popup is shown when you kick out a youth from your " "academy" msgstr "" "Demander confirmation quand vous souhaitez renvoyer un jeune joueur de votre " "centre de formation" #: src/options_interface.c:279 msgid "" "Whether game starts with a maximized main window (doesn't work with all " "window managers)" msgstr "" "Agrandir la fenêtre en début de partie (ne fonctionne pas avec tous les " "gestionnaires de fenêtres)" #: src/options_interface.c:534 msgid "" "Whether in the weekly fixture view all leagues or only the user league is " "shown" msgstr "" "Dans la vue des matchs de la semaine, afficher tous les championnats ou bien " "seulement celle de l'utilisateur en cours" #: src/options_interface.c:552 msgid "" "Whether swapping two players automatically adapts the team structure to the " "player positions" msgstr "Adaptation automatique de la formation en cas de changement de joueurs" #: src/options_interface.c:648 msgid "Whether the live game pauses at half time and extra time" msgstr "Arrêt temporaire du match à la mi-temps et avant les prolongations" #: src/options_interface.c:638 msgid "Whether the live game pauses when a user player is injured" msgstr "Arrêt temporaire du match quand un de vos joueurs est blessé" #: src/options_interface.c:643 msgid "Whether the live game pauses when a user player is sent off" msgstr "Arrêt temporaire du match si un de vos joueurs est exclu" #: src/options_interface.c:624 msgid "" "Whether the subs (e.g. for injured players) are made by the CPU. This is " "automatically done if the live game is off." msgstr "" "Changements (par ex. les blessures) effectués par l'ordinateur. Cette option " "est automatiquement sélectionnée si les matchs en direct sont sélectionnés." #: src/options_interface.c:448 msgid "Whether to automatically save the game regularly" msgstr "Sauvegarder le jeu automatiquement de manière régulière" #: src/options_interface.c:1223 msgid "" "Whether to save the global settings to file (so that they get loaded next " "time you start a new game)" msgstr "" "Sauvegarder les paramètres globaux dans un fichier (de sorte qu'ils soient " "chargés la prochaine fois que vous commencez une partie)" #: src/options_interface.c:1228 msgid "" "Whether to save the user settings to file (so that they get loaded next time " "this user starts a new game)" msgstr "" "Sauvegarder les paramètres d'utilisateur dans un fichier (de sorte qu'ils " "soient chargés la prochaine fois que l'utilisateur commence une partie)" #: src/options_interface.c:264 msgid "" "Whether to show a confirmation popup if a user team has an injured or banned " "player in the startup formation" msgstr "" "Demander confirmation si l'équipe d'un utilisateur a un joueur blessé ou " "banni dans sa configuration de départ" #: src/options_interface.c:259 msgid "" "Whether to show a confirmation popup when you press quit and the game state " "is not saved" msgstr "" "Demander confirmation quand vous souhaitez quitter et que le jeu n'a pas été " "sauvegardé" #: src/options_interface.c:1062 msgid "Whether to show cup matches in the betting window" msgstr "Afficher les matches de coupe dans la fenêtre des paris" #: src/misc3_interface.c:82 msgid "" "Whether to show cup matches. Use the options window to toggle permanently." msgstr "" "Afficher les matches de coupe. Utilisez la fenêtre des options pour rendre " "ce choix permanent." #: src/options_interface.c:506 msgid "Whether to show job offers when a user is successful" msgstr "Afficher les offres d'emploi aux utilisateurs efficaces" #: src/options_interface.c:1057 msgid "Whether to show matches of all leagues in the betting window" msgstr "Afficher les matches de championnat dans la fenêtre des paris" #: src/misc3_interface.c:77 msgid "" "Whether to show matches of all leagues. Use the options window to toggle " "permanently." msgstr "" "Afficher les matches de tous les championnats. Utiliser la fenêtre des " "options pour rendre ce choix définitif." #: src/misc3_interface.c:87 msgid "Whether to show only your bets in the recent bets list" msgstr "Afficher vos paris dans la fenêtre des paris." #: src/options_interface.c:289 msgid "" "Whether to show pictures on top of the progressbar when loading/saving or " "calculating results" msgstr "" "Afficher les images en haut de la barre de progression lors des sauvegardes " "ou du calcul des résultats" #: src/options_interface.c:557 msgid "Whether to show the player games/goals value in all competitions" msgstr "Afficher les matchs/buts d'un joueur dans toutes les compétitions" #: src/options_interface.c:284 msgid "" "Whether to show warnings and such in the message area in the main window " "when possible" msgstr "" "Afficher les avertissements et autres dans l'aide de messages de la fenêtre " "principale si possible" #. Team 1 wins (betting window). #: src/treeview2.c:395 msgid "Win1" msgstr "Gagnant1" #. Team 2 wins (betting window). #: src/treeview2.c:398 msgid "Win2" msgstr "Gagnant2" #. Yellow cards of a player. #: src/treeview.c:324 msgid "YC" msgstr "CJ" #. 'Limit' is the number of yellow cards until a player gets #. banned automatically for a match. #: src/treeview.c:2178 msgid "Yellow cards (limit)\n" msgstr "Cartons jaunes (limite)\n" #: src/treeview.c:841 src/treeview_helper.c:934 msgid "Yellows" msgstr "Jaunes" #. League name. #: src/user.c:890 #, c-format msgid "You are champion of the %s!" msgstr "Vous êtes champion de %s!" #: src/finance.c:281 msgid "You are free from debt." msgstr "Vous n'avez aucune dette." #: src/callback_func.c:579 #, c-format msgid "" "You are making an offer for %s again. Your previous values for fee and wage " "are preset." msgstr "" "Vous faites une nouvelle offre pour %s. Le montant du transfert et le " "salaire indiqué sont ceux de votre offre précédente." #: src/callback_func.c:571 #, c-format msgid "" "You are making an offer for %s. Your scout's recommendations for fee and " "wage are preset." msgstr "" "Vous faites une offre pour %s. Le montant du transfert et le salaire indiqué " "sont ceux recommandés par votre observateur." #: src/callback_func.c:629 #, c-format msgid "" "You are negotiating with %s about a new contract. Pay attention to what " "you're doing; if you don't come to terms with him within %d offers, he's " "going to leave your team after his current contract expires (unless you sell " "him). You may only abort BEFORE making the first offer.\n" "Your scout's recommendations are preset:" msgstr "" "Vous négociez un nouveau contrat avec %s. Faites attention à ce que vous " "faites, si vous n'avez pas conclu après %d propositions, il quittera votre " "équipe dès que son contrat aura expiré (à moins que vous ne le vendiez " "avant).\n" "Les salaires par défaut sont ceux recommandés par votre observateur :" #: src/callbacks.c:1491 msgid "You are not in debt." msgstr "Vous n'êtes pas endetté." #: src/callback_func.c:413 msgid "You are not indebted." msgstr "Vous n'êtes pas endetté." #: src/misc3_callbacks.c:154 #, c-format msgid "You bet on outcome %d with an odd of %.2f. How much do you wager?" msgstr "Vous pariez sur %d avec une cote de %.2f. Combien voulez-vous miser?" #: src/callback_func.c:425 #, c-format msgid "You can pay back at most %s" msgstr "Vous pouvez rembourser au maximum %s." #: src/callback_func.c:395 #, c-format msgid "You can take out at most %s." msgstr "Vous pouvez dépenser %s au plus." #: src/callbacks.c:455 msgid "You can't apply for a job from abroad if there's more than one user." msgstr "Vous ne pouvez candidater de l'étranger s'il y a plus d'un joueur." #: src/callbacks.c:1306 #, c-format msgid "You can't have more than %d players in the team." msgstr "Vous ne pouvez pas avoir plus de %d joueurs dans l'équipe." #: src/callbacks.c:1173 msgid "You can't move the player, there are too few players in your team." msgstr "" "Vous ne pouvez pas déplacer le joueur, il n'y a pas assez de joueurs dans " "votre équipe." #: src/callback_func.c:604 msgid "You can't offer a new contract if the old one is still above 2 years." msgstr "" "Vous ne pouvez pas proposer un nouveau contrat si l'ancien est encore valide " "pour 2 ans." #: src/misc2_callbacks.c:407 msgid "You can't play Bygfoot without users!" msgstr "Vous ne pouvez pas jouer à Bygfoot sans définir des utilisateurs!" #: src/player.c:670 msgid "You can't replace a banned player." msgstr "Vous ne pouvez pas remplacer un joueur exclu." #. Buy a player from a team. #: src/user.c:621 #, c-format msgid "You didn't have enough money to buy %s from %s." msgstr "Vous n'aviez pas assez d'argent pour acheter %s a %s." #: src/misc2_callback_func.c:96 #, c-format msgid "You didn't have enough money to buy %s or your roster was full." msgstr "" "Vous n'aviez pas assez d'argent pour acheter %s ou bien votre effectif est " "complet." #: src/callback_func.c:419 msgid "You don't have enough money to pay back." msgstr "Vous n'avez pas assez d'argent pour rembourser." #: src/bet.c:262 src/misc_callback_func.c:316 msgid "You don't have the money." msgstr "Vous n'avez pas cet argent." #. League name. #: src/user.c:855 #, c-format msgid "You finish the season in the %s on rank %s." msgstr "Vous terminez la saison dans la %s en position %s." #. League name. #: src/user.c:861 #, c-format msgid "You get promoted to the %s." msgstr "Vous êtes promu en %s." #. League name. #: src/user.c:866 #, c-format msgid "You get relegated to the %s." msgstr "Vous êtes rétrogradé en %s." #: src/finance.c:288 #, c-format msgid "You have %d weeks to pay back the rest of your loan." msgstr "Il vous reste %d semaines pour rembourser le reste de votre emprunt." #: src/finance.c:253 #, c-format msgid "You have %d weeks to pay back your loan." msgstr "Vous avez %d semaines pour rembourser votre emprunt." #: src/user.c:580 #, c-format msgid "" "You have overdrawn your bank account once again. Bear in mind that after the " "fourth time you get fired.\n" "The team owners give you %d weeks to get above your drawing credit limit." msgstr "" "Vous avez vidé votre compte en banque une fois de plus. Sachez qu'à la " "quatrième fois vous serez licencié.\n" "Les actionnaires vous accordent %d semaines pour remonter au-delà de votre " "limite de crédit." #: src/user.c:578 #, c-format msgid "" "You have overdrawn your bank account. The team owners give you %d weeks to " "get above your drawing credit limit." msgstr "" "Vous avez vidé votre compte en banque. Les actionnaires vous accordent %d " "semaines pour remonter au-delà de votre limite de crédit." #: src/finance.c:162 msgid "You have to pay back your loan this week." msgstr "Vous devez rembourser votre emprunt cette semaine." #: src/callbacks.c:432 msgid "You haven't made an offer for the player." msgstr "Vous n'avez pas fait d'offre pour ce joueur." #: src/callbacks.c:972 src/callbacks.c:1023 src/callbacks.c:1043 #: src/callbacks.c:1065 src/callbacks.c:1085 src/callbacks.c:1105 #: src/callbacks.c:1125 src/callbacks.c:1164 msgid "You haven't selected a player." msgstr "Vous n'avez pas sélectionné de joueur." #. Cup name, team name. #: src/user.c:877 #, c-format msgid "You lose in the %s final against %s." msgstr "Vous perdez en finale de la %s contre %s." #: src/callback_func.c:512 #, c-format msgid "" "You offered a transfer fee of %s and a wage of %s for %s. The owners and the " "player are satisfied with your offer. Do you still want to buy the player?" msgstr "" "Vous proposez une indemnité de transfert de %s et un salaire de %s pour %s. " "Les propriétaires et le joueur sont satisfaits de cette offre. Voulez-vous " "toujours acheter ce joueur?" #. Cup round name (e.g. Last 32), number, cup name. #: src/user.c:883 #, c-format msgid "You reach the %s (round %s) of the %s." msgstr "Vous atteignez la %s (tour %s) de la %s." #. Buy a team in a league. #: src/user.c:828 #, c-format msgid "You start the game with %s in the %s." msgstr "Vous commencez le jeu avec %s dans la %s." #: src/callbacks.c:239 src/callbacks.c:1355 src/callbacks.c:1376 msgid "You still have some transfer business to manage." msgstr "Vous avez encore des transferts à régler." #: src/callback_func.c:771 #, c-format msgid "" "You want to fire %s. Since his contract expires in %.1f years, he demands a " "compensation of %s. Do you accept?" msgstr "" "Vous désirez renvoyez %s. Puisque son contrat expire dans %.1f années, il " "demande une compensation de %s. Acceptez-vous?" #. Cup name, team name. #: src/user.c:871 #, c-format msgid "You win the %s final against %s." msgstr "Vous gagnez la finale de la %s contre %s." #: src/callbacks.c:891 #, c-format msgid "You've reached the limit of %d training camps for the season." msgstr "" "Vous avez atteint la limite de %d camps d'entraînement pour cette saison." #: src/finance.c:166 msgid "Your bank account has to be above your drawing credit limit next week." msgstr "" "Votre compte bancaire devra dépasser votre limite de crédit la semaine " "prochaine." #: src/user.c:1126 #, c-format msgid "" "Your current sponsor is satisfied with your results and would like to renew " "the contract. Currently they're paying you %d a week." msgstr "" "Votre sponsor actuel est satisfait de vos résultats et souhaiterait " "renouveler le contrat. Ils vous paient actuellement %d par semaine." #: src/misc3_interface.c:555 msgid "Your debt:" msgstr "Vos dette:" #: src/treeview.c:1830 msgid "Your next opponent" msgstr "Votre prochain adversaire" #: src/user.c:587 #, c-format msgid "" "Your offer for %s has been accepted. If you still want to buy him, go to the " "transfer list and left click on the player." msgstr "" "Votre offre de %s a été acceptée. Si vous désirez toujours l'acheter, allez " "dans la liste des transferts et cliquez sur le joueur avec le bouton gauche." #: src/callback_func.c:498 src/callbacks.c:429 msgid "Your offer has been removed." msgstr "Votre offre a été retirée." #: src/misc2_callbacks.c:166 msgid "Your offer has been updated." msgstr "Votre offre a été mise à jour." #: src/misc2_callbacks.c:168 msgid "Your offer will be considered next week." msgstr "Votre offre sera étudiée la semaine prochaine." #: src/treeview.c:1913 #, fuzzy msgid "Your overall results" msgstr "Vos résultats" #: src/misc2_callback_func.c:127 msgid "Your player roster is full or you don't enough money." msgstr "Votre effectif est au complet ou bien vous n'avez pas assez d'argent." #. The user's results against a specific team. #: src/treeview.c:1909 msgid "Your results" msgstr "Vos résultats" #: src/callback_func.c:505 msgid "Your roster is already full. You can't buy more players." msgstr "" "Votre effectif est déja complet. Vous ne pouvez pas acheter plus de joueurs." #. Buy a player from a team. #: src/user.c:626 #, c-format msgid "Your roster is full. You couldn't buy %s from %s." msgstr "Votre effectif est complet. Vous ne pouvez pas acheter %s de %s." #: src/window.c:890 msgid "Your stadium" msgstr "Votre stade" #: src/treeview2.c:91 msgid "Your team" msgstr "Votre équipe" #: src/callbacks.c:1107 src/misc2_callback_func.c:60 msgid "Your team can't have less than 11 players." msgstr "Votre équipe ne peut pas avoir moins de 11 joueurs." #: src/callbacks.c:885 msgid "Your team has already had enough training camps this week." msgstr "Votre équipe a déjà eu assez de camps d'entraînement cette semaine." #: src/youth_academy.c:220 #, c-format msgid "" "Youth %s thought he's old enough for a real contract and left your youth " "academy." msgstr "" "Le jeune joueur %s pense qu'il est assez âgé pour un vrai contrat et quitte " "votre centre de formation." #: src/youth_academy.c:215 #, c-format msgid "" "Youth %s will be too old for the youth academy soon. Move him to your team " "or kick him out of the academy. Otherwise he'll probably look for another " "team to play in." msgstr "" "Le jeune joueur %s va bientôt être trop âgé pour le centre de formation. " "Intégrez le à votre équipe ou renvoyez le du centre. Autrement il s'en ira " "sûrement jouer dans une autre équipe." #: src/treeview.c:1681 msgid "Youth acad. invest." msgstr "Invest. centre de forma." #: src/interface.c:578 src/treeview.c:1526 msgid "Youth academy" msgstr "Centre de formation" #: src/callbacks.c:817 src/callbacks.c:836 src/callbacks.c:1159 #: src/callbacks.c:1301 msgid "Youth academy is disabled in this country definition." msgstr "Les centres de formation sont désactivés pour ce pays" #: src/interface.c:596 src/treeview.c:1525 msgid "Youth coach" msgstr "Entraineur des jeunes" #: src/interface.c:304 msgid "_File" msgstr "_Fichier" #: src/interface.c:1059 msgid "_Help" msgstr "Aide (_H)" #: src/misc3_interface.c:372 msgid "_Load game" msgstr "Charger une partie" #: src/interface.c:347 msgid "_Options" msgstr "_Options" #: src/misc_interface.c:664 msgid "_Pause" msgstr "_Pause" #: src/interface.c:766 msgid "_Player" msgstr "Joueur (_P)" #: src/misc_interface.c:685 msgid "_Resume" msgstr "_Reprendre" #: src/misc3_interface.c:396 msgid "_Resume game" msgstr "_Reprendre la dernière partie" #: src/interface.c:460 msgid "_Team" msgstr "Équipe (_T)" #: src/interface.c:850 msgid "_User" msgstr "_Utilisateur" #: src/treeview.c:1644 msgid "interest rate" msgstr "Taux d'intérêt" #~ msgid "" #~ "\n" #~ "If you feel you've found out something about the game that has to be " #~ "shared, you can add it to the Bygfoot Wiki:\n" #~ msgstr "" #~ "\n" #~ "Si vous pensez que vous avez trouvé quelque chose sur le jeu et que vous " #~ "désirez le partager, vous pourrez l'ajouter au wiki de Bygfoot : \n" #, fuzzy #~ msgid "Bygfoot news" #~ msgstr "Fichiers de sauvegardes de Bygfoot" #~ msgid "Calibrate the betting odds by simulating a lot of matches" #~ msgstr "Calibrer les rapports des paris en simulant beaucoup de matches" #~ msgid "Debug level to use" #~ msgstr "Niveau de 'debug' à utiliser" #~ msgid "How many matches to simulate per skill diff step" #~ msgstr "Nombre de matches à simuler par niveau de différence de compétence" #~ msgid "How many skill diff steps to take" #~ msgstr "Nombre de niveau de différence de compétence à prendre" #~ msgid "Improve!" #~ msgstr "Améliorer!" #~ msgid "Load the last game that was saved or loaded." #~ msgstr "Charger la partie la plus récente (chargée ou sauvegardée)." #~ msgid "Misc." #~ msgstr "Autres" #~ msgid "Show history" #~ msgstr "Montrer l'historique" #~ msgid "There are no offers for the player." #~ msgstr "Vous n'avez pas reçu d'offres concernant ce joueur." #~ msgid "This is your first season." #~ msgstr "Vous êtes dans votre première saison." #~ msgid "Username" #~ msgstr "Nom de l'utilisateur" bygfoot-2.3.2/install-sh0000755000175000017500000003246411225071373014161 0ustar eliaselias#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # 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_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' 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 no_target_directory= 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 *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done 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 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 trap '(exit $?); exit' 1 2 13 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 starting with `-'. 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 # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi 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. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/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-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 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 eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && 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=$dstdir/_inst.$$_ rmtmp=$dstdir/_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` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob 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 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: bygfoot-2.3.2/mkinstalldirs0000755000175000017500000000370411225071373014756 0ustar eliaselias#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here bygfoot-2.3.2/INSTALL0000644000175000017500000002417211225071373013203 0ustar eliaseliasBygfoot Football Manager 2.3.2 AUTHORS: Gyozo Both Mark Lawrenz (mark@bygfoot.com) http://www.bygfoot.com Further below you find the extensive description on how to use 'configure' and 'make' to build this package; for most users, however, the standard three-step procedure 1. ./configure 2. make 3. (as root) make install should work perfectly. The default install prefix is /usr/local; you can override with './configure --prefix=your_prefix'. I have also made the experience that giving 'configure' an optimization flag 'configure CFLAGS=-O3' makes the binary smaller; it should also make the game faster, but the difference is probably not noticeable. '-Os' will make the executable even smaller. If you'd like to remove the game, type 'make uninstall' (as root). You'll need a more or less up-to-date system and some devel-packages to be able to compile 'bygfoot': - glib2 - gtk+2 - pango - atk - pkg-config - freetype2. If you don't have these, you should consider downloading one of the pre-compiled versions (rpm, deb or simple bin). ##################################################################### Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. bygfoot-2.3.2/ChangeLog0000644000175000017500000006060011225071373013720 0ustar eliaselias05/07/2009: v2.3.2 - added Turkish translation, news and hints (thanks to Cem Uykun) - updated Turkish player names, commentaries (thanks to Cem Uykun) - added Greek translation, news and hints (thanks to Ilias Makris) - added Swedish news and updated Swedish translation (thanks to Daniel Nylander) - updated greek, italian, romanian, chinese translation - updated Danish translation and hints (thanks to Joe Dalton) - added Danish news file (thanks to Joe Dalton) - added more meaning to autosave filenames (user, country etc.) - added W-L-D and cup round robin rank info to the next opponent view - added possibility to edit player names in the second player list - corrected some supercup definition errors which resulted in crashes - foul probabilities in the live game are more sophisticated now - added a simple GUI for editing Bygfoot constants in the preferences (enabling users to fine-tune the game) - there is an option to store the order of your team, this order will be restored after a match 29/01/2009: v2.3.1 - added possibility for multiple tables in leagues (think apertura/clausura in south america) - added joined leagues feature (think conferences in US sports) - added variable round robins for cups and variable breaks between round robins - solved some minor bugs - added clicking in tables and fixtures mode (switches to the other view, respectively) - added new images for simulation - added newspaper feature - the country selection got some convenience updates - updated player names for most European countries (thanks Mihai Floran, tomassi) - updated Swedish translation (thanks to Daniel Nylander) - updated North American country definitions (thanks to Chris Hunter), - updated South American country definitions (thanks to Ivan Ramirez), - updated and added European country definitions (thanks to Tommasi, Mihai Floran) - revamped European cup system (thanks to Tommasi) - updated Polish translation (thanks to MichaÅ‚ Rudolf) - updated Romanian translations (thanks to Mihai Floran) - updated Chinese translation (thanks to Jie Luo, Calvin Zhuang) - added Portuguese translation (thanks to Marco Alves) - added Brazilian Portuguese translation (thanks to Valdinei Martins) - updated Spanish translation (thanks to Ivan Ramirez) - updated Dutch translation - updated German translation 06/11/2008: v2.3.0 - added flag for Montenegro (thanks to Mihai Floran) - added definitions for a European Union League (thanks to Mihai Floran) - added new short leagues (thanks to Mihai Floran) - added definitions for Hungary (thanks to Mihai Floran) - added definitions for Russia (thanks to Mihai Floran) - added definitions for Portugal (thanks to Mihai Floran) - added definitions for Austria (thanks to Mihai Floran) - added definitions for Ukraine (thanks to Mihai Floran) - added definitions for Moldova (thanks to Mihai Floran) - added league commentary for Italy (thanks to Basilio Silvio Greco) - added league commentary for Romania (thanks to Mihai Floran) - added Romanian hints (thanks to Mihai Floran) - added updated definitions for Romania (thanks to Mihai Floran) - fixed a problem with the Youth Academy preference - added player balking during transfers - added ticket prices for the stadium - added variable interest rate for loans - added automatic loan repayment - fixed next opponent display bug on Mac - update french translation (thanks to Marc Schneider) 3/02/2008: v2.2.1 - added new pictures (thanks to Michael Duecker) - deleted old pictures - added Italian hints (thanks to Basilio Silvio Greco) - updated Italian translation (thanks to Basilio Silvio Greco) - added definitions for Peru (thanks to Ivan Ramirez) - updated French translation (thanks to Marc Schneider) - updated French live game commentary file (thanks to Marc Schneider) - added definitions for a FIFA league (thanks to Ivan Ramirez) - added player names for Peru (thanks to Ivan Ramirez) - added player names for Czech Republic (thanks to Pavel Pulpan) - added flag for Czech Republic (thanks to Pavel Pulpan) - added Czech Republic to the cups (thanks to Pavel Pulpan) - added league of the Czech Republic (thanks to Pavel Pulpan) - removed short league of the Czech Republic 5/18/2007: v2.2.0 - added updated definitions for Mexico (thanks to Christopher Hunter) - added updated definitions for USA (thanks to Christopher Hunter) - added updated definitions for Japan (thanks to Christopher Hunter) - fixed some minor bugs 3/4/2007: v2.1.1 - added Polish translation for the training camp (thanks to Michal Rudolf) - added French translation for the training camp (thanks to Alexandre Coutherez and Forjan Frédéric) - changes in gui to make bygfoot usable for blind users. Added possibility to swap players using the RETURN key. (thanks to Roberto Burceni for the input) - added new definitions for USA (thanks to Christopher Hunter) - added new definitions for Argentina (thanks to Christopher Hunter) - added new definitions for Mexico (thanks to Christopher Hunter) - added new definitions for Japan (thanks to Christopher Hunter) - added definitions and names for Turkey (thanks to Onur Aydin) - corrected a bug in training camp. The counting of the training points now works correct. - changed the costs of the training camps - added a couple of new tags to the XML definition system related to weeks with two matchdays of the same competition - changed the ticket income of cup matches without a second leg. The ticket income is subdivided. 50% for each team. - fixed some minor bugs 1/27/2007: v2.1.0 - added new feature training camp - updated German definition - added "luck"-feature to make long-lasting success even harder for the user - added new definitions for USA (thanks to Christopher Hunter) - added Dutch translation for the training camp (thanks to Tobe Deprez) - added Romanian translation for the training camp (thanks to Spoială Cristian) - added Danish translation for the training camp (thanks to Kristian Poul Herkild) - added Swedish translation for the training camp (thanks to Daniel Nylander) - added Spanish translation for the training camp (thanks to Carlos Garces) - added German translation for the training camp 12/11/2006: v2.0.1 - fixed some minor bugs - updated German definition and team def files (thanks to Michael) - added (new) definitions for USA, Japan, Mexico and Argentina (thanks to Christopher) - added French live game commentary (thanks to Alexandre Coutherez) 6/4/2006: v2.0.0 - updated English, Scottish and Irish definitions (thanks to Mark) - updated German definition - fixed a bug that prevented 1st league CPU teams from growing stronger when the user became champion - fixed some zenity-related errors in the bygfoot-update script - updated translations - fixed a bug that lead to a crash on AMD64-systems - corrected some spelling mistakes in the English commentary file (Mark) 5/12/2006: v1.9.6 - fixed a bug that made the main window remain insensitive after opening and closing some other window - fixed a bug that crashed the game when loading memorable matches - fixed some nonsensical decisions in the strategy xml files - updated Irish definition (Mark Calderbank) - fixed a bug that crashed the game if you changed boost/style in the live game window near the end of the game - fixed a bug that made the WC 2006 unplayable (the final in Germany got skipped) 3/24/2006: v1.9.5 - fixed a bug that led to a 'cup not found' exit after a few seasons - fixed a minor youth academy bug - added a splash screen - added definition for the Euro 2008 - added a definition for Sweden and a Swedish translation (thanks to Daniel Nylander) 12/22/2005: v1.9.4 - fixed an annoying crash that occurs every time a user wins a cup or loses a cup final - fixed a bug that prevented the Windows version from saving correctly 12/14/2005: v1.9.3 - updated German country definition (thanks to Sebastian Vöcking, Michael Trent) - added strategies for CPU teams - added option to randomise teams in cups in the startup window (relevant for the World Cup definition, mainly) - added search popup to the teams list in the startup window (just type a few letters to begin search) - added betting - minor bugfixes - boost costs money - reworked the Brazilian definition, making it more like it is in reality - added some nice pictures to the progress bar shown when calculating results or loading/saving games - added job exchange (including jobs from abroad!) - added definition for Greece (thanks to Theodore Dimitriadis) - minor usability improvements, involving the startup window and right/left-clicking on players - removed source update feature from the bygfoot-update script (use the CVS version to live on the bleeding edge) 10/16/2005: v1.9.2 - fixed some minor bugs - updated translations - added Spanish and Chinese translations - switched from 'arj' to GNU 'zip' in the Windows port - added player streaks (hot/cold) - added definition for the Netherlands (thanks to Zwakstroom) - added definition for the World Cup 2006 Germany - minor definition system improvements - window geometry can be saved - boost and style change 'on the fly' during live games - added season results view (Figures -> Season results) - added command line options 09/10/2005: v1.9.1 - updated German and Dutch translations - added Polish (complete), French (almost complete), Romanian (a.c.) and Bulgarian (a.c.) translations - added i18n support for the binary package - transfer offers are remembered - added sponsorship money - fixed some minor bugs - improved live game commentary (moved to XML files, added conditions etc.) - added country definitions for Australia, Bulgaria, Victoria (Australia), Spain and Serbia&Montenegro - added youth academy - added experimental Windows port (thanks to Simon Binns) - improved definition system - added memorable matches feature 06/18/2005: v1.9.0 - complete rewriting of the game, too many changes to count them and keep them in mind. among the most important ones are: - real interactive live game - hotseat multiplayer - extremely flexible and customizable country definitions - country-specific player names - constants determining game behaviour are loaded from a text file making it easy to change and fine-tune the game 06/18/2005: v1.8.2 - corrected a bug in the update script - fixed the job offer bug - added some more keyboard shortcuts - corrected a 'ghost-player'-bug after a transfer 01/30/2005: v1.8.1 - added Dutch translation and country file for Belgium (thanks to ATD) - fixed a bug that prevented loading of custom country files - fixed a season objective bug - fixed a floating point bug (thanks to Ken Brush) 01/30/2005: v1.8.0 (changes compared to 1.6.3) - added a lot of new and fine icons (thanks to Vector) - added GeoVah's season objective patch (thanks, GeoVah) - added possibility to disable savegame compression - stadium events are less harsh - there are more players from lower leagues on the transfer list - switched the load/save system to XML, making it slower but more flexible (thanks to Arnaud Le Rouzic for valuable help) - improved the options window (tabs make it more orderly now) - added second player list (also with tabs) - complete Bygfoot packages can be downloaded with the update script now - added gettext support and French, German, Russian, Hungarian, Romanian and Portuguese translations (see AUTHORS) - fixed a bug concerning own goals in live games - added player and team 'histories' - added boost feature - added country file for Mexico (thanks to Arturo Mendez) - added country files for Chile (thanks to Julio Saldivar) - improved the update script - added a simple gui for the script - added updated country file for Italy (thanks to Marco Fabbri) - fixed a bug that led to no ticket income for cup games - fixed a bug that occurred when you made a stadium enlargement over several weeks - replaced official team names with city names because of trademark issues (the official names can be downloaded from http://www.bygfoot.com) - removed official player names because of the same reason (you can still download them from the homepage) - added injuries and cards display for opponent teams in the match summary - clicking on a team name in the tables shows the team's player list - clicking on a fixture shows the player list of one of the teams, depending on the mouse button you use - job offers show a lot more information on the team offering the job - a player can suffer an injury that forces him to retire - added own goals and penalties in regulation and extra time - added reasons why a player was banned (thanks to Tom Chance for the correct football expressions) - added player and some more team awards (with prize money) at the end of a season NOTE: The 1.8 branch is not savegame-compatible to the 1.6.x versions. 11/23/2004: v1.7.3 - switched the load/save system to XML, making it slower but more flexible (thanks to Arnaud Le Rouzic for valuable help) - improved the options window (tabs make it more orderly now) - added second player list (also with tabs) - complete Bygfoot packages can be downloaded with the update script now - added gettext support and French, German, Russian, Hungarian, Romanian and Portuguese translations - fixed a bug concerning own goals in live games - added player and team 'histories' - added boost feature 11/23/2004: v1.6.3 - fixed a bug that caused the game to interpret promotion game home/away results incorrectly - added translations for the interface (so the game's partly translated) 09/30/2004: v1.7.2 - added country file for Mexico (thanks to Arturo Mendez) - improved the update script - added a simple gui for the script - added updated country file for Italy (thanks to Marco Fabbri) - fixed a bug that led to no ticket income for cup games - fixed a bug that occurred when you made a stadium enlargement over several weeks - replaced official team names with city names because of trademark issues (the official names can be downloaded from http://www.bygfoot.com) - removed official player names because of the same reason (you can still download them from the homepage) 09/30/2004: v1.6.2 - improved the update script - added updated country file for Italy (thanks to Marco Fabbri) - fixed a bug that led to no ticket income for cup games - fixed a bug that occurred when you made a stadium enlargement over several weeks - replaced official team names with city names because of trademark issues (the official names can be downloaded from http://www.bygfoot.com) - removed official player names because of the same reason (you can still download them from the homepage) 09/09/2004: v1.6.1 + 1.7.1 - corrected a bug that caused the game to hang if live games were switched on and there were no games to play - added an online update script for the source package ('bygfoot-update') 09/05/2004: v1.7.0 - added injuries and cards display for opponent teams in the match summary - clicking on a team name in the tables shows the team's player list - clicking on a fixture shows the player list of one of the teams, depending on the mouse button you use - job offers show a lot more information on the team offering the job - a player can suffer an injury that forces him to retire - added own goals and penalties in regulation and extra time - added reasons why a player was banned (thanks to Tom Chance for the correct football expressions) - added player and some more team awards (with prize money) at the end of a season 09/05/2004: v1.6.0 - added possibility to have messages shown instead of popups when possible - added extended stadium capacity enlargement possibilities - added possibility to fire a player - added 'Player actions' button - changed the current skill and fitness display a bit: current skill is now the skill that's really used when computing games (except for the home advantage factor); fitness can be 100% now and is shown in different colors (thanks to arnaudus) - corrected a minor display bug (you could see the updated rank in the main window when playing two live games already after the first one) - added uninstall possibility for the src version - added manpage - added a configuration file: $HOME/.bygfoot/text_files/bygfoot.conf; this way, your favourite settings get loaded even if you start a new game - added physician quality (like scout); better physician costs more but players heal better on average - healing time of players can be overestimated; until now it was always underestimated (i.e. the player was injured _at least_ as long as the expected recovery time) - corrected a save/load bug that occurred when you saved a game just before getting a new scout NOTE: The 1.6 branch is not savegame-compatible to the 1.4.x versions. 08/17/2004: v1.5.2 - added possibility to have messages shown instead of popups when possible - added extended stadium capacity enlargement possibilities - added possibility to fire a player - added 'Player actions' button - changed the current skill and fitness display a bit: current skill is now the skill that's really used when computing games (except for the home advantage factor); fitness can be 100% now and is shown in different colors (thanks to arnaudus) - corrected a minor display bug (you could see the updated rank in the main window when playing two live games already after the first one) 08/17/2004: v1.4.3 - corrected the '1-2'-bug: you couldn't enter these two digits into fields like the structure field because they were used as keyboard shortcuts for browsing forward and back. browsing's done with 'q' and 'w' now, and 'q' quits the game only when the browse buttons aren't shown (e.g. in main menu mode) - corrected some minor transfer list bugs (there seem to be infinitely many of these :-( ) - fixed a bug that occurred when cup matches that ended drawn were shown - corrected a sorting bug (occurred when computing the tables) 07/12/2004: v1.4.2, v1.5.1 - corrected the transfer list bug 07/10/2004: v1.5.0 - added uninstall possibility for the src version - added manpage - added a configuration file: $HOME/.bygfoot/text_files/bygfoot.conf; this way, your favourite settings get loaded even if you start a new game - added physician quality (like scout); better physician costs more but players heal better on average - healing time of players can be overestimated; until now it was always underestimated (i.e. the player was injured _at least_ as long as the expected recovery time) NOTE: This version is unfortunately once again not savegame-compatible to 1.4.0. I'm terribly sorry. 07/10/2004: v1.4.1 - corrected the freeze bug that occurred when you had a $HOME/.bygfoot directory from an older Bygfoot version - fixed bookmaker's tip bug (thanks to metoneca) - changed that absurd 'physicist' to 'physio' - reduced the damage a fire caused to your stadium 07/03/2004: v1.4.0 - added Michal Rudolf's country file for Poland - added possibility to play in international cups only (e.g. participate in Champions' League only, without playing regular league games) - you can see information on your next opponents in the right part of the main window - swapping two players automatically adapts team structure (but you can switch this off, of course) - as you can see: the version numbering has changed. no alphas and omegas anymore! - added export/import features to the Editor; you can export individual teams to files and import such files into your local team definitions file - extended the filter rules for transfer list notification - added Autosave option - fixed a non-technical bug: european team names didn't change at the beginning of a new season - fixed a scrolling bug that occurred in the live game window when penalties were shot - added average skill labels in the main window - players are put onto the transfer list by right-clicking instead of left-clicking; left-clicking always swaps players now - converted player names to lowercase (which sounds easier than it is in reality; utf8 seems to have disadvantages, too) - the 'Rearrange Team' button automatically changes the team structure to the appropriate value - savegames located in the $HOME/.bygfoot/saves directory can be loaded from the command line without full path names - country files located in one of the support files directories (e.g. $HOME/.bygfoot/text_files) can be loaded with '-f filename' without full path names - fixed a money bug: you can pay debts with your drawing credit now - introduced playing style for cpu-teams (they always played balanced until now) - added variable interest rates for your debts (the more you owe, the lower the interest rate) - added possibility to display fixtures of all leagues NOTE: This version is unfortunately not compatible anymore to saved games of previous versions. 06/10/2004: v1.3 beta - corrected a horrible bug in the prize money function (thanks to Ken Brush) - added possibility to change team names with the Editor - added Jose Geraldo Gouvea's country file for Brazil - fixed some compiler warnings - fixed a bug that made it impossible to load a custom country file from the team selection window 05/24/2004: v1.3 alpha - first version including the Bygfoot Team Editor - you can edit complete teams and store them in a text file - switched to UTF-8 encoding: all text files are encoded that way, so that almost any special character (eg. in a team or player name) can be displayed correctly - added Cristian Spoiala's country file for Romania - fixed a bug that made it possible that you got hired by your own team - fixed a bug that occured when displaying a game result - created several new source files so that the code is distributed better now 05/07/2004: v1.1 beta - added possibility to change the name of your team - added possibility to filter transfer notifications by age - added prize money for teams finishing 1st - 3rd in the league - fixed a bug that caused players to have empty name when loading games from the command line - fixed a bug that led to poor attendance in cup games - added unselect feature in the player list - really good players appear less often on the transfer list - added drawing credit 04/16/2004: v1.1 alpha 'Eurofoot' - added some European leagues to choose from; the game structure stays the same, though - accordingly, the player names aren't just English ones anymore but international ones - improved player generation phase concerning speed: the game starts much quicker now - improved 'new week' functions; the results come even quicker - you can create an own 'localisation' by copying and editing one of the 'team_names_XX' files, so that you have custom team names and league/cup names - added an 'Undo' button NOTE: This version is unfortunately not compatible anymore to saved games of previous versions. This is because of the new player and team names. 04/07/2004: v1.0 final 'Quickfoot' - connected the skill level of European teams to the average level of the Premiership so that it doesn't become too easy to win the European Cups after a couple of seasons - worked a bit on speed issues; the game should start a bit faster and calculate the results quicker, too 02/24/2004: v1.0 beta - stadium values may be increased twice a week now - added some buttons to give easier access to tables and fixtures - added quick options in the main window - changed most of the finance issues: the ticket income is higher, but the difference between players with similar propertiers (skill etc.) in different leagues is much smaller now - UEFA Cup is now harder to win - fixed a bug that led to the same number of goal chances in every game regardless of the individual teams that played (this made it very hard for even the best teams to win predictably against weaker opponents) - fixed a bug that allowed players to have a talent above 9.9 - fixed a bug that caused the game to reject some normal save files - fixed a bug that made it less probable to sell a player the better the scout was - fixed a bug that caused a player with expected recovery time 11 to get healthy within a week 02/14/2004: v1.0 alpha - first graphical version using GTK+ 2 - new features: - live game - playing style (attack/defend) - buy players not on the transferlist 01/02/2002 v0.5 pre-alpha, alpha and beta - text-based version full of pointers and containing an untraceable segfault bygfoot-2.3.2/configure.in0000644000175000017500000000370711225071373014464 0ustar eliaseliasdnl Process this file with autoconf to produce a configure script. AC_INIT(configure.in) AM_INIT_AUTOMAKE(bygfoot, 0.1) AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE AC_ISC_POSIX AC_PROG_CC AM_PROG_CC_STDC AC_HEADER_STDC pkg_modules="gtk+-2.0 >= 2.6 glib-2.0 >= 2.12" dnl echo -n "checking for gthread-2.0 ... " dnl if pkg-config --exists gthread-2.0 ; then dnl echo "yes" dnl pkg_modules="$pkg_modules gthread-2.0" dnl else dnl echo "no" dnl AC_MSG_ERROR(gthread-2.0 not found) dnl fi PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) GETTEXT_PACKAGE=bygfoot AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.]) dnl Add the languages which your application supports here. ALL_LINGUAS="de nl fr pl pt_PT pt_BR ro bg zh es da sv it" AM_GLIB_GNU_GETTEXT dnl gstreamer checking AC_ARG_ENABLE(gstreamer, AC_HELP_STRING([--enable-gstreamer],[use GStreamer for media]), [case "${enableval}" in yes) ENABLE_GST=yes ;; no) ENABLE_GST=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-gstreamer) ;; esac], [ENABLE_GST=no]) dnl Default value dnl localedir specification LOCALEDIR="$datadir/locale" AC_ARG_WITH([localedir], AS_HELP_STRING([--with-localedir@<:@=DIR@:>@], [install locale data under specified dir]), LOCALEDIR="${withval}" ) AC_SUBST([LOCALEDIR]) if test x$ENABLE_GST = xyes; then HAVE_GSTREAMER=0 dnl start with 0.8 GST_MAJORMINOR=0.8 GSTREAMER_REQUIRED=0.8 PKG_CHECK_MODULES(GST, \ gstreamer-$GST_MAJORMINOR >= $GSTREAMER_REQUIRED, HAVE_GSTREAMER=1,HAVE_GSTREAMER=0) if test "x$HAVE_GSTREAMER" = "x0"; then AC_MSG_ERROR(you need gstreamer development packages installed !) fi AC_SUBST(GST_CFLAGS) AC_SUBST(GST_LIBS) AC_SUBST(HAVE_GSTREAMER) AC_DEFINE_UNQUOTED(HAVE_GSTREAMER, $HAVE_GSTREAME,[gstreamer]) AC_MSG_RESULT(GStreamer) fi ifdef(`__unix__', `AC_MSG_RESULT([OK]'')') AC_OUTPUT([ Makefile src/Makefile po/Makefile.in ]) bygfoot-2.3.2/src/0000755000175000017500000000000011225071373012733 5ustar eliaseliasbygfoot-2.3.2/src/gui.h0000644000175000017500000000267411225071373013701 0ustar eliaselias/* gui.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GUI_H #define GUI_H #include "bygfoot.h" /** What kind of pictures we on top of the progress bar. */ enum PicType { PIC_TYPE_NONE = 0, PIC_TYPE_SAVE, PIC_TYPE_LOAD, PIC_TYPE_MATCHPIC }; void gui_label_set_text_from_int(GtkLabel *label, gint number, gboolean append); void gui_show_progress(gfloat value, const gchar *text, gint pictype); gdouble gui_get_progress_bar_fraction(void); void gui_set_arrow_pair(gint pair, gboolean state); void gui_set_arrows(void); void gui_set_sensitive_lg_meters(gboolean state); #endif bygfoot-2.3.2/src/misc2_interface.c0000644000175000017500000017520711225071373016150 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "misc2_callbacks.h" #include "misc2_interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window_job_offer (void) { GtkWidget *window_job_offer; GtkWidget *vbox5; GtkWidget *label_text; GtkWidget *hseparator5; GtkWidget *hbox5; GtkWidget *vbox6; GtkWidget *label15; GtkWidget *label16; GtkWidget *label17; GtkWidget *label18; GtkWidget *label19; GtkWidget *label14; GtkWidget *vseparator3; GtkWidget *vbox7; GtkWidget *label_name; GtkWidget *label_league; GtkWidget *label_rank; GtkWidget *label_money; GtkWidget *label_cap; GtkWidget *label_saf; GtkWidget *hseparator6; GtkWidget *label28; GtkWidget *hbox17; GtkWidget *label42; GtkWidget *label_average_skill; GtkWidget *scrolledwindow1; GtkWidget *treeview_players; GtkWidget *hseparator7; GtkWidget *label_text2; GtkWidget *hbox6; GtkWidget *button_ok; GtkWidget *alignment5; GtkWidget *hbox9; GtkWidget *image5; GtkWidget *label31; GtkWidget *button_cancel; window_job_offer = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_job_offer), 6); gtk_window_set_title (GTK_WINDOW (window_job_offer), _("Job offer")); gtk_window_set_position (GTK_WINDOW (window_job_offer), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_job_offer), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_job_offer), 500, 600); vbox5 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox5); gtk_container_add (GTK_CONTAINER (window_job_offer), vbox5); label_text = gtk_label_new (""); gtk_widget_show (label_text); gtk_box_pack_start (GTK_BOX (vbox5), label_text, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_text), TRUE); hseparator5 = gtk_hseparator_new (); gtk_widget_show (hseparator5); gtk_box_pack_start (GTK_BOX (vbox5), hseparator5, FALSE, TRUE, 0); gtk_widget_set_size_request (hseparator5, 1, 10); hbox5 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox5); gtk_box_pack_start (GTK_BOX (vbox5), hbox5, FALSE, TRUE, 0); vbox6 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox6); gtk_box_pack_start (GTK_BOX (hbox5), vbox6, FALSE, TRUE, 0); label15 = gtk_label_new (_("Name")); gtk_widget_show (label15); gtk_box_pack_start (GTK_BOX (vbox6), label15, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label15), 2.23517e-10, 0.5); label16 = gtk_label_new (_("League")); gtk_widget_show (label16); gtk_box_pack_start (GTK_BOX (vbox6), label16, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label16), 2.23517e-10, 0.5); label17 = gtk_label_new (_("Rank")); gtk_widget_show (label17); gtk_box_pack_start (GTK_BOX (vbox6), label17, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label17), 2.23517e-10, 0.5); label18 = gtk_label_new (_("Money (approx.)")); gtk_widget_show (label18); gtk_box_pack_start (GTK_BOX (vbox6), label18, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label18), 2.23517e-10, 0.5); label19 = gtk_label_new (_("Stadium capacity")); gtk_widget_show (label19); gtk_box_pack_start (GTK_BOX (vbox6), label19, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label19), 2.23517e-10, 0.5); label14 = gtk_label_new (_("Stadium safety")); gtk_widget_show (label14); gtk_box_pack_start (GTK_BOX (vbox6), label14, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label14), 0, 0.5); vseparator3 = gtk_vseparator_new (); gtk_widget_show (vseparator3); gtk_box_pack_start (GTK_BOX (hbox5), vseparator3, FALSE, TRUE, 0); gtk_widget_set_size_request (vseparator3, 10, 1); vbox7 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox7); gtk_box_pack_start (GTK_BOX (hbox5), vbox7, TRUE, TRUE, 0); label_name = gtk_label_new (""); gtk_widget_show (label_name); gtk_box_pack_start (GTK_BOX (vbox7), label_name, FALSE, FALSE, 0); label_league = gtk_label_new (""); gtk_widget_show (label_league); gtk_box_pack_start (GTK_BOX (vbox7), label_league, FALSE, FALSE, 0); label_rank = gtk_label_new (""); gtk_widget_show (label_rank); gtk_box_pack_start (GTK_BOX (vbox7), label_rank, FALSE, FALSE, 0); label_money = gtk_label_new (""); gtk_widget_show (label_money); gtk_box_pack_start (GTK_BOX (vbox7), label_money, FALSE, FALSE, 0); label_cap = gtk_label_new (""); gtk_widget_show (label_cap); gtk_box_pack_start (GTK_BOX (vbox7), label_cap, FALSE, FALSE, 0); label_saf = gtk_label_new (""); gtk_widget_show (label_saf); gtk_box_pack_start (GTK_BOX (vbox7), label_saf, FALSE, FALSE, 0); hseparator6 = gtk_hseparator_new (); gtk_widget_show (hseparator6); gtk_box_pack_start (GTK_BOX (vbox5), hseparator6, FALSE, TRUE, 0); gtk_widget_set_size_request (hseparator6, 1, 10); label28 = gtk_label_new (_("Player list")); gtk_widget_show (label28); gtk_box_pack_start (GTK_BOX (vbox5), label28, FALSE, FALSE, 0); hbox17 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox17); gtk_box_pack_start (GTK_BOX (vbox5), hbox17, FALSE, FALSE, 0); label42 = gtk_label_new (_("Average skill:")); gtk_widget_show (label42); gtk_box_pack_start (GTK_BOX (hbox17), label42, FALSE, FALSE, 0); label_average_skill = gtk_label_new (""); gtk_widget_show (label_average_skill); gtk_box_pack_start (GTK_BOX (hbox17), label_average_skill, FALSE, FALSE, 0); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_box_pack_start (GTK_BOX (vbox5), scrolledwindow1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow1), 4); treeview_players = gtk_tree_view_new (); gtk_widget_show (treeview_players); gtk_container_add (GTK_CONTAINER (scrolledwindow1), treeview_players); hseparator7 = gtk_hseparator_new (); gtk_widget_show (hseparator7); gtk_box_pack_start (GTK_BOX (vbox5), hseparator7, FALSE, TRUE, 0); gtk_widget_set_size_request (hseparator7, 1, 10); label_text2 = gtk_label_new (""); gtk_widget_show (label_text2); gtk_box_pack_start (GTK_BOX (vbox5), label_text2, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label_text2), 0, 5); hbox6 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox6); gtk_box_pack_start (GTK_BOX (vbox5), hbox6, FALSE, TRUE, 0); button_ok = gtk_button_new (); gtk_widget_show (button_ok); gtk_box_pack_start (GTK_BOX (hbox6), button_ok, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_ok), 2); alignment5 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment5); gtk_container_add (GTK_CONTAINER (button_ok), alignment5); hbox9 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox9); gtk_container_add (GTK_CONTAINER (alignment5), hbox9); image5 = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image5); gtk_box_pack_start (GTK_BOX (hbox9), image5, FALSE, FALSE, 0); label31 = gtk_label_new_with_mnemonic (_("OK")); gtk_widget_show (label31); gtk_box_pack_start (GTK_BOX (hbox9), label31, FALSE, FALSE, 0); button_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_cancel); gtk_box_pack_start (GTK_BOX (hbox6), button_cancel, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_cancel), 2); g_signal_connect ((gpointer) window_job_offer, "delete_event", G_CALLBACK (on_window_job_offer_delete_event), NULL); g_signal_connect ((gpointer) button_ok, "clicked", G_CALLBACK (on_button_offer_ok_clicked), NULL); g_signal_connect ((gpointer) button_cancel, "clicked", G_CALLBACK (on_button_offer_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_job_offer, window_job_offer, "window_job_offer"); GLADE_HOOKUP_OBJECT (window_job_offer, vbox5, "vbox5"); GLADE_HOOKUP_OBJECT (window_job_offer, label_text, "label_text"); GLADE_HOOKUP_OBJECT (window_job_offer, hseparator5, "hseparator5"); GLADE_HOOKUP_OBJECT (window_job_offer, hbox5, "hbox5"); GLADE_HOOKUP_OBJECT (window_job_offer, vbox6, "vbox6"); GLADE_HOOKUP_OBJECT (window_job_offer, label15, "label15"); GLADE_HOOKUP_OBJECT (window_job_offer, label16, "label16"); GLADE_HOOKUP_OBJECT (window_job_offer, label17, "label17"); GLADE_HOOKUP_OBJECT (window_job_offer, label18, "label18"); GLADE_HOOKUP_OBJECT (window_job_offer, label19, "label19"); GLADE_HOOKUP_OBJECT (window_job_offer, label14, "label14"); GLADE_HOOKUP_OBJECT (window_job_offer, vseparator3, "vseparator3"); GLADE_HOOKUP_OBJECT (window_job_offer, vbox7, "vbox7"); GLADE_HOOKUP_OBJECT (window_job_offer, label_name, "label_name"); GLADE_HOOKUP_OBJECT (window_job_offer, label_league, "label_league"); GLADE_HOOKUP_OBJECT (window_job_offer, label_rank, "label_rank"); GLADE_HOOKUP_OBJECT (window_job_offer, label_money, "label_money"); GLADE_HOOKUP_OBJECT (window_job_offer, label_cap, "label_cap"); GLADE_HOOKUP_OBJECT (window_job_offer, label_saf, "label_saf"); GLADE_HOOKUP_OBJECT (window_job_offer, hseparator6, "hseparator6"); GLADE_HOOKUP_OBJECT (window_job_offer, label28, "label28"); GLADE_HOOKUP_OBJECT (window_job_offer, hbox17, "hbox17"); GLADE_HOOKUP_OBJECT (window_job_offer, label42, "label42"); GLADE_HOOKUP_OBJECT (window_job_offer, label_average_skill, "label_average_skill"); GLADE_HOOKUP_OBJECT (window_job_offer, scrolledwindow1, "scrolledwindow1"); GLADE_HOOKUP_OBJECT (window_job_offer, treeview_players, "treeview_players"); GLADE_HOOKUP_OBJECT (window_job_offer, hseparator7, "hseparator7"); GLADE_HOOKUP_OBJECT (window_job_offer, label_text2, "label_text2"); GLADE_HOOKUP_OBJECT (window_job_offer, hbox6, "hbox6"); GLADE_HOOKUP_OBJECT (window_job_offer, button_ok, "button_ok"); GLADE_HOOKUP_OBJECT (window_job_offer, alignment5, "alignment5"); GLADE_HOOKUP_OBJECT (window_job_offer, hbox9, "hbox9"); GLADE_HOOKUP_OBJECT (window_job_offer, image5, "image5"); GLADE_HOOKUP_OBJECT (window_job_offer, label31, "label31"); GLADE_HOOKUP_OBJECT (window_job_offer, button_cancel, "button_cancel"); return window_job_offer; } GtkWidget* create_window_progress (void) { GtkWidget *window_progress; GtkWidget *vbox28; GtkWidget *image_match; GtkWidget *progressbar; window_progress = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_position (GTK_WINDOW (window_progress), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_modal (GTK_WINDOW (window_progress), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_progress), 300, -1); gtk_window_set_type_hint (GTK_WINDOW (window_progress), GDK_WINDOW_TYPE_HINT_SPLASHSCREEN); vbox28 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox28); gtk_container_add (GTK_CONTAINER (window_progress), vbox28); image_match = create_pixmap (window_progress, NULL); gtk_widget_show (image_match); gtk_box_pack_start (GTK_BOX (vbox28), image_match, FALSE, FALSE, 0); progressbar = gtk_progress_bar_new (); gtk_widget_show (progressbar); gtk_box_pack_start (GTK_BOX (vbox28), progressbar, FALSE, FALSE, 0); gtk_widget_set_size_request (progressbar, 200, 20); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_progress, window_progress, "window_progress"); GLADE_HOOKUP_OBJECT (window_progress, vbox28, "vbox28"); GLADE_HOOKUP_OBJECT (window_progress, image_match, "image_match"); GLADE_HOOKUP_OBJECT (window_progress, progressbar, "progressbar"); return window_progress; } GtkWidget* create_window_warning (void) { GtkWidget *window_warning; GtkWidget *vbox13; GtkWidget *image7; GtkWidget *label_warning; GtkWidget *button_warning; window_warning = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_warning), 10); gtk_window_set_position (GTK_WINDOW (window_warning), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_warning), TRUE); vbox13 = gtk_vbox_new (FALSE, 10); gtk_widget_show (vbox13); gtk_container_add (GTK_CONTAINER (window_warning), vbox13); image7 = gtk_image_new_from_stock ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG); gtk_widget_show (image7); gtk_box_pack_start (GTK_BOX (vbox13), image7, FALSE, TRUE, 0); label_warning = gtk_label_new (""); gtk_widget_show (label_warning); gtk_box_pack_start (GTK_BOX (vbox13), label_warning, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_warning), TRUE); button_warning = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_warning); gtk_box_pack_start (GTK_BOX (vbox13), button_warning, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_warning, "delete_event", G_CALLBACK (on_button_warning_clicked), NULL); g_signal_connect ((gpointer) window_warning, "destroy_event", G_CALLBACK (on_button_warning_clicked), NULL); g_signal_connect ((gpointer) button_warning, "clicked", G_CALLBACK (on_button_warning_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_warning, window_warning, "window_warning"); GLADE_HOOKUP_OBJECT (window_warning, vbox13, "vbox13"); GLADE_HOOKUP_OBJECT (window_warning, image7, "image7"); GLADE_HOOKUP_OBJECT (window_warning, label_warning, "label_warning"); GLADE_HOOKUP_OBJECT (window_warning, button_warning, "button_warning"); return window_warning; } GtkWidget* create_window_digits (void) { GtkWidget *window_digits; GtkWidget *vbox14; GtkWidget *label_main; GtkWidget *hbox15; GtkWidget *vbox15; GtkWidget *label_1; GtkObject *spinbutton1_adj; GtkWidget *spinbutton1; GtkWidget *vbox16; GtkWidget *label_2; GtkObject *spinbutton2_adj; GtkWidget *spinbutton2; GtkWidget *hseparator10; GtkWidget *vbox29; GtkWidget *button_digits_ok; GtkWidget *button_digits_alr; GtkWidget *alignment16; GtkWidget *hbox38; GtkWidget *image23; GtkWidget *label63; GtkWidget *button_digits_cancel; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_digits = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_digits), 5); gtk_window_set_position (GTK_WINDOW (window_digits), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_digits), TRUE); vbox14 = gtk_vbox_new (FALSE, 10); gtk_widget_show (vbox14); gtk_container_add (GTK_CONTAINER (window_digits), vbox14); label_main = gtk_label_new (""); gtk_widget_show (label_main); gtk_box_pack_start (GTK_BOX (vbox14), label_main, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_main), TRUE); hbox15 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox15); gtk_box_pack_start (GTK_BOX (vbox14), hbox15, FALSE, TRUE, 0); vbox15 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox15); gtk_box_pack_start (GTK_BOX (hbox15), vbox15, TRUE, TRUE, 0); label_1 = gtk_label_new (""); gtk_widget_show (label_1); gtk_box_pack_start (GTK_BOX (vbox15), label_1, FALSE, FALSE, 0); spinbutton1_adj = gtk_adjustment_new (1, 0, 100000000, 100, 1000, 0); spinbutton1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton1_adj), 1, 0); gtk_widget_show (spinbutton1); gtk_box_pack_start (GTK_BOX (vbox15), spinbutton1, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton1), TRUE); vbox16 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox16); gtk_box_pack_start (GTK_BOX (hbox15), vbox16, TRUE, TRUE, 0); label_2 = gtk_label_new (""); gtk_widget_show (label_2); gtk_box_pack_start (GTK_BOX (vbox16), label_2, FALSE, FALSE, 0); spinbutton2_adj = gtk_adjustment_new (1, 0, 100000000, 10, 100, 0); spinbutton2 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton2_adj), 1, 0); gtk_widget_show (spinbutton2); gtk_box_pack_start (GTK_BOX (vbox16), spinbutton2, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton2), TRUE); hseparator10 = gtk_hseparator_new (); gtk_widget_show (hseparator10); gtk_box_pack_start (GTK_BOX (vbox14), hseparator10, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator10, -1, 10); vbox29 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox29); gtk_box_pack_start (GTK_BOX (vbox14), vbox29, TRUE, FALSE, 0); button_digits_ok = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (button_digits_ok); gtk_box_pack_start (GTK_BOX (vbox29), button_digits_ok, FALSE, FALSE, 0); button_digits_alr = gtk_button_new (); gtk_box_pack_start (GTK_BOX (vbox29), button_digits_alr, FALSE, FALSE, 0); alignment16 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment16); gtk_container_add (GTK_CONTAINER (button_digits_alr), alignment16); hbox38 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox38); gtk_container_add (GTK_CONTAINER (alignment16), hbox38); image23 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image23); gtk_box_pack_start (GTK_BOX (hbox38), image23, FALSE, FALSE, 0); label63 = gtk_label_new_with_mnemonic (_("Confirm & schedule repayment")); gtk_widget_show (label63); gtk_box_pack_start (GTK_BOX (hbox38), label63, FALSE, FALSE, 0); button_digits_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_digits_cancel); gtk_box_pack_start (GTK_BOX (vbox29), button_digits_cancel, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_digits_cancel, _("Esc"), NULL); gtk_widget_add_accelerator (button_digits_cancel, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_digits, "delete_event", G_CALLBACK (on_window_digits_delete_event), NULL); g_signal_connect ((gpointer) spinbutton1, "activate", G_CALLBACK (on_spinbutton1_activate), NULL); g_signal_connect ((gpointer) spinbutton2, "activate", G_CALLBACK (on_spinbutton2_activate), NULL); g_signal_connect ((gpointer) button_digits_ok, "clicked", G_CALLBACK (on_button_digits_ok_clicked), NULL); g_signal_connect ((gpointer) button_digits_alr, "clicked", G_CALLBACK (on_button_digits_alr_clicked), NULL); g_signal_connect ((gpointer) button_digits_cancel, "clicked", G_CALLBACK (on_button_digits_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_digits, window_digits, "window_digits"); GLADE_HOOKUP_OBJECT (window_digits, vbox14, "vbox14"); GLADE_HOOKUP_OBJECT (window_digits, label_main, "label_main"); GLADE_HOOKUP_OBJECT (window_digits, hbox15, "hbox15"); GLADE_HOOKUP_OBJECT (window_digits, vbox15, "vbox15"); GLADE_HOOKUP_OBJECT (window_digits, label_1, "label_1"); GLADE_HOOKUP_OBJECT (window_digits, spinbutton1, "spinbutton1"); GLADE_HOOKUP_OBJECT (window_digits, vbox16, "vbox16"); GLADE_HOOKUP_OBJECT (window_digits, label_2, "label_2"); GLADE_HOOKUP_OBJECT (window_digits, spinbutton2, "spinbutton2"); GLADE_HOOKUP_OBJECT (window_digits, hseparator10, "hseparator10"); GLADE_HOOKUP_OBJECT (window_digits, vbox29, "vbox29"); GLADE_HOOKUP_OBJECT (window_digits, button_digits_ok, "button_digits_ok"); GLADE_HOOKUP_OBJECT (window_digits, button_digits_alr, "button_digits_alr"); GLADE_HOOKUP_OBJECT (window_digits, alignment16, "alignment16"); GLADE_HOOKUP_OBJECT (window_digits, hbox38, "hbox38"); GLADE_HOOKUP_OBJECT (window_digits, image23, "image23"); GLADE_HOOKUP_OBJECT (window_digits, label63, "label63"); GLADE_HOOKUP_OBJECT (window_digits, button_digits_cancel, "button_digits_cancel"); GLADE_HOOKUP_OBJECT_NO_REF (window_digits, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_digits), accel_group); return window_digits; } GtkWidget* create_window_yesno (void) { GtkWidget *window_yesno; GtkWidget *vbox17; GtkWidget *image8; GtkWidget *label_yesno; GtkWidget *hbox18; GtkWidget *button_yesno_yes; GtkWidget *button_yesno_no; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_yesno = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_yesno), 5); gtk_window_set_position (GTK_WINDOW (window_yesno), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_yesno), TRUE); vbox17 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox17); gtk_container_add (GTK_CONTAINER (window_yesno), vbox17); image8 = gtk_image_new_from_stock ("gtk-dialog-question", GTK_ICON_SIZE_DIALOG); gtk_widget_show (image8); gtk_box_pack_start (GTK_BOX (vbox17), image8, FALSE, FALSE, 0); label_yesno = gtk_label_new (""); gtk_widget_show (label_yesno); gtk_box_pack_start (GTK_BOX (vbox17), label_yesno, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_yesno), TRUE); hbox18 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox18); gtk_box_pack_start (GTK_BOX (vbox17), hbox18, FALSE, FALSE, 0); button_yesno_yes = gtk_button_new_from_stock ("gtk-yes"); gtk_widget_show (button_yesno_yes); gtk_box_pack_start (GTK_BOX (hbox18), button_yesno_yes, TRUE, TRUE, 0); button_yesno_no = gtk_button_new_from_stock ("gtk-no"); gtk_widget_show (button_yesno_no); gtk_box_pack_start (GTK_BOX (hbox18), button_yesno_no, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_yesno_no, _("Esc"), NULL); gtk_widget_add_accelerator (button_yesno_no, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_yesno, "delete_event", G_CALLBACK (on_window_yesno_delete_event), NULL); g_signal_connect ((gpointer) button_yesno_yes, "clicked", G_CALLBACK (on_button_yesno_yes_clicked), NULL); g_signal_connect ((gpointer) button_yesno_no, "clicked", G_CALLBACK (on_button_yesno_no_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_yesno, window_yesno, "window_yesno"); GLADE_HOOKUP_OBJECT (window_yesno, vbox17, "vbox17"); GLADE_HOOKUP_OBJECT (window_yesno, image8, "image8"); GLADE_HOOKUP_OBJECT (window_yesno, label_yesno, "label_yesno"); GLADE_HOOKUP_OBJECT (window_yesno, hbox18, "hbox18"); GLADE_HOOKUP_OBJECT (window_yesno, button_yesno_yes, "button_yesno_yes"); GLADE_HOOKUP_OBJECT (window_yesno, button_yesno_no, "button_yesno_no"); GLADE_HOOKUP_OBJECT_NO_REF (window_yesno, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_yesno), accel_group); return window_yesno; } GtkWidget* create_window_contract (void) { GtkWidget *window_contract; GtkWidget *vbox18; GtkWidget *image9; GtkWidget *label_contract; GtkWidget *table1; GtkWidget *radiobutton_contract1; GSList *radiobutton_contract1_group = NULL; GtkWidget *radiobutton_contract3; GtkWidget *radiobutton_contract4; GtkWidget *radiobutton_contract2; GtkObject *spinbutton_contract1_adj; GtkWidget *spinbutton_contract1; GtkObject *spinbutton_contract2_adj; GtkWidget *spinbutton_contract2; GtkObject *spinbutton_contract3_adj; GtkWidget *spinbutton_contract3; GtkObject *spinbutton_contract4_adj; GtkWidget *spinbutton_contract4; GtkWidget *hseparator8; GtkWidget *hbox19; GtkWidget *button_contract_offer; GtkWidget *alignment6; GtkWidget *hbox20; GtkWidget *image10; GtkWidget *label44; GtkWidget *button_contract_cancel; window_contract = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_contract), 5); gtk_window_set_position (GTK_WINDOW (window_contract), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_contract), TRUE); vbox18 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox18); gtk_container_add (GTK_CONTAINER (window_contract), vbox18); image9 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_DIALOG); gtk_widget_show (image9); gtk_box_pack_start (GTK_BOX (vbox18), image9, FALSE, FALSE, 0); label_contract = gtk_label_new (""); gtk_widget_show (label_contract); gtk_box_pack_start (GTK_BOX (vbox18), label_contract, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_contract), TRUE); table1 = gtk_table_new (4, 2, FALSE); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox18), table1, FALSE, FALSE, 0); gtk_table_set_col_spacings (GTK_TABLE (table1), 3); radiobutton_contract1 = gtk_radio_button_new_with_mnemonic (NULL, _("1 year")); gtk_widget_show (radiobutton_contract1); gtk_table_attach (GTK_TABLE (table1), radiobutton_contract1, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_contract1), radiobutton_contract1_group); radiobutton_contract1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_contract1)); radiobutton_contract3 = gtk_radio_button_new_with_mnemonic (NULL, _("3 years")); gtk_widget_show (radiobutton_contract3); gtk_table_attach (GTK_TABLE (table1), radiobutton_contract3, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_contract3), radiobutton_contract1_group); radiobutton_contract1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_contract3)); radiobutton_contract4 = gtk_radio_button_new_with_mnemonic (NULL, _("4 years")); gtk_widget_show (radiobutton_contract4); gtk_table_attach (GTK_TABLE (table1), radiobutton_contract4, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_contract4), radiobutton_contract1_group); radiobutton_contract1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_contract4)); radiobutton_contract2 = gtk_radio_button_new_with_mnemonic (NULL, _("2 years")); gtk_widget_show (radiobutton_contract2); gtk_table_attach (GTK_TABLE (table1), radiobutton_contract2, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_contract2), radiobutton_contract1_group); radiobutton_contract1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_contract2)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton_contract2), TRUE); spinbutton_contract1_adj = gtk_adjustment_new (1, 1, 1000000, 1, 100, 0); spinbutton_contract1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_contract1_adj), 1, 0); gtk_widget_show (spinbutton_contract1); gtk_table_attach (GTK_TABLE (table1), spinbutton_contract1, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_contract1), TRUE); spinbutton_contract2_adj = gtk_adjustment_new (1, 1, 1000000, 1, 100, 0); spinbutton_contract2 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_contract2_adj), 1, 0); gtk_widget_show (spinbutton_contract2); gtk_table_attach (GTK_TABLE (table1), spinbutton_contract2, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); spinbutton_contract3_adj = gtk_adjustment_new (1, 1, 1000000, 1, 100, 0); spinbutton_contract3 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_contract3_adj), 1, 0); gtk_widget_show (spinbutton_contract3); gtk_table_attach (GTK_TABLE (table1), spinbutton_contract3, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); spinbutton_contract4_adj = gtk_adjustment_new (1, 1, 1000000, 1, 100, 0); spinbutton_contract4 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_contract4_adj), 1, 0); gtk_widget_show (spinbutton_contract4); gtk_table_attach (GTK_TABLE (table1), spinbutton_contract4, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); hseparator8 = gtk_hseparator_new (); gtk_widget_show (hseparator8); gtk_box_pack_start (GTK_BOX (vbox18), hseparator8, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator8, 1, 10); hbox19 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox19); gtk_box_pack_start (GTK_BOX (vbox18), hbox19, FALSE, FALSE, 0); button_contract_offer = gtk_button_new (); gtk_widget_show (button_contract_offer); gtk_box_pack_start (GTK_BOX (hbox19), button_contract_offer, TRUE, TRUE, 0); alignment6 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment6); gtk_container_add (GTK_CONTAINER (button_contract_offer), alignment6); hbox20 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox20); gtk_container_add (GTK_CONTAINER (alignment6), hbox20); image10 = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image10); gtk_box_pack_start (GTK_BOX (hbox20), image10, FALSE, FALSE, 0); label44 = gtk_label_new_with_mnemonic (_("Make offer")); gtk_widget_show (label44); gtk_box_pack_start (GTK_BOX (hbox20), label44, FALSE, FALSE, 0); button_contract_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_contract_cancel); gtk_box_pack_start (GTK_BOX (hbox19), button_contract_cancel, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_contract, "delete_event", G_CALLBACK (on_window_contract_delete_event), NULL); g_signal_connect ((gpointer) button_contract_offer, "clicked", G_CALLBACK (on_button_contract_offer_clicked), NULL); g_signal_connect ((gpointer) button_contract_cancel, "clicked", G_CALLBACK (on_button_contract_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_contract, window_contract, "window_contract"); GLADE_HOOKUP_OBJECT (window_contract, vbox18, "vbox18"); GLADE_HOOKUP_OBJECT (window_contract, image9, "image9"); GLADE_HOOKUP_OBJECT (window_contract, label_contract, "label_contract"); GLADE_HOOKUP_OBJECT (window_contract, table1, "table1"); GLADE_HOOKUP_OBJECT (window_contract, radiobutton_contract1, "radiobutton_contract1"); GLADE_HOOKUP_OBJECT (window_contract, radiobutton_contract3, "radiobutton_contract3"); GLADE_HOOKUP_OBJECT (window_contract, radiobutton_contract4, "radiobutton_contract4"); GLADE_HOOKUP_OBJECT (window_contract, radiobutton_contract2, "radiobutton_contract2"); GLADE_HOOKUP_OBJECT (window_contract, spinbutton_contract1, "spinbutton_contract1"); GLADE_HOOKUP_OBJECT (window_contract, spinbutton_contract2, "spinbutton_contract2"); GLADE_HOOKUP_OBJECT (window_contract, spinbutton_contract3, "spinbutton_contract3"); GLADE_HOOKUP_OBJECT (window_contract, spinbutton_contract4, "spinbutton_contract4"); GLADE_HOOKUP_OBJECT (window_contract, hseparator8, "hseparator8"); GLADE_HOOKUP_OBJECT (window_contract, hbox19, "hbox19"); GLADE_HOOKUP_OBJECT (window_contract, button_contract_offer, "button_contract_offer"); GLADE_HOOKUP_OBJECT (window_contract, alignment6, "alignment6"); GLADE_HOOKUP_OBJECT (window_contract, hbox20, "hbox20"); GLADE_HOOKUP_OBJECT (window_contract, image10, "image10"); GLADE_HOOKUP_OBJECT (window_contract, label44, "label44"); GLADE_HOOKUP_OBJECT (window_contract, button_contract_cancel, "button_contract_cancel"); return window_contract; } GtkWidget* create_window_user_management (void) { GtkWidget *window_user_management; GtkWidget *vbox19; GtkWidget *hbox23; GtkWidget *hpaned1; GtkWidget *vbox20; GtkWidget *label47; GtkWidget *scrolledwindow2; GtkWidget *viewport1; GtkWidget *treeview_user_management_users; GtkWidget *vbox21; GtkWidget *label46; GtkWidget *scrolledwindow3; GtkWidget *treeview_user_management_teams; GtkWidget *hbox21; GtkWidget *entry_user_management; GtkWidget *button_user_management_add; GtkWidget *alignment7; GtkWidget *hbox22; GtkWidget *image11; GtkWidget *label45; GtkWidget *hseparator9; GtkWidget *button_user_management_close; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); window_user_management = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_user_management), 5); gtk_window_set_position (GTK_WINDOW (window_user_management), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (window_user_management), 600, 550); vbox19 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox19); gtk_container_add (GTK_CONTAINER (window_user_management), vbox19); hbox23 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox23); gtk_box_pack_start (GTK_BOX (vbox19), hbox23, TRUE, TRUE, 0); hpaned1 = gtk_hpaned_new (); gtk_widget_show (hpaned1); gtk_box_pack_start (GTK_BOX (hbox23), hpaned1, TRUE, TRUE, 0); gtk_paned_set_position (GTK_PANED (hpaned1), 200); vbox20 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox20); gtk_paned_pack1 (GTK_PANED (hpaned1), vbox20, FALSE, TRUE); label47 = gtk_label_new (_("Users -- click to remove")); gtk_widget_show (label47); gtk_box_pack_start (GTK_BOX (vbox20), label47, FALSE, FALSE, 0); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow2); gtk_box_pack_start (GTK_BOX (vbox20), scrolledwindow2, TRUE, TRUE, 0); viewport1 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport1); gtk_container_add (GTK_CONTAINER (scrolledwindow2), viewport1); treeview_user_management_users = gtk_tree_view_new (); gtk_widget_show (treeview_user_management_users); gtk_container_add (GTK_CONTAINER (viewport1), treeview_user_management_users); gtk_tooltips_set_tip (tooltips, treeview_user_management_users, _("Click on a user to remove him from the game."), NULL); vbox21 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox21); gtk_paned_pack2 (GTK_PANED (hpaned1), vbox21, TRUE, TRUE); label46 = gtk_label_new (_("Available teams")); gtk_widget_show (label46); gtk_box_pack_start (GTK_BOX (vbox21), label46, FALSE, FALSE, 0); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow3); gtk_box_pack_start (GTK_BOX (vbox21), scrolledwindow3, TRUE, TRUE, 0); treeview_user_management_teams = gtk_tree_view_new (); gtk_widget_show (treeview_user_management_teams); gtk_container_add (GTK_CONTAINER (scrolledwindow3), treeview_user_management_teams); hbox21 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox21); gtk_box_pack_start (GTK_BOX (vbox19), hbox21, FALSE, FALSE, 0); entry_user_management = gtk_entry_new (); gtk_widget_show (entry_user_management); gtk_box_pack_start (GTK_BOX (hbox21), entry_user_management, TRUE, TRUE, 0); button_user_management_add = gtk_button_new (); gtk_widget_show (button_user_management_add); gtk_box_pack_start (GTK_BOX (hbox21), button_user_management_add, FALSE, FALSE, 0); alignment7 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment7); gtk_container_add (GTK_CONTAINER (button_user_management_add), alignment7); hbox22 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox22); gtk_container_add (GTK_CONTAINER (alignment7), hbox22); image11 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image11); gtk_box_pack_start (GTK_BOX (hbox22), image11, FALSE, FALSE, 0); label45 = gtk_label_new_with_mnemonic (_("Add user")); gtk_widget_show (label45); gtk_box_pack_start (GTK_BOX (hbox22), label45, FALSE, FALSE, 0); hseparator9 = gtk_hseparator_new (); gtk_widget_show (hseparator9); gtk_box_pack_start (GTK_BOX (vbox19), hseparator9, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator9, 1, 10); button_user_management_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_user_management_close); gtk_box_pack_start (GTK_BOX (vbox19), button_user_management_close, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_user_management, "delete_event", G_CALLBACK (on_window_user_management_delete_event), NULL); g_signal_connect ((gpointer) treeview_user_management_users, "button_press_event", G_CALLBACK (on_treeview_user_management_users_button_press_event), NULL); g_signal_connect ((gpointer) treeview_user_management_teams, "row_activated", G_CALLBACK (on_treeview_user_management_teams_row_activated), NULL); g_signal_connect ((gpointer) entry_user_management, "activate", G_CALLBACK (on_entry_user_management_activate), NULL); g_signal_connect ((gpointer) button_user_management_add, "clicked", G_CALLBACK (on_button_user_management_add_clicked), NULL); g_signal_connect ((gpointer) button_user_management_close, "clicked", G_CALLBACK (on_button_user_management_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_user_management, window_user_management, "window_user_management"); GLADE_HOOKUP_OBJECT (window_user_management, vbox19, "vbox19"); GLADE_HOOKUP_OBJECT (window_user_management, hbox23, "hbox23"); GLADE_HOOKUP_OBJECT (window_user_management, hpaned1, "hpaned1"); GLADE_HOOKUP_OBJECT (window_user_management, vbox20, "vbox20"); GLADE_HOOKUP_OBJECT (window_user_management, label47, "label47"); GLADE_HOOKUP_OBJECT (window_user_management, scrolledwindow2, "scrolledwindow2"); GLADE_HOOKUP_OBJECT (window_user_management, viewport1, "viewport1"); GLADE_HOOKUP_OBJECT (window_user_management, treeview_user_management_users, "treeview_user_management_users"); GLADE_HOOKUP_OBJECT (window_user_management, vbox21, "vbox21"); GLADE_HOOKUP_OBJECT (window_user_management, label46, "label46"); GLADE_HOOKUP_OBJECT (window_user_management, scrolledwindow3, "scrolledwindow3"); GLADE_HOOKUP_OBJECT (window_user_management, treeview_user_management_teams, "treeview_user_management_teams"); GLADE_HOOKUP_OBJECT (window_user_management, hbox21, "hbox21"); GLADE_HOOKUP_OBJECT (window_user_management, entry_user_management, "entry_user_management"); GLADE_HOOKUP_OBJECT (window_user_management, button_user_management_add, "button_user_management_add"); GLADE_HOOKUP_OBJECT (window_user_management, alignment7, "alignment7"); GLADE_HOOKUP_OBJECT (window_user_management, hbox22, "hbox22"); GLADE_HOOKUP_OBJECT (window_user_management, image11, "image11"); GLADE_HOOKUP_OBJECT (window_user_management, label45, "label45"); GLADE_HOOKUP_OBJECT (window_user_management, hseparator9, "hseparator9"); GLADE_HOOKUP_OBJECT (window_user_management, button_user_management_close, "button_user_management_close"); GLADE_HOOKUP_OBJECT_NO_REF (window_user_management, tooltips, "tooltips"); return window_user_management; } GtkWidget* create_window_debug (void) { GtkWidget *window_debug; GtkWidget *vbox22; GtkWidget *label48; GtkWidget *hbox24; GtkWidget *entry_debug; GtkWidget *button_debug_apply; GtkWidget *button_debug_close; GtkAccelGroup *accel_group; accel_group = gtk_accel_group_new (); window_debug = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_debug), 5); gtk_window_set_title (GTK_WINDOW (window_debug), _("Debug")); gtk_window_set_position (GTK_WINDOW (window_debug), GTK_WIN_POS_CENTER); vbox22 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox22); gtk_container_add (GTK_CONTAINER (window_debug), vbox22); label48 = gtk_label_new (_("Bygfoot debug window. If you got here by accident, CLOSE IMMEDIATELY (otherwise your CPU will be destroyed by overheating).")); gtk_widget_show (label48); gtk_box_pack_start (GTK_BOX (vbox22), label48, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label48), TRUE); hbox24 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox24); gtk_box_pack_start (GTK_BOX (vbox22), hbox24, FALSE, FALSE, 0); entry_debug = gtk_entry_new (); gtk_widget_show (entry_debug); gtk_box_pack_start (GTK_BOX (hbox24), entry_debug, TRUE, TRUE, 0); button_debug_apply = gtk_button_new_from_stock ("gtk-apply"); gtk_widget_show (button_debug_apply); gtk_box_pack_start (GTK_BOX (hbox24), button_debug_apply, FALSE, FALSE, 0); button_debug_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_debug_close); gtk_box_pack_start (GTK_BOX (vbox22), button_debug_close, FALSE, FALSE, 0); gtk_widget_add_accelerator (button_debug_close, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_debug, "delete_event", G_CALLBACK (on_window_debug_delete_event), NULL); g_signal_connect ((gpointer) entry_debug, "activate", G_CALLBACK (on_entry_debug_activate), NULL); g_signal_connect ((gpointer) button_debug_apply, "clicked", G_CALLBACK (on_button_debug_apply_clicked), NULL); g_signal_connect ((gpointer) button_debug_close, "clicked", G_CALLBACK (on_button_debug_close_activate), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_debug, window_debug, "window_debug"); GLADE_HOOKUP_OBJECT (window_debug, vbox22, "vbox22"); GLADE_HOOKUP_OBJECT (window_debug, label48, "label48"); GLADE_HOOKUP_OBJECT (window_debug, hbox24, "hbox24"); GLADE_HOOKUP_OBJECT (window_debug, entry_debug, "entry_debug"); GLADE_HOOKUP_OBJECT (window_debug, button_debug_apply, "button_debug_apply"); GLADE_HOOKUP_OBJECT (window_debug, button_debug_close, "button_debug_close"); gtk_window_add_accel_group (GTK_WINDOW (window_debug), accel_group); return window_debug; } GtkWidget* create_window_help (void) { GtkWidget *window_help; GtkWidget *vbox23; GtkWidget *notebook1; GtkWidget *vbox24; GtkWidget *image12; GtkWidget *label_about; GtkWidget *label49; GtkWidget *scrolledwindow4; GtkWidget *treeview_contributors; GtkWidget *label_contributors; GtkWidget *vbox25; GtkWidget *image13; GtkWidget *label_help_text1; GtkWidget *label_help_text2; GtkWidget *label51; GtkWidget *button_help_close; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_help = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_help), 5); gtk_window_set_position (GTK_WINDOW (window_help), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_help), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_help), 400, 400); vbox23 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox23); gtk_container_add (GTK_CONTAINER (window_help), vbox23); notebook1 = gtk_notebook_new (); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (vbox23), notebook1, TRUE, TRUE, 0); vbox24 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox24); gtk_container_add (GTK_CONTAINER (notebook1), vbox24); gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), vbox24, FALSE, FALSE, GTK_PACK_START); image12 = create_pixmap (window_help, "bygfoot_splash2.png"); gtk_widget_show (image12); gtk_box_pack_start (GTK_BOX (vbox24), image12, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (image12), 0, 5); label_about = gtk_label_new (""); gtk_widget_show (label_about); gtk_box_pack_start (GTK_BOX (vbox24), label_about, FALSE, FALSE, 0); GTK_WIDGET_SET_FLAGS (label_about, GTK_CAN_FOCUS); gtk_label_set_use_markup (GTK_LABEL (label_about), TRUE); gtk_label_set_justify (GTK_LABEL (label_about), GTK_JUSTIFY_CENTER); gtk_label_set_selectable (GTK_LABEL (label_about), TRUE); label49 = gtk_label_new (_("About")); gtk_widget_show (label49); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label49); scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow4); gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_SHADOW_IN); treeview_contributors = gtk_tree_view_new (); gtk_widget_show (treeview_contributors); gtk_container_add (GTK_CONTAINER (scrolledwindow4), treeview_contributors); label_contributors = gtk_label_new (_("Contributors")); gtk_widget_show (label_contributors); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label_contributors); vbox25 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox25); gtk_container_add (GTK_CONTAINER (notebook1), vbox25); gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), vbox25, FALSE, FALSE, GTK_PACK_START); image13 = gtk_image_new_from_stock ("gtk-help", GTK_ICON_SIZE_DIALOG); gtk_widget_show (image13); gtk_box_pack_start (GTK_BOX (vbox25), image13, FALSE, FALSE, 0); label_help_text1 = gtk_label_new (""); gtk_widget_show (label_help_text1); gtk_box_pack_start (GTK_BOX (vbox25), label_help_text1, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_help_text1), TRUE); label_help_text2 = gtk_label_new (""); gtk_widget_show (label_help_text2); gtk_box_pack_start (GTK_BOX (vbox25), label_help_text2, FALSE, FALSE, 0); GTK_WIDGET_SET_FLAGS (label_help_text2, GTK_CAN_FOCUS); gtk_label_set_line_wrap (GTK_LABEL (label_help_text2), TRUE); gtk_label_set_selectable (GTK_LABEL (label_help_text2), TRUE); label51 = gtk_label_new (_("Help")); gtk_widget_show (label51); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label51); button_help_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_help_close); gtk_box_pack_start (GTK_BOX (vbox23), button_help_close, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_help_close, _("Esc"), NULL); gtk_widget_add_accelerator (button_help_close, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_help, "delete_event", G_CALLBACK (on_window_help_delete_event), NULL); g_signal_connect ((gpointer) button_help_close, "clicked", G_CALLBACK (on_button_help_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_help, window_help, "window_help"); GLADE_HOOKUP_OBJECT (window_help, vbox23, "vbox23"); GLADE_HOOKUP_OBJECT (window_help, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (window_help, vbox24, "vbox24"); GLADE_HOOKUP_OBJECT (window_help, image12, "image12"); GLADE_HOOKUP_OBJECT (window_help, label_about, "label_about"); GLADE_HOOKUP_OBJECT (window_help, label49, "label49"); GLADE_HOOKUP_OBJECT (window_help, scrolledwindow4, "scrolledwindow4"); GLADE_HOOKUP_OBJECT (window_help, treeview_contributors, "treeview_contributors"); GLADE_HOOKUP_OBJECT (window_help, label_contributors, "label_contributors"); GLADE_HOOKUP_OBJECT (window_help, vbox25, "vbox25"); GLADE_HOOKUP_OBJECT (window_help, image13, "image13"); GLADE_HOOKUP_OBJECT (window_help, label_help_text1, "label_help_text1"); GLADE_HOOKUP_OBJECT (window_help, label_help_text2, "label_help_text2"); GLADE_HOOKUP_OBJECT (window_help, label51, "label51"); GLADE_HOOKUP_OBJECT (window_help, button_help_close, "button_help_close"); GLADE_HOOKUP_OBJECT_NO_REF (window_help, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_help), accel_group); return window_help; } GtkWidget* create_window_transfer_dialog (void) { GtkWidget *window_transfer_dialog; GtkWidget *vbox26; GtkWidget *image14; GtkWidget *label_transfer_dialog; GtkWidget *hbox25; GtkWidget *button_transfer_yes; GtkWidget *button_transfer_no; GtkWidget *button_transfer_later; GtkWidget *alignment8; GtkWidget *hbox26; GtkWidget *image15; GtkWidget *label53; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_transfer_dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_transfer_dialog), 5); gtk_window_set_position (GTK_WINDOW (window_transfer_dialog), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_transfer_dialog), TRUE); vbox26 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox26); gtk_container_add (GTK_CONTAINER (window_transfer_dialog), vbox26); image14 = gtk_image_new_from_stock ("gtk-dialog-question", GTK_ICON_SIZE_DIALOG); gtk_widget_show (image14); gtk_box_pack_start (GTK_BOX (vbox26), image14, FALSE, TRUE, 0); label_transfer_dialog = gtk_label_new (""); gtk_widget_show (label_transfer_dialog); gtk_box_pack_start (GTK_BOX (vbox26), label_transfer_dialog, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_transfer_dialog), TRUE); hbox25 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox25); gtk_box_pack_start (GTK_BOX (vbox26), hbox25, FALSE, FALSE, 0); button_transfer_yes = gtk_button_new_from_stock ("gtk-yes"); gtk_widget_show (button_transfer_yes); gtk_box_pack_start (GTK_BOX (hbox25), button_transfer_yes, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_transfer_yes, _("Return"), NULL); gtk_widget_add_accelerator (button_transfer_yes, "clicked", accel_group, GDK_Return, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); button_transfer_no = gtk_button_new_from_stock ("gtk-no"); gtk_widget_show (button_transfer_no); gtk_box_pack_start (GTK_BOX (hbox25), button_transfer_no, TRUE, TRUE, 0); button_transfer_later = gtk_button_new (); gtk_widget_show (button_transfer_later); gtk_box_pack_start (GTK_BOX (hbox25), button_transfer_later, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_transfer_later, _("Esc"), NULL); gtk_widget_add_accelerator (button_transfer_later, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); alignment8 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment8); gtk_container_add (GTK_CONTAINER (button_transfer_later), alignment8); hbox26 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox26); gtk_container_add (GTK_CONTAINER (alignment8), hbox26); image15 = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image15); gtk_box_pack_start (GTK_BOX (hbox26), image15, FALSE, FALSE, 0); label53 = gtk_label_new_with_mnemonic (_("Decide later")); gtk_widget_show (label53); gtk_box_pack_start (GTK_BOX (hbox26), label53, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_transfer_dialog, "delete_event", G_CALLBACK (on_window_transfer_dialog_delete_event), NULL); g_signal_connect ((gpointer) button_transfer_yes, "clicked", G_CALLBACK (on_button_transfer_yes_clicked), NULL); g_signal_connect ((gpointer) button_transfer_no, "clicked", G_CALLBACK (on_button_transfer_no_clicked), NULL); g_signal_connect ((gpointer) button_transfer_later, "clicked", G_CALLBACK (on_button_transfer_later_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_transfer_dialog, window_transfer_dialog, "window_transfer_dialog"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, vbox26, "vbox26"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, image14, "image14"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, label_transfer_dialog, "label_transfer_dialog"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, hbox25, "hbox25"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, button_transfer_yes, "button_transfer_yes"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, button_transfer_no, "button_transfer_no"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, button_transfer_later, "button_transfer_later"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, alignment8, "alignment8"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, hbox26, "hbox26"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, image15, "image15"); GLADE_HOOKUP_OBJECT (window_transfer_dialog, label53, "label53"); GLADE_HOOKUP_OBJECT_NO_REF (window_transfer_dialog, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_transfer_dialog), accel_group); return window_transfer_dialog; } GtkWidget* create_window_mmatches (void) { GtkWidget *window_mmatches; GtkWidget *vbox27; GtkWidget *hbox27; GtkWidget *label54; GtkWidget *entry_mm_file; GtkWidget *button_mm_file; GtkWidget *button_mm_reload; GtkWidget *alignment11; GtkWidget *hbox31; GtkWidget *image18; GtkWidget *label58; GtkWidget *button_mm_import; GtkWidget *alignment15; GtkWidget *hbox37; GtkWidget *image22; GtkWidget *label62; GtkWidget *scrolledwindow5; GtkWidget *treeview_mmatches; GtkWidget *hbox34; GtkWidget *button_mm_save_close; GtkWidget *alignment13; GtkWidget *hbox33; GtkWidget *image20; GtkWidget *label60; GtkWidget *button_mm_reload_close; GtkWidget *alignment14; GtkWidget *hbox35; GtkWidget *image21; GtkWidget *label61; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); window_mmatches = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_mmatches), 5); gtk_window_set_position (GTK_WINDOW (window_mmatches), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_mmatches), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_mmatches), 600, 500); vbox27 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox27); gtk_container_add (GTK_CONTAINER (window_mmatches), vbox27); hbox27 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox27); gtk_box_pack_start (GTK_BOX (vbox27), hbox27, FALSE, TRUE, 0); label54 = gtk_label_new (_("Current file")); gtk_widget_show (label54); gtk_box_pack_start (GTK_BOX (hbox27), label54, FALSE, FALSE, 0); entry_mm_file = gtk_entry_new (); gtk_widget_show (entry_mm_file); gtk_box_pack_start (GTK_BOX (hbox27), entry_mm_file, TRUE, TRUE, 0); button_mm_file = gtk_button_new_from_stock ("gtk-open"); gtk_widget_show (button_mm_file); gtk_box_pack_start (GTK_BOX (hbox27), button_mm_file, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_mm_file, _("Open a memorable matches file"), NULL); button_mm_reload = gtk_button_new (); gtk_widget_show (button_mm_reload); gtk_box_pack_start (GTK_BOX (hbox27), button_mm_reload, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_mm_reload, _("Reload matches from file"), NULL); alignment11 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment11); gtk_container_add (GTK_CONTAINER (button_mm_reload), alignment11); hbox31 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox31); gtk_container_add (GTK_CONTAINER (alignment11), hbox31); image18 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image18); gtk_box_pack_start (GTK_BOX (hbox31), image18, FALSE, FALSE, 0); label58 = gtk_label_new_with_mnemonic (_("Reload")); gtk_widget_show (label58); gtk_box_pack_start (GTK_BOX (hbox31), label58, FALSE, FALSE, 0); button_mm_import = gtk_button_new (); gtk_widget_show (button_mm_import); gtk_box_pack_start (GTK_BOX (hbox27), button_mm_import, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_mm_import, _("Import the matches from a memorable matches file"), NULL); alignment15 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment15); gtk_container_add (GTK_CONTAINER (button_mm_import), alignment15); hbox37 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox37); gtk_container_add (GTK_CONTAINER (alignment15), hbox37); image22 = gtk_image_new_from_stock ("gtk-paste", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image22); gtk_box_pack_start (GTK_BOX (hbox37), image22, FALSE, FALSE, 0); label62 = gtk_label_new_with_mnemonic (_("Import file")); gtk_widget_show (label62); gtk_box_pack_start (GTK_BOX (hbox37), label62, FALSE, FALSE, 0); scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow5); gtk_box_pack_start (GTK_BOX (vbox27), scrolledwindow5, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_SHADOW_IN); treeview_mmatches = gtk_tree_view_new (); gtk_widget_show (treeview_mmatches); gtk_container_add (GTK_CONTAINER (scrolledwindow5), treeview_mmatches); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview_mmatches), FALSE); hbox34 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox34); gtk_box_pack_start (GTK_BOX (vbox27), hbox34, FALSE, FALSE, 0); button_mm_save_close = gtk_button_new (); gtk_widget_show (button_mm_save_close); gtk_box_pack_start (GTK_BOX (hbox34), button_mm_save_close, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_mm_save_close, _("Save changes to file and close"), NULL); alignment13 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment13); gtk_container_add (GTK_CONTAINER (button_mm_save_close), alignment13); hbox33 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox33); gtk_container_add (GTK_CONTAINER (alignment13), hbox33); image20 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image20); gtk_box_pack_start (GTK_BOX (hbox33), image20, FALSE, FALSE, 0); label60 = gtk_label_new_with_mnemonic (_("Save and close")); gtk_widget_show (label60); gtk_box_pack_start (GTK_BOX (hbox33), label60, FALSE, FALSE, 0); button_mm_reload_close = gtk_button_new (); gtk_widget_show (button_mm_reload_close); gtk_box_pack_start (GTK_BOX (hbox34), button_mm_reload_close, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_mm_reload_close, _("Reload matches from file and close"), NULL); alignment14 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment14); gtk_container_add (GTK_CONTAINER (button_mm_reload_close), alignment14); hbox35 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox35); gtk_container_add (GTK_CONTAINER (alignment14), hbox35); image21 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image21); gtk_box_pack_start (GTK_BOX (hbox35), image21, FALSE, FALSE, 0); label61 = gtk_label_new_with_mnemonic (_("Reload and close")); gtk_widget_show (label61); gtk_box_pack_start (GTK_BOX (hbox35), label61, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_mmatches, "delete_event", G_CALLBACK (on_window_mmatches_delete_event), NULL); g_signal_connect ((gpointer) button_mm_file, "clicked", G_CALLBACK (on_button_mm_file_clicked), NULL); g_signal_connect ((gpointer) button_mm_reload, "clicked", G_CALLBACK (on_button_mm_reload_clicked), NULL); g_signal_connect ((gpointer) button_mm_import, "clicked", G_CALLBACK (on_button_mm_import_clicked), NULL); g_signal_connect ((gpointer) treeview_mmatches, "button_press_event", G_CALLBACK (on_treeview_mmatches_button_press_event), NULL); g_signal_connect ((gpointer) button_mm_save_close, "clicked", G_CALLBACK (on_button_mm_save_close_clicked), NULL); g_signal_connect ((gpointer) button_mm_reload_close, "clicked", G_CALLBACK (on_button_mm_reload_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_mmatches, window_mmatches, "window_mmatches"); GLADE_HOOKUP_OBJECT (window_mmatches, vbox27, "vbox27"); GLADE_HOOKUP_OBJECT (window_mmatches, hbox27, "hbox27"); GLADE_HOOKUP_OBJECT (window_mmatches, label54, "label54"); GLADE_HOOKUP_OBJECT (window_mmatches, entry_mm_file, "entry_mm_file"); GLADE_HOOKUP_OBJECT (window_mmatches, button_mm_file, "button_mm_file"); GLADE_HOOKUP_OBJECT (window_mmatches, button_mm_reload, "button_mm_reload"); GLADE_HOOKUP_OBJECT (window_mmatches, alignment11, "alignment11"); GLADE_HOOKUP_OBJECT (window_mmatches, hbox31, "hbox31"); GLADE_HOOKUP_OBJECT (window_mmatches, image18, "image18"); GLADE_HOOKUP_OBJECT (window_mmatches, label58, "label58"); GLADE_HOOKUP_OBJECT (window_mmatches, button_mm_import, "button_mm_import"); GLADE_HOOKUP_OBJECT (window_mmatches, alignment15, "alignment15"); GLADE_HOOKUP_OBJECT (window_mmatches, hbox37, "hbox37"); GLADE_HOOKUP_OBJECT (window_mmatches, image22, "image22"); GLADE_HOOKUP_OBJECT (window_mmatches, label62, "label62"); GLADE_HOOKUP_OBJECT (window_mmatches, scrolledwindow5, "scrolledwindow5"); GLADE_HOOKUP_OBJECT (window_mmatches, treeview_mmatches, "treeview_mmatches"); GLADE_HOOKUP_OBJECT (window_mmatches, hbox34, "hbox34"); GLADE_HOOKUP_OBJECT (window_mmatches, button_mm_save_close, "button_mm_save_close"); GLADE_HOOKUP_OBJECT (window_mmatches, alignment13, "alignment13"); GLADE_HOOKUP_OBJECT (window_mmatches, hbox33, "hbox33"); GLADE_HOOKUP_OBJECT (window_mmatches, image20, "image20"); GLADE_HOOKUP_OBJECT (window_mmatches, label60, "label60"); GLADE_HOOKUP_OBJECT (window_mmatches, button_mm_reload_close, "button_mm_reload_close"); GLADE_HOOKUP_OBJECT (window_mmatches, alignment14, "alignment14"); GLADE_HOOKUP_OBJECT (window_mmatches, hbox35, "hbox35"); GLADE_HOOKUP_OBJECT (window_mmatches, image21, "image21"); GLADE_HOOKUP_OBJECT (window_mmatches, label61, "label61"); GLADE_HOOKUP_OBJECT_NO_REF (window_mmatches, tooltips, "tooltips"); return window_mmatches; } bygfoot-2.3.2/src/training_interface.h0000755000175000017500000000015411225071373016742 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window_training_camp (void); bygfoot-2.3.2/src/xml_lg_commentary.c0000644000175000017500000002657611225071373016637 0ustar eliaselias/* xml_lg_commentary.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "free.h" #include "lg_commentary.h" #include "live_game.h" #include "misc.h" #include "variables.h" #include "xml_lg_commentary.h" #define TAG_LG_COMMENTARY "lg_commentary" #define TAG_EVENT "event" #define TAG_EVENT_NAME "name" #define TAG_EVENT_COMMENTARY "commentary" #define ATT_NAME_CONDITION "cond" #define ATT_NAME_PRIORITY "pri" #define EVENT_NAME_GENERAL "general" #define EVENT_NAME_START_MATCH "start_match" #define EVENT_NAME_HALF_TIME "half_time" #define EVENT_NAME_EXTRA_TIME "extra_time" #define EVENT_NAME_END_MATCH "end_match" #define EVENT_NAME_LOST_POSSESSION "lost_possession" #define EVENT_NAME_SCORING_CHANCE "scoring_chance" #define EVENT_NAME_HEADER "header" #define EVENT_NAME_PENALTY "penalty" #define EVENT_NAME_FREE_KICK "free_kick" #define EVENT_NAME_GOAL "goal" #define EVENT_NAME_OWN_GOAL "own_goal" #define EVENT_NAME_POST "post" #define EVENT_NAME_MISS "miss" #define EVENT_NAME_SAVE "save" #define EVENT_NAME_CROSS_BAR "cross_bar" #define EVENT_NAME_FOUL "foul" #define EVENT_NAME_FOUL_YELLOW "foul_yellow" #define EVENT_NAME_FOUL_RED "foul_red" #define EVENT_NAME_FOUL_RED_INJURY "foul_red_injury" #define EVENT_NAME_SEND_OFF "send_off" #define EVENT_NAME_INJURY "injury" #define EVENT_NAME_TEMP_INJURY "temp_injury" #define EVENT_NAME_PENALTIES "penalties" #define EVENT_NAME_STADIUM_BREAKDOWN "stadium_breakdown" #define EVENT_NAME_STADIUM_RIOTS "stadium_riots" #define EVENT_NAME_STADIUM_FIRE "stadium_fire" #define EVENT_NAME_SUBSTITUTION "substitution" #define EVENT_NAME_STRUCTURE_CHANGE "structure_change" #define EVENT_NAME_STYLE_CHANGE "style_change" #define EVENT_NAME_BOOST_CHANGE "boost_change" enum XmlLgCommentaryStates { STATE_LG_COMMENTARY = 0, STATE_EVENT, STATE_EVENT_NAME, STATE_EVENT_COMMENTARY, STATE_END }; gint state, commentary_idx, priority; gchar *condition; /** Return the appropriate enum integer going with the event string. */ gint xml_lg_commentary_event_name_to_int(const gchar *event_string) { #ifdef DEBUG printf("xml_lg_commentary_event_name_to_int\n"); #endif gint return_value = -1; if(strcmp(event_string, EVENT_NAME_GENERAL) == 0) return_value = LIVE_GAME_EVENT_GENERAL; else if(strcmp(event_string, EVENT_NAME_START_MATCH) == 0) return_value = LIVE_GAME_EVENT_START_MATCH; else if(strcmp(event_string, EVENT_NAME_HALF_TIME) == 0) return_value = LIVE_GAME_EVENT_HALF_TIME; else if(strcmp(event_string, EVENT_NAME_EXTRA_TIME) == 0) return_value = LIVE_GAME_EVENT_EXTRA_TIME; else if(strcmp(event_string, EVENT_NAME_END_MATCH) == 0) return_value = LIVE_GAME_EVENT_END_MATCH; else if(strcmp(event_string, EVENT_NAME_LOST_POSSESSION) == 0) return_value = LIVE_GAME_EVENT_LOST_POSSESSION; else if(strcmp(event_string, EVENT_NAME_SCORING_CHANCE) == 0) return_value = LIVE_GAME_EVENT_SCORING_CHANCE; else if(strcmp(event_string, EVENT_NAME_HEADER) == 0) return_value = LIVE_GAME_EVENT_HEADER; else if(strcmp(event_string, EVENT_NAME_PENALTY) == 0) return_value = LIVE_GAME_EVENT_PENALTY; else if(strcmp(event_string, EVENT_NAME_FREE_KICK) == 0) return_value = LIVE_GAME_EVENT_FREE_KICK; else if(strcmp(event_string, EVENT_NAME_GOAL) == 0) return_value = LIVE_GAME_EVENT_GOAL; else if(strcmp(event_string, EVENT_NAME_OWN_GOAL) == 0) return_value = LIVE_GAME_EVENT_OWN_GOAL; else if(strcmp(event_string, EVENT_NAME_POST) == 0) return_value = LIVE_GAME_EVENT_POST; else if(strcmp(event_string, EVENT_NAME_MISS) == 0) return_value = LIVE_GAME_EVENT_MISS; else if(strcmp(event_string, EVENT_NAME_SAVE) == 0) return_value = LIVE_GAME_EVENT_SAVE; else if(strcmp(event_string, EVENT_NAME_CROSS_BAR) == 0) return_value = LIVE_GAME_EVENT_CROSS_BAR; else if(strcmp(event_string, EVENT_NAME_FOUL) == 0) return_value = LIVE_GAME_EVENT_FOUL; else if(strcmp(event_string, EVENT_NAME_FOUL_YELLOW) == 0) return_value = LIVE_GAME_EVENT_FOUL_YELLOW; else if(strcmp(event_string, EVENT_NAME_FOUL_RED) == 0) return_value = LIVE_GAME_EVENT_FOUL_RED; else if(strcmp(event_string, EVENT_NAME_FOUL_RED_INJURY) == 0) return_value = LIVE_GAME_EVENT_FOUL_RED_INJURY; else if(strcmp(event_string, EVENT_NAME_SEND_OFF) == 0) return_value = LIVE_GAME_EVENT_SEND_OFF; else if(strcmp(event_string, EVENT_NAME_INJURY) == 0) return_value = LIVE_GAME_EVENT_INJURY; else if(strcmp(event_string, EVENT_NAME_TEMP_INJURY) == 0) return_value = LIVE_GAME_EVENT_TEMP_INJURY; else if(strcmp(event_string, EVENT_NAME_PENALTIES) == 0) return_value = LIVE_GAME_EVENT_PENALTIES; else if(strcmp(event_string, EVENT_NAME_STADIUM_BREAKDOWN) == 0) return_value = LIVE_GAME_EVENT_STADIUM_BREAKDOWN; else if(strcmp(event_string, EVENT_NAME_STADIUM_RIOTS) == 0) return_value = LIVE_GAME_EVENT_STADIUM_RIOTS; else if(strcmp(event_string, EVENT_NAME_STADIUM_FIRE) == 0) return_value = LIVE_GAME_EVENT_STADIUM_FIRE; else if(strcmp(event_string, EVENT_NAME_SUBSTITUTION) == 0) return_value = LIVE_GAME_EVENT_SUBSTITUTION; else if(strcmp(event_string, EVENT_NAME_STRUCTURE_CHANGE) == 0) return_value = LIVE_GAME_EVENT_STRUCTURE_CHANGE; else if(strcmp(event_string, EVENT_NAME_STYLE_CHANGE) == 0) return_value = LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND; else if(strcmp(event_string, EVENT_NAME_BOOST_CHANGE) == 0) return_value = LIVE_GAME_EVENT_BOOST_CHANGE_ANTI; else debug_print_message("xml_lg_commentary_event_name_to_int: unknown event name %s \n", event_string); return return_value; } /** * The function called by the parser when an opening tag is read. * The state variable is changed in this function and * sometimes memory allocated for the information that's going to be read. * @see The GLib manual (Simple XML parser). */ void xml_lg_commentary_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_lg_commentary_read_start_element\n"); #endif gint atidx = 0; if(strcmp(element_name, TAG_EVENT) == 0) state = STATE_EVENT; else if(strcmp(element_name, TAG_EVENT_NAME) == 0) state = STATE_EVENT_NAME; else if(strcmp(element_name, TAG_EVENT_COMMENTARY) == 0) { state = STATE_EVENT_COMMENTARY; condition = NULL; priority = 1; while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_CONDITION) == 0) condition = g_strdup(attribute_values[atidx]); else if(strcmp(attribute_names[atidx], ATT_NAME_PRIORITY) == 0) priority = (gint)g_ascii_strtod(attribute_values[atidx], NULL); atidx++; } } else if(strcmp(element_name, TAG_LG_COMMENTARY) != 0) debug_print_message("xml_lg_commentary_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_lg_commentary_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_lg_commentary_read_end_element\n"); #endif if(strcmp(element_name, TAG_EVENT) == 0) state = STATE_LG_COMMENTARY; else if(strcmp(element_name, TAG_EVENT_NAME) == 0 || strcmp(element_name, TAG_EVENT_COMMENTARY) == 0) state = STATE_EVENT; else if(strcmp(element_name, TAG_LG_COMMENTARY) != 0) debug_print_message("xml_lg_commentary_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_lg_commentary_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_lg_commentary_read_text\n"); #endif gchar buf[text_len + 1]; LGCommentary commentary; commentary.text = NULL; commentary.condition = NULL; strncpy(buf, text, text_len); buf[text_len] = '\0'; if(state == STATE_EVENT_NAME) commentary_idx = xml_lg_commentary_event_name_to_int(buf); else if(state == STATE_EVENT_COMMENTARY && commentary_idx != -1) { misc_string_assign(&commentary.text, buf); commentary.condition = condition; commentary.priority = MAX(1, priority); commentary.id = lg_commentary_id_new; g_array_append_val(lg_commentary[commentary_idx], commentary); } } /** * Function reading an XML file specifying a country. * The variable #country gets freed and overwritten afterwards. * @param lg_commentary_name name of the xml file (e.g. 'lg_commentary_england.xml') * to be read. Full path is not necessary, if the file is located in * one of the suppport directories; neither are the prefix 'lg_commentary_' * or the suffix '.xml'. */ void xml_lg_commentary_read(const gchar *commentary_file) { #ifdef DEBUG printf("xml_lg_commentary_read\n"); #endif GMarkupParser parser = {xml_lg_commentary_read_start_element, xml_lg_commentary_read_end_element, xml_lg_commentary_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(commentary_file, &file_contents, &length, &error)) { debug_print_message("xml_lg_commentary_read: error reading file %s\n", commentary_file); if(g_str_has_suffix(commentary_file, "lg_commentary_en.xml")) misc_print_error(&error, TRUE); else { misc_print_error(&error, FALSE); lg_commentary_load_commentary_file("lg_commentary_en.xml", TRUE); } return; } free_lg_commentary(TRUE); if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_lg_commentary_read: error parsing file %s\n", commentary_file); if(g_str_has_suffix(commentary_file, "lg_commentary_en.xml")) misc_print_error(&error, TRUE); else { misc_print_error(&error, FALSE); lg_commentary_load_commentary_file("lg_commentary_en.xml", TRUE); } return; } } bygfoot-2.3.2/src/xml_news.c0000644000175000017500000002341711225071373014742 0ustar eliaselias/* xml_news.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "free.h" #include "news.h" #include "misc.h" #include "variables.h" #include "xml_news.h" #define TAG_NEWS "news" #define TAG_ARTICLE "news_article" #define TAG_ARTICLE_TYPE "type" #define TAG_ARTICLE_CONDITION "condition" #define TAG_ARTICLE_PRIORITY "priority" #define TAG_ARTICLE_TITLE "title" #define TAG_ARTICLE_SUBTITLE "subtitle" #define ATT_NAME_TEXT_PRIORITY "priority" #define ATT_NAME_TEXT_CONDITION "condition" #define ARTICLE_TYPE_NAME_MATCH "match" #define ARTICLE_TYPE_NAME_FINANCES "finances" #define ARTICLE_TYPE_NAME_STAR_PLAYER_TRANSFER "star_player_transfer" #define ARTICLE_TYPE_NAME_LEAGUE_CHAMPION "league_champion" #define ARTICLE_TYPE_NAME_CUP_QUALIFICATION "cup_qualification" #define ARTICLE_TYPE_NAME_RELEGATION "relegation" enum XmlNewsStates { STATE_NEWS = 0, STATE_ARTICLE, STATE_ARTICLE_TYPE, STATE_ARTICLE_CONDITION, STATE_ARTICLE_PRIORITY, STATE_ARTICLE_TITLE, STATE_ARTICLE_SUBTITLE, STATE_END }; gint state, article_idx, priority; gchar *condition; NewsArticle new_article; NewsText new_title, new_subtitle; /** Return the appropriate enum integer going with the type string. */ gint xml_news_article_type_to_int(const gchar *type_string) { #ifdef DEBUG printf("xml_news_type_to_int\n"); #endif gint return_value = -1; if(strcmp(type_string, ARTICLE_TYPE_NAME_MATCH) == 0) return_value = NEWS_ARTICLE_TYPE_MATCH; else if(strcmp(type_string, ARTICLE_TYPE_NAME_FINANCES) == 0) return_value = NEWS_ARTICLE_TYPE_FINANCES; else if(strcmp(type_string, ARTICLE_TYPE_NAME_STAR_PLAYER_TRANSFER) == 0) return_value = NEWS_ARTICLE_TYPE_STAR_PLAYER_TRANSFER; else if(strcmp(type_string, ARTICLE_TYPE_NAME_LEAGUE_CHAMPION) == 0) return_value = NEWS_ARTICLE_TYPE_LEAGUE_CHAMPION; else if(strcmp(type_string, ARTICLE_TYPE_NAME_CUP_QUALIFICATION) == 0) return_value = NEWS_ARTICLE_TYPE_CUP_QUALIFICATION; else if(strcmp(type_string, ARTICLE_TYPE_NAME_RELEGATION) == 0) return_value = NEWS_ARTICLE_TYPE_RELEGATION; else debug_print_message("xml_news_type_to_int: unknown type name %s \n", type_string); return return_value; } /** * The function called by the parser when an opening tag is read. * The state variable is changed in this function and * sometimes memory allocated for the information that's going to be read. * @see The GLib manual (Simple XML parser). */ void xml_news_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_news_read_start_element\n"); #endif gint atidx; atidx = 0; if(strcmp(element_name, TAG_NEWS) == 0) state = STATE_NEWS; else if(strcmp(element_name, TAG_ARTICLE) == 0) { state = STATE_ARTICLE; new_article.titles = g_array_new(FALSE, FALSE, sizeof(NewsText)); new_article.subtitles = g_array_new(FALSE, FALSE, sizeof(NewsText)); new_article.condition = g_strdup("0"); new_article.priority = 1; new_article.id = news_article_id_new; } else if(strcmp(element_name, TAG_ARTICLE_TYPE) == 0) state = STATE_ARTICLE_TYPE; else if(strcmp(element_name, TAG_ARTICLE_CONDITION) == 0) state = STATE_ARTICLE_CONDITION; else if(strcmp(element_name, TAG_ARTICLE_PRIORITY) == 0) state = STATE_ARTICLE_PRIORITY; else if(strcmp(element_name, TAG_ARTICLE_TITLE) == 0) { state = STATE_ARTICLE_TITLE; new_title.id = news_title_id_new; new_title.priority = 1; new_title.condition = g_strdup("1"); while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_TEXT_PRIORITY) == 0) new_title.priority = (gint)g_ascii_strtod(attribute_values[atidx], NULL); else if(strcmp(attribute_names[atidx], ATT_NAME_TEXT_CONDITION) == 0) misc_string_assign(&new_title.condition, attribute_values[atidx]); atidx++; } } else if(strcmp(element_name, TAG_ARTICLE_SUBTITLE) == 0) { state = STATE_ARTICLE_SUBTITLE; new_subtitle.id = news_subtitle_id_new; new_subtitle.priority = 1; new_subtitle.condition = g_strdup("1"); while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_TEXT_PRIORITY) == 0) new_subtitle.priority = (gint)g_ascii_strtod(attribute_values[atidx], NULL); else if(strcmp(attribute_names[atidx], ATT_NAME_TEXT_CONDITION) == 0) misc_string_assign(&new_subtitle.condition, attribute_values[atidx]); atidx++; } } else debug_print_message("xml_news_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_news_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_news_read_end_element\n"); #endif if(strcmp(element_name, TAG_ARTICLE) == 0) { state = STATE_NEWS; g_array_append_val(news[article_idx], new_article); } else if(strcmp(element_name, TAG_ARTICLE_TYPE) == 0 || strcmp(element_name, TAG_ARTICLE_CONDITION) == 0 || strcmp(element_name, TAG_ARTICLE_PRIORITY) == 0 || strcmp(element_name, TAG_ARTICLE_TITLE) == 0 || strcmp(element_name, TAG_ARTICLE_SUBTITLE) == 0) state = STATE_ARTICLE; else if(strcmp(element_name, TAG_NEWS) != 0) debug_print_message("xml_news_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_news_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_news_read_text\n"); #endif gchar buf[text_len + 1]; gint int_value; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); if(state == STATE_ARTICLE_TYPE) article_idx = xml_news_article_type_to_int(buf); else if(state == STATE_ARTICLE_CONDITION) misc_string_assign(&new_article.condition, buf); else if(state == STATE_ARTICLE_PRIORITY) new_article.priority = int_value; else if(state == STATE_ARTICLE_TITLE) { new_title.text = g_strdup(buf); g_array_append_val(new_article.titles, new_title); } else if(state == STATE_ARTICLE_SUBTITLE) { new_subtitle.text = g_strdup(buf); g_array_append_val(new_article.subtitles, new_subtitle); } } /** * Function reading an XML file specifying a country. * The variable #country gets freed and overwritten afterwards. * @param news_file Name of the xml file (e.g. 'news_en.xml') * to be read. Full path is not necessary, if the file is located in * one of the suppport directories; neither are the prefix 'news_' * or the suffix '.xml'. */ void xml_news_read(const gchar *news_file) { #ifdef DEBUG printf("xml_news_read\n"); #endif GMarkupParser parser = {xml_news_read_start_element, xml_news_read_end_element, xml_news_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(news_file, &file_contents, &length, &error)) { debug_print_message("xml_news_read: error reading file %s\n", news_file); if(g_str_has_suffix(news_file, "news_en.xml")) misc_print_error(&error, TRUE); else { misc_print_error(&error, FALSE); news_load_news_file("news_en.xml", TRUE); } return; } free_news(TRUE); if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_news_read: error parsing file %s\n", news_file); if(g_str_has_suffix(news_file, "news_en.xml")) misc_print_error(&error, TRUE); else { misc_print_error(&error, FALSE); news_load_news_file("news_en.xml", TRUE); } return; } } bygfoot-2.3.2/src/option_gui.h0000644000175000017500000000247211225071373015265 0ustar eliaselias/* option_gui.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef OPTION_GUI_H #define OPTION_GUI_H #include "bygfoot.h" void option_gui_write_bool_widgets(gint **bool_options, GtkToggleButton **bool_widgets); void option_gui_write_spin_widgets(gint **spin_options, GtkSpinButton **spin_widgets); void option_gui_write_entry_widgets(gchar ***entry_options, GtkEntry **entry_widgets); void option_gui_set_up_window(void); void option_gui_write_options(void); #endif bygfoot-2.3.2/src/cup.h0000644000175000017500000000670211225071373013700 0ustar eliaselias/* cup.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef CUP_H #define CUP_H #include "bygfoot.h" #include "cup_struct.h" #include "fixture_struct.h" #include "league_struct.h" #define cup_get_last_tables_round(clid) &g_array_index(cup_from_clid(clid)->rounds, CupRound, cup_has_tables(clid)) #define cup_get_last_tables(clid) g_array_index(cup_from_clid(clid)->rounds, CupRound, cup_has_tables(clid)).tables Cup cup_new(gboolean new_id); CupChooseTeam cup_choose_team_new(void); CupRound cup_round_new(void); void cup_reset(Cup *cup); void cup_get_team_pointers(Cup *cup, gint round, GPtrArray *teams_sorted, gboolean preload); void cup_load_choose_team_generate(Cup *cup, CupRound *cup_round, const CupChooseTeam *ct); void cup_load_choose_team(Cup *cup, GPtrArray *teams, GPtrArray *teams_sorted, const CupChooseTeam *ct); void cup_load_choose_team_from_league(Cup *cup, const League *league, GPtrArray *teams, const CupChooseTeam *ct); void cup_load_choose_team_from_cup(Cup *cup, const Cup *cup_team, GPtrArray *teams, GPtrArray *teams_sorted, const CupChooseTeam *ct); gint cup_get_first_week_of_cup_round(Cup *cup, gint cup_round, gboolean with_delay); gint cup_get_matchdays_in_cup_round(const Cup *cup, gint round); gint cup_round_get_number_of_teams(const Cup *cup, gint round); gint cup_round_get_byes(const Cup *cup, gint round); gint cup_round_get_new_teams(const CupRound *cup_round); Cup* cup_from_clid(gint clid); Cup* cup_from_sid(const gchar* sid); void cup_round_get_name(const Fixture *fix, gchar *buf); GPtrArray* cup_get_teams_sorted(const Cup *cup); gint cup_compare_success_tables(const Team *tm1, const Team *tm2, const Cup *cup, gint round); gint cup_compare_success(gconstpointer a, gconstpointer b, gpointer data); gint cup_compare_success_knockout(const Team *tm1, const Team *tm2, const GArray *fixtures); gint cup_get_round_reached(const Team *tm, const GArray *fixtures); gboolean query_cup_begins(const Cup *cup); void cup_get_choose_team_league_cup(const CupChooseTeam *ct, const League **league, const Cup **cup); gint cup_get_last_week_from_first(const Cup *cup, gint first_week); void cup_get_round_name(const Cup *cup, gint round, gchar *buf); gint cup_has_tables(gint clid); Team* cup_get_winner(const Cup *cup); gboolean query_cup_transfer(void); gchar* cup_get_highlight_colour(const Cup *cup); gboolean cup_check_fixtures(const Cup *cup); gboolean cup_round_check_waits(const CupRound *cup_round); gboolean query_cup_self_referential(const Cup *cup); gboolean query_cup_hidden(const Cup *cup); #endif bygfoot-2.3.2/src/training_interface.c0000755000175000017500000002602311225071373016740 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "training_callbacks.h" #include "training_interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window_training_camp (void) { GtkWidget *window_training_camp; GtkWidget *panel_camp; GtkWidget *tf_costs; GtkWidget *hs_camp2; GtkWidget *l_camp_points; GtkWidget *b_inc_recreation; GtkWidget *image2; GtkWidget *l_recreation; GtkWidget *l_costs; GtkWidget *b_dec_training; GtkWidget *image3; GtkWidget *l_training; GtkWidget *b_inc_training; GtkWidget *image4; GtkWidget *hs_camp_points; GtkWidget *hs_training; GtkWidget *b_dec_recreation; GtkWidget *image1; GtkWidget *hs_recreation; GtkWidget *rb_camp1; GSList *rb_camp1_group = NULL; GtkWidget *rb_camp2; GtkWidget *rb_camp3; GtkWidget *hs_camp1; GtkWidget *b_ok; GtkWidget *b_cancel; GtkWidget *checkbutton_save; window_training_camp = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_training_camp), _("Training camp")); gtk_window_set_position (GTK_WINDOW (window_training_camp), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_training_camp), TRUE); gtk_window_set_resizable (GTK_WINDOW (window_training_camp), FALSE); panel_camp = gtk_fixed_new (); gtk_widget_show (panel_camp); gtk_container_add (GTK_CONTAINER (window_training_camp), panel_camp); gtk_widget_set_size_request (panel_camp, 500, 290); tf_costs = gtk_entry_new (); gtk_widget_show (tf_costs); gtk_fixed_put (GTK_FIXED (panel_camp), tf_costs, 336, 40); gtk_widget_set_size_request (tf_costs, 130, 22); GTK_WIDGET_UNSET_FLAGS (tf_costs, GTK_CAN_FOCUS); gtk_editable_set_editable (GTK_EDITABLE (tf_costs), FALSE); gtk_entry_set_has_frame (GTK_ENTRY (tf_costs), FALSE); gtk_entry_set_invisible_char (GTK_ENTRY (tf_costs), 9679); hs_camp2 = gtk_hseparator_new (); gtk_widget_show (hs_camp2); gtk_fixed_put (GTK_FIXED (panel_camp), hs_camp2, 25, 90); gtk_widget_set_size_request (hs_camp2, 450, 16); l_camp_points = gtk_label_new (_("Camp points")); gtk_widget_show (l_camp_points); gtk_fixed_put (GTK_FIXED (panel_camp), l_camp_points, 24, 192); gtk_widget_set_size_request (l_camp_points, 140, 20); b_inc_recreation = gtk_button_new (); gtk_widget_show (b_inc_recreation); gtk_fixed_put (GTK_FIXED (panel_camp), b_inc_recreation, 425, 125); gtk_widget_set_size_request (b_inc_recreation, 30, 26); image2 = create_pixmap (window_training_camp, "increase_green.png"); gtk_widget_show (image2); gtk_container_add (GTK_CONTAINER (b_inc_recreation), image2); l_recreation = gtk_label_new (_("Recreation")); gtk_widget_show (l_recreation); gtk_fixed_put (GTK_FIXED (panel_camp), l_recreation, 24, 128); gtk_widget_set_size_request (l_recreation, 140, 20); l_costs = gtk_label_new (_("Costs")); gtk_widget_show (l_costs); gtk_fixed_put (GTK_FIXED (panel_camp), l_costs, 255, 41); gtk_widget_set_size_request (l_costs, 90, 20); b_dec_training = gtk_button_new (); gtk_widget_show (b_dec_training); gtk_fixed_put (GTK_FIXED (panel_camp), b_dec_training, 176, 157); gtk_widget_set_size_request (b_dec_training, 30, 26); image3 = create_pixmap (window_training_camp, "decrease_red.png"); gtk_widget_show (image3); gtk_container_add (GTK_CONTAINER (b_dec_training), image3); l_training = gtk_label_new (_("Training")); gtk_widget_show (l_training); gtk_fixed_put (GTK_FIXED (panel_camp), l_training, 24, 160); gtk_widget_set_size_request (l_training, 140, 20); b_inc_training = gtk_button_new (); gtk_widget_show (b_inc_training); gtk_fixed_put (GTK_FIXED (panel_camp), b_inc_training, 425, 157); gtk_widget_set_size_request (b_inc_training, 30, 26); image4 = create_pixmap (window_training_camp, "increase_green.png"); gtk_widget_show (image4); gtk_container_add (GTK_CONTAINER (b_inc_training), image4); hs_camp_points = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 1, 10, 1, 0, 0))); gtk_widget_show (hs_camp_points); gtk_fixed_put (GTK_FIXED (panel_camp), hs_camp_points, 220, 184); gtk_widget_set_size_request (hs_camp_points, 200, 36); GTK_WIDGET_UNSET_FLAGS (hs_camp_points, GTK_CAN_FOCUS); gtk_scale_set_value_pos (GTK_SCALE (hs_camp_points), GTK_POS_RIGHT); hs_training = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 1, 10, 1, 0, 0))); gtk_widget_show (hs_training); gtk_fixed_put (GTK_FIXED (panel_camp), hs_training, 220, 152); gtk_widget_set_size_request (hs_training, 200, 36); GTK_WIDGET_UNSET_FLAGS (hs_training, GTK_CAN_FOCUS); gtk_scale_set_value_pos (GTK_SCALE (hs_training), GTK_POS_RIGHT); b_dec_recreation = gtk_button_new (); gtk_widget_show (b_dec_recreation); gtk_fixed_put (GTK_FIXED (panel_camp), b_dec_recreation, 176, 125); gtk_widget_set_size_request (b_dec_recreation, 30, 26); image1 = create_pixmap (window_training_camp, "decrease_red.png"); gtk_widget_show (image1); gtk_container_add (GTK_CONTAINER (b_dec_recreation), image1); hs_recreation = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 1, 10, 1, 0, 0))); gtk_widget_show (hs_recreation); gtk_fixed_put (GTK_FIXED (panel_camp), hs_recreation, 220, 120); gtk_widget_set_size_request (hs_recreation, 200, 36); GTK_WIDGET_UNSET_FLAGS (hs_recreation, GTK_CAN_FOCUS); gtk_scale_set_value_pos (GTK_SCALE (hs_recreation), GTK_POS_RIGHT); rb_camp1 = gtk_radio_button_new_with_mnemonic (NULL, _("Good Hotel")); gtk_widget_show (rb_camp1); gtk_fixed_put (GTK_FIXED (panel_camp), rb_camp1, 24, 16); gtk_widget_set_size_request (rb_camp1, 200, 21); gtk_radio_button_set_group (GTK_RADIO_BUTTON (rb_camp1), rb_camp1_group); rb_camp1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb_camp1)); rb_camp2 = gtk_radio_button_new_with_mnemonic (NULL, _("First-Class Hotel")); gtk_widget_show (rb_camp2); gtk_fixed_put (GTK_FIXED (panel_camp), rb_camp2, 24, 40); gtk_widget_set_size_request (rb_camp2, 200, 21); gtk_radio_button_set_group (GTK_RADIO_BUTTON (rb_camp2), rb_camp1_group); rb_camp1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb_camp2)); rb_camp3 = gtk_radio_button_new_with_mnemonic (NULL, _("Premium Hotel")); gtk_widget_show (rb_camp3); gtk_fixed_put (GTK_FIXED (panel_camp), rb_camp3, 24, 64); gtk_widget_set_size_request (rb_camp3, 200, 21); gtk_radio_button_set_group (GTK_RADIO_BUTTON (rb_camp3), rb_camp1_group); rb_camp1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb_camp3)); hs_camp1 = gtk_hseparator_new (); gtk_widget_show (hs_camp1); gtk_fixed_put (GTK_FIXED (panel_camp), hs_camp1, 25, 232); gtk_widget_set_size_request (hs_camp1, 450, 16); b_ok = gtk_button_new_from_stock ("gtk-apply"); gtk_widget_show (b_ok); gtk_fixed_put (GTK_FIXED (panel_camp), b_ok, 256, 254); gtk_widget_set_size_request (b_ok, 110, 35); b_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (b_cancel); gtk_fixed_put (GTK_FIXED (panel_camp), b_cancel, 376, 254); gtk_widget_set_size_request (b_cancel, 110, 35); checkbutton_save = gtk_check_button_new_with_mnemonic (_("Save settings as default")); gtk_widget_show (checkbutton_save); gtk_fixed_put (GTK_FIXED (panel_camp), checkbutton_save, 24, 264); gtk_widget_set_size_request (checkbutton_save, 208, 21); g_signal_connect ((gpointer) window_training_camp, "delete_event", G_CALLBACK (on_window_training_camp_delete_event), NULL); g_signal_connect ((gpointer) b_inc_recreation, "clicked", G_CALLBACK (on_b_inc_recreation_clicked), NULL); g_signal_connect ((gpointer) b_dec_training, "clicked", G_CALLBACK (on_b_dec_training_clicked), NULL); g_signal_connect ((gpointer) b_inc_training, "clicked", G_CALLBACK (on_b_inc_training_clicked), NULL); g_signal_connect ((gpointer) b_dec_recreation, "clicked", G_CALLBACK (on_b_dec_recreation_clicked), NULL); g_signal_connect ((gpointer) rb_camp1, "clicked", G_CALLBACK (on_rb_camp1_clicked), NULL); g_signal_connect ((gpointer) rb_camp2, "clicked", G_CALLBACK (on_rb_camp2_clicked), NULL); g_signal_connect ((gpointer) rb_camp3, "clicked", G_CALLBACK (on_rb_camp3_clicked), NULL); g_signal_connect ((gpointer) b_ok, "clicked", G_CALLBACK (on_b_ok_clicked), NULL); g_signal_connect ((gpointer) b_cancel, "clicked", G_CALLBACK (on_b_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_training_camp, window_training_camp, "window_training_camp"); GLADE_HOOKUP_OBJECT (window_training_camp, panel_camp, "panel_camp"); GLADE_HOOKUP_OBJECT (window_training_camp, tf_costs, "tf_costs"); GLADE_HOOKUP_OBJECT (window_training_camp, hs_camp2, "hs_camp2"); GLADE_HOOKUP_OBJECT (window_training_camp, l_camp_points, "l_camp_points"); GLADE_HOOKUP_OBJECT (window_training_camp, b_inc_recreation, "b_inc_recreation"); GLADE_HOOKUP_OBJECT (window_training_camp, image2, "image2"); GLADE_HOOKUP_OBJECT (window_training_camp, l_recreation, "l_recreation"); GLADE_HOOKUP_OBJECT (window_training_camp, l_costs, "l_costs"); GLADE_HOOKUP_OBJECT (window_training_camp, b_dec_training, "b_dec_training"); GLADE_HOOKUP_OBJECT (window_training_camp, image3, "image3"); GLADE_HOOKUP_OBJECT (window_training_camp, l_training, "l_training"); GLADE_HOOKUP_OBJECT (window_training_camp, b_inc_training, "b_inc_training"); GLADE_HOOKUP_OBJECT (window_training_camp, image4, "image4"); GLADE_HOOKUP_OBJECT (window_training_camp, hs_camp_points, "hs_camp_points"); GLADE_HOOKUP_OBJECT (window_training_camp, hs_training, "hs_training"); GLADE_HOOKUP_OBJECT (window_training_camp, b_dec_recreation, "b_dec_recreation"); GLADE_HOOKUP_OBJECT (window_training_camp, image1, "image1"); GLADE_HOOKUP_OBJECT (window_training_camp, hs_recreation, "hs_recreation"); GLADE_HOOKUP_OBJECT (window_training_camp, rb_camp1, "rb_camp1"); GLADE_HOOKUP_OBJECT (window_training_camp, rb_camp2, "rb_camp2"); GLADE_HOOKUP_OBJECT (window_training_camp, rb_camp3, "rb_camp3"); GLADE_HOOKUP_OBJECT (window_training_camp, hs_camp1, "hs_camp1"); GLADE_HOOKUP_OBJECT (window_training_camp, b_ok, "b_ok"); GLADE_HOOKUP_OBJECT (window_training_camp, b_cancel, "b_cancel"); GLADE_HOOKUP_OBJECT (window_training_camp, checkbutton_save, "checkbutton_save"); gtk_widget_grab_focus (rb_camp1); return window_training_camp; } bygfoot-2.3.2/src/treeview2.c0000644000175000017500000006337111225071373015025 0ustar eliaselias/* treeview2.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "fixture.h" #include "job.h" #include "league.h" #include "live_game.h" #include "misc.h" #include "option.h" #include "support.h" #include "team.h" #include "treeview2.h" #include "treeview_helper.h" #include "user.h" void treeview2_create_mmatches(GtkListStore *ls) { #ifdef DEBUG printf("treeview2_create_mmatches\n"); #endif gint i; GtkTreeIter iter; gchar result[SMALL]; for(i=0;ilen;i++) { live_game_unit_result_to_buf( &g_array_index( g_array_index(current_user.mmatches, MemMatch, i).lg.units, LiveGameUnit, g_array_index(current_user.mmatches, MemMatch, i).lg.units->len - 1), result, (g_array_index(current_user.mmatches, MemMatch, i).user_team == 1)); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, i + 1, 1, &g_array_index(current_user.mmatches, MemMatch, i), 2, &g_array_index(current_user.mmatches, MemMatch, i), 3, result, 4, g_array_index(current_user.mmatches, MemMatch, i). competition_name->str, 5, g_array_index(current_user.mmatches, MemMatch, i). country_name, -1); gtk_list_store_set(ls, &iter, TREEVIEW_MMATCH_COL_REPLAY, _("REPLAY"), TREEVIEW_MMATCH_COL_REMOVE, _("REMOVE"), TREEVIEW_MMATCH_COL_EXPORT, _("EXPORT"), -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, const_int("int_treeview_helper_int_empty"), 1, NULL, -1); } void treeview2_set_up_mmatches(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview2_set_up_mmatches\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[6] = {"", _("Your team"), _("Opponent"), _("Result"), _("Competition"), _("Country")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_headers_visible(treeview, TRUE); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_int_to_cell, NULL, NULL); for(i=1;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_mm_teams, NULL, NULL); } for(i=3;ilen;i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set( ls, &iter, 0, ((Fixture*)g_ptr_array_index(results, i))->week_number, 1, ((Fixture*)g_ptr_array_index(results, i))->week_round_number, 2, league_cup_get_name_string(((Fixture*)g_ptr_array_index(results, i))->clid), 3, g_ptr_array_index(results, i), 4, g_ptr_array_index(results, i), 5, g_ptr_array_index(results, i), -1); } g_ptr_array_free(results, TRUE); } void treeview2_set_up_season_results(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview2_set_up_season_results\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[6] = /* Week */ {_("We"), /* Round */ _("Ro"), _("Competition"), _("Opponent"), "", _("Result")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_headers_visible(treeview, TRUE); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", i); if(i<2) { gtk_tree_view_column_set_alignment(col, 0.5); g_object_set(renderer, "xalign", 0.5, NULL); } } for(i=3;i<6;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_season_results, NULL, NULL); if(i == 4) { gtk_tree_view_column_set_alignment(col, 0.5); g_object_set(renderer, "xalign", 0.5, NULL); } } } /** Show the user's matches for the complete season. */ void treeview2_show_season_results(void) { #ifdef DEBUG printf("treeview2_show_season_results\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkListStore *model = gtk_list_store_new(6, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER); treeview_helper_clear(treeview); treeview2_set_up_season_results(treeview); treeview2_create_season_results(model); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); g_object_unref(model); } void treeview2_create_bets(GtkListStore *ls) { #ifdef DEBUG printf("treeview2_create_bets\n"); #endif gint i, j, k, rank; GtkTreeIter iter; gchar buf[SMALL], buf2[SMALL], team_names[2][SMALL]; const BetMatch *bet = NULL; const BetUser *bet_user = NULL; const Fixture *fix = NULL; for(k=1;k>=0;k--) { if(bets[k]->len > 0) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, (k == 1) ? /* Copy the stuff, translate in between. */ _("Current bets") : /* Copy the stuff, translate in between. */ _("Recent bets"), 1, NULL, 2, NULL, 3, NULL, 4, "", 5, "", -1); } for(i=0;ilen;i++) { fix = fixture_from_id(g_array_index(bets[k], BetMatch, i).fix_id, TRUE); if(fix->clid == current_user.tm->clid || (fix->clid >= ID_CUP_START && opt_user_int("int_opt_user_bet_show_cups")) || (fix->clid < ID_CUP_START && opt_user_int("int_opt_user_bet_show_all_leagues"))) { bet = &g_array_index(bets[k], BetMatch, i); bet_user = bet_is_user(bet); strcpy(buf, ""); if(k == 1 || (k == 0 && (bet_user != NULL || !opt_user_int("int_opt_user_bet_show_my_recent")))) { if(i == 0 || fix->clid != fixture_from_id( g_array_index(bets[k], BetMatch, i - 1).fix_id, TRUE)->clid) { if(i > 0) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, NULL, 2, NULL, 3, NULL, 4, "", 5, "", -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, league_cup_get_name_string(fix->clid), 1, NULL, 2, NULL, 3, NULL, 4, "", 5, "", -1); } if(bet_user != NULL) { misc_print_grouped_int(bet_user->wager, buf2); if(bet_user->wager > 0) strcpy(buf, buf2); else sprintf(buf, "%s", const_app("string_treeview_finances_expenses_fg"), buf2); } for(j=0;j<2;j++) if(query_fixture_has_tables(fix)) { if(fix->clid < ID_CUP_START) rank = team_get_league_rank(fix->teams[j], fix->clid); else rank = team_get_cup_rank(fix->teams[j], cup_get_last_tables_round(fix->clid), TRUE); sprintf(team_names[j], "%s [%d]", fix->teams[j]->name, rank); } else if(fix->clid >= ID_CUP_START && query_league_cup_has_property(fix->clid, "national")) sprintf(team_names[j], "%s (%d)", fix->teams[j]->name, league_from_clid(fix->teams[j]->clid)->layer); else strcpy(team_names[j], fix->teams[j]->name); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, team_names[0], 1, bet, 2, bet, 3, bet, 4, team_names[1], 5, buf, -1); } } } } } void treeview2_set_up_bets(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview2_set_up_bets\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[6] = {_("Team1"), /* Team 1 wins (betting window). */ _("Win1"), _("Draw"), /* Team 2 wins (betting window). */ _("Win2"), _("Team2"), /* How much the user wagers; how much he won or lost. */ _("Wager/\nWin/Loss")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_headers_visible(treeview, TRUE); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[0]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", 0); gtk_tree_view_column_set_alignment(col, 1.0); g_object_set(renderer, "xalign", 1.0, NULL); for(i=1;i<4;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_bet_odds, NULL, NULL); } col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[4]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", 4); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[5]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", 5); gtk_tree_view_column_set_alignment(col, 0.5); g_object_set(renderer, "xalign", 0.5, NULL); } /** Show the current and recent bets in the betting window. */ void treeview2_show_bets(void) { #ifdef DEBUG printf("treeview2_show_bets\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.bets, "treeview_bets")); GtkListStore *model = gtk_list_store_new(6, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_STRING); treeview_helper_clear(treeview); treeview2_set_up_bets(treeview); treeview2_create_bets(model); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); g_object_unref(model); } void treeview2_create_job_exchange(GtkListStore *ls) { #ifdef DEBUG printf("treeview2_create_job_exchange\n"); #endif gint i; GtkTreeIter iter; gchar buf[SMALL]; const Team *tm = NULL; for(i=0;ilen;i++) { tm = job_get_team(&g_array_index(jobs, Job, i)); sprintf(buf, "%s (%d)", g_array_index(jobs, Job, i).league_name, g_array_index(jobs, Job, i).league_layer); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, i + 1, 1, tm->name, 2, buf, 3, &g_array_index(jobs, Job, i), 4, &g_array_index(jobs, Job, i), 5, &g_array_index(jobs, Job, i), -1); } } void treeview2_set_up_job_exchange(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview2_set_up_job_exchange\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[6] = {"", _("Team"), _("League"), _("Country"), _("Av.skill"), _("Talent %")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_headers_visible(treeview, TRUE); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[0]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", 0); for(i=1;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", i); } for(i=3;i<6;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_job_exchange, NULL, NULL); if(i > 3) { gtk_tree_view_column_set_alignment(col, 0.5); g_object_set(renderer, "xalign", 0.5, NULL); } } } /** Show the teams that offer a job. */ void treeview2_show_job_exchange(void) { #ifdef DEBUG printf("treeview2_show_job_exchange\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkListStore *model = gtk_list_store_new(6, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER); treeview_helper_clear(treeview); treeview2_set_up_job_exchange(treeview); treeview2_create_job_exchange(model); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); g_object_unref(model); } void treeview2_create_news(GtkListStore *ls) { #ifdef DEBUG printf("treeview2_create_news\n"); #endif gint i; GtkTreeIter iter; gchar buf[SMALL], buf2[SMALL]; gboolean second_column; if(newspaper.articles->len == 0) { gtk_list_store_append(ls, &iter); sprintf(buf, "\n%s", const_app("string_news_window_title_attribute"), _("No news available.")); gtk_list_store_set(ls, &iter, 0, buf, 1, NULL, -1); return; } for(i = newspaper.articles->len - 1; i >= 0; i--) { second_column = (i == newspaper.articles->len - 1 || (i < newspaper.articles->len - 1 && g_array_index(newspaper.articles, NewsPaperArticle, i).clid != g_array_index(newspaper.articles, NewsPaperArticle, i + 1).clid)); if(!opt_int("int_opt_news_show_recent") || g_array_index(newspaper.articles, NewsPaperArticle, i).week_number == week - 1) { if(i == newspaper.articles->len - 1 || (i < newspaper.articles->len - 1 && (g_array_index(newspaper.articles, NewsPaperArticle, i).week_number != g_array_index(newspaper.articles, NewsPaperArticle, i + 1).week_number || g_array_index(newspaper.articles, NewsPaperArticle, i).week_round_number != g_array_index(newspaper.articles, NewsPaperArticle, i + 1).week_round_number))) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, NULL, 2, NULL, -1); gtk_list_store_append(ls, &iter); sprintf(buf2, _("Week %d Round %d"), g_array_index(newspaper.articles, NewsPaperArticle, i).week_number, g_array_index(newspaper.articles, NewsPaperArticle, i).week_round_number); sprintf(buf, "%s\n\n", const_app("string_news_window_week_number_attribute"), buf2); second_column = TRUE; } else { gtk_list_store_append(ls, &iter); strcpy(buf, ""); } if(second_column) gtk_list_store_set(ls, &iter, 0, buf, 1, &g_array_index(newspaper.articles, NewsPaperArticle, i), 2, &g_array_index(newspaper.articles, NewsPaperArticle, i), -1); else gtk_list_store_set(ls, &iter, 0, buf, 1, &g_array_index(newspaper.articles, NewsPaperArticle, i), 2, NULL, -1); } } } void treeview2_set_up_news(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview2_set_up_news\n"); #endif GtkTreeViewColumn *col; GtkCellRenderer *renderer; gint i; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_headers_visible(treeview, FALSE); gtk_tree_view_set_rules_hint(treeview, FALSE); for(i = 0; i < 3; i++) { col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); if(i == 0) gtk_tree_view_column_add_attribute(col, renderer, "markup", 0); else if(i == 1) gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_news, NULL, NULL); else gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_news_additional, NULL, NULL); g_object_set(renderer, "wrap-mode", PANGO_WRAP_WORD, NULL); g_object_set(renderer, "wrap-width", 400, NULL); g_object_set(renderer, "yalign", 0.0, NULL); } } /** Show the news in the news treeview. */ void treeview2_show_news(void) { #ifdef DEBUG printf("treeview2_show_news\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.news, "treeview_news")); GtkListStore *model = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER); treeview_helper_clear(treeview); treeview2_set_up_news(treeview); treeview2_create_news(model); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); g_object_unref(model); } /** Types of constants we use in the game, enum needed for displaying purposes. */ enum { CONSTANTS_TYPE_INT = 0, CONSTANTS_TYPE_FLOAT, CONSTANTS_TYPE_STRING, CONSTANTS_TYPE_APP, CONSTANTS_TYPE_END }; GtkTreeModel* treeview2_create_constants(const GPtrArray *list, gint type) { #ifdef DEBUG printf("treeview2_create_constants\n"); #endif gint i; GtkTreeIter iter; GtkListStore *ls; switch(type) { default: debug_print_message("treeview2_create_constants: unknown constants type\n"); return NULL; case CONSTANTS_TYPE_INT: ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); break; case CONSTANTS_TYPE_FLOAT: ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_FLOAT); break; case CONSTANTS_TYPE_STRING: case CONSTANTS_TYPE_APP: ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); break; } for(i = 0; i < list->len; i++) { gtk_list_store_append(ls, &iter); if(type == CONSTANTS_TYPE_INT) gtk_list_store_set(ls, &iter, 0, ((Option*)g_ptr_array_index(list, i))->name, 1, ((Option*)g_ptr_array_index(list, i))->value, -1); else if(type == CONSTANTS_TYPE_FLOAT) gtk_list_store_set(ls, &iter, 0, ((Option*)g_ptr_array_index(list, i))->name, 1, (gfloat)((Option*)g_ptr_array_index(list, i))->value / OPTION_FLOAT_DIVISOR, -1); else gtk_list_store_set(ls, &iter, 0, ((Option*)g_ptr_array_index(list, i))->name, 1, ((Option*)g_ptr_array_index(list, i))->string_value, -1); } return GTK_TREE_MODEL(ls); } void treeview2_set_up_constants(GtkTreeView *treeview, gint type) { #ifdef DEBUG printf("treeview2_set_up_constants\n"); #endif GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[2] = {_("Name"), _("Value")}; gint i; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_headers_visible(treeview, TRUE); gtk_tree_view_set_rules_hint(treeview, TRUE); gtk_tree_view_set_search_column(treeview, 0); gtk_tree_view_set_search_equal_func(treeview, treeview_helper_search_equal_strings, NULL, NULL); for(i = 0; i < 2; i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", i); if(i == 1) { g_object_set(renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", (type == CONSTANTS_TYPE_APP) ? G_CALLBACK (treeview_helper_constants_app_editing_done) : G_CALLBACK (treeview_helper_constants_editing_done), treeview); } } } /** Show the news in the news treeview. */ void treeview2_show_constants(void) { #ifdef DEBUG printf("treeview2_show_constants\n"); #endif gint i; GtkTreeView *treeview[4] = {GTK_TREE_VIEW(lookup_widget(window.constants, "treeview_constants_integer")), GTK_TREE_VIEW(lookup_widget(window.constants, "treeview_constants_float")), GTK_TREE_VIEW(lookup_widget(window.constants, "treeview_constants_string")), GTK_TREE_VIEW(lookup_widget(window.constants, "treeview_constants_app"))}; GtkTreeModel *model; GPtrArray *list[4] = {g_ptr_array_new(), g_ptr_array_new(), g_ptr_array_new(), g_ptr_array_new()}; for(i = 0; i < constants.list->len; i++) if(g_str_has_prefix(g_array_index(constants.list, Option, i).name, "int_")) g_ptr_array_add(list[CONSTANTS_TYPE_INT], &g_array_index(constants.list, Option, i)); else if(g_str_has_prefix(g_array_index(constants.list, Option, i).name, "float_")) g_ptr_array_add(list[CONSTANTS_TYPE_FLOAT], &g_array_index(constants.list, Option, i)); else g_ptr_array_add(list[CONSTANTS_TYPE_STRING], &g_array_index(constants.list, Option, i)); for(i = 0; i < constants_app.list->len; i++) g_ptr_array_add(list[CONSTANTS_TYPE_APP], &g_array_index(constants_app.list, Option, i)); for(i = 0; i < 4; i++) { treeview_helper_clear(treeview[i]); treeview2_set_up_constants(treeview[i], i); model = treeview2_create_constants(list[i], i); gtk_tree_view_set_model(treeview[i], model); g_object_unref(model); g_ptr_array_free(list[i], TRUE); } } bygfoot-2.3.2/src/game_gui.c0000644000175000017500000010073311225071373014660 0ustar eliaselias/* game_gui.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "file.h" #include "game_gui.h" #include "gui.h" #include "job.h" #include "league.h" #include "live_game.h" #include "maths.h" #include "misc.h" #include "option.h" #include "treeview.h" #include "support.h" #include "team.h" #include "user.h" #include "variables.h" #include "window.h" /** Show the live game in the live game window. @param unit The current unit we show. */ void game_gui_live_game_show_unit(const LiveGameUnit *unit) { #ifdef DEBUG printf("game_gui_live_game_show_unit\n"); #endif gchar buf[SMALL]; gfloat sleep_factor = (unit->time == 3) ? const_float("float_game_gui_live_game_speed_penalties_factor") : 1; gfloat fraction = (gfloat)live_game_unit_get_minute(unit) / 90; GtkProgressBar *progress_bar = GTK_PROGRESS_BAR(lookup_widget(window.live, "progressbar_live")); GtkHScale *hscale = GTK_HSCALE(lookup_widget(window.live, "hscale_area")); GtkWidget *button_pause = lookup_widget(window.live, "button_pause"), *button_resume = lookup_widget(window.live, "button_resume"), *button_live_close = lookup_widget(window.live, "button_live_close"), *eventbox_poss[2] = {lookup_widget(window.live, "eventbox_poss0"), lookup_widget(window.live, "eventbox_poss1")}; GdkColor color; if(unit->event.type == LIVE_GAME_EVENT_START_MATCH) treeview_live_game_show_initial_commentary(unit); else if(option_int("int_opt_user_live_game_verbosity", &usr(stat2).options) > unit->event.verbosity) treeview_live_game_show_commentary(unit); treeview_live_game_show_result(unit); gdk_color_parse (const_app("string_live_game_possession_color"), &color); gtk_widget_modify_bg(eventbox_poss[unit->possession], GTK_STATE_NORMAL, &color); gtk_widget_modify_bg(eventbox_poss[!unit->possession], GTK_STATE_NORMAL, NULL); if(option_int("int_opt_user_show_tendency_bar", &usr(stat2).options)) game_gui_live_game_set_hscale(unit, hscale); else gtk_widget_hide(GTK_WIDGET(hscale)); sprintf(buf, "%d.", live_game_unit_get_minute(unit)); gtk_progress_bar_set_fraction(progress_bar, (fraction > 1) ? 1 : fraction); gtk_progress_bar_set_text(progress_bar, buf); g_usleep((gint)rint(sleep_factor * (gfloat)(const_int("int_game_gui_live_game_speed_max") + (option_int("int_opt_user_live_game_speed", &usr(stat2).options) * const_int("int_game_gui_live_game_speed_grad"))))); while(gtk_events_pending()) gtk_main_iteration(); if(unit->event.type == LIVE_GAME_EVENT_START_MATCH) { gtk_widget_set_sensitive(button_live_close, (stat1 == STATUS_SHOW_LAST_MATCH)); gtk_widget_set_sensitive(button_pause, TRUE); gtk_widget_set_sensitive(button_resume, FALSE); gtk_widget_grab_focus(button_pause); } else if(unit->event.type == LIVE_GAME_EVENT_END_MATCH) { gtk_widget_set_sensitive(button_live_close, TRUE); gtk_widget_set_sensitive(button_pause, FALSE); gtk_widget_set_sensitive(button_resume, FALSE); gui_set_sensitive_lg_meters(FALSE); gtk_widget_grab_focus(button_live_close); game_gui_set_main_window_sensitivity(FALSE); } else if(unit->event.type == LIVE_GAME_EVENT_PENALTIES) { gtk_widget_set_sensitive(button_pause, (stat1 == STATUS_SHOW_LAST_MATCH)); gtk_widget_set_sensitive(button_resume, FALSE); } } /** Set the area scale position and color in the live game window. @param unit The current unit. @param hscale The scale widget. */ void game_gui_live_game_set_hscale(const LiveGameUnit *unit, GtkHScale *hscale) { #ifdef DEBUG printf("game_gui_live_game_set_hscale\n"); #endif GdkColor color; gtk_widget_modify_bg(GTK_WIDGET(hscale), GTK_STATE_NORMAL, NULL); if(unit->area == LIVE_GAME_UNIT_AREA_MIDFIELD) { gdk_color_parse(const_app("string_game_gui_live_game_scale_color_midfield"), &color); gtk_range_set_value(GTK_RANGE(hscale), const_float("float_game_gui_live_game_scale_range") / 2); } else if(unit->event.type == LIVE_GAME_EVENT_GOAL || unit->event.type == LIVE_GAME_EVENT_OWN_GOAL) { gdk_color_parse(const_app("string_game_gui_live_game_scale_color_goal"), &color); gtk_range_set_value(GTK_RANGE(hscale), const_float("float_game_gui_live_game_scale_range") * (unit->possession == 0)); } else if(unit->event.type == LIVE_GAME_EVENT_SCORING_CHANCE || unit->event.type == LIVE_GAME_EVENT_PENALTY || unit->event.type == LIVE_GAME_EVENT_FREE_KICK) { gdk_color_parse(const_app("string_game_gui_live_game_scale_color_chance"), &color); gtk_range_set_value(GTK_RANGE(hscale), const_float("float_game_gui_live_game_scale_range") / 2 + (const_float("float_game_gui_live_game_scale_range") * const_float("float_game_gui_live_game_scale_chance") * ((unit->possession == 0) ? 1 : -1))); } else if(unit->event.type == LIVE_GAME_EVENT_POST || unit->event.type == LIVE_GAME_EVENT_MISS || unit->event.type == LIVE_GAME_EVENT_SAVE || unit->event.type == LIVE_GAME_EVENT_CROSS_BAR) gdk_color_parse(const_app("string_game_gui_live_game_scale_color_miss"), &color); else if(unit->area == LIVE_GAME_UNIT_AREA_ATTACK) { gdk_color_parse(const_app("string_game_gui_live_game_scale_color_attack"), &color); gtk_range_set_value(GTK_RANGE(hscale), const_float("float_game_gui_live_game_scale_range") / 2 + (const_float("float_game_gui_live_game_scale_range") * const_float("float_game_gui_live_game_scale_attack") * ((unit->possession == 0) ? 1 : -1))); } else if(unit->area == LIVE_GAME_UNIT_AREA_DEFEND) { gdk_color_parse(const_app("string_game_gui_live_game_scale_color_defend"), &color); gtk_range_set_value(GTK_RANGE(hscale), const_float("float_game_gui_live_game_scale_range") / 2 + (const_float("float_game_gui_live_game_scale_range") * const_float("float_game_gui_live_game_scale_attack") * ((unit->possession == 0) ? -1 : 1))); } else debug_print_message("game_gui_live_game_set_hscale: don't know what to do!\n"); gtk_widget_modify_bg(GTK_WIDGET(hscale), GTK_STATE_NORMAL, &color); } /** Show the player list of the opposing team in the live game window. */ void game_gui_live_game_show_opponent(void) { #ifdef DEBUG printf("game_gui_live_game_show_opponent\n"); #endif GtkImage *image_style = GTK_IMAGE(lookup_widget(window.live, "image_lg_opp_style")), *image_boost = GTK_IMAGE(lookup_widget(window.live, "image_lg_opp_boost")); GtkLabel *label_form = GTK_LABEL(lookup_widget(window.live, "label_lg_formation")), *label_avskill = GTK_LABEL(lookup_widget(window.live, "label_lg_avskill")); GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.live, "treeview_lg_opponent")); gint idx = (team_is_user(((LiveGame*)statp)->fix->teams[0]) == -1); const Team *tm = ((LiveGame*)statp)->fix->teams[!idx]; gint scout = user_from_team(((LiveGame*)statp)->fix->teams[idx])->scout; gfloat avskills[2] = {team_get_average_skill(tm, TRUE), team_get_average_skill(current_user.tm, TRUE)}; gchar buf[SMALL]; treeview_show_player_list_team(treeview, tm, scout); game_gui_write_meter_images(tm, image_style, image_boost); gui_label_set_text_from_int(label_form, tm->structure, FALSE); sprintf(buf, "%.1f (%+.1f)", avskills[0], avskills[0] - avskills[1]); gtk_label_set_text(label_avskill, buf); } /** Look up the widgets in the main window. */ void game_gui_get_radio_items(GtkWidget **style, GtkWidget **scout, GtkWidget **physio, GtkWidget **boost, GtkWidget **yc, GtkWidget **ya_pos_pref) { #ifdef DEBUG printf("game_gui_get_radio_items\n"); #endif style[0] = lookup_widget(window.main, "menu_all_out_defend"); style[1] = lookup_widget(window.main, "menu_defend"); style[2] = lookup_widget(window.main, "menu_balanced"); style[3] = lookup_widget(window.main, "menu_attack"); style[4] = lookup_widget(window.main, "menu_all_out_attack"); scout[0] = lookup_widget(window.main, "menu_scout_best"); scout[1] = lookup_widget(window.main, "menu_scout_good"); scout[2] = lookup_widget(window.main, "menu_scout_average"); scout[3] = lookup_widget(window.main, "menu_scout_bad"); physio[0] = lookup_widget(window.main, "menu_physio_best"); physio[1] = lookup_widget(window.main, "menu_physio_good"); physio[2] = lookup_widget(window.main, "menu_physio_average"); physio[3] = lookup_widget(window.main, "menu_physio_bad"); boost[0] = lookup_widget(window.main, "menu_boost_anti"); boost[1] = lookup_widget(window.main, "menu_boost_off"); boost[2] = lookup_widget(window.main, "menu_boost_on"); yc[0] = lookup_widget(window.main, "menu_yc_best"); yc[1] = lookup_widget(window.main, "menu_yc_good"); yc[2] = lookup_widget(window.main, "menu_yc_average"); yc[3] = lookup_widget(window.main, "menu_yc_bad"); ya_pos_pref[0] = lookup_widget(window.main, "menu_recruit0"); ya_pos_pref[1] = lookup_widget(window.main, "menu_recruit1"); ya_pos_pref[2] = lookup_widget(window.main, "menu_recruit2"); ya_pos_pref[3] = lookup_widget(window.main, "menu_recruit3"); ya_pos_pref[4] = lookup_widget(window.main, "menu_recruit4"); } /** Set information like season, user, week etc. into the appropriate labels. */ void game_gui_set_main_window_header(void) { #ifdef DEBUG printf("game_gui_set_main_window_header\n"); #endif gint i, rank; gchar buf[SMALL]; GtkLabel *label_user= GTK_LABEL(lookup_widget(window.main, "label_user")), *label_season= GTK_LABEL(lookup_widget(window.main, "label_season")), *label_week= GTK_LABEL(lookup_widget(window.main, "label_week")), *label_round= GTK_LABEL(lookup_widget(window.main, "label_round")), *label_team= GTK_LABEL(lookup_widget(window.main, "label_team")), *label_league= GTK_LABEL(lookup_widget(window.main, "label_league")), *label_rank= GTK_LABEL(lookup_widget(window.main, "label_rank")), *label_money= GTK_LABEL(lookup_widget(window.main, "label_money")); GtkWidget *menu_users[2] = {lookup_widget(window.main, "menu_next_user"), lookup_widget(window.main, "menu_previous_user")}; const Fixture *fix = team_get_fixture(current_user.tm, FALSE); gtk_label_set_text(label_user, current_user.name); gui_label_set_text_from_int(label_season, season, FALSE); gui_label_set_text_from_int(label_week, week, FALSE); gui_label_set_text_from_int(label_round, week_round, FALSE); if(!sett_int("int_opt_disable_finances")) { misc_print_grouped_int(current_user.money, buf); gtk_label_set_text(label_money, buf); } else { gtk_widget_hide(GTK_WIDGET(label_money)); gtk_widget_hide(GTK_WIDGET(lookup_widget(window.main, "label34"))); } gtk_label_set_text(label_team, current_user.tm->name); if(fix == NULL) { rank = team_get_league_rank(current_user.tm, -1); gtk_label_set_text(label_league, league_cup_get_name_string(current_user.tm->clid)); } else { rank = team_get_league_rank(current_user.tm, fix->clid); gtk_label_set_text(label_league, league_cup_get_name_string(fix->clid)); } if(rank != 0) gui_label_set_text_from_int(label_rank, rank, FALSE); else { gtk_widget_hide(GTK_WIDGET(label_rank)); gtk_widget_hide(lookup_widget(window.main, "label29")); } for(i=0;i<2;i++) gtk_widget_set_sensitive(menu_users[i], (users->len > 1)); game_gui_write_av_skills(NULL); game_gui_write_radio_items(); game_gui_write_meters(current_user.tm); game_gui_write_check_items(); } /** Set the average skills of the current team into the appropriate labels. */ void game_gui_write_av_skills(const Team *tm) { #ifdef DEBUG printf("game_gui_write_av_skills\n"); #endif gchar buf[SMALL]; GtkLabel *label_av_skills= GTK_LABEL(lookup_widget(window.main, "label_av_skills")); const Team *tm_local = (tm == NULL) ? current_user.tm : tm; sprintf(buf, "%.1f %.1f", team_get_average_skill(tm_local, TRUE), team_get_average_skill(tm_local, FALSE)); gtk_label_set_text(label_av_skills, buf); } /** Set the images for the style and boost meters to the appropriate values from the team settings. */ void game_gui_write_meter_images(const Team *tm, GtkImage *style, GtkImage *boost) { #ifdef DEBUG printf("game_gui_write_meter_images\n"); #endif gint i; gchar *image_style_files[5] = {file_find_support_file(const_app("string_game_gui_style_all_out_defend_icon"), TRUE), file_find_support_file(const_app("string_game_gui_style_defend_icon"), TRUE), file_find_support_file(const_app("string_game_gui_style_balanced_icon"), TRUE), file_find_support_file(const_app("string_game_gui_style_attack_icon"), TRUE), file_find_support_file(const_app("string_game_gui_style_all_out_attack_icon"), TRUE)}; gchar *image_boost_files[3] = {file_find_support_file(const_app("string_game_gui_boost_anti_icon"), TRUE), file_find_support_file(const_app("string_game_gui_boost_off_icon"), TRUE), file_find_support_file(const_app("string_game_gui_boost_on_icon"), TRUE)}; gtk_image_set_from_file(style, image_style_files[tm->style + 2]); gtk_image_set_from_file(boost, image_boost_files[tm->boost + 1]); for(i=0;i<5;i++) g_free(image_style_files[i]); for(i=0;i<3;i++) g_free(image_boost_files[i]); } /** Set the images for the style and boost meters in the main window and the live game window. */ void game_gui_write_meters(const Team *tm) { #ifdef DEBUG printf("game_gui_write_meters\n"); #endif GtkImage *image_style_main = GTK_IMAGE(lookup_widget(window.main, "image_style")), *image_boost_main = GTK_IMAGE(lookup_widget(window.main, "image_boost")); GtkImage *image_style_live = NULL, *image_boost_live = NULL; game_gui_write_meter_images(tm, image_style_main, image_boost_main); if(window.live != NULL) { image_style_live = GTK_IMAGE(lookup_widget(window.live, "image_lg_style")); image_boost_live = GTK_IMAGE(lookup_widget(window.live, "image_lg_boost")); game_gui_write_meter_images(tm, image_style_live, image_boost_live); } } /** Activate the appropriate radio items for playing style etc. according to the user settings. */ void game_gui_write_radio_items(void) { #ifdef DEBUG printf("game_gui_write_radio_items\n"); #endif GtkWidget *style[5], *scout[4], *physio[4], *boost[3], *yc[4], *ya_pos_pref[5]; game_gui_get_radio_items(style, scout, physio, boost, yc, ya_pos_pref); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(style[current_user.tm->style + 2]), TRUE); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(scout[current_user.scout % 10]), TRUE); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(physio[current_user.physio % 10]), TRUE); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(boost[current_user.tm->boost + 1]), TRUE); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(yc[current_user.youth_academy.coach % 10]), TRUE); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(ya_pos_pref[current_user.youth_academy.pos_pref]), TRUE); } /** Set playing style etc. variables according to the items. @param widget The widget that received a click. */ void game_gui_read_radio_items(GtkWidget *widget) { #ifdef DEBUG printf("game_gui_read_radio_items\n"); #endif gint i; GtkWidget *boost[3], *yc[4], *ya_pos_pref[5]; GtkWidget *style[5], *scout[4], *physio[4]; gint old_scout = current_user.scout, old_physio = current_user.physio, old_yc = current_user.youth_academy.coach; game_gui_get_radio_items(style, scout, physio, boost, yc, ya_pos_pref); for(i=0;i<3;i++) if(widget == boost[i]) { current_user.tm->boost = i - 1; if(current_user.tm->boost == 1 && sett_int("int_opt_disable_boost_on")) { current_user.tm->boost = 0; game_gui_print_message(_("Boost ON is disabled in this country definition.")); } } for(i=0;i<5;i++) if(widget == style[i]) current_user.tm->style = i - 2; if(!sett_int("int_opt_disable_transfers")) { for(i=0;i<4;i++) if(widget == scout[i]) current_user.scout = 100 + i * 10 + old_scout % 10; } if(!sett_int("int_opt_disable_transfers")) { for(i=0;i<4;i++) if(widget == physio[i]) current_user.physio = 100 + i * 10 + old_physio % 10; } if(!sett_int("int_opt_disable_ya")) { for(i=0;i<4;i++) if(widget == yc[i]) current_user.youth_academy.coach = 100 + i * 10 + old_yc % 10; } if(!sett_int("int_opt_disable_ya")) { for(i=0;i<5;i++) if(widget == ya_pos_pref[i]) current_user.youth_academy.pos_pref = i; } if(math_get_place(current_user.scout, 2) == old_scout % 10) current_user.scout = old_scout % 10; if(math_get_place(current_user.physio, 2) == old_physio % 10) current_user.physio = old_physio % 10; if(math_get_place(current_user.youth_academy.coach, 2) == old_yc % 10) current_user.youth_academy.coach = old_yc % 10; if(old_scout != current_user.scout || old_physio != current_user.physio || old_yc != current_user.youth_academy.coach) game_gui_print_message(_("Next week you'll fire him and hire a new one.")); game_gui_write_meters(current_user.tm); game_gui_write_radio_items(); treeview_show_next_opponent(); } /** Show the main menu. */ void game_gui_show_main(void) { #ifdef DEBUG printf("game_gui_show_main\n"); #endif game_gui_set_main_window_header(); treeview_show_user_player_list(); current_user.counters[COUNT_USER_TOOK_TURN] = 1; if(current_user.counters[COUNT_USER_SHOW_RES] && stat0 != STATUS_LIVE_GAME_PAUSE) { on_menu_user_show_last_stats_activate(NULL, NULL); current_user.counters[COUNT_USER_SHOW_RES] = 0; /** Check the success counter and offer a job (or fire player) if necessary. */ user_job_offer(¤t_user); } else treeview_show_next_opponent(); if(current_user.counters[COUNT_USER_NEW_SPONSOR] == 1) user_show_sponsors(); else if(current_user.counters[COUNT_USER_NEW_SPONSOR] == -1) user_show_sponsor_continue(); } /** Print a message in the message area. */ void game_gui_print_message(gchar *format, ...) { #ifdef DEBUG printf("game_gui_print_message\n"); #endif gchar text[SMALL]; va_list args; va_start (args, format); g_vsprintf(text, format, args); va_end (args); gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.main, "entry_message")), text); if(timeout_id != -1) g_source_remove(timeout_id); timeout_id = g_timeout_add(const_int("int_game_gui_message_duration") * 1000, (GSourceFunc)game_gui_clear_entry_message, NULL); } /** Source function for the delay printing function. */ gboolean game_gui_print_message_source(gpointer data) { #ifdef DEBUG printf("game_gui_print_message_source\n"); #endif game_gui_print_message((gchar*)data, NULL); g_free(data); return FALSE; } /** Print a message after some seconds of delay. */ void game_gui_print_message_with_delay(const gchar *format, ...) { #ifdef DEBUG printf("game_gui_print_message_with_delay\n"); #endif gchar text[SMALL]; va_list args; va_start (args, format); g_vsprintf(text, format, args); va_end (args); if(timeout_id != -1) g_source_remove(timeout_id); g_timeout_add(const_int("int_game_gui_message_delay") * 1000, (GSourceFunc)game_gui_print_message_source, (gpointer)g_strdup(text)); } /** Function that gets called from time to time. */ gboolean game_gui_clear_entry_message(gpointer data) { #ifdef DEBUG printf("game_gui_clear_entry_message\n"); #endif if(window.main != NULL) gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.main, "entry_message")), ""); return FALSE; } /** Which parts of the main window get affected by a live game pause. */ enum MainWindowInensitiveItems { INSENSITIVE_ITEM_TOOLBAR = 0, INSENSITIVE_ITEM_MENU_FILE, INSENSITIVE_ITEM_MENU_OPTIONS, INSENSITIVE_ITEM_MENU_FIGURES, INSENSITIVE_ITEM_MENU_SCOUT, INSENSITIVE_ITEM_MENU_PHYSIO, INSENSITIVE_ITEM_MENU_BROWSE_TEAMS, INSENSITIVE_ITEM_MENU_YOUTH_ACADEMY, INSENSITIVE_ITEM_MENU_TRAINING_CAMP, INSENSITIVE_ITEM_MENU_SHOW_JOB_EXCHANGE, INSENSITIVE_ITEM_MENU_PUT_ON_TRANSFER_LIST, INSENSITIVE_ITEM_MENU_REMOVE_FROM_TRANSFER_LIST, INSENSITIVE_ITEM_MENU_FIRE, INSENSITIVE_ITEM_MENU_MOVE_TO_YOUTH_ACADEMY, INSENSITIVE_ITEM_MENU_USER, INSENSITIVE_ITEM_MENU_FINANCES_STADIUM, INSENSITIVE_ITEM_MENU_HELP, INSENSITIVE_ITEM_MENU_BROWSE_PLAYERS, INSENSITIVE_ITEM_MENU_OFFER_CONTRACT, INSENSITIVE_ITEM_END }; enum MainWindowShowItems { SHOW_ITEM_RESET_BUTTON = 0, SHOW_ITEM_RESET_MENU, SHOW_ITEM_END }; /** Set appropriate parts of the main window insensitive when the live game is paused or resumed. @param value Whether we set sensitive or insensitive. */ void game_gui_set_main_window_sensitivity(gboolean value) { #ifdef DEBUG printf("game_gui_set_main_window_sensitivity\n"); #endif gint i; GtkWidget *insensitive_items[INSENSITIVE_ITEM_END]; GtkWidget *show_items[SHOW_ITEM_END]; insensitive_items[INSENSITIVE_ITEM_TOOLBAR] = lookup_widget(window.main, "hbox1"); insensitive_items[INSENSITIVE_ITEM_MENU_FILE] = lookup_widget(window.main, "menu_file"); insensitive_items[INSENSITIVE_ITEM_MENU_OPTIONS] = lookup_widget(window.main, "menu_options"); insensitive_items[INSENSITIVE_ITEM_MENU_FIGURES] = lookup_widget(window.main, "menu_figures"); insensitive_items[INSENSITIVE_ITEM_MENU_SCOUT] = lookup_widget(window.main, "menu_scout"); insensitive_items[INSENSITIVE_ITEM_MENU_PHYSIO] = lookup_widget(window.main, "menu_physio"); insensitive_items[INSENSITIVE_ITEM_MENU_BROWSE_TEAMS] = lookup_widget(window.main, "menu_browse_teams"); insensitive_items[INSENSITIVE_ITEM_MENU_YOUTH_ACADEMY] = lookup_widget(window.main, "menu_youth_academy"); insensitive_items[INSENSITIVE_ITEM_MENU_TRAINING_CAMP] = lookup_widget(window.main, "menu_training_camp"); insensitive_items[INSENSITIVE_ITEM_MENU_SHOW_JOB_EXCHANGE] = lookup_widget(window.main, "menu_show_job_exchange"); insensitive_items[INSENSITIVE_ITEM_MENU_PUT_ON_TRANSFER_LIST] = lookup_widget(window.main, "menu_put_on_transfer_list"); insensitive_items[INSENSITIVE_ITEM_MENU_REMOVE_FROM_TRANSFER_LIST] = lookup_widget(window.main, "menu_remove_from_transfer_list"); insensitive_items[INSENSITIVE_ITEM_MENU_FIRE] = lookup_widget(window.main, "menu_fire"); insensitive_items[INSENSITIVE_ITEM_MENU_MOVE_TO_YOUTH_ACADEMY] = lookup_widget(window.main, "menu_move_to_youth_academy"); insensitive_items[INSENSITIVE_ITEM_MENU_USER] = lookup_widget(window.main, "menu_user"); insensitive_items[INSENSITIVE_ITEM_MENU_FINANCES_STADIUM] = lookup_widget(window.main, "menu_finances_stadium"); insensitive_items[INSENSITIVE_ITEM_MENU_HELP] = lookup_widget(window.main, "menu_help"); insensitive_items[INSENSITIVE_ITEM_MENU_BROWSE_PLAYERS] = lookup_widget(window.main, "menu_browse_players"); insensitive_items[INSENSITIVE_ITEM_MENU_OFFER_CONTRACT] = lookup_widget(window.main, "menu_offer_new_contract"); show_items[SHOW_ITEM_RESET_BUTTON] = lookup_widget(window.main, "button_reset_players"); show_items[SHOW_ITEM_RESET_MENU] = lookup_widget(window.main, "menu_reset_players"); for(i=0;iname, team->name, league_cup_get_name_string(team->clid), NULL); window_create(WINDOW_JOB_OFFER); label_text = GTK_LABEL(lookup_widget(window.job_offer, "label_text")); label_text2 = GTK_LABEL(lookup_widget(window.job_offer, "label_text2")); label_name = GTK_LABEL(lookup_widget(window.job_offer, "label_name")); label_league = GTK_LABEL(lookup_widget(window.job_offer, "label_league")); label_rank = GTK_LABEL(lookup_widget(window.job_offer, "label_rank")); label_money = GTK_LABEL(lookup_widget(window.job_offer, "label_money")); label_cap = GTK_LABEL(lookup_widget(window.job_offer, "label_cap")); label_saf = GTK_LABEL(lookup_widget(window.job_offer, "label_saf")); label_average_skill = GTK_LABEL(lookup_widget(window.job_offer, "label_average_skill")); if(type == STATUS_JOB_OFFER_FIRE_FINANCE) sprintf(buf, _("The team owners have fired you because of financial mismanagement. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:"), tm->name, tm->name); else if(type == STATUS_JOB_OFFER_FIRE_FAILURE) sprintf(buf, _("The team owners have fired you because of unsuccessfulness. Luckily, the owners of %s have heard of your dismissal and offer you a job. Here's some information on %s:"), tm->name, tm->name); else if(type == STATUS_JOB_OFFER_SUCCESS) sprintf(buf, _("The owners of %s are deeply impressed by your success with %s and would like to hire you. Here's some information on %s:"), tm->name, current_user.tm->name, tm->name); else if(type == STATUS_JOB_EXCHANGE_SHOW_TEAM) strcpy(buf, _("Click on OK to apply for the job. Click on CANCEL to close the window.")); strcpy(buf2, (type != STATUS_JOB_EXCHANGE_SHOW_TEAM) ? _("Accept?") : _("Apply for the job?")); if(type != STATUS_JOB_OFFER_SUCCESS && type != STATUS_JOB_EXCHANGE_SHOW_TEAM) strcat(buf2, _(" (NOTE: If you don't, the game is over for you.)")); gtk_label_set_text(label_text, buf); gtk_label_set_text(label_text2, buf2); gtk_label_set_text(label_name, tm->name); gtk_label_set_text(label_league, (type != STATUS_JOB_EXCHANGE_SHOW_TEAM) ? league_cup_get_name_string(tm->clid) : job->league_name); if(job == NULL || job->type == JOB_TYPE_NATIONAL) gui_label_set_text_from_int(label_rank, team_get_league_rank(tm, -1), FALSE); misc_print_grouped_int( math_round_integer(tm->stadium.capacity * math_rndi(const_int("int_initial_money_lower"), const_int("int_initial_money_upper")), 2), buf); gtk_label_set_text(label_money, buf); misc_print_grouped_int(tm->stadium.capacity, buf); gtk_label_set_text(label_cap, buf); gui_label_set_text_from_int(label_saf, (gint)rint(tm->stadium.safety * 100), FALSE); sprintf(buf, "%.1f", team_get_average_skill(tm, FALSE)); gtk_label_set_text(label_average_skill, buf); treeview_show_player_list_team( GTK_TREE_VIEW(lookup_widget(window.job_offer, "treeview_players")), tm, (type != STATUS_JOB_OFFER_SUCCESS && type != STATUS_JOB_EXCHANGE_SHOW_TEAM) ? 2 : current_user.scout); } /** Write the checkbuttons in the menus. */ void game_gui_write_check_items(void) { #ifdef DEBUG printf("game_gui_write_check_items\n"); #endif GtkCheckMenuItem *menu_job_offers = GTK_CHECK_MENU_ITEM(lookup_widget(window.main, "menu_job_offers")), *menu_live_game = GTK_CHECK_MENU_ITEM(lookup_widget(window.main, "menu_live_game")), *menu_overwrite = GTK_CHECK_MENU_ITEM(lookup_widget(window.main, "menu_overwrite")); gtk_check_menu_item_set_active(menu_job_offers, opt_user_int("int_opt_user_show_job_offers")); gtk_check_menu_item_set_active(menu_live_game, opt_user_int("int_opt_user_show_live_game")); gtk_check_menu_item_set_active(menu_overwrite, opt_int("int_opt_save_will_overwrite")); } /** Change the options according to the check menu widgets. */ void game_gui_read_check_items(GtkWidget *widget) { #ifdef DEBUG printf("game_gui_read_check_items\n"); #endif GtkWidget *menu_job_offers = lookup_widget(window.main, "menu_job_offers"), *menu_live_game = lookup_widget(window.main, "menu_live_game"), *menu_overwrite = lookup_widget(window.main, "menu_overwrite"); if(widget == menu_job_offers) { opt_user_set_int("int_opt_user_show_job_offers", !opt_user_int("int_opt_user_show_job_offers")); game_gui_print_message(_("Job offers set to %s."), team_attribute_to_char( TEAM_ATTRIBUTE_BOOST, opt_user_int("int_opt_user_show_job_offers"))); } else if(widget == menu_live_game) { opt_user_set_int("int_opt_user_show_live_game", !opt_user_int("int_opt_user_show_live_game")); game_gui_print_message(_("Live game set to %s."), team_attribute_to_char( TEAM_ATTRIBUTE_BOOST, opt_user_int("int_opt_user_show_live_game"))); } else if(widget == menu_overwrite) { opt_set_int("int_opt_save_will_overwrite", !opt_int("int_opt_save_will_overwrite")); game_gui_print_message(_("Overwrite set to %s."), team_attribute_to_char( TEAM_ATTRIBUTE_BOOST, opt_int("int_opt_save_will_overwrite"))); } else debug_print_message("game_gui_read_check_items: unknown widget."); } /** Set the appropriate text into the labels in the help window. @param help_list The stuff loaded from the bygfoot_help file. */ void game_gui_set_help_labels(void) { #ifdef DEBUG printf("game_gui_set_help_labels\n"); #endif GtkLabel *label_help_text1 = GTK_LABEL(lookup_widget(window.help, "label_help_text1")), *label_help_text2 = GTK_LABEL(lookup_widget(window.help, "label_help_text2")); GString *text = g_string_new(""); gtk_label_set_text(label_help_text1, _("Bygfoot is a very intuitive and simple game, so there isn't a full-grown documentation. However, if you have trouble, there are a few places to go.\n")); g_string_append_printf(text, _("At the Bygfoot forums you can report bugs, ask for help and discuss the game:\n")); g_string_append_printf(text, "http://bygfoot.sourceforge.net/forum\n"); g_string_append_printf(text, _("\nYou can also write an email to the authors:\n")); g_string_append_printf(text, "gunnar@bygfoot.com, gyboth@bygfoot.com"); gtk_label_set_text(label_help_text2, text->str); g_string_free(text, TRUE); } /** Set the money of the current team into the label. */ void game_gui_write_money(void) { #ifdef DEBUG printf("game_gui_write_money\n"); #endif gchar buf[SMALL]; GtkLabel *label_money= GTK_LABEL(lookup_widget(window.main, "label_money")); misc_print_grouped_int(current_user.money, buf); gtk_label_set_text(label_money, buf); } bygfoot-2.3.2/src/callbacks.h0000644000175000017500000003226211225071373015030 0ustar eliaselias/* callbacks.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef CALLBACKS_H #define CALLBACKS_H #include "bygfoot.h" #include "interface.h" #include "support.h" gboolean on_button_quit_clicked (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_menu_new_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_open_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_save_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_save_as_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_quit_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_about_activate (GtkMenuItem *menuitem, gpointer user_data); void on_button_load_clicked (GtkButton *button, gpointer user_data); void on_button_save_clicked (GtkButton *button, gpointer user_data); void on_button_back_to_main_clicked (GtkButton *button, gpointer user_data); void on_button_transfers_clicked (GtkButton *button, gpointer user_data); void on_button_new_week_clicked (GtkButton *button, gpointer user_data); gboolean on_player_list2_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_button_browse_clicked (GtkButton *button, gpointer user_data); void on_button_browse_forward_clicked (GtkButton *button, gpointer user_data); void on_button_browse_back_clicked (GtkButton *button, gpointer user_data); void on_menu_preferences_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_fixtures_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_tables_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_season_history_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_put_on_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_remove_from_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_fire_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_shoots_penalties_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_my_league_results_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_browse_teams_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_treeview_right_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_menu_next_user_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_previous_user_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_custom_structure_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_player_list1_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_menu_team_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_menu_manage_users_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_user_show_last_match_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_user_show_last_stats_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_eventbox_style_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_eventbox_boost_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_button_cl_back_clicked (GtkButton *button, gpointer user_data); void on_button_cl_forward_clicked (GtkButton *button, gpointer user_data); void on_menu_show_finances_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_show_stadium_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_menu_check_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_menu_offer_new_contract_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_show_info_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_put_on_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_remove_from_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_offer_new_contract_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_fire_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_shoots_penalties_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_browse_players_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_show_info_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_rearrange_team_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_load_last_save_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_fixtures_week_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_user_show_history_activate (GtkMenuItem *menuitem, gpointer user_data); void on_button_reset_players_clicked (GtkButton *button, gpointer user_data); void on_menu_reset_players_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_league_stats_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_button_quit_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_menu_help_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_contributors_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_user_show_coming_matches_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_show_youth_academy_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_set_investment_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_move_to_youth_academy_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_move_to_youth_academy_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_youth_move_to_team_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_youth_kick_out_of_academy_activate (GtkMenuItem *menuitem, gpointer user_data); void on_mm_add_last_match_activate (GtkMenuItem *menuitem, gpointer user_data); void on_mm_manage_matches_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_save_window_geometry_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_season_results_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_betting_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_show_job_exchange_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_hpaned2_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_training_camp_activate (GtkMenuItem *menuitem, gpointer user_data); gboolean on_player_list1_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data); void on_automatic_loan_repayment_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_news_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_edit_name_activate (GtkMenuItem *menuitem, gpointer user_data); void on_player_menu_edit_name_activate (GtkMenuItem *menuitem, gpointer user_data); #endif bygfoot-2.3.2/src/xml_cup.h0000644000175000017500000000325111225071373014554 0ustar eliaselias/* xml_cup.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_CUP_H #define XML_CUP_H #include "bygfoot.h" void xml_cup_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_cup_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_cup_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_cup_read(const gchar *file, GArray *cups); #endif bygfoot-2.3.2/src/team.c0000644000175000017500000011111511225071373014025 0ustar eliaselias/* team.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "file.h" #include "finance.h" #include "fixture.h" #include "game.h" #include "game_gui.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "strategy.h" #include "team.h" #include "transfer.h" #include "user.h" #include "xml_team.h" /** Generate a team with default values, e.g. random playing structure and an empty string as name. @return A new team. */ Team team_new(gboolean new_id) { #ifdef DEBUG printf("team_new\n"); #endif Team new; new.name = new.names_file = new.symbol = new.def_file = new.stadium.name = new.strategy_sid = NULL; new.clid = -1; new.id = (new_id) ? team_id_new : -1; new.structure = 442; new.style = 0; new.boost = 0; new.average_talent = 0; new.luck = 1; new.players = g_array_new(FALSE, FALSE, sizeof(Player)); return new; } /* Fill the players array of the team and the stadium. @param tm The team that gets filled. */ void team_generate_players_stadium(Team *tm, gfloat av_talent) { #ifdef DEBUG printf("team_generate_players_stadium\n"); #endif gint i; gfloat skill_factor = math_rnd(1 - const_float("float_team_skill_variance"), 1 + const_float("float_team_skill_variance")); Player new; gfloat wages = 0, average_talent, league_av_talent; gchar *def_file = team_has_def_file(tm); tm->strategy_sid = strategy_get_random(); tm->stadium.average_attendance = tm->stadium.possible_attendance = tm->stadium.games = 0; tm->stadium.safety = math_rnd(const_float("float_team_stadium_safety_lower"), const_float("float_team_stadium_safety_upper")); tm->stadium.ticket_price = const_int("int_team_stadium_ticket_price"); if(tm->clid < ID_CUP_START) { league_av_talent = (av_talent > 0) ? av_talent : league_from_clid(tm->clid)->average_talent; average_talent = (tm->average_talent == 0) ? skill_factor * league_av_talent : tm->average_talent; } else { average_talent = (tm->average_talent == 0) ? team_get_average_talents(lig(0).teams) * (1 + cup_from_clid(tm->clid)->talent_diff) : tm->average_talent; average_talent *= skill_factor; } average_talent = CLAMP(average_talent, 0, const_float("float_player_max_skill")); tm->average_talent = average_talent; if(def_file == NULL) { for(i=0;iplayers, new); } } else { xml_team_read(tm, def_file); g_free(def_file); } for(i=0;iplayers, Player, i).wage; tm->stadium.capacity = math_round_integer((gint)rint((wages / (gfloat)const_int("int_team_stadium_ticket_price")) * const_float("float_team_stadium_size_wage_factor")), 2); } /** Check whether the team is already part of an international cup. We'd like to avoid having Real Madrid both in the Champions' League and in the CWC. @param tm The team we check (by comparing names). @param group The cup group the team shouldn't be in. @return TRUE if the team's already participating in a cup, FALSE otherwise. */ gboolean query_team_is_in_cups(const Team *tm, gint group) { #ifdef DEBUG printf("query_team_is_in_cups\n"); #endif gint i, j; if(group == -1) return FALSE; for(i=0;ilen;i++) if(cp(i).group == group) for(j=0;jlen;j++) if(strcmp(tm->name, (gchar*)g_ptr_array_index(cp(i).team_names, j)) == 0) { if(debug > 90) g_print("team %s group %d found in %s \n", tm->name, group, cp(i).name); return TRUE; } return FALSE; } /** Check whether a team participates in a cup. @param tm The team. @param cup The cup. @return TRUE or FALSE. */ gboolean query_team_is_in_cup(const Team *tm, const Cup *cup) { #ifdef DEBUG printf("query_team_is_in_cup\n"); #endif gint i; for(i=0;iteam_names->len;i++) if(strcmp(tm->name, (gchar*)g_ptr_array_index(cup->team_names, i)) == 0) return TRUE; return FALSE; } /** Return a GPtrArray containing the pointers to the teams from the teams array. @param teams The teams array we use. @param team_ptrs NULL or a pointer array we append to @return A GPtrArray containing pointers to the teams. */ GPtrArray* team_get_pointers_from_array(const GArray *teams, GPtrArray *team_ptrs) { #ifdef DEBUG printf("team_get_pointers_from_array\n"); #endif gint i; GPtrArray *team_pointers = g_ptr_array_new(); for(i=0;ilen;i++) g_ptr_array_add(team_pointers, (gpointer)&g_array_index(teams, Team, i)); if(team_ptrs != NULL) { for(i = 0; i < team_ptrs->len; i++) g_ptr_array_add(team_pointers, g_ptr_array_index(team_ptrs, i)); g_ptr_array_free(team_ptrs, TRUE); } return team_pointers; } /** Return the pointer to the team belonging to the id. */ Team* team_of_id(gint id) { #ifdef DEBUG printf("team_of_id\n"); #endif gint i, j, k; for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(lig(i).teams, Team, j).id == id) return &g_array_index(lig(i).teams, Team, j); for(i=0;ilen;i++) for(j = 0; j < cp(i).rounds->len; j++) for(k = 0; k < g_array_index(cp(i).rounds, CupRound, j).teams->len; k++) if(g_array_index(g_array_index(cp(i).rounds, CupRound, j).teams, Team, k).id == id) return &g_array_index(g_array_index(cp(i).rounds, CupRound, j).teams, Team, k); main_exit_program(EXIT_POINTER_NOT_FOUND, "team_of_id: team with id %d not found.", id); return NULL; } /** Return a pointer to the next or last fixture the team participates in. @param tm The team we examine. @return The pointer to the fixture or NULL if none is found. */ Fixture* team_get_fixture(const Team *tm, gboolean last_fixture) { #ifdef DEBUG printf("team_get_fixture\n"); #endif gint i, j; Fixture *fix = NULL; if(!last_fixture && (stat0 == STATUS_LIVE_GAME_PAUSE || stat0 == STATUS_SHOW_LIVE_GAME) && (tm == ((LiveGame*)statp)->fix->teams[0] || tm == ((LiveGame*)statp)->fix->teams[1])) return ((LiveGame*)statp)->fix; if(!last_fixture) { if(tm->clid < ID_CUP_START) for(i=0;ilen;i++) { if(query_league_active(&lig(i))) { for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).attendance == -1 && query_fixture_team_involved((&g_array_index(lig(i).fixtures, Fixture, j)), tm->id) && (fix == NULL || query_fixture_is_earlier(&g_array_index(lig(i).fixtures, Fixture, j), fix))) { fix = &g_array_index(lig(i).fixtures, Fixture, j); break; } } } for(i=0;ilen;i++) if(fix == NULL || fix->week_number != week || fix->week_round_number != week_round) { if(query_league_cup_has_property(acp(i)->id, "national") || query_team_is_in_cup(tm, acp(i))) { for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).attendance == -1 && query_fixture_team_involved((&g_array_index(acp(i)->fixtures, Fixture, j)), tm->id) && (fix == NULL || query_fixture_is_earlier(&g_array_index(acp(i)->fixtures, Fixture, j), fix))) { fix = &g_array_index(acp(i)->fixtures, Fixture, j); break; } } } } else { if(tm->clid < ID_CUP_START) for(i=0;ilen;i++) { if(query_league_active(&lig(i))) { for(j=lig(i).fixtures->len - 1;j>=0;j--) if(g_array_index(lig(i).fixtures, Fixture, j).attendance != -1 && query_fixture_team_involved((&g_array_index(lig(i).fixtures, Fixture, j)), tm->id) && (fix == NULL || query_fixture_is_later(&g_array_index(lig(i).fixtures, Fixture, j), fix))) { fix = &g_array_index(lig(i).fixtures, Fixture, j); break; } } } for(i=0;ilen;i++) if(fix == NULL || fix->week_number != week || fix->week_round_number != week_round - 1) { if(query_league_cup_has_property(acp(i)->id, "national") || query_team_is_in_cup(tm, acp(i))) { for(j=acp(i)->fixtures->len - 1;j>=0;j--) if(g_array_index(acp(i)->fixtures, Fixture, j).attendance != -1 && query_fixture_team_involved((&g_array_index(acp(i)->fixtures, Fixture, j)), tm->id) && (fix == NULL || query_fixture_is_later(&g_array_index(acp(i)->fixtures, Fixture, j), fix))) { fix = &g_array_index(acp(i)->fixtures, Fixture, j); break; } } } } return fix; } /** Check whether the team is a user-managed team. @param tm The team we examine. @return The user's index in the #users array or -1.*/ gint team_is_user(const Team *tm) { #ifdef DEBUG printf("team_is_user\n"); #endif gint i; for(i=0;ilen;i++) if(usr(i).team_id == tm->id) return i; return -1; } /** Check whether the team with given name is a user-managed team. @param team_name The team name we examine. @return The user's index in the #users array or -1.*/ gint team_name_is_user(const gchar *team_name) { #ifdef DEBUG printf("team_name_is_user\n"); #endif gint i; for(i=0;ilen;i++) if(strcmp(team_name, usr(i).tm->name) == 0) return i; return -1; } /** Return the overall average skill or the cskill of the first 11 players. @param tm The team we examine. @param cskill Whether to take into account all players. */ gfloat team_get_average_skill(const Team *tm, gboolean cskill) { #ifdef DEBUG printf("team_get_average_skill\n"); #endif gint i, counter = 0; gfloat sum = 0; if(!cskill) { for(i=0;iplayers->len;i++) if(player_of_idx_team(tm, i)->cskill != 0) { sum += player_of_idx_team(tm, i)->skill; counter++; } } else for(i=0;i<11;i++) { sum += (player_get_game_skill(player_of_idx_team(tm, i), FALSE, FALSE)); counter++; } return (counter > 0) ? sum / (gfloat)counter : 0; } /** Return the overall average talent of the team's players. @param tm The team we examine. */ gfloat team_get_average_talent(const Team *tm) { #ifdef DEBUG printf("team_get_average_talent\n"); #endif gint i; gfloat sum = 0; for(i=0;iplayers->len;i++) sum += player_of_idx_team(tm, i)->talent; return (tm->players->len > 0) ? sum / (gfloat)tm->players->len : 0; } /** Return the rank of the team in the league tables. */ gint team_get_league_rank(const Team *tm, gint clid) { #ifdef DEBUG printf("team_get_league_rank\n"); #endif gint i, clid_local, rank = 0; GArray *elements = NULL; clid_local = (clid == -1) ? team_get_table_clid(tm) : clid; if(clid_local < ID_CUP_START) { if(!query_league_active(league_from_clid(clid_local))) return 0; elements = league_table(league_from_clid(clid_local))->elements; } else { if(cup_has_tables(clid_local) == -1) return 0; rank = team_get_cup_rank( tm, &g_array_index(cup_from_clid(clid_local)->rounds, CupRound, cup_has_tables(clid_local)), FALSE); return (rank == -1) ? 0 : rank; } for(i=0;ilen;i++) if(g_array_index(elements, TableElement, i).team_id == tm->id) return i + 1; main_exit_program(EXIT_INT_NOT_FOUND, "team_get_league_rank: no rank found for team %s in league %s. \n", tm->name, league_cup_get_name_string(tm->clid)); return -1; } /** Return the rank of the team in the round robin stage. @param abort Whether to exit if no corresponding entry can be found. */ gint team_get_cup_rank(const Team *tm, const CupRound *cupround, gboolean abort) { #ifdef DEBUG printf("team_get_cup_rank\n"); #endif gint i, j; for(i=0;itables->len;i++) { for(j=0;jtables, Table, i).elements->len;j++) if(g_array_index(g_array_index(cupround->tables, Table, i).elements, TableElement, j).team_id == tm->id) return j + 1; } if(abort) main_exit_program(EXIT_INT_NOT_FOUND, "team_get_cup_rank: no rank found for team %s. \n ", tm->name); return -1; } /** Return the structure that fits the positions of the first 11 players. @param tm The team we examine. @return A new structure. */ gint team_find_appropriate_structure(const Team *tm) { #ifdef DEBUG printf("team_find_appropriate_structure\n"); #endif gint i; gint structure = 0; for(i=0;i<11;i++) if(player_of_idx_team(tm, i)->cskill > 0 && player_of_idx_team(tm, i)->cpos != 0) { if(player_of_idx_team(tm, i)->pos != 0) structure += (gint)rint(powf(10, PLAYER_POS_FORWARD - player_of_idx_team(tm, i)->pos)); else structure += (gint)rint(powf(10, PLAYER_POS_FORWARD - player_of_idx_team(tm, i)->cpos)); } return structure; } /** Change the structure of a team and the appropriate cpos and cskill values. @param tm The team. @param new_structure The new structure value, e.g. 442. */ void team_change_structure(Team *tm, gint new_structure) { #ifdef DEBUG printf("team_change_structure\n"); #endif gint i; tm->structure = new_structure; for(i=1;i<11;i++) { player_of_idx_team(tm, i)->cpos = player_get_position_from_structure(new_structure, i); player_of_idx_team(tm, i)->cskill = player_get_cskill(player_of_idx_team(tm, i), player_of_idx_team(tm, i)->cpos, TRUE); } } /* Try to set each of the first 11 players on his favoured position and sort the substitutes by position. @param tm The team we rearrange. */ void team_rearrange(Team *tm) { #ifdef DEBUG printf("team_rearrange\n"); #endif gint i; g_array_sort_with_data(tm->players, (GCompareDataFunc)player_compare_func, GINT_TO_POINTER(100 + PLAYER_COMPARE_ATTRIBUTE_POS)); for(i=0;iplayers->len;i++) { player_of_idx_team(tm, i)->cpos = (i < 11) ? player_get_position_from_structure(tm->structure, i) : player_of_idx_team(tm, i)->pos; if(player_of_idx_team(tm, i)->cskill > 0) player_of_idx_team(tm, i)->cskill = (i < 11) ? player_get_cskill(player_of_idx_team(tm, i), player_of_idx_team(tm, i)->cpos, TRUE) : player_of_idx_team(tm, i)->skill; } } /** Return the name of the current setting of a team attribute, e.g. style. @param tm The team. @param attribute The attribute. */ gchar* team_attribute_to_char(gint attribute, gint value) { #ifdef DEBUG printf("team_attribute_to_char\n"); #endif #ifdef DEBUG printf("team_attribute_to_char\n"); #endif switch(attribute) { default: main_exit_program(EXIT_INT_NOT_FOUND, "team_attribute_to_char: unknown attribute %d\n", attribute); break; case TEAM_ATTRIBUTE_STYLE: switch(value) { case -2: return _("ALL OUT DEFEND"); case -1: return _("DEFEND"); case 0: return _("BALANCED"); case 1: return _("ATTACK"); case 2: return _("ALL OUT ATTACK"); } break; case TEAM_ATTRIBUTE_BOOST: switch(value) { case -1: /* Boost value. */ return _("ANTI"); case 0: /* Boost value. */ return _("OFF"); case 1: /* Boost value. */ return _("ON"); } break; } return NULL; } /** Change a team attribute of the current user and print a message. @param attribute The attribute. @param new_value The new value. */ void team_change_attribute_with_message(Team *tm, gint attribute, gint new_value) { #ifdef DEBUG printf("team_change_attribute_with_message\n"); #endif switch(attribute) { default: debug_print_message("team_attribute_to_char: unknown attribute %d\n", attribute); break; case TEAM_ATTRIBUTE_STYLE: current_user.tm->style = new_value; game_gui_print_message(_("Team style changed to %s."), team_attribute_to_char(attribute, new_value)); break; case TEAM_ATTRIBUTE_BOOST: current_user.tm->boost = new_value; if(new_value == 1) game_gui_print_message( _("Boost changed to %s (costs %d per minute)."), team_attribute_to_char(attribute, new_value), (gint)rint(finance_wage_unit(current_user.tm) * const_float("float_boost_cost_factor"))); else game_gui_print_message(_("Boost changed to %s."), team_attribute_to_char(attribute, new_value)); break; } } /** Replace some players by new ones in a team. */ void team_update_cpu_new_players(Team *tm) { #ifdef DEBUG printf("team_update_cpu_new_players\n"); #endif gint i; gint number_of_new = math_rndi(const_int("int_team_new_players_lower"), const_int("int_team_new_players_upper")); gint player_numbers[tm->players->len]; math_generate_permutation(player_numbers, 0, tm->players->len - 1); for(i=0;iplayers->len - 1;i>=0;i--) player_update_weekly(&g_array_index(tm->players, Player, i)); if(team_is_user(tm) == -1 && math_rnd(0, 1) < const_float("float_team_new_player_probability")) team_update_cpu_new_players(tm); } /** Regenerate player fitness etc. after a match. @param tm The user team we examine. @param clid The fixture clid. */ void team_update_post_match(Team *tm, const Fixture *fix) { #ifdef DEBUG printf("team_update_post_match\n"); #endif gint i; for(i=0;iplayers->len;i++) player_update_post_match(player_of_idx_team(tm, i), fix); } /** Some updates each round. @param tm The user team we examine. */ void team_update_team_week_roundly(Team *tm) { #ifdef DEBUG printf("team_update_team_week_roundly\n"); #endif gint i; for(i=0;iplayers->len;i++) player_update_week_roundly(tm, i); if(team_is_user(tm) == -1) strategy_update_team_pre_match(tm); } /** Return a value from the league table element going with the team. @param type The type of the value. */ gint team_get_table_value(const Team *tm, gint type) { #ifdef DEBUG printf("team_get_table_value\n"); #endif gint i; const GArray *elements = NULL; if(tm->clid >= ID_CUP_START) main_exit_program(EXIT_INT_NOT_FOUND, "team_get_table_value: team is not a league team: %s \n", tm->name); elements = league_table(league_from_clid(tm->clid))->elements; for(i=0;ilen;i++) if(g_array_index(elements, TableElement, i).team_id == tm->id) break; if(i == elements->len) main_exit_program(EXIT_INT_NOT_FOUND, "team_get_table_value: table entry not found for team %s \n", tm->name); return g_array_index(elements, TableElement, i).values[type]; } /** Compare function for team arrays or pointer arrays. */ gint team_compare_func(gconstpointer a, gconstpointer b, gpointer data) { #ifdef DEBUG printf("team_compare_func\n"); #endif gint type = GPOINTER_TO_INT(data) % 100; const Team *tm1 = (GPOINTER_TO_INT(data) < 100) ? *(const Team**)a : (const Team*)a; const Team *tm2 = (GPOINTER_TO_INT(data) < 100) ? *(const Team**)b : (const Team*)b; gint return_value = 0; if(type == TEAM_COMPARE_LEAGUE_RANK) { if(tm1->clid == tm2->clid) return_value = misc_int_compare(team_get_league_rank(tm2, -1), team_get_league_rank(tm1, -1)); else return_value = misc_int_compare(league_from_clid(tm2->clid)->layer, league_from_clid(tm1->clid)->layer); } else if(type == TEAM_COMPARE_LEAGUE_LAYER) return_value = (tm1->clid >= ID_CUP_START || tm2->clid >= ID_CUP_START) ? 0 : misc_int_compare(league_from_clid(tm2->clid)->layer, league_from_clid(tm1->clid)->layer); else if(type == TEAM_COMPARE_OFFENSIVE) { gint gf1 = team_get_table_value(tm1, TABLE_GF), gf2 = team_get_table_value(tm2, TABLE_GF), ga1 = team_get_table_value(tm1, TABLE_GA), ga2 = team_get_table_value(tm2, TABLE_GA); if(gf1 > gf2) return_value = -1; else if(gf1 < gf2) return_value = 1; else if(ga1 < ga2) return_value = -1; else if(ga1 > ga2) return_value = 1; else return_value = 0; } else if(type == TEAM_COMPARE_DEFENSE) { gint gf1 = team_get_table_value(tm1, TABLE_GF), gf2 = team_get_table_value(tm2, TABLE_GF), ga1 = team_get_table_value(tm1, TABLE_GA), ga2 = team_get_table_value(tm2, TABLE_GA); if(ga1 > ga2) return_value = 1; else if(ga1 < ga2) return_value = -1; else if(gf1 > gf2) return_value = -1; else if(gf1 < gf2) return_value = 1; else return_value = 0; } else if(type == TEAM_COMPARE_UNSORTED) return_value = 0; else if(type == TEAM_COMPARE_AV_SKILL) return_value = misc_float_compare(team_get_average_skill(tm1, FALSE), team_get_average_skill(tm2, FALSE)); return return_value; } /** Return the teams from all leagues sorted by the specified function. @param type The integer to pass to the compare function. @param cup Whether we return the international cup teams or league teams. */ GPtrArray* team_get_sorted(GCompareDataFunc compare_function, gint type, gboolean cup) { #ifdef DEBUG printf("team_get_sorted\n"); #endif gint i, j; GPtrArray *teams = g_ptr_array_new(); if(!cup) { for(i=0;ilen;i++) for(j=0;jlen;j++) g_ptr_array_add(teams, &g_array_index(lig(i).teams, Team, j)); } else { for(i=0;ilen;i++) for(j=0;jteams->len;j++) g_ptr_array_add(teams, g_ptr_array_index(acp(i)->teams, j)); } g_ptr_array_sort_with_data(teams, compare_function, GINT_TO_POINTER(type)); return teams; } /** Find a new team for a user, depending on whether he's been fired or very successful. */ Team* team_get_new(const Team *tm, gboolean fire) { #ifdef DEBUG printf("team_get_new\n"); #endif gint i; gint lower = 0, upper = 0; gint bound1 = (fire) ? const_int("int_team_new_bound_upper") : const_int("int_team_new_bound_lower"), bound2 = (fire) ? const_int("int_team_new_bound_lower") : const_int("int_team_new_bound_upper"); gint idx = -1; GPtrArray *teams = team_get_sorted(team_compare_func, TEAM_COMPARE_LEAGUE_RANK, FALSE); Team *return_value; for(i=0;ilen;i++) if((Team*)g_ptr_array_index(teams, i) != tm) upper++; else { idx = i; break; } for(i=teams->len - 1; i >= 0; i--) if((Team*)g_ptr_array_index(teams, i) != tm) lower++; else break; bound1 = MIN(bound1, upper); bound2 = MIN(bound2, lower); return_value = (Team*)g_ptr_array_index(teams, math_rndi(i - bound1, i + bound2)); while(return_value == tm) return_value = (Team*)g_ptr_array_index(teams, math_rndi(i - bound1, i + bound2)); g_ptr_array_free(teams, TRUE); return return_value; } /** Return the index of the team in the teams array. */ gint team_get_index(const Team *tm) { #ifdef DEBUG printf("team_get_index\n"); #endif gint i; gpointer *teams = (gpointer*)league_cup_get_teams(tm->clid); if(tm->clid < ID_CUP_START) { for(i=0;i<((GArray*)teams)->len;i++) if(&g_array_index((GArray*)teams, Team, i) == tm) return i; } else { for(i=0;i<((GPtrArray*)teams)->len;i++) if((Team*)g_ptr_array_index((GPtrArray*)teams, i) == tm) return i; } main_exit_program(EXIT_INT_NOT_FOUND, "team_get_index: team %s not found.\n", tm->name); return -1; } /** Return the average of the average talents of the teams in the array. */ gfloat team_get_average_talents(const GArray *teams) { #ifdef DEBUG printf("team_get_average_talents\n"); #endif gint i, j, cnt = 0; gfloat sum = 0; if(teams->len == 0) return 0; for(i=0;ilen;i++) for(j=0;jlen;j++) { sum += g_array_index(g_array_index(teams, Team, i).players, Player, j).talent; cnt++; } return sum / (gfloat)cnt; } /** Find out whether a team plays at a given date. */ gboolean query_team_plays(const Team *tm, gint week_number, gint week_round_number) { #ifdef DEBUG printf("query_team_plays\n"); #endif gint i, j; if(tm->clid < ID_CUP_START) for(i=0;ilen;i++) if(lig(i).id == tm->clid) for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number == week_number && g_array_index(lig(i).fixtures, Fixture, j).week_round_number == week_round_number && (g_array_index(lig(i).fixtures, Fixture, j).teams[0] == tm || g_array_index(lig(i).fixtures, Fixture, j).teams[1] == tm)) return TRUE; for(i=0;ilen;i++) if(query_league_cup_has_property(acp(i)->id, "national") || query_team_is_in_cup(tm, acp(i))) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week_number && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number == week_round_number && (g_array_index(acp(i)->fixtures, Fixture, j).teams[0] == tm || g_array_index(acp(i)->fixtures, Fixture, j).teams[1] == tm)) return TRUE; return FALSE; } /** Show the results of the user team against the specified team. @param buf The buffer to fill with the results. @param sort Whether to sort the results according to home/away. @param cup_matches Whether to take cup matches into account as well. */ void team_write_own_results(const Team *tm, gchar *buf, gboolean sort, gboolean cup_matches) { #ifdef DEBUG printf("team_write_own_results\n"); #endif gint i, res[2]; gchar buf2[SMALL], buf3[SMALL], buf4[SMALL], neutral[SMALL]; gint place; GPtrArray *matches = fixture_get_matches(current_user.tm, tm); strcpy(buf4, ""); strcpy(neutral, ""); for(i=0;ilen;i++) if(cup_matches || ((Fixture*)g_ptr_array_index(matches, i))->clid < ID_CUP_START) { res[0] = math_sum_int_array(((Fixture*)g_ptr_array_index(matches, i))->result[0], 2); res[1] = math_sum_int_array(((Fixture*)g_ptr_array_index(matches, i))->result[1], 2); if(res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] != current_user.tm] > res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] == current_user.tm]) /* a won match */ sprintf(buf2, _("W %d : %d"), res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] != current_user.tm], res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] == current_user.tm]); else if(res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] != current_user.tm] < res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] == current_user.tm]) /* a lost match */ sprintf(buf2, _("L %d : %d"), res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] != current_user.tm], res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] == current_user.tm]); else /* a drawn match */ sprintf(buf2, _("Dw %d : %d"), res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] != current_user.tm], res[((Fixture*)g_ptr_array_index(matches, i))->teams[0] == current_user.tm]); if(((Fixture*)g_ptr_array_index(matches, i))->home_advantage) { if(((Fixture*)g_ptr_array_index(matches, i))->teams[0] == current_user.tm) { /* a match at home */ sprintf(buf3, _("%s (H) "), buf2); place = 0; } else { /* a match away */ sprintf(buf3, _("%s (A) "), const_app("string_treeview_live_game_commentary_away_bg"), const_app("string_treeview_live_game_commentary_away_fg"), buf2); place = 1; } } else { /* a match on neutral ground */ sprintf(buf3, _("%s (N) "), buf2); place = -1; } if(!sort || place == 1) strcat(buf4, buf3); else { if(place == 0) { strcpy(buf2, buf4); sprintf(buf4, "%s%s", buf3, buf2); } else if(place == -1) strcat(neutral, buf3); } } sprintf(buf, "%s%s", buf4, neutral); g_ptr_array_free(matches, TRUE); } /** Show a row of WDWWLL type results and the goals for and against. @param tm The team we find the results for. @param buf The buffer we print the results into. */ void team_write_results(const Team *tm, gchar *result_buf, gchar *goals_buf) { #ifdef DEBUG printf("team_write_results\n"); #endif gint i; GPtrArray *latest_fixtures = fixture_get_latest(tm, TRUE); gint res[2], goals[2] = {0, 0}; gint end_idx = latest_fixtures->len - const_int("int_treeview_latest_results"); strcpy(result_buf, ""); end_idx = MAX(0, end_idx); for(i=latest_fixtures->len - 1;i>=end_idx;i--) { res[0] = math_sum_int_array(((Fixture*)g_ptr_array_index(latest_fixtures, i))->result[0], 3); res[1] = math_sum_int_array(((Fixture*)g_ptr_array_index(latest_fixtures, i))->result[1], 3); goals[0] += math_sum_int_array(((Fixture*) g_ptr_array_index(latest_fixtures, i))-> result[(((Fixture*)g_ptr_array_index(latest_fixtures, i))->teams[0] != tm)], 2); goals[1] += math_sum_int_array(((Fixture*) g_ptr_array_index(latest_fixtures, i))-> result[(((Fixture*)g_ptr_array_index(latest_fixtures, i))->teams[0] == tm)], 2); if(res[0] == res[1]) /* draw */ strcat(result_buf, _("Dw ")); else if(res[(((Fixture*)g_ptr_array_index(latest_fixtures, i))->teams[0] == tm)] > res[(((Fixture*)g_ptr_array_index(latest_fixtures, i))->teams[0] != tm)]) /* lost */ strcat(result_buf, _("L ")); else /* won */ strcat(result_buf, _("W ")); } sprintf(goals_buf, "%d : %d", goals[0], goals[1]); g_ptr_array_free(latest_fixtures, TRUE); } /** Find out whether the team is in the given pointer array. */ gboolean query_team_is_in_teams_array(const Team *tm, const GPtrArray *teams) { #ifdef DEBUG printf("query_team_is_in_teams_array\n"); #endif gint i; for(i=0;ilen;i++) if((Team*)g_ptr_array_index(teams, i) == tm) return TRUE; return FALSE; } /** Check whether we find a definition file for the given team. */ gchar* team_has_def_file(const Team *tm) { #ifdef DEBUG printf("team_has_def_file\n"); #endif #ifdef DEBUG printf("team_has_def_file\n"); #endif gchar *return_value = NULL; gchar buf[SMALL]; if(tm->def_file != NULL && opt_int("int_opt_load_defs") != 0) { sprintf(buf, "team_%s.xml", tm->def_file); return_value = file_find_support_file(buf, FALSE); } return return_value; } /** Complete the definition of the team (add players, calculate wages etc. Called after reading a team def file. */ void team_complete_def(Team *tm) { #ifdef DEBUG printf("team_complete_def\n"); #endif gint i, new_pos, pos_sum; gint positions[4] = {0, 0, 0, 0}; Player new_player; gint add = const_int("int_team_cpu_players") - tm->players->len; gboolean is_user = (team_is_user(tm) != -1); for(i=0;iplayers->len;i++) { player_complete_def(&g_array_index(tm->players, Player, i), tm->average_talent); positions[g_array_index(tm->players, Player, i).pos]++; /** This is so we don't remove loaded players from the team at startup. */ if(is_user) g_array_index(tm->players, Player, i).recovery = 1; } for(i=0;iaverage_talent, TRUE); if(positions[0] < 2) new_pos = 0; else if((gfloat)positions[1] / (gfloat)pos_sum < const_float("float_player_pos_bound1")) new_pos = 1; else if((gfloat)positions[2] / (gfloat)pos_sum < const_float("float_player_pos_bound1")) new_pos = 2; else new_pos = 3; new_player.pos = new_player.cpos = new_pos; positions[new_pos]++; g_array_append_val(tm->players, new_player); } team_complete_def_sort(tm); } /** Sort the players in the team according to the team structure and the player positions. */ void team_complete_def_sort(Team *tm) { #ifdef DEBUG printf("team_complete_def_sort\n"); #endif gint i, j; gint positions[4] = {0, 0, 0, 0}; gint structure[4] = {1, math_get_place(tm->structure, 3), math_get_place(tm->structure, 2), math_get_place(tm->structure, 1)}; Player player_tmp, player_tmp2; for(i=0;i<11;i++) positions[g_array_index(tm->players, Player, i).pos]++; for(i=0;i<4;i++) { while(positions[i] > structure[i]) { for(j=0;j<11;j++) if(g_array_index(tm->players, Player, j).pos == i) { player_tmp = g_array_index(tm->players, Player, j); g_array_remove_index(tm->players, j); break; } for(j=10;jplayers->len;j++) { if(g_array_index(tm->players, Player, j).pos != i) { player_tmp2 = g_array_index(tm->players, Player, j); g_array_remove_index(tm->players, j); break; } } if(j == tm->players->len) main_exit_program(EXIT_DEF_SORT, "team_complete_def_sort (1): cannot sort according to structure %d (team %s).", tm->structure, tm->name); positions[i]--; positions[player_tmp2.pos]++; g_array_append_val(tm->players, player_tmp); g_array_prepend_val(tm->players, player_tmp2); } while(positions[i] < structure[i]) { for(j=0;j<11;j++) if(g_array_index(tm->players, Player, j).pos > i) { player_tmp = g_array_index(tm->players, Player, j); g_array_remove_index(tm->players, j); break; } if(j == 11) main_exit_program(EXIT_DEF_SORT, "team_complete_def_sort (2): cannot sort according to structure %d (team %s).", tm->structure, tm->name); for(j=10;jplayers->len;j++) if(g_array_index(tm->players, Player, j).pos == i) { player_tmp2 = g_array_index(tm->players, Player, j); g_array_remove_index(tm->players, j); break; } if(j == tm->players->len) main_exit_program(EXIT_DEF_SORT, "team_complete_def_sort (3): cannot sort according to structure %d (team %s).", tm->structure, tm->name); positions[i]++; positions[player_tmp.pos]--; g_array_append_val(tm->players, player_tmp); g_array_prepend_val(tm->players, player_tmp2); } } team_rearrange(tm); } /** Find out which cup or league table the team belongs to. */ gint team_get_table_clid(const Team *tm) { #ifdef DEBUG printf("team_get_table_clid\n"); #endif gint i; if(tm->clid >= ID_CUP_START || (tm->clid < ID_CUP_START && !query_league_active(league_from_clid(tm->clid)))) { for(i = acps->len - 1; i >= 0; i--) if(cup_has_tables(acp(i)->id) != -1 && query_team_is_in_cup(tm, acp(i))) return acp(i)->id; } return tm->clid; } /** Write a won/lost/draw, gf:ga stat about the team's results in the specified competition into the string. */ void team_write_overall_results(const Team *tm, gint clid, gchar *results) { gint i, idx; gint won, lost, drawn, gf, ga; const GArray *fixtures = league_cup_get_fixtures(clid); const Fixture *fix; won = lost = drawn = gf = ga = 0; for(i = 0; i < fixtures->len; i++) { fix = &g_array_index(fixtures, Fixture, i); if(fix->attendance == -1) break; if(fix->teams[0] != tm && fix->teams[1] != tm) continue; else idx = (fix->teams[0] != tm); if(fix->result[0][0] == fix->result[1][0]) drawn++; else if(fix->result[idx][0] > fix->result[!idx][0]) won++; else lost++; gf += fix->result[idx][0]; ga += fix->result[!idx][0]; } sprintf(results, "%d-%d-%d, %d:%d", won, lost, drawn, gf, ga); } bygfoot-2.3.2/src/lg_commentary_struct.h0000644000175000017500000000311511225071373017350 0ustar eliaselias/* lg_commentary_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LG_COMMENTARY_STRUCT_H #define LG_COMMENTARY_STRUCT_H /** Structure describing a commentary for the live game. */ typedef struct { /** The commentary text (possibly containing tokens). */ gchar *text; /** A condition (if not fulfilled, the commentary doesn't get shown). */ gchar *condition; /** Priority of the commentary (compared to the other ones for the same event). The higher the priority the higher the probability that the commentary gets picked. */ gint priority; /** An id to keep track of already used commentaries in the live game (so as not to use the same one too frequently). */ gint id; } LGCommentary; #endif bygfoot-2.3.2/src/fixture.c0000644000175000017500000016144311225071373014576 0ustar eliaselias/* fixture.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "fixture.h" #include "free.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "user.h" #include "table.h" #include "team.h" #include "variables.h" /** Write the fixtures for the given league at the beginning of a new season. @param league The league we write the fixtures for. */ void fixture_write_league_fixtures(League *league) { #ifdef DEBUG printf("fixture_write_league_fixtures\n"); #endif gint i,j; gint max_rr; gint joined_clids[league->joined_leagues->len]; gint joined_rrs[league->joined_leagues->len]; GPtrArray *teams; max_rr = league->round_robins; teams = team_get_pointers_from_array(league->teams, NULL); /** Add all teams to the same pointer array. */ for(i = 0; i < league->joined_leagues->len; i++) { joined_rrs[i] = g_array_index(league->joined_leagues, JoinedLeague, i).rr; joined_clids[i] = league_index_from_sid(g_array_index(league->joined_leagues, JoinedLeague, i).sid); max_rr = MAX(joined_rrs[i], max_rr); teams = team_get_pointers_from_array(lig(joined_clids[i]).teams, teams); } /** Write fixtures for as many round robins as required by the maximum number of rrs given. */ for(i = 0; i < max_rr;) { fixture_write_round_robin((gpointer)league, -1, misc_copy_ptr_array(teams), (i == max_rr - 1), -1, league->rr_breaks, i - 1); i += (i < max_rr - 1) ? 2 : 1; } g_ptr_array_free(teams, TRUE); g_array_sort_with_data(league->fixtures, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE + 100)); if(league->joined_leagues->len > 0) { /** Remove fixtures involving only teams from the joined leagues and for joined leagues with a smaller number of rrs than the maximum. */ for(i = 0; i < league->joined_leagues->len; i++) { if(joined_rrs[i] < max_rr) fixture_remove_rrs(league->fixtures, league->id, lig(joined_clids[i]).id, max_rr - joined_rrs[i]); for(j = i; j < league->joined_leagues->len; j++) fixture_remove_rrs(league->fixtures, lig(joined_clids[i]).id, lig(joined_clids[j]).id, max_rr); } /** Remove fixtures for reduced number of rrs. */ if(league->round_robins < max_rr) fixture_remove_rrs(league->fixtures, league->id, league->id, max_rr - league->round_robins); /** Move matches to earlier weeks if possible. */ fixtures_condense(league->fixtures); } } /** Write the fixtures for the given cup at the beginning of a new season. @param cup The cup we write the fixtures for. */ gboolean fixture_write_cup_fixtures(Cup *cup) { #ifdef DEBUG printf("fixture_write_cup_fixtures\n"); #endif gint i; GPtrArray *teams_sorted = NULL; /* Store the order of teams in case the cup uses teams from its previous incarnation (previous season). */ if(query_cup_self_referential(cup)) teams_sorted = cup_get_teams_sorted(cup); cup_reset(cup); for(i=0;irounds->len;i++) cup_get_team_pointers(cup, i, teams_sorted, TRUE); if(teams_sorted != NULL) g_ptr_array_free(teams_sorted, TRUE); if(g_array_index(cup->rounds, CupRound, 0).round_robin_number_of_groups > 0) fixture_write_cup_round_robin( cup, 0, misc_copy_ptr_array( g_array_index(cup->rounds, CupRound, 0).team_ptrs)); else fixture_write_knockout_round( cup, 0, misc_copy_ptr_array( g_array_index(cup->rounds, CupRound, 0).team_ptrs)); return cup_check_fixtures(cup); } /** Update the fixtures for the given cup. @param cup The cup we update. */ void fixture_update(Cup *cup) { #ifdef DEBUG printf("fixture_update\n"); #endif gint i; GArray *fixtures = cup->fixtures; gint round = g_array_index(fixtures, Fixture, fixtures->len - 1).round; gint replay = g_array_index(cup->rounds, CupRound, round).replay; GPtrArray *teams = NULL; const CupRound *new_round = NULL; if(debug > 90) g_print("fixture_update: cup %s (id %d)\n", cup->name, cup->id); if(replay != 0 && g_array_index(fixtures, Fixture, fixtures->len - 1).replay_number < replay && fixture_update_write_replays(cup)) return; /** Still waiting for other cups. */ if(round + 1 < cup->rounds->len && cup_round_check_waits(&g_array_index(cup->rounds, CupRound, round + 1))) return; teams = fixture_get_cup_round_winners(cup); if(round == cup->rounds->len - 1 && teams->len < 2) { g_ptr_array_free(teams, TRUE); return; } if(round + 1 > cup->rounds->len - 1) { g_ptr_array_free(teams, TRUE); main_exit_program( EXIT_CUP_ROUND_ERROR, "fixture_update: round index %d too high for round array (%d) in cup %s\n", round + 1, cup->rounds->len - 1, cup->name); } new_round = &g_array_index(cup->rounds, CupRound, round + 1); cup_get_team_pointers(cup, round + 1, NULL, FALSE); for(i=0;iteam_ptrs->len;i++) g_ptr_array_add(teams, g_ptr_array_index(new_round->team_ptrs, i)); if(teams->len < 2) { g_ptr_array_free(teams, TRUE); return; } if(cup->bye != NULL && cup->bye->len != 0) { for(i=0;ibye->len;i++) g_ptr_array_add(teams, g_ptr_array_index(cup->bye, i)); free_g_ptr_array(&cup->bye); } if(new_round->round_robin_number_of_groups > 0) fixture_write_cup_round_robin(cup, round + 1, teams); else fixture_write_knockout_round(cup, round + 1, teams); } /** Return the teams that advance to the next cup round. @param fixtures The fixtures array of the cup. @return A team pointer array. */ GPtrArray* fixture_get_cup_round_winners(const Cup *cup) { #ifdef DEBUG printf("fixture_get_cup_round_winners\n"); #endif gint i; GPtrArray *array = NULL; GArray *fixtures = cup->fixtures; gint round = g_array_index(fixtures, Fixture, fixtures->len - 1).round; const CupRound *cupround = &g_array_index(cup->rounds, CupRound, round); if(cupround->round_robin_number_of_groups > 0) return fixture_get_round_robin_advance(cup, round); array = g_ptr_array_new(); if(cupround->replay != 0) { for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).round == round && (g_array_index(fixtures, Fixture, i).result[0][0] != g_array_index(fixtures, Fixture, i).result[1][0] || g_array_index(fixtures, Fixture, i).result[0][1] + g_array_index(fixtures, Fixture, i).result[0][2] + g_array_index(fixtures, Fixture, i).result[1][1] + g_array_index(fixtures, Fixture, i).result[1][2] != 0)) g_ptr_array_add(array, fixture_winner_of(&g_array_index(fixtures, Fixture, i), FALSE)); return array; } if(!cupround->home_away) { for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).round == round) g_ptr_array_add(array, fixture_winner_of(&g_array_index(fixtures, Fixture, i), FALSE)); return array; } for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).round == round && g_array_index(fixtures, Fixture, i).second_leg) g_ptr_array_add(array, fixture_winner_of(&g_array_index(fixtures, Fixture, i), FALSE)); return array; } /** Return an array of teams advancing from a round robin stage of a cup. @param cup The cup. @param round The cup round. @return The pointers to the teams. */ GPtrArray* fixture_get_round_robin_advance(const Cup *cup, gint round) { #ifdef DEBUG printf("fixture_get_round_robin_advance\n"); #endif const CupRound *cupround = &g_array_index(cup->rounds, CupRound, round); GPtrArray *teams = cup_get_teams_sorted(cup); gint i, remove = teams->len - (cupround->round_robin_number_of_groups * cupround->round_robin_number_of_advance) - cupround->round_robin_number_of_best_advance; for(i=0;ilen - 1); return teams; } /** Return the pointer of the team that won the encounter. @param fix The fixture we examine. @param team_name Whether to return a team pointer or the team id of the winner. @return A team pointer or a coded integer. */ gpointer fixture_winner_of(const Fixture *fix, gboolean team_id) { #ifdef DEBUG printf("fixture_winner_of\n"); #endif gint winner_idx = -1; const Fixture *first_leg = NULL; const CupRound *cupround = NULL; if(fix->clid < ID_CUP_START) { winner_idx = (fix->result[0][0] < fix->result[1][0]); if(team_id) return GINT_TO_POINTER(fix->team_ids[winner_idx]); else return (gpointer)fix->teams[winner_idx]; } cupround = &g_array_index(cup_from_clid(fix->clid)->rounds, CupRound, fix->round); if(cupround->replay != 0 || !cupround->home_away || cupround->round_robin_number_of_groups > 0) winner_idx = (math_sum_int_array(&(fix->result[0][0]), 3) < math_sum_int_array(&(fix->result[1][0]), 3)); else { first_leg = fixture_get_first_leg(fix, FALSE); if(fix->result[0][2] + fix->result[1][2] != 0) winner_idx = (fix->result[0][2] < fix->result[1][2]); else if(fix->result[0][0] + fix->result[0][1] + first_leg->result[1][0] + first_leg->result[1][1] != fix->result[1][0] + fix->result[1][1] + first_leg->result[0][0] + first_leg->result[0][1]) winner_idx = (fix->result[0][0] + fix->result[0][1] + first_leg->result[1][0] + first_leg->result[1][1] < fix->result[1][0] + fix->result[1][1] + first_leg->result[0][0] + first_leg->result[0][1]); else winner_idx = (fix->result[1][0] + fix->result[1][1] > first_leg->result[1][0] + first_leg->result[1][1]); } if(team_id) return GINT_TO_POINTER(fix->team_ids[winner_idx]); else return (gpointer)fix->teams[winner_idx]; } /** Write replay matches for the cup. @param cup The cup. @return TRUE if fixtures were written, FALSE otherwise. */ gboolean fixture_update_write_replays(Cup *cup) { #ifdef DEBUG printf("fixture_update_write_replays\n"); #endif gint i; GArray *fixtures = cup->fixtures; gint replay_number = g_array_index(fixtures, Fixture, fixtures->len - 1).replay_number + 1; gint round = g_array_index(fixtures, Fixture, fixtures->len - 1).round; gboolean return_value = FALSE; for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).round == round && g_array_index(fixtures, Fixture, i).replay_number == replay_number - 1 && g_array_index(fixtures, Fixture, i).result[0][0] == g_array_index(fixtures, Fixture, i).result[1][0]) fixture_write(fixtures, g_array_index(fixtures, Fixture, i).teams[1], g_array_index(fixtures, Fixture, i).teams[0], week, fixture_get_free_round(week, NULL, g_array_index(fixtures, Fixture, i).teams[0]->id, g_array_index(fixtures, Fixture, i).teams[1]->id), cup->id, round, replay_number, !g_array_index(cup->rounds, CupRound, round).neutral, FALSE, (g_array_index(cup->rounds, CupRound, round).replay == replay_number)); if(g_array_index(fixtures, Fixture, fixtures->len - 1).replay_number == replay_number) { return_value = TRUE; cup->next_fixture_update_week_round = g_array_index(fixtures, Fixture, fixtures->len - 1).week_round_number; } return return_value; } /** Write round robins for the given cup and cup round. @param cup The cup the fixtures are for. @param cup_round The cup round. */ void fixture_write_cup_round_robin(Cup *cup, gint cup_round, GPtrArray *teams) { #ifdef DEBUG printf("fixture_write_cup_round_robin\n"); #endif gint i, j, cnt; CupRound *cupround = &g_array_index(cup->rounds, CupRound, cup_round); gint number_of_groups = cupround->round_robin_number_of_groups; gint team_num = (teams->len - (teams->len % number_of_groups)) / number_of_groups; gint plus_div = teams->len % number_of_groups; GPtrArray *teams_group[number_of_groups]; Table table_group[number_of_groups]; TableElement new_table_element; if(debug > 100) g_print("fixture_write_cup_round_robin: %s round %d teamlen %d\n", cup->name, cup_round, teams->len); if(teams->len < number_of_groups) main_exit_program(EXIT_FIXTURE_WRITE_ERROR, "fixture_write_cup_round_robin: cup %s round %d: number of teams (%d) less than number of groups (%d)\n", cup->name, cup_round, teams->len, number_of_groups); if(cupround->randomise_teams || opt_int("int_opt_randomise_teams")) g_ptr_array_sort_with_data(teams, (GCompareDataFunc)team_compare_func, GINT_TO_POINTER(TEAM_COMPARE_AV_SKILL)); for(i=0;iname); table_group[i].clid = cup->id; table_group[i].round = cup_round; table_group[i].elements = g_array_new(FALSE, FALSE, sizeof(TableElement)); teams_group[i] = g_ptr_array_new(); } cnt = 0; if(!cupround->randomise_teams && !opt_int("int_opt_randomise_teams")) { for(i=0;ilen); g_array_append_val(table_group[i].elements, new_table_element); cnt++; } } else { for(i=0;ilen;i++) { g_ptr_array_add(teams_group[cnt], g_ptr_array_index(teams, i)); new_table_element = table_element_new((Team*)g_ptr_array_index(teams, i), table_group[cnt].elements->len); g_array_append_val(table_group[cnt].elements, new_table_element); cnt = (cnt + 1) % number_of_groups; } } for(i=0;itables, table_group[i]); for(j = 0; j < cupround->round_robins;) { fixture_write_round_robin((gpointer)cup, cup_round, misc_copy_ptr_array(teams_group[i]), (j == cupround->round_robins - 1), (j == 0) ? -1 : g_array_index(cup->fixtures, Fixture, cup->fixtures->len - 1).week_number + g_array_index(cupround->rr_breaks, gint, j - 1), cupround->rr_breaks, j - 1); j += (j < cupround->round_robins - 1) ? 2 : 1; } g_ptr_array_free(teams_group[i], TRUE); } g_ptr_array_free(teams, TRUE); g_array_sort_with_data(cup->fixtures, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE + 100)); cup->next_fixture_update_week = (cup_round < cup->rounds->len - 1) ? g_array_index(cup->fixtures, Fixture, cup->fixtures->len - 1).week_number : 1000; cup->next_fixture_update_week_round = (cup_round < cup->rounds->len - 1) ? g_array_index(cup->fixtures, Fixture, cup->fixtures->len - 1).week_round_number : 1000; } /** Write round robin fixtures for the teams in the array. The way it's done is difficult to explain, so there won't be many comments below. @param league_cup The pointer to the cup or league the fixtures belong to. @param cup_round The round of the cup the fixtures belong to or -1 if we have a league. @param teams The pointer array containing pointers to the teams. @param one_round Whether a team plays each other team twice or only once. */ void fixture_write_round_robin(gpointer league_cup, gint cup_round, GPtrArray *teams, gboolean one_round, gint first_week, GArray *rr_breaks, gint rr_break_idx) { #ifdef DEBUG printf("fixture_write_round_robin\n"); #endif gint i, j; gint week_gap, week_number, week_round_number, clid, first_fixture; gboolean home_advantage; League *league = NULL; Cup *cup = NULL; gint len = teams->len; GArray *fixtures = NULL; GArray **two_match_weeks; Team team_temp; gboolean odd_fixtures = FALSE; teams = misc_randomise_g_pointer_array(teams); if(cup_round == -1) { league = (League*)league_cup; fixtures = league->fixtures; two_match_weeks = league->two_match_weeks; clid = league->id; first_week = (fixtures->len == 0) ? league->first_week : g_array_index(fixtures, Fixture, fixtures->len - 1).week_number + g_array_index(rr_breaks, gint, rr_break_idx); week_gap = league->week_gap; home_advantage = TRUE; } else { cup = (Cup*)league_cup; if(first_week == -1) first_week = cup_get_first_week_of_cup_round(cup, cup_round, TRUE); week_gap = cup->week_gap; fixtures = cup->fixtures; two_match_weeks = g_array_index(cup->rounds, CupRound, cup_round).two_match_weeks; clid = cup->id; home_advantage = (!g_array_index(cup->rounds, CupRound, cup_round).neutral); } first_fixture = fixtures->len; if(first_week < 1) main_exit_program(EXIT_FIXTURE_WRITE_ERROR, "fixture_write_round_robin: first week of %s is not positive (%d).\nPlease lower the week gap or set a later last week.\n", league_cup_get_name_string(clid), first_week); if(len % 2 != 0) { team_temp = team_new(FALSE); odd_fixtures = TRUE; g_ptr_array_add(teams, &team_temp); len++; } /* Special rule for cups that have to wait for other cups. */ if(cup_round != -1 && first_week < week) first_week = week; /* first half of fixtures */ week_number = league_cup_get_week_with_break(clid, first_week); for(i=0;i 0 && !query_league_cup_matchday_in_two_match_week(two_match_weeks, fixture_count_matchdays(fixtures) + 1)) week_number = league_cup_get_week_with_break(clid, week_number + week_gap); fixture_write_round_robin_matchday(fixtures, cup_round, teams, i, week_number, clid, home_advantage); } if(!one_round) { /* second half of fixtures */ week_number = league_cup_get_week_with_break(clid, week_number + g_array_index(rr_breaks, gint, rr_break_idx + 1)); for(i = 0; i < len - 1; i++) { if(i > 0 && !query_league_cup_matchday_in_two_match_week(two_match_weeks, fixture_count_matchdays(fixtures) + 1)) week_number = league_cup_get_week_with_break(clid, week_number + week_gap); week_round_number = fixture_get_free_round(week_number, teams, -1, -1); for(j = 0; j < len / 2; j++) fixture_write(fixtures, g_array_index(fixtures, Fixture, first_fixture + i * (len / 2) + j).teams[1], g_array_index(fixtures, Fixture, first_fixture + i * (len / 2) + j).teams[0], week_number, week_round_number, clid, cup_round, 0, home_advantage, FALSE, FALSE); } } g_ptr_array_free(teams, TRUE); if(odd_fixtures) { for(i=fixtures->len - 1; i>=0; i--) if(g_array_index(fixtures, Fixture, i).team_ids[0] == -1 || g_array_index(fixtures, Fixture, i).team_ids[1] == -1) g_array_remove_index(fixtures, i); free_team(&team_temp); } } /** Write one matchday of round robin games. @param fixtures The fixture array we add the fixtures to. @param cup_round The round of the cup the fixtures belong to or -1 if we have a league. @param teams The array containing the pointers of the teams participating. @param special The special team. @param week_number The week the matchday takes place. @param week_round_number The week_round the matchday takes place. @param clid The id of the league or cup. @param home_advantage Whether there's home advantage. */ void fixture_write_round_robin_matchday(GArray *fixtures, gint cup_round, GPtrArray *teams, gint special, gint week_number, gint clid, gboolean home_advantage) { #ifdef DEBUG printf("fixture_write_round_robin_matchday\n"); #endif gint i; gint len = teams->len / 2; gpointer home[len], away[len]; gint week_round_number = fixture_get_free_round(week_number, teams, -1, -1); home[0] = g_ptr_array_index(teams, len * 2 - 1); away[0] = g_ptr_array_index(teams, special); for(i=1;ilen; gint first_week = cup_get_first_week_of_cup_round(cup, cup_round, TRUE); gint week_number, week_round_number; CupRound *round = &g_array_index(cup->rounds, CupRound, cup_round); gint bye_len = (round->byes == -1) ? math_get_bye_len(len) : round->byes; if(debug > 60) g_print("fixture_write_knockout_round: %s %d byelen %d\n", cup->name, cup_round, bye_len); if(bye_len != 0) { cup->bye = g_ptr_array_new(); g_ptr_array_sort_with_data(teams, team_compare_func, GINT_TO_POINTER(TEAM_COMPARE_LEAGUE_LAYER)); for(i=0;ibye, g_ptr_array_index(teams, 0)); g_ptr_array_remove_index(teams, 0); } teams = misc_randomise_g_pointer_array(teams); } else if(round->randomise_teams) teams = misc_randomise_g_pointer_array(teams); /* Special rule for cups that have to wait for other cups. */ if(first_week < week) first_week = week + 1; week_number = league_cup_get_week_with_break(cup->id, first_week); week_round_number = fixture_get_free_round(week_number, teams, -1, -1); for(i=0; i<=(teams->len - 2) / 2; i++) if(!round->home_away && query_league_cup_has_property(cup->id, "weak_at_home") && league_from_clid(((Team*)g_ptr_array_index(teams, 2 * i))->clid)->layer < league_from_clid(((Team*)g_ptr_array_index(teams, 2 * i + 1))->clid)->layer) fixture_write(cup->fixtures, (Team*)g_ptr_array_index(teams, 2 * i + 1), (Team*)g_ptr_array_index(teams, 2 * i), week_number, week_round_number, cup->id, cup_round, 0, !round->neutral, FALSE, (!round->home_away && round->replay == 0)); else fixture_write(cup->fixtures, (Team*)g_ptr_array_index(teams, 2 * i), (Team*)g_ptr_array_index(teams, 2 * i + 1), week_number, week_round_number, cup->id, cup_round, 0, !round->neutral, FALSE, (!round->home_away && round->replay == 0)); if(round->home_away) { week_number = (round->two_match_week) ? week_number : league_cup_get_week_with_break(cup->id, week_number + cup->week_gap); week_round_number = fixture_get_free_round(week_number, teams, -1, -1); for(i=0; i<=(teams->len - 2) / 2; i++) fixture_write(cup->fixtures, (Team*)g_ptr_array_index(teams, 2 * i + 1), (Team*)g_ptr_array_index(teams, 2 * i), week_number, week_round_number, cup->id, cup_round, 0, !round->neutral, TRUE, TRUE); } g_array_sort_with_data(cup->fixtures, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE + 100)); cup->next_fixture_update_week = (cup_round < cup->rounds->len - 1 || round->replay > 0) ? g_array_index(cup->fixtures, Fixture, cup->fixtures->len - 1).week_number : 1000; cup->next_fixture_update_week_round = (cup_round < cup->rounds->len - 1 || round->replay > 0) ? g_array_index(cup->fixtures, Fixture, cup->fixtures->len - 1).week_round_number : 1000; g_ptr_array_free(teams, TRUE); } /** Write a fixture and append it to a fixture array. @param fixtures The fixture array. @param home_team The pointer of the home team. @param away_team The pointer of the away team. @param week_number The week it takes place. @param week_round_number The week_round it takes place. @param clid The id of the league or cup. @param cup_round The index of the cup round or -1 if it's a league. @param replay_number Whether this is a replay match and the how 'manyth' it is. @param home_advantage Whether there's home advantage. @param second_leg Whether this is the second leg of a round. @param decisive Whether the match has to have a winner. */ void fixture_write(GArray *fixtures, Team *home_team, Team *away_team, gint week_number, gint week_round_number, gint clid, gint cup_round, gint replay_number, gboolean home_advantage, gboolean second_leg, gboolean decisive) { #ifdef DEBUG printf("fixture_write\n"); #endif gint i; Fixture new; new.id = fixture_id_new; new.clid = clid; new.round = cup_round; new.replay_number = replay_number; new.week_number = week_number; new.week_round_number = week_round_number; new.teams[0] = home_team; new.teams[1] = away_team; new.team_ids[0] = home_team->id; new.team_ids[1] = away_team->id; new.live_game = NULL; for(i=0;i<3;i++) new.result[0][i] = new.result[1][i] = 0; new.home_advantage = home_advantage; new.second_leg = second_leg; new.decisive = decisive; new.attendance = -1; g_array_append_val(fixtures, new); } /** Return the round of the week which doesn't contain any matches yet featuring teams from the team list or with the given ids. @param week_number The week we examine. @param teams The participating in the round or NULL. @param team_id1, team_id1 Ids of the teams (if the team list is NULL) playing against each other. @return A round number. If the clid belongs to a league this is always 1. */ gint fixture_get_free_round(gint week_number, const GPtrArray *teams, gint team_id1, gint team_id2) { #ifdef DEBUG printf("fixture_get_free_round\n"); #endif gint i, j; gint max_round = 0; for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number == week_number && (stat5 != STATUS_GENERATE_TEAMS || g_array_index(lig(i).fixtures, Fixture, j).attendance == -1) && ((teams == NULL && (query_fixture_team_involved((&g_array_index(lig(i).fixtures, Fixture, j)), team_id1) || query_fixture_team_involved((&g_array_index(lig(i).fixtures, Fixture, j)), team_id2))) || (teams != NULL && (query_team_is_in_teams_array(g_array_index(lig(i).fixtures, Fixture, j).teams[0], teams) || query_team_is_in_teams_array(g_array_index(lig(i).fixtures, Fixture, j).teams[1], teams)))) && g_array_index(lig(i).fixtures, Fixture, j).week_round_number > max_round) max_round = g_array_index(lig(i).fixtures, Fixture, j).week_round_number; for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week_number && (stat5 != STATUS_GENERATE_TEAMS || g_array_index(acp(i)->fixtures, Fixture, j).attendance == -1) && ((teams == NULL && (query_fixture_team_involved((&g_array_index(acp(i)->fixtures, Fixture, j)), team_id1) || query_fixture_team_involved((&g_array_index(acp(i)->fixtures, Fixture, j)), team_id2))) || (teams != NULL && (query_team_is_in_teams_array(g_array_index(acp(i)->fixtures, Fixture, j).teams[0], teams) || query_team_is_in_teams_array(g_array_index(acp(i)->fixtures, Fixture, j).teams[1], teams)))) && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number > max_round) max_round = g_array_index(acp(i)->fixtures, Fixture, j).week_round_number; return max_round + 1; } /** Check whether the date of a fixture is earlier than of a second one. @param fix1 The first fixture. @param fix2 The second fixture. @return TRUE if fix1 is earlier than fix2, FALSE otherwise. */ gboolean query_fixture_is_earlier(const Fixture *fix1, const Fixture *fix2) { #ifdef DEBUG printf("query_fixture_is_earlier\n"); #endif return (fix1->week_number < fix2->week_number || (fix1->week_number == fix2->week_number && fix1->week_round_number < fix2->week_round_number)); } /** Check whether the date of a fixture is later than of a second one. @param fix1 The first fixture. @param fix2 The second fixture. @return TRUE if fix1 is later than fix2, FALSE otherwise. */ gboolean query_fixture_is_later(const Fixture *fix1, const Fixture *fix2) { #ifdef DEBUG printf("query_fixture_is_later\n"); #endif return (fix1->week_number > fix2->week_number || (fix1->week_number == fix2->week_number && fix1->week_round_number > fix2->week_round_number)); } /** Find out whether the current result of the fixture is a draw. This is a bit tricky because of second-leg games. In general (as a definition), fixtures with 'decisive' FALSE are never drawn. @param fix The pointer to the fixture. @return TRUE or FALSE. */ gboolean query_fixture_is_draw(const Fixture *fix) { #ifdef DEBUG printf("query_fixture_is_draw\n"); #endif const Fixture *first_leg; if(!fix->decisive) return FALSE; if(!fix->second_leg) return (fix->result[0][0] + fix->result[0][1] == fix->result[1][0] + fix->result[1][1]); first_leg = fixture_get_first_leg(fix, FALSE); return (fix->result[0][1] + fix->result[1][1] == 0 && fix->result[0][0] == first_leg->result[0][0] && fix->result[1][0] == first_leg->result[1][0]); } /** Check whether a user's team participates. @param fix The fixture we check. @return Index of the user or -1. */ gint fixture_user_team_involved(const Fixture *fix) { #ifdef DEBUG printf("fixture_user_team_involved\n"); #endif if(team_is_user(fix->teams[0]) != -1) return team_is_user(fix->teams[0]); if(team_is_user(fix->teams[1]) != -1) return team_is_user(fix->teams[1]); return -1; } /** Check whether we have to update a table after calculating the fixture. @param fix The fixture that got calculated. @return TRUE or FALSE. */ gboolean query_fixture_has_tables(const Fixture *fix) { #ifdef DEBUG printf("query_fixture_has_tables\n"); #endif return (fix->clid < ID_CUP_START || cup_has_tables(fix->clid) == fix->round); } /** Find out whether there were games in the specified league or cup at the specified time. @param clid The cup or league id. @param week_number The week number. @param week_round_number The week round. @return TRUE or FALSE. */ gboolean query_fixture_in_week_round(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("query_fixture_in_week_round\n"); #endif gint i; GArray *fixtures = league_cup_get_fixtures(clid); for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).week_number == week_number && g_array_index(fixtures, Fixture, i).week_round_number == week_round_number) return TRUE; return FALSE; } /** Return a pointer to the first leg going with the fixture. @param fix The second leg fixture. @param silent Whether to complain about a missing first leg. @return A fixture pointer or NULL if failed. */ Fixture* fixture_get_first_leg(const Fixture *fix, gboolean silent) { #ifdef DEBUG printf("fixture_get_first_leg\n"); #endif gint i; Fixture *first_leg = NULL; const GArray *fixtures = cup_from_clid(fix->clid)->fixtures; if(g_array_index(cup_from_clid(fix->clid)->rounds, CupRound, fix->round).round_robin_number_of_groups == 0) for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).round == fix->round && g_array_index(fixtures, Fixture, i).team_ids[0] == fix->team_ids[1] && g_array_index(fixtures, Fixture, i).team_ids[1] == fix->team_ids[0]) first_leg = &g_array_index(fixtures, Fixture, i); if(first_leg == NULL && !silent) debug_print_message("fixture_get_first_leg: didn't find first leg match; cup %s round %d\n", cup_from_clid(fix->clid)->name, fix->round); return first_leg; } /** Return a list of fixture pointers. @param clid The cup or league id. @param week_number The week number of the fixtures. @param week_round_number The week round of the fixtures. */ GPtrArray* fixture_get_week_list_clid(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("fixture_get_week_list_clid\n"); #endif gint i; GArray *fixtures = league_cup_get_fixtures(clid); GPtrArray *fixtures_array = g_ptr_array_new(); for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).week_number == week_number && g_array_index(fixtures, Fixture, i).week_round_number == week_round_number) g_ptr_array_add(fixtures_array, &g_array_index(fixtures, Fixture, i)); return fixtures_array; } /** Return an array with all fixtures in a given week. */ GPtrArray* fixture_get_week_list(gint week_number, gint week_round_number) { #ifdef DEBUG printf("fixture_get_week_list\n"); #endif gint i, j; GPtrArray *fixtures = g_ptr_array_new(); for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number == week_number && g_array_index(lig(i).fixtures, Fixture, j).week_round_number == week_round_number) g_ptr_array_add(fixtures, &g_array_index(lig(i).fixtures, Fixture, j)); for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week_number && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number == week_round_number) g_ptr_array_add(fixtures, &g_array_index(acp(i)->fixtures, Fixture, j)); return fixtures; } /** Print the result of the fixture into a buffer. @param swap Whether to swap the two teams' goals. */ void fixture_result_to_buf(const Fixture *fix, gchar *buf, gboolean swap) { #ifdef DEBUG printf("fixture_result_to_buf\n"); #endif gchar local_buf[SMALL]; gint idx0 = 0, idx1 = 1; if(swap) { idx0 = 1; idx1 = 0; } if(fix->attendance < 0) strcpy(buf, "-- : --"); else { sprintf(local_buf, "%d - %d", math_sum_int_array(fix->result[idx0], 3), math_sum_int_array(fix->result[idx1], 3)); if(fix->result[idx0][2] + fix->result[idx1][2] != 0) /* Game was decided in penalty shoot-out. */ strcat(local_buf, _(" p.")); else if(fix->result[idx0][1] + fix->result[idx1][1] != 0) /* Game was decided in extra time. */ strcat(local_buf, _(" e.t.")); if(fix->second_leg) sprintf(buf, "%s (%d - %d)", local_buf, fixture_get_first_leg(fix, FALSE)->result[idx1][0], fixture_get_first_leg(fix, FALSE)->result[idx0][0]); else strcpy(buf, local_buf); } } /** Return the number of fixtures in a given week round. @param week_number The week number the fixtures should have. @param week_round_number The week round number the fixtures should have. @return The number of matches. */ gint fixture_get_number_of_matches(gint week_number, gint week_round_number) { #ifdef DEBUG printf("fixture_get_number_of_matches\n"); #endif gint i, j; gint sum = 0; for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week_number && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number == week_round_number) sum++; for(i=0;ilen;i++) if(week_round_number == 1) { for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number == week_number && g_array_index(lig(i).fixtures, Fixture, j).week_round_number == week_round_number) sum++; } return sum; } /** Return a fixture from the following match-day. @param clid The cup/league id. @param week_number The current week. @param week_round_number The current round. @return A fixture pointer. */ Fixture* fixture_get_next(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("fixture_get_next\n"); #endif gint i; GArray *fixtures = league_cup_get_fixtures(clid); for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).week_number > week_number || (g_array_index(fixtures, Fixture, i).week_number == week_number && g_array_index(fixtures, Fixture, i).week_round_number > week_round_number)) return &g_array_index(fixtures, Fixture, i); return &g_array_index(fixtures, Fixture, 0); } /** Return a fixture from the previous match-day. @param clid The cup/league id. @param week_number The current week. @param week_round_number The current round. @return A fixture pointer. */ Fixture* fixture_get_previous(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("fixture_get_previous\n"); #endif gint i; GArray *fixtures = league_cup_get_fixtures(clid); for(i=fixtures->len - 1;i>=0;i--) if(g_array_index(fixtures, Fixture, i).week_number < week_number || (g_array_index(fixtures, Fixture, i).week_number == week_number && g_array_index(fixtures, Fixture, i).week_round_number < week_round_number)) return &g_array_index(fixtures, Fixture, i); return &g_array_index(fixtures, Fixture, fixtures->len - 1); } /** Find a certain fixture for displaying in the right treeview. @param type Type telling us how to look for the fixture (@see #ShowFixType) @param clid The id of the current league/cup we're showing. @param week_number The week we're showing. @param week_round_number The round we're showing. @param tm A team pointer (for the case SHOW_TEAM). @return A fixture pointer or NULL. */ Fixture* fixture_get(gint type, gint clid, gint week_number, gint week_round_number, const Team *tm) { #ifdef DEBUG printf("fixture_get\n"); #endif Fixture *fix = NULL; gint new_clid = -1; if(type == SHOW_TEAM) { fix = team_get_fixture(tm, TRUE); if(fix == NULL) fix = team_get_fixture(tm, FALSE); } else if(type == SHOW_CURRENT) { fix = league_cup_get_previous_fixture(clid, week_number, week_round_number); if(fix == NULL) fix = league_cup_get_next_fixture(clid, week_number, week_round_number); } else if(type == SHOW_NEXT) fix = fixture_get_next(clid, week_number, week_round_number); else if(type == SHOW_PREVIOUS) fix = fixture_get_previous(clid, week_number, week_round_number); else if(type == SHOW_NEXT_LEAGUE || type == SHOW_PREVIOUS_LEAGUE) { new_clid = (type == SHOW_NEXT_LEAGUE) ? league_cup_get_next_clid(clid, FALSE): league_cup_get_previous_clid(clid, FALSE); fix = fixture_get(SHOW_CURRENT, new_clid, week, week_round, NULL); } if(fix == NULL) debug_print_message("fixture_get: no fixture found for type %d clid %d (%s) week %d round %d\n", type, clid, league_cup_get_name_string(clid), week_number, week_round_number); return fix; } /** Compare two fixtures. */ gint fixture_compare_func(gconstpointer a, gconstpointer b, gpointer data) { #ifdef DEBUG printf("fixture_compare_func\n"); #endif gint local_data = GPOINTER_TO_INT(data); const Fixture *fix1 = (local_data >= 100) ? (const Fixture*)a : *(const Fixture**)a, *fix2 = (local_data >= 100) ? (const Fixture*)b : *(const Fixture**)b; gint type = local_data % 100; gint return_value = 0; switch(type) { default: debug_print_message("fixture_compare_func: unknown type %d.\n", type); break; case FIXTURE_COMPARE_DATE: if(query_fixture_is_earlier(fix1, fix2)) return_value = -1; else return_value = 1; break; } return return_value; } /** Return an array with the last fixtures of the team. */ GPtrArray* fixture_get_latest(const Team *tm, gboolean with_cups) { #ifdef DEBUG printf("fixture_get_latest\n"); #endif gint i, j; GPtrArray *latest = g_ptr_array_new(); for(i=0;ilen;i++) if(lig(i).id == tm->clid) { for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).attendance == -1) break; else if(g_array_index(lig(i).fixtures, Fixture, j).teams[0] == tm || g_array_index(lig(i).fixtures, Fixture, j).teams[1] == tm) g_ptr_array_add(latest, &g_array_index(lig(i).fixtures, Fixture, j)); } if(with_cups) { for(i=0;ilen;i++) { for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).attendance == -1) break; else if(g_array_index(acp(i)->fixtures, Fixture, j).teams[0] == tm || g_array_index(acp(i)->fixtures, Fixture, j).teams[1] == tm) g_ptr_array_add(latest, &g_array_index(acp(i)->fixtures, Fixture, j)); } } g_ptr_array_sort_with_data(latest, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE)); return latest; } /** Return an array with the next fixtures of the team. */ GPtrArray* fixture_get_coming(const Team *tm) { #ifdef DEBUG printf("fixture_get_coming\n"); #endif gint i, j; GPtrArray *coming = g_ptr_array_new(); for(i=0;ilen;i++) if(lig(i).id == tm->clid) { for(j=lig(i).fixtures->len - 1; j >= 0; j--) if(g_array_index(lig(i).fixtures, Fixture, j).attendance != -1) break; else if(g_array_index(lig(i).fixtures, Fixture, j).teams[0] == tm || g_array_index(lig(i).fixtures, Fixture, j).teams[1] == tm) g_ptr_array_add(coming, &g_array_index(lig(i).fixtures, Fixture, j)); } for(i=0;ilen;i++) { for(j=acp(i)->fixtures->len - 1; j >= 0; j--) if(g_array_index(acp(i)->fixtures, Fixture, j).attendance != -1) break; else if(g_array_index(acp(i)->fixtures, Fixture, j).teams[0] == tm || g_array_index(acp(i)->fixtures, Fixture, j).teams[1] == tm) g_ptr_array_add(coming, &g_array_index(acp(i)->fixtures, Fixture, j)); } g_ptr_array_sort_with_data(coming, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE)); return coming; } /** Return a pointer array with all the matches featuring the two teams. */ GPtrArray* fixture_get_matches(const Team *tm1, const Team *tm2) { #ifdef DEBUG printf("fixture_get_matches\n"); #endif gint i, j; GPtrArray *matches = g_ptr_array_new(); for(i=0;ilen;i++) if(lig(i).id == tm1->clid) for(j=0;jlen;j++) { if(g_array_index(lig(i).fixtures, Fixture, j).attendance == -1) break; else if((g_array_index(lig(i).fixtures, Fixture, j).teams[0] == tm1 && g_array_index(lig(i).fixtures, Fixture, j).teams[1] == tm2) || (g_array_index(lig(i).fixtures, Fixture, j).teams[0] == tm2 && g_array_index(lig(i).fixtures, Fixture, j).teams[1] == tm1)) g_ptr_array_add(matches, &g_array_index(lig(i).fixtures, Fixture, j)); } for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) { if(g_array_index(acp(i)->fixtures, Fixture, j).attendance == -1) break; else if((g_array_index(acp(i)->fixtures, Fixture, j).teams[0] == tm1 && g_array_index(acp(i)->fixtures, Fixture, j).teams[1] == tm2) || (g_array_index(acp(i)->fixtures, Fixture, j).teams[0] == tm2 && g_array_index(acp(i)->fixtures, Fixture, j).teams[1] == tm1)) g_ptr_array_add(matches, &g_array_index(acp(i)->fixtures, Fixture, j)); } return matches; } /** Return the fixture going with the id. */ Fixture* fixture_from_id(gint id, gboolean abort_program) { #ifdef DEBUG printf("fixture_from_id\n"); #endif gint i, j; for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).id == id) return &g_array_index(lig(i).fixtures, Fixture, j); for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(cp(i).fixtures, Fixture, j).id == id) return &g_array_index(cp(i).fixtures, Fixture, j); if(abort_program) main_exit_program(EXIT_POINTER_NOT_FOUND, "fixture_from_id: fixture with id %d found \n", id); return NULL; } /** Return the last week round number of the specified week. */ gint fixture_get_last_week_round(gint week_number) { #ifdef DEBUG printf("fixture_get_last_week_round\n"); #endif gint i, j; gint week_round_number = 1; for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week_number) week_round_number = MAX(week_round_number, g_array_index(acp(i)->fixtures, Fixture, j).week_round_number); return week_round_number; } /** Get the next week and round there are fixtures from the specified ones onwards and write it into the variables. */ void fixture_get_next_week(gint *week_number, gint *week_round_number) { #ifdef DEBUG printf("fixture_get_next_week\n"); #endif gint i; gint local_week = *week_number, local_round = *week_round_number; Fixture *fix = NULL; *week_number = *week_round_number = 1000; for(i=0;ilen;i++) if(query_league_active(&lig(i))) { fix = fixture_get_next(lig(i).id, local_week, local_round); if((fix->week_number > local_week || (fix->week_number == local_week && fix->week_round_number > local_round)) && (fix->week_number < *week_number || (fix->week_number == *week_number && fix->week_round_number < *week_round_number)) && (fix->clid == current_user.tm->clid || opt_user_int("int_opt_user_show_all_leagues"))) { *week_number = fix->week_number; *week_round_number = fix->week_round_number; } } for(i=0;ilen;i++) { fix = fixture_get_next(acp(i)->id, local_week, local_round); if((fix->week_number > local_week || (fix->week_number == local_week && fix->week_round_number > local_round)) && (fix->week_number < *week_number || (fix->week_number == *week_number && fix->week_round_number < *week_round_number))) { *week_number = fix->week_number; *week_round_number = fix->week_round_number; } } if(*week_number == 1000) *week_number = *week_round_number = 1; } /** Get the previous week and round there are fixtures and write it into the variables. */ void fixture_get_previous_week(gint *week_number, gint *week_round_number) { #ifdef DEBUG printf("fixture_get_previous_week\n"); #endif gint i; gint local_week = *week_number, local_round = *week_round_number; Fixture *fix = NULL; *week_number = *week_round_number = -1; for(i=0;ilen;i++) if(query_league_active(&lig(i))) { fix = fixture_get_previous(lig(i).id, local_week, local_round); if((fix->week_number < local_week || (fix->week_number == local_week && fix->week_round_number < local_round)) && (fix->week_number > *week_number || (fix->week_number == *week_number && fix->week_round_number > *week_round_number)) && (fix->clid == current_user.tm->clid || opt_user_int("int_opt_user_show_all_leagues"))) { *week_number = fix->week_number; *week_round_number = 1; } } for(i=0;ilen;i++) { fix = fixture_get_previous(acp(i)->id, local_week, local_round); if((fix->week_number < local_week || (fix->week_number == local_week && fix->week_round_number < local_round)) && (fix->week_number > *week_number || (fix->week_number == *week_number && fix->week_round_number > *week_round_number))) { *week_number = fix->week_number; *week_round_number = fix->week_round_number; } } if(*week_number == -1) { *week_number = local_week; *week_round_number = local_round; } } /** Return an array with the user's fixtures in this season. */ GPtrArray* fixture_get_season_results(void) { #ifdef DEBUG printf("fixture_get_season_results\n"); #endif gint i, j; GPtrArray *results = g_ptr_array_new(); GArray *fixtures = NULL; if(query_league_active(league_from_clid(current_user.tm->clid))) { fixtures = league_from_clid(current_user.tm->clid)->fixtures; for(i=0;ilen;i++) if(query_fixture_team_involved((&g_array_index(fixtures, Fixture, i)), current_user.tm->id)) g_ptr_array_add(results, &g_array_index(fixtures, Fixture, i)); } for(i=0;ilen;i++) if(query_team_is_in_cup(current_user.tm, acp(i))) { fixtures = acp(i)->fixtures; for(j=0;jlen;j++) if(query_fixture_team_involved((&g_array_index(fixtures, Fixture, j)), current_user.tm->id)) g_ptr_array_add(results, &g_array_index(fixtures, Fixture, j)); } g_ptr_array_sort_with_data(results, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE)); return results; } /** Calculate how many goals the team has to score to win the match (also taking into account second leg stuff). */ gint fixture_get_goals_to_win(const Fixture *fix, const Team *tm) { #ifdef DEBUG printf("fixture_get_goals_to_win\n"); #endif const Fixture *first_leg = NULL; gint idx = (tm == fix->teams[1]), return_value = -100; gint res[2] = {math_sum_int_array(fix->result[0], 2), math_sum_int_array(fix->result[1], 2)}; gint tmp; if(!query_fixture_team_involved(fix, tm->id)) { debug_print_message("fixture_get_goals_to_win: team %s doesn't participate in fixture given (%s)\n", tm->name, league_cup_get_name_string(fix->clid)); return -100; } if(!fix->second_leg) return res[!idx] - res[idx] + 1; first_leg = fixture_get_first_leg(fix, FALSE); if(res[0] + first_leg->result[1][0] == res[1] + first_leg->result[0][0]) { if(idx == 0) return_value = (res[1] >= first_leg->result[1][0]) ? 1 : 0; else return_value = (res[1] > first_leg->result[1][0]) ? 0 : 1; } else if(res[0] + first_leg->result[1][0] > res[1] + first_leg->result[0][0]) { tmp = res[1]; while(res[0] + first_leg->result[1][0] > res[1] + first_leg->result[0][0]) res[1]++; if(idx == 0) return_value = (res[1] >= first_leg->result[1][0]) ? tmp - res[1] + 1 : tmp - res[1]; else return_value = (res[1] > first_leg->result[1][0]) ? res[1] - tmp : res[1] - tmp + 1; } else { tmp = res[0]; while(res[0] + first_leg->result[1][0] < res[1] + first_leg->result[0][0]) res[0]++; if(idx == 0) return_value = (res[1] >= first_leg->result[1][0]) ? res[0] - tmp + 1 : res[0] - tmp; else return_value = (res[1] > first_leg->result[1][0]) ? tmp - res[0] : tmp - res[0] + 1; } return return_value; } /** Count how many matchdays there are in a fixture array. */ gint fixture_count_matchdays(const GArray *fixtures) { #ifdef DEBUG printf("fixture_count_matchdays\n"); #endif gint i; gint count = 0; for(i=0;ilen - 1;i++) { if((g_array_index(fixtures, Fixture, i).week_number != g_array_index(fixtures, Fixture, i + 1).week_number) || (g_array_index(fixtures, Fixture, i).week_round_number != g_array_index(fixtures, Fixture, i + 1).week_round_number)) count++; } return count + (fixtures->len != 0); } /** Return the last week there are fixtures written for. */ gint fixture_get_last_scheduled_week(void) { #ifdef DEBUG printf("fixture_get_last_scheduled_week\n"); #endif gint i; gint week_nr = 0; for(i=0;ilen;i++) week_nr = MAX(week_nr, g_array_index(acp(i)->fixtures, Fixture, acp(i)->fixtures->len - 1).week_number); return week_nr; } /** Remove a number of round robin from a fixture array. @fixtures: The fixture array. @clid1: The league id for one team. @clid2: The league id for the second team. @to_remove: How many matches to remove per pairing. */ void fixture_remove_rrs(GArray *fixtures, gint clid1, gint clid2, gint to_remove) { #ifdef DEBUG printf("fixture_remove_rrs\n"); #endif gint i, j, k; gint removed; gint start; League *league1, *league2; league1 = league_from_clid(clid1); league2 = league_from_clid(clid2); for(i = 0; i < league1->teams->len; i++) { start = (clid1 == clid2) ? i + 1 : 0; for(j = start; j < league2->teams->len; j++) { removed = 0; for(k = fixtures->len - 1; k >= 0; k--) if((g_array_index(fixtures, Fixture, k).teams[0]->id == g_array_index(league1->teams, Team, i).id && g_array_index(fixtures, Fixture, k).teams[1]->id == g_array_index(league2->teams, Team, j).id) || (g_array_index(fixtures, Fixture, k).teams[1]->id == g_array_index(league1->teams, Team, i).id && g_array_index(fixtures, Fixture, k).teams[0]->id == g_array_index(league2->teams, Team, j).id)) { g_array_remove_index(fixtures, k); removed++; if(removed == to_remove) break; } } } } /** Move matches in the fixture array to earlier dates if possible. */ void fixtures_condense(GArray *fixtures) { #ifdef DEBUG printf("fixtures_condense\n"); #endif gint i, j, k, l; GArray *matchday_teams[1000][5]; Fixture *fix; gboolean fix_moved; fix_moved = TRUE; while(fix_moved) { fix_moved = FALSE; for(i = 0; i < 1000; i++) for(j = 0; j < 5; j++) matchday_teams[i][j] = NULL; for(i = 0; i < ligs->len; i++) for(j = 0; j < lig(i).fixtures->len; j++) { fix = &g_array_index(lig(i).fixtures, Fixture, j); if(matchday_teams[fix->week_number - 1][fix->week_round_number - 1] == NULL) matchday_teams[fix->week_number - 1][fix->week_round_number - 1] = g_array_new(FALSE, FALSE, sizeof(gint)); g_array_append_val(matchday_teams[fix->week_number - 1][fix->week_round_number - 1], fix->teams[0]->id); g_array_append_val(matchday_teams[fix->week_number - 1][fix->week_round_number - 1], fix->teams[1]->id); } for(i = fixtures->len - 1; i >= 0; i--) { fix = &g_array_index(fixtures, Fixture, i); for(j = 0; j <= fix->week_number - 2; j++) { for(k = 0; k < 5; k++) { if(matchday_teams[j][k] != NULL) { for(l = 0; l < matchday_teams[j][k]->len; l++) if(g_array_index(matchday_teams[j][k], gint, l) == fix->teams[0]->id || g_array_index(matchday_teams[j][k], gint, l) == fix->teams[1]->id) break; if(l == matchday_teams[j][k]->len) { fix_moved = TRUE; fix->week_number = j + 1; fix->week_round_number = k + 1; g_array_append_val(matchday_teams[j][k], fix->teams[0]->id); g_array_append_val(matchday_teams[j][k], fix->teams[1]->id); } } } } } for(i = 0; i < 1000; i++) for(j = 0; j < 5; j++) if(matchday_teams[i][j] != NULL) g_array_free(matchday_teams[i][j], TRUE); g_array_sort_with_data(fixtures, fixture_compare_func, GINT_TO_POINTER(FIXTURE_COMPARE_DATE + 100)); } } /** Return the name of a cup round, e.g. 'round robin' or 'final' or so. @param fix A fixture belonging to the round. @param buf The buffer we write the name into*/ void fixture_get_cup_round_name(const Fixture *fix, gchar *buf) { #ifdef DEBUG printf("cup_round_name\n"); #endif const Cup *cup = cup_from_clid(fix->clid); const CupRound *cup_round = &g_array_index(cup->rounds, CupRound, fix->round); cup_get_round_name(cup, fix->round, buf); if(cup_round->home_away && cup_round->round_robin_number_of_groups == 0) { if(fix->second_leg) strcat(buf, _(" -- Second leg")); else strcat(buf, _(" -- First leg")); } else if(fix->replay_number > 0) strcat(buf, _(" -- Replay matches")); } /* Reset the team pointers from the team ids in the fixtures. */ void fixture_refresh_team_pointers(GArray *fixtures) { gint i, j; for(i = 0; i < fixtures->len; i++) { for(j = 0; j < 2; j++) g_array_index(fixtures, Fixture, i).teams[j] = team_of_id(g_array_index(fixtures, Fixture, i).team_ids[j]); } } bygfoot-2.3.2/src/main.c0000644000175000017500000003275411225071373014036 0ustar eliaselias/* main.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* * Initial main.c file generated by Glade. Edit as required. * Glade will not overwrite this file. */ #include #include #include #ifdef G_OS_WIN32 #include #include #endif #include "bet_struct.h" #include "debug.h" #include "file.h" #include "free.h" #include "job_struct.h" #include "language.h" #include "lg_commentary.h" #include "live_game.h" #include "load_save.h" #include "main.h" #include "maths.h" #include "misc.h" #include "misc_callbacks.h" #include "name_struct.h" #include "news_struct.h" #include "option.h" #include "start_end.h" #include "stat_struct.h" #include "strategy_struct.h" #include "transfer_struct.h" #include "variables.h" #include "window.h" #include "xml_strategy.h" #define DEBUG_LEVEL_DEFAULT 0 #if defined(MAC_BUILD) || defined(G_OS_WIN32) #define DEBUG_OUTPUT_DEFAULT 2 #else #define DEBUG_OUTPUT_DEFAULT 0 #endif /** Whether the last save gets loaded at startup (cl switch -l). */ gboolean load_last_save; /** Parse the command line arguments given by the user. */ void main_parse_cl_arguments(gint *argc, gchar ***argv) { #ifdef DEBUG printf("main_parse_cl_arguments\n"); #endif gboolean testcom = FALSE, calodds = FALSE; gchar *support_dir = NULL, *lang = NULL, *testcom_file = NULL, *token_file = NULL, *event_name = NULL, *country_sid = NULL; gint number_of_passes = 1, num_matches = 100, skilldiffmax = 20; GError *error = NULL; GOptionContext *context = NULL; GOptionEntry entries[] = {{ "last-save", 'l', 0, G_OPTION_ARG_NONE, &load_last_save, _("Load last savegame"), NULL }, { "support-dir", 's', 0, G_OPTION_ARG_STRING, &support_dir, _("Specify additional support directory (takes priority over default ones)"), "DIR" }, { "country", 'c', 0, G_OPTION_ARG_STRING, &country_sid, _("String id of the country to load"), "SID" }, { "lang", 'L', 0, G_OPTION_ARG_STRING, &lang, _("Language to use (a code like 'de')"), "CODE" }, { "testcom", 't', 0, G_OPTION_ARG_NONE, &testcom, _("Test an XML commentary file"), NULL }, { "commentary-file", 'C', 0, G_OPTION_ARG_STRING, &testcom_file, _("Commentary file name (may be in a support dir)"), "FILE" }, { "token-file", 'T', 0, G_OPTION_ARG_STRING, &token_file, /* Live game tokens are strings like _AT_ in live game commentary files which will be filled in by the program during runtime; e.g. _AT_ becomes the attendace for the match. */ _("File containing live game tokens (may be in a support dir)"), "FILE" }, { "event-name", 'e', 0, G_OPTION_ARG_STRING, &event_name, _("Commentary event to test; leave out to test all commentaries"), "EVENTNAME" }, { "num-passes", 'n', 0, G_OPTION_ARG_INT, &number_of_passes, _("How many commentaries to generate per event"), "N" }, { "calodds", 'O', 0, G_OPTION_ARG_NONE, &calodds, "[developer] Calibrate the betting odds by simulating a lot of matches", NULL }, { "num-matches", 'm', 0, G_OPTION_ARG_INT, &num_matches, "[developer] How many matches to simulate per skill diff step", "N" }, { "num-skilldiff", 'S', 0, G_OPTION_ARG_INT, &skilldiffmax, "[developer] How many skill diff steps to take", "N" }, {NULL}}; if(argc == NULL || argv == NULL) return; context = g_option_context_new(_("- a simple and addictive GTK2 football manager")); g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE); g_option_context_add_group(context, gtk_get_option_group (TRUE)); g_option_context_parse(context, argc, argv, &error); g_option_context_free(context); if(error != NULL) { misc_print_error(&error, FALSE); return; } if(calodds) { option_add(&options, "int_opt_calodds", 1, NULL); option_add(&options, "int_opt_calodds_skilldiffmax", skilldiffmax, NULL); option_add(&options, "int_opt_calodds_matches", num_matches, NULL); } if(testcom) { lg_commentary_test(testcom_file, token_file, event_name, number_of_passes); main_exit_program(EXIT_OK, NULL); } if(support_dir != NULL) { gchar *fullpath = (support_dir[strlen(support_dir)] == G_DIR_SEPARATOR) ? g_path_get_dirname(support_dir) : g_strdup_printf("%s%s", support_dir, G_DIR_SEPARATOR_S); file_add_support_directory_recursive(fullpath); g_free(fullpath); g_free(support_dir); } if(lang != NULL) { language_set(language_get_code_index(lang) + 1); file_load_hints_file(); g_free(lang); } if(country_sid != NULL) { country.sid = g_strdup(country_sid); g_free(country_sid); } } /** Parse the command line arguments given by the user. */ void main_parse_debug_cl_arguments(gint *argc, gchar ***argv) { #ifdef DEBUG printf("main_parse_debug_cl_arguments\n"); #endif gint deb_level = -1, deb_output = -1; gchar *debug_text = NULL; GError *error = NULL; GOptionContext *context = NULL; GOptionEntry entries[] = {{ "debug-level", 'd', 0, G_OPTION_ARG_INT, &deb_level, "[developer] Debug level to use", "N" }, { "debug-output", 'o', 0, G_OPTION_ARG_INT, &deb_output, "[developer] Debug output to use", "0, 1 or 2" }, { "deb", 'D', 0, G_OPTION_ARG_STRING, &debug_text, "[developer] A debug command like 'deb100 to set the debug level'; see the debug window and debug.c", "STRING" }, {NULL}}; debug_level = DEBUG_LEVEL_DEFAULT; debug_output = DEBUG_OUTPUT_DEFAULT; if(argc == NULL || argv == NULL) return; context = g_option_context_new(_("- a simple and addictive GTK2 football manager")); g_option_context_set_ignore_unknown_options(context, TRUE); g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE); g_option_context_add_group(context, gtk_get_option_group (TRUE)); g_option_context_parse(context, argc, argv, &error); g_option_context_free(context); if(error != NULL) { misc_print_error(&error, FALSE); return; } if(deb_level != -1) { debug_level = deb_level; window_create(WINDOW_DEBUG); } if(deb_output != -1) debug_output = deb_output; if(debug_text != NULL) statp = debug_text; } /** Initialize some global variables. Most of them get nullified. */ void main_init_variables(void) { #ifdef DEBUG printf("main_init_variables\n"); #endif gint i; ligs = g_array_new(FALSE, FALSE, sizeof(League)); cps = g_array_new(FALSE, FALSE, sizeof(Cup));; acps = g_ptr_array_new(); country.name = NULL; country.symbol = NULL; country.sid = NULL; season = week = week_round = 1; for(i=0;i 1 && !load_game_from_command_line(argv[1]))))) { if(country.sid == NULL) { stat0 = STATUS_SPLASH; window_show_splash(); if(os_is_unix) file_check_home_dir(); } else { window_show_startup(); stat0 = STATUS_TEAM_SELECTION; } } gtk_main (); main_exit_program(EXIT_OK, NULL); return 0; } /** Exit the program with the given exit code and message. Try to destroy all widgets and free all memory first. @param exit_code The number we return to the shell. @param exit_message The message we print. @return The exit code of the program. */ void main_exit_program(gint exit_code, gchar *format, ...) { #ifdef DEBUG printf("main_exit_program\n"); #endif gchar text[SMALL]; va_list args; if(format != NULL) { va_start (args, format); g_vsprintf(text, format, args); va_end (args); debug_print_message(text, NULL); } if(gtk_main_level() > 0) gtk_main_quit(); free_memory(); if(!os_is_unix && exit_code != EXIT_OK) { debug_print_message("Press RETURN. Program will exit."); getchar(); } exit(exit_code); } bygfoot-2.3.2/src/training_callbacks.c0000755000175000017500000002170111225071373016715 0ustar eliaselias/* bet_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include "bygfoot.h" #include "finance.h" #include "game_gui.h" #include "option.h" #include "maths.h" #include "misc.h" #include "support.h" #include "training.h" #include "training_callbacks.h" #include "training_interface.h" #include "training_struct.h" #include "treeview.h" #include "user.h" #include "variables.h" #include "window.h" void on_b_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_b_cancel_clicked\n"); #endif window_destroy(&window.training_camp); } void on_b_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_b_ok_clicked\n"); #endif GtkWidget *rb_camp1; GtkWidget *rb_camp2; GtkHScale *hs_recreation; GtkHScale *hs_training; gdouble value_training; gdouble value_recreation; gint number_camp; gboolean save; Team *current_team = current_user.tm; save = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(window.training_camp, "checkbutton_save"))); //Get active radio rb_camp1 = GTK_WIDGET(lookup_widget(window.training_camp, "rb_camp1")); rb_camp2 = GTK_WIDGET(lookup_widget(window.training_camp, "rb_camp2")); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_camp1))) number_camp = TRAINING_CAMP_HOTEL_GOOD; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_camp2))) number_camp = TRAINING_CAMP_HOTEL_FIRST; else number_camp = TRAINING_CAMP_HOTEL_PREMIUM; //Get values for training and recreation hs_recreation = GTK_HSCALE(lookup_widget(window.training_camp, "hs_recreation")); hs_training = GTK_HSCALE(lookup_widget(window.training_camp, "hs_training")); value_training = gtk_range_get_value(GTK_RANGE(hs_training)); value_recreation = gtk_range_get_value(GTK_RANGE(hs_recreation)); //Calculate training camp calculateTrainingCamp(current_team, value_training, value_recreation, number_camp); //Set new av-values -> GUI game_gui_write_av_skills(current_team); //Set new player values in GUI treeview_show_user_player_list(); //Calculate costs of the training camp calculateCostsTrainingCamp(number_camp); //Set new av-values -> GUI game_gui_write_money(); if(save) { opt_user_set_int("int_opt_user_training_camp_hotel", number_camp); opt_user_set_int("int_opt_user_training_camp_recreation", value_recreation); } window_destroy(&window.training_camp); current_user.counters[COUNT_USER_TRAININGS_WEEK]++; current_user.counters[COUNT_USER_TRAININGS_LEFT_SEASON]--; game_gui_print_message(_("%d training camps left this season."), current_user.counters[COUNT_USER_TRAININGS_LEFT_SEASON]); } void on_rb_camp3_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_rb_camp3_clicked\n"); #endif GtkEntry *tfCosts; gchar buf[SMALL]; misc_print_grouped_int( math_round_integer(finance_wage_unit(current_user.tm) * const_float("float_training_camp_factor3"), -2), buf); tfCosts = GTK_ENTRY(lookup_widget(window.training_camp, "tf_costs")); gtk_entry_set_text (tfCosts, buf); } void on_rb_camp2_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_rb_camp2_clicked\n"); #endif GtkEntry *tfCosts; gchar buf[SMALL]; misc_print_grouped_int( math_round_integer(finance_wage_unit(current_user.tm) * const_float("float_training_camp_factor2"), -2), buf); tfCosts = GTK_ENTRY(lookup_widget(window.training_camp, "tf_costs")); gtk_entry_set_text (tfCosts, buf); } void on_rb_camp1_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_rb_camp1_clicked\n"); #endif GtkEntry *tfCosts; gchar buf[SMALL]; misc_print_grouped_int( math_round_integer(finance_wage_unit(current_user.tm) * const_float("float_training_camp_factor1"), -2), buf); tfCosts = GTK_ENTRY(lookup_widget(window.training_camp, "tf_costs")); gtk_entry_set_text (tfCosts, buf); } void on_b_dec_recreation_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_b_dec_recreation_clicked\n"); #endif GtkHScale *hs_camp_points; GtkHScale *hs_recreation; gdouble value_camp_points; gdouble value_recreation; hs_camp_points = GTK_HSCALE(lookup_widget(window.training_camp, "hs_camp_points")); hs_recreation = GTK_HSCALE(lookup_widget(window.training_camp, "hs_recreation")); value_camp_points = gtk_range_get_value(GTK_RANGE(hs_camp_points)); value_recreation = gtk_range_get_value(GTK_RANGE(hs_recreation)); if (value_recreation > CAMP_SCALE_MIN) { value_recreation --; value_camp_points ++; gtk_range_set_value(GTK_RANGE(hs_recreation), value_recreation); gtk_range_set_value(GTK_RANGE(hs_camp_points), value_camp_points); } } void on_b_inc_recreation_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_b_inc_recreation_clicked\n"); #endif GtkHScale *hs_camp_points; GtkHScale *hs_recreation; gdouble value_camp_points; gdouble value_recreation; hs_camp_points = GTK_HSCALE(lookup_widget(window.training_camp, "hs_camp_points")); hs_recreation = GTK_HSCALE(lookup_widget(window.training_camp, "hs_recreation")); value_camp_points = gtk_range_get_value(GTK_RANGE(hs_camp_points)); value_recreation = gtk_range_get_value(GTK_RANGE(hs_recreation)); if (value_camp_points > CAMP_SCALE_MIN) { value_recreation ++; value_camp_points --; gtk_range_set_value(GTK_RANGE(hs_recreation), value_recreation); gtk_range_set_value(GTK_RANGE(hs_camp_points), value_camp_points); } } void on_b_dec_training_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_b_dec_training_clicked\n"); #endif GtkHScale *hs_camp_points; GtkHScale *hs_training; gdouble value_camp_points; gdouble value_training; hs_camp_points = GTK_HSCALE(lookup_widget(window.training_camp, "hs_camp_points")); hs_training = GTK_HSCALE(lookup_widget(window.training_camp, "hs_training")); value_camp_points = gtk_range_get_value(GTK_RANGE(hs_camp_points)); value_training = gtk_range_get_value(GTK_RANGE(hs_training)); if (value_training > CAMP_SCALE_MIN) { value_training --; value_camp_points ++; gtk_range_set_value(GTK_RANGE(hs_training), value_training); gtk_range_set_value(GTK_RANGE(hs_camp_points), value_camp_points); } } void on_b_inc_training_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_b_inc_training_clicked\n"); #endif GtkHScale *hs_camp_points; GtkHScale *hs_training; gdouble value_camp_points; gdouble value_training; hs_camp_points = GTK_HSCALE(lookup_widget(window.training_camp, "hs_camp_points")); hs_training = GTK_HSCALE(lookup_widget(window.training_camp, "hs_training")); value_camp_points = gtk_range_get_value(GTK_RANGE(hs_camp_points)); value_training = gtk_range_get_value(GTK_RANGE(hs_training)); if (value_camp_points > CAMP_SCALE_MIN) { value_training ++; value_camp_points --; gtk_range_set_value(GTK_RANGE(hs_training), value_training); gtk_range_set_value(GTK_RANGE(hs_camp_points), value_camp_points); } } gboolean on_window_training_camp_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_training_camp_delete_event\n"); #endif on_b_cancel_clicked(NULL, NULL); return TRUE; } bygfoot-2.3.2/src/misc.h0000644000175000017500000000664211225071373014047 0ustar eliaselias/* misc.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MISC_H #define MISC_H #include "bygfoot.h" #define misc_int_to_char(number) g_strdup_printf("%d", number) #define query_misc_string_contains(haystack, needle) (g_strstr_len(haystack, strlen(haystack), needle) != NULL) void misc_print_error(GError **error, gboolean abort_program); void misc_swap_int(gint *first, gint *second); void misc_swap_gpointer(gpointer *first, gpointer *second); GPtrArray* misc_separate_strings(gchar *string); GPtrArray* misc_randomise_g_pointer_array(GPtrArray *array); void misc_print_grouped_int(gint number, gchar *buf); gboolean query_integer_is_in_array(gint item, gint *array, gint max); gint misc_int_compare(gint first, gint second); gint misc_float_compare(gfloat first, gfloat second); const gchar* misc_strip_definitions_root(gchar *directory); gboolean query_misc_string_starts_with(const gchar *string, GList *list); gboolean query_misc_string_in_array(const gchar *string, const GPtrArray *array); gboolean query_misc_integer_is_in_g_array(gint item, GArray *array); void misc_string_replace_token(gchar *string, const gchar *token, const gchar *replacement); gfloat misc_get_age_from_birth(gint birth_year, gint birth_month); const gchar* misc_skip_spaces(const gchar* s); const gchar* misc_parse_value(const gchar *s, gint *value); const gchar* misc_parse_expression(const gchar *s, gint *result); const gchar* misc_parse_comparison(const gchar *s, gint *result); const gchar* misc_parse_and(const gchar *s, gint *result); const gchar* misc_parse(const gchar *s, gint *result); GPtrArray* misc_copy_ptr_array(const GPtrArray *array); void misc_string_assign(gchar **string, const gchar *contents); void misc_string_choose_random(gchar *string); void misc_string_replace_expressions(gchar *string); void misc_string_replace_tokens(gchar *string, GPtrArray **token_rep); gboolean misc_parse_condition(const gchar *condition, GPtrArray **token_rep); void misc_token_add(GPtrArray **token_rep, gint token_idx, gchar *replacement); void misc_token_remove(GPtrArray **token_rep, gint idx); void misc_string_get_parenthesised(const gchar *string, gchar *dest); void misc_string_replace_parenthesised(gchar *string, const gchar *paren, const gchar *replacement); gboolean misc_string_replace_all_tokens(GPtrArray **token_rep, const gchar *text_tokens, gchar *dest); void misc_token_add_bool(GPtrArray **token_rep, gint token_idx, gboolean value); gint misc_alphabetic_compare(gconstpointer a, gconstpointer b); #endif bygfoot-2.3.2/src/live_game.c0000644000175000017500000015227711225071373015045 0ustar eliaselias/* live_game.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "fixture.h" #include "free.h" #include "game.h" #include "game_gui.h" #include "league.h" #include "lg_commentary.h" #include "live_game.h" #include "main.h" #include "maths.h" #include "misc.h" #include "misc_callback_func.h" #include "option.h" #include "player.h" #include "strategy.h" #include "support.h" #include "team.h" #include "treeview.h" #include "user.h" #include "variables.h" #include "window.h" /** The live game we calculate. */ #define match ((LiveGame*)statp) /** Whether the events are actually shown or not. */ gboolean show; /** Convenience abbrevs. */ #define unis match->units #define uni(i) g_array_index(unis, LiveGameUnit, i) #define last_unit uni(unis->len - 1) #define tms match->fix->teams #define tm0 match->fix->teams[0] #define tm1 match->fix->teams[1] /** Calculate the result of a fixture using the live game variable. @param fix The fixture we calculate. @param live_game The live game used for calculation. */ void live_game_calculate_fixture(Fixture *fix, LiveGame *live_game) { #ifdef DEBUG printf("live_game_calculate_fixture\n"); #endif statp = live_game; if(stat0 != STATUS_LIVE_GAME_PAUSE && stat0 != STATUS_LIVE_GAME_CHANGE) live_game_initialize(fix, live_game); else stat0 = STATUS_SHOW_LIVE_GAME; game_get_values(match->fix, match->team_values, match->home_advantage); if((debug > 80 && stat2 != -1) || debug > 130) g_print("\n\nlive_game_calculate_fixture\n%04d %s %s %04d\n\n", tm0->id, tm0->name, tm1->name, tm1->id); do { live_game_create_unit(); live_game_evaluate_unit(&last_unit); } while(last_unit.event.type != LIVE_GAME_EVENT_END_MATCH && stat0 != STATUS_LIVE_GAME_PAUSE && stat0 != STATUS_LIVE_GAME_CHANGE); if(last_unit.event.type == LIVE_GAME_EVENT_END_MATCH) { if(stat2 != -1 || stat5 < -1000) lg_commentary_free_tokens(); game_post_match(fix); stat0 = STATUS_NONE; } else if(stat0 == STATUS_LIVE_GAME_CHANGE) live_game_resume(); } /** Initialize a few things at the beginning of a live game. */ void live_game_initialize(Fixture *fix, LiveGame *live_game) { #ifdef DEBUG printf("live_game_initialize\n"); #endif stat2 = fixture_user_team_involved(fix); statp = live_game; show = (stat2 != -1 && option_int("int_opt_user_show_live_game", &usr(stat2).options)); live_game_reset(match, fix, (stat2 != -1)); if(show) { cur_user = stat2; on_button_back_to_main_clicked(NULL, NULL); if(window.live == NULL) window.live = window_create(WINDOW_LIVE); else gtk_window_set_title( GTK_WINDOW(window.live), league_cup_get_name_string(match->fix->clid)); window_live_set_up(); game_gui_live_game_show_opponent(); } fix->live_game = match; game_initialize(fix); match->attendance = fix->attendance; if(stat2 != -1 || stat5 < -1000) lg_commentary_initialize(fix); } /** Create a game unit for the live game. @see #LiveGameUnit, #LiveGame, live_game_fill_new_unit() */ void live_game_create_unit(void) { #ifdef DEBUG printf("live_game_create_unit\n"); #endif LiveGameUnit new; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_create_unit\n"); if(unis->len == 0) { live_game_create_start_unit(); return; } if(uni(unis->len - 1).event.type == LIVE_GAME_EVENT_END_MATCH) { debug_print_message("live_game_create_unit: called after end of match.\n"); return; } new.minute = live_game_get_minute(); new.time = live_game_get_time(&last_unit); new.event.commentary = NULL; new.event.team = new.event.player = new.event.player2 = -1; new.area = last_unit.area; new.result[0] = last_unit.result[0]; new.result[1] = last_unit.result[1]; if(last_unit.event.type == LIVE_GAME_EVENT_HALF_TIME || last_unit.event.type == LIVE_GAME_EVENT_EXTRA_TIME) { live_game_event_general(TRUE); return; } else if(query_live_game_event_is_break(new.minute, new.time)) { new.event.type = live_game_get_break(); new.possession = last_unit.possession; g_array_append_val(unis, new); return; } else if(new.time == LIVE_GAME_UNIT_TIME_PENALTIES) new.event.type = LIVE_GAME_EVENT_PENALTY; else live_game_fill_new_unit(&new); g_array_append_val(unis, new); } /** Fill in a new unit depending on the team values and the constants from above. @param new The unit to fill in. */ void live_game_fill_new_unit(LiveGameUnit *new) { #ifdef DEBUG printf("live_game_fill_new_unit\n"); #endif LiveGameUnit *old = &last_unit; gfloat rndom = math_rnd(0, 1); gfloat stadium_event = 1 - powf(tm0->stadium.safety, const_float("float_live_game_stadium_event_exponent")); gfloat possession_change, scoring_chance = 0, injury_event_prob, foul_event_prob; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_fill_new_unit\n"); possession_change = const_float("float_live_game_event_general") * const_float("float_live_game_possession_changes") / live_game_pit_teams(old, const_float("float_live_game_possession_team_exponent")); injury_event_prob = const_float("float_live_game_injury") * (1 + (const_float("float_player_boost_injury_effect") * (tm0->boost != 0 || tm1->boost != 0))); new->possession = old->possession; if(old->event.type == LIVE_GAME_EVENT_GENERAL) new->area = live_game_get_area(new); if(new->area == LIVE_GAME_UNIT_AREA_ATTACK) scoring_chance = const_float("float_live_game_scoring_chance") * live_game_pit_teams(new, const_float("float_live_game_scoring_chance_team_exponent")); foul_event_prob = game_get_foul_prob(match, new); if(rndom < foul_event_prob) new->event.type = LIVE_GAME_EVENT_FOUL; else if(rndom < foul_event_prob + injury_event_prob) new->event.type = LIVE_GAME_EVENT_INJURY; else if(rndom < foul_event_prob + injury_event_prob + stadium_event && match->stadium_event == -1) new->event.type = LIVE_GAME_EVENT_STADIUM; else if(rndom < foul_event_prob + injury_event_prob + stadium_event + possession_change) { new->event.type = LIVE_GAME_EVENT_LOST_POSSESSION; new->possession = !old->possession; if(new->area == LIVE_GAME_UNIT_AREA_ATTACK) new->area = LIVE_GAME_UNIT_AREA_DEFEND; else if(new->area == LIVE_GAME_UNIT_AREA_DEFEND) new->area = LIVE_GAME_UNIT_AREA_ATTACK; } else if(rndom < foul_event_prob + injury_event_prob + stadium_event + possession_change + scoring_chance) new->event.type = LIVE_GAME_EVENT_SCORING_CHANCE; else new->event.type = LIVE_GAME_EVENT_GENERAL; } /** Create the first unit of a match. */ void live_game_create_start_unit(void) { #ifdef DEBUG printf("live_game_create_start_unit\n"); #endif LiveGameUnit new; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_create_start_unit\n"); new.event.player = new.event.player2 = -1; new.minute = 0; new.event.commentary = NULL; new.time = LIVE_GAME_UNIT_TIME_FIRST_HALF; new.possession = math_rndi(0, 1); new.area = LIVE_GAME_UNIT_AREA_MIDFIELD; match->started_game = new.possession; new.result[0] = new.result[1] = 0; new.event.type = LIVE_GAME_EVENT_START_MATCH; new.event.team = new.possession; g_array_append_val(unis, new); } /** Evaluate a live game unit. This means we find out what happens after the unit, depending on its type. @param unit The unit we evaluate. @see The live_game_event* functions. */ void live_game_evaluate_unit(LiveGameUnit *unit) { #ifdef DEBUG printf("live_game_evaluate_unit\n"); #endif gint type = unit->event.type; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_evaluate_unit\n"); if(type == LIVE_GAME_EVENT_FOUL) live_game_event_foul(); else if(type == LIVE_GAME_EVENT_LOST_POSSESSION) live_game_event_lost_possession(); else if(type == LIVE_GAME_EVENT_INJURY) live_game_event_injury(-1, -1, FALSE); else if(type == LIVE_GAME_EVENT_STADIUM) live_game_event_stadium(); else if(type == LIVE_GAME_EVENT_SCORING_CHANCE) live_game_event_scoring_chance(); else if(type == LIVE_GAME_EVENT_PENALTY) live_game_event_penalty(); else if(type == LIVE_GAME_EVENT_GENERAL) live_game_event_general(FALSE); else if(type == LIVE_GAME_EVENT_START_MATCH) live_game_finish_unit(); else if(type == LIVE_GAME_EVENT_HALF_TIME || type == LIVE_GAME_EVENT_EXTRA_TIME || type == LIVE_GAME_EVENT_PENALTIES || type == LIVE_GAME_EVENT_END_MATCH) { live_game_finish_unit(); if(type != LIVE_GAME_EVENT_END_MATCH && show && option_int("int_opt_user_pause_break", &usr(stat2).options)) misc_callback_pause_live_game(); } else if(type != LIVE_GAME_EVENT_END_MATCH) debug_print_message("live_game_evaluate_unit: unknown event type %d\n", type); } /** Calculate a foul event. */ void live_game_event_foul(void) { #ifdef DEBUG printf("live_game_event_foul\n"); #endif gfloat rndom = math_rnd(0, 1); gfloat reduction_factor = 1; gint type, fouled_player, foul_player, foul_team; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_foul\n"); if(math_rnd(0, 1) > const_float("float_live_game_foul_by_possession") * game_get_foul_possession_factor( tms[last_unit.possession]->boost, tms[!last_unit.possession]->boost)) { foul_team = last_unit.event.team = !last_unit.possession; if(uni(unis->len - 2).event.type == LIVE_GAME_EVENT_GENERAL) fouled_player = last_unit.event.player = uni(unis->len - 2).event.player; else fouled_player = last_unit.event.player = game_get_player(tms[last_unit.possession], last_unit.area, 0, -1, FALSE); foul_player = last_unit.event.player2 = game_get_player(tms[!last_unit.possession], last_unit.area, 0, -1, FALSE); } else { foul_team = last_unit.event.team = last_unit.possession; fouled_player = last_unit.event.player = game_get_player(tms[!last_unit.possession], last_unit.area, 0, -1, FALSE); foul_player = last_unit.event.player2 = game_get_player(tms[last_unit.possession], last_unit.area, 0, -1, FALSE); } /* Probability of hard foul gets reduced if the player is already booked, except when boost is on. */ if(tms[foul_team]->boost != 1 && player_of_id_team(tms[foul_team], foul_player)->card_status == PLAYER_CARD_STATUS_YELLOW) reduction_factor = 1 - const_float("float_live_game_foul_booked_reduction"); if(rndom < const_float("float_live_game_foul_red_injury") * reduction_factor) type = LIVE_GAME_EVENT_FOUL_RED_INJURY; else if(rndom < const_float("float_live_game_foul_red") * reduction_factor) type = LIVE_GAME_EVENT_FOUL_RED; else if(rndom < const_float("float_live_game_foul_yellow") * reduction_factor) { type = LIVE_GAME_EVENT_FOUL_YELLOW; player_card_set(player_of_id_team(tms[foul_team], foul_player), match->fix->clid, PLAYER_VALUE_CARD_YELLOW, 1, TRUE); player_of_id_team(tms[foul_team], foul_player)->career[PLAYER_VALUE_CARD_YELLOW]++; player_of_id_team(tms[foul_team], foul_player)->card_status = PLAYER_CARD_STATUS_YELLOW; } else type = LIVE_GAME_EVENT_FOUL; last_unit.event.type = type; live_game_finish_unit(); if(type == LIVE_GAME_EVENT_FOUL_RED || type == LIVE_GAME_EVENT_FOUL_RED_INJURY || (type == LIVE_GAME_EVENT_FOUL_YELLOW && query_live_game_second_yellow(foul_team, foul_player))) { live_game_event_send_off(foul_team, foul_player, query_live_game_second_yellow(foul_team, foul_player)); if(type == LIVE_GAME_EVENT_FOUL_RED_INJURY) live_game_event_injury(!foul_team, fouled_player, TRUE); player_of_id_team(tms[foul_team], foul_player)->card_status = PLAYER_CARD_STATUS_RED; } if(last_unit.area == LIVE_GAME_UNIT_AREA_ATTACK && foul_team != last_unit.possession) { rndom = math_rnd(0, 1); if(rndom < const_float("float_live_game_penalty_prob")) live_game_event_penalty(); else if(rndom < const_float("float_live_game_free_kick_prob")) live_game_event_free_kick(); else last_unit.possession = !foul_team; } else last_unit.possession = !foul_team; } /** Calculate a lost possession event. */ void live_game_event_lost_possession(void) { #ifdef DEBUG printf("live_game_event_lost_possession\n"); #endif if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_lost_possession\n"); last_unit.event.player = game_get_player(tms[last_unit.possession], last_unit.area, 0, -1, TRUE); if(uni(unis->len - 2).event.type == LIVE_GAME_EVENT_GENERAL) last_unit.event.player2 = uni(unis->len - 2).event.player; else last_unit.event.player2 = game_get_player(tms[!last_unit.possession], uni(unis->len - 2).area, 0, -1, FALSE); live_game_finish_unit(); live_game_event_general(TRUE); } /** Calculate an injury event. @param team The team the player is from. @param player The player that's injured, or -1 if we have to choose a random one. @param create_new Whether to put the event into a new unit instead of the last one. */ void live_game_event_injury(gint team, gint player, gboolean create_new) { #ifdef DEBUG printf("live_game_event_injury\n"); #endif LiveGameUnit new; gint old_structure = -1, sub_in = -1; gint usr_idx = -1; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_injury\n"); if(create_new) { new = last_unit; new.event.commentary = NULL; g_array_append_val(unis, new); last_unit.event.player = player; last_unit.event.team = team; } else live_game_injury_get_player(); usr_idx = team_is_user(tms[last_unit.event.team]); last_unit.minute = -1; last_unit.event.type = LIVE_GAME_EVENT_INJURY; if(math_rnd(0, 1) < const_float("float_live_game_injury_is_temp")) { last_unit.event.type = LIVE_GAME_EVENT_TEMP_INJURY; if(debug < 50 || usr_idx == -1) player_of_id_team(tms[last_unit.event.team], last_unit.event.player)->fitness = MAX(0, player_of_id_team(tms[last_unit.event.team], last_unit.event.player)->fitness - math_rnd( const_float("float_live_game_temp_injury_fitness_decrease_lower"), const_float("float_live_game_temp_injury_fitness_decrease_upper"))); } live_game_finish_unit(); if(debug >= 50 && usr_idx != -1) return; if(last_unit.event.type == LIVE_GAME_EVENT_INJURY) { game_player_injury(player_of_id_team(tms[last_unit.event.team], last_unit.event.player)); if(match->subs_left[last_unit.event.team] > 0) { if(show && usr_idx != -1 && ((option_int("int_opt_user_pause_injury", &usr(usr_idx).options) && !option_int("int_opt_user_auto_sub", &usr(usr_idx).options)) || tms[last_unit.event.team]->players->len == 11)) misc_callback_pause_live_game(); else if(tms[last_unit.event.team]->players->len > 11) { sub_in = game_substitute_player(tms[last_unit.event.team], player_id_index(tms[last_unit.event.team], last_unit.event.player)); if(sub_in != -1) { old_structure = tms[last_unit.event.team]->structure; live_game_event_substitution( last_unit.event.team, sub_in, last_unit.event.player); if(old_structure != tms[last_unit.event.team]->structure) live_game_event_team_change(last_unit.event.team, LIVE_GAME_EVENT_STRUCTURE_CHANGE); } } } } game_get_values(match->fix, match->team_values, match->home_advantage); } /** Calculate a stadium event. */ void live_game_event_stadium(void) { #ifdef DEBUG printf("live_game_event_stadium\n"); #endif gint i; gfloat rndom = math_rnd(0, 1); gfloat probs[3] = {const_float("float_live_game_stadium_event_breakdown"), const_float("float_live_game_stadium_event_riots"), const_float("float_live_game_stadium_event_fire")}; for(i=1;i<3;i++) probs[i] += probs[i - 1]; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_stadium\n"); if(rndom <= probs[0]) last_unit.event.type = LIVE_GAME_EVENT_STADIUM_BREAKDOWN; else if(rndom <= probs[1]) last_unit.event.type = LIVE_GAME_EVENT_STADIUM_RIOTS; else if(rndom <= probs[2]) last_unit.event.type = LIVE_GAME_EVENT_STADIUM_FIRE; live_game_finish_unit(); if(team_is_user(tm0) != -1 && debug < 50) game_stadium_event(&tm0->stadium, last_unit.event.type); match->stadium_event = last_unit.event.type; live_game_event_general(TRUE); } /** Calculate a scoring chance event. */ void live_game_event_scoring_chance(void) { #ifdef DEBUG printf("live_game_event_scoring_chance\n"); #endif gint res_idx = -1; if(last_unit.time == LIVE_GAME_UNIT_TIME_EXTRA_TIME) res_idx = 1; else res_idx = 0; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_scoring_chance\n"); if(math_rnd(0, 1) < const_float("float_live_game_scoring_chance_is_own_goal")) { last_unit.event.type = LIVE_GAME_EVENT_OWN_GOAL; last_unit.event.player = game_get_player(tms[!last_unit.possession], GAME_PLAYER_TYPE_DEFEND, 0, -1, FALSE); last_unit.event.team = !last_unit.possession; match->fix->result[last_unit.possession][res_idx]++; last_unit.result[last_unit.possession]++; player_streak_add_to_prob(player_of_id_team(tms[last_unit.event.team], last_unit.event.player), const_float("float_player_streak_add_own_goal")); } else { last_unit.event.team = last_unit.possession; if(uni(unis->len - 2).event.player != -1 && math_rnd(0, 1) < const_float("float_live_game_player_in_poss_shoots") && query_player_id_in_team(uni(unis->len - 2).event.player, tms[last_unit.possession])) last_unit.event.player = uni(unis->len - 2).event.player; else { if(uni(unis->len - 2).event.player != -1 && query_player_id_in_team(uni(unis->len - 2).event.player, tms[last_unit.possession])) { last_unit.event.player = game_get_player(tms[last_unit.possession], last_unit.area, 0, uni(unis->len - 2).event.player, TRUE); last_unit.event.player2 = uni(unis->len - 2).event.player; } else { last_unit.event.player = game_get_player( tms[last_unit.possession], last_unit.area, 0, -1, TRUE); last_unit.event.player2 = game_get_player(tms[last_unit.possession], last_unit.area, 0, last_unit.event.player, TRUE); } } if(math_rnd(0, 1) < const_float("float_live_game_scoring_chance_is_header")) last_unit.event.type = LIVE_GAME_EVENT_HEADER; } live_game_finish_unit(); if(last_unit.event.type != LIVE_GAME_EVENT_OWN_GOAL) live_game_event_duel(); else live_game_event_general(TRUE); } /** Calculate a penalty event. */ void live_game_event_penalty(void) { #ifdef DEBUG printf("live_game_event_penalty\n"); #endif LiveGameUnit new; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_penalty\n"); if(last_unit.time != LIVE_GAME_UNIT_TIME_PENALTIES) { new = last_unit; new.event.commentary = NULL; new.minute = -1; new.event.type = LIVE_GAME_EVENT_PENALTY; g_array_append_val(unis, new); } last_unit.event.player2 = last_unit.event.team = -1; if(last_unit.time == LIVE_GAME_UNIT_TIME_PENALTIES) { if(live_game_penalties_taken() == 1) { last_unit.possession = math_rndi(0, 1); last_unit.event.player = game_get_player(tms[last_unit.possession], GAME_PLAYER_TYPE_PENALTY, -1, -1, FALSE); } else if(live_game_penalties_taken() == 2) { last_unit.possession = !uni(unis->len - 3).possession; last_unit.event.player = game_get_player(tms[last_unit.possession], GAME_PLAYER_TYPE_PENALTY, -1, -1, FALSE); } else { last_unit.possession = !uni(unis->len - 3).possession; last_unit.event.player = game_get_player(tms[last_unit.possession], GAME_PLAYER_TYPE_PENALTY, uni(unis->len - 4).event.player, -1, FALSE); } } else { last_unit.event.team = last_unit.possession; last_unit.event.player = game_get_default_penalty_shooter(tms[last_unit.possession]); if(last_unit.event.player == -1) last_unit.event.player = game_get_player(tms[last_unit.possession], GAME_PLAYER_TYPE_PENALTY, -1, -1, FALSE); } live_game_finish_unit(); live_game_event_duel(); } /** Calculate a general event. @param create_new Whether we create a new unit for the event. */ void live_game_event_general(gboolean create_new) { #ifdef DEBUG printf("live_game_event_general\n"); #endif LiveGameUnit new; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_general\n"); if(create_new && stat0 == STATUS_LIVE_GAME_PAUSE) return; if(create_new) { new.minute = live_game_get_minute(); new.time = last_unit.time; new.event.commentary = NULL; new.event.type = LIVE_GAME_EVENT_GENERAL; new.result[0] = last_unit.result[0]; new.result[1] = last_unit.result[1]; new.event.team = -1; if(last_unit.event.type == LIVE_GAME_EVENT_GENERAL || last_unit.event.type == LIVE_GAME_EVENT_START_MATCH || last_unit.event.type == LIVE_GAME_EVENT_LOST_POSSESSION || last_unit.event.type == LIVE_GAME_EVENT_FOUL || last_unit.event.type == LIVE_GAME_EVENT_FOUL_YELLOW || last_unit.event.type == LIVE_GAME_EVENT_SEND_OFF || last_unit.event.type == LIVE_GAME_EVENT_INJURY || last_unit.event.type == LIVE_GAME_EVENT_TEMP_INJURY || last_unit.event.type == LIVE_GAME_EVENT_STADIUM || last_unit.event.type == LIVE_GAME_EVENT_STADIUM_BREAKDOWN || last_unit.event.type == LIVE_GAME_EVENT_STADIUM_FIRE || last_unit.event.type == LIVE_GAME_EVENT_STADIUM_RIOTS || (last_unit.event.type >= LIVE_GAME_EVENT_STRUCTURE_CHANGE && last_unit.event.type <= LIVE_GAME_EVENT_BOOST_CHANGE_ON) || ((last_unit.event.type == LIVE_GAME_EVENT_POST || last_unit.event.type == LIVE_GAME_EVENT_CROSS_BAR) && math_rnd(0, 1) < const_float("float_live_game_possession_after_post"))) { new.possession = last_unit.possession; new.area = (last_unit.event.type == LIVE_GAME_EVENT_GENERAL) ? live_game_get_area(&last_unit) : last_unit.area; } else if(last_unit.event.type == LIVE_GAME_EVENT_GOAL || last_unit.event.type == LIVE_GAME_EVENT_OWN_GOAL || last_unit.event.type == LIVE_GAME_EVENT_MISS || last_unit.event.type == LIVE_GAME_EVENT_SAVE || last_unit.event.type == LIVE_GAME_EVENT_POST || last_unit.event.type == LIVE_GAME_EVENT_CROSS_BAR) { new.possession = !last_unit.possession; if(last_unit.event.type == LIVE_GAME_EVENT_GOAL || last_unit.event.type == LIVE_GAME_EVENT_OWN_GOAL) new.area = LIVE_GAME_UNIT_AREA_MIDFIELD; else new.area = LIVE_GAME_UNIT_AREA_DEFEND; } else if(last_unit.event.type == LIVE_GAME_EVENT_HALF_TIME) { new.possession = !match->started_game; new.time = LIVE_GAME_UNIT_TIME_SECOND_HALF; new.area = LIVE_GAME_UNIT_AREA_MIDFIELD; } else if(last_unit.event.type == LIVE_GAME_EVENT_EXTRA_TIME) { new.possession = math_rndi(0, 1); new.time = LIVE_GAME_UNIT_TIME_EXTRA_TIME; new.area = LIVE_GAME_UNIT_AREA_MIDFIELD; } else main_exit_program(EXIT_INT_NOT_FOUND, "live_game_event_general: unknown event type: %d\n", last_unit.event.type); g_array_append_val(unis, new); } live_game_event_general_get_players(); live_game_finish_unit(); /** First, check whether CPU strategy changes are made. */ if(team_is_user(tm0) == -1) strategy_live_game_check(match, 0); if(team_is_user(tm1) == -1) strategy_live_game_check(match, 1); if(last_unit.event.type >= LIVE_GAME_EVENT_STRUCTURE_CHANGE && last_unit.event.type <= LIVE_GAME_EVENT_BOOST_CHANGE_ON) live_game_event_general(TRUE); } /** Fill in the players values in a general unit. */ void live_game_event_general_get_players(void) { #ifdef DEBUG printf("live_game_event_general_get_players\n"); #endif gint *pl1 = &last_unit.event.player; gint *pl2 = &last_unit.event.player2; gint old_pl1 = uni(unis->len - 2).event.player; gint type = uni(unis->len - 2).event.type; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_general_get_players\n"); *pl1 = *pl2 = -1; if(type == LIVE_GAME_EVENT_LOST_POSSESSION) { *pl2 = old_pl1; *pl1 = game_get_player(tms[last_unit.possession], last_unit.area, 0, *pl2, TRUE); } else if(type != LIVE_GAME_EVENT_GENERAL) { *pl1 = game_get_player(tms[last_unit.possession], last_unit.area, 0, -1, TRUE); if(math_rnd(0, 1) < const_float("float_live_game_general_event_second_player")) *pl2 = game_get_player(tms[last_unit.possession], last_unit.area, 0, *pl1, TRUE); } else { *pl2 = query_player_id_in_team(old_pl1, tms[last_unit.possession]) ? old_pl1 : -1; *pl1 = game_get_player(tms[last_unit.possession], last_unit.area, 0, *pl2, TRUE); } } /** Calculate a free kick event. */ void live_game_event_free_kick(void) { #ifdef DEBUG printf("live_game_event_free_kick\n"); #endif LiveGameUnit new = last_unit; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_free_kick\n"); new.event.player = new.event.player2 = -1; new.minute = -1; new.event.type = LIVE_GAME_EVENT_FREE_KICK; new.event.team = new.possession; new.event.commentary = NULL; new.event.player = game_get_default_penalty_shooter(tms[new.possession]); if(new.event.player == -1) new.event.player = game_get_player(tms[new.possession], new.area, 0, -1, TRUE); g_array_append_val(unis, new); live_game_finish_unit(); live_game_event_duel(); } /** Calculate a send-off event. */ void live_game_event_send_off(gint team, gint player, gboolean second_yellow) { #ifdef DEBUG printf("live_game_event_send_off\n"); #endif LiveGameUnit new = last_unit; gint substitute = -1, to_substitute = -1; gint usr_idx = team_is_user(tms[team]); if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_send_off\n"); new.event.player = new.event.player2 = -1; new.minute = -1; new.event.type = LIVE_GAME_EVENT_SEND_OFF; new.event.player = player; new.event.team = team; new.event.commentary = NULL; g_array_append_val(unis, new); live_game_finish_unit(); if(debug >= 50 && usr_idx != -1) return; player_streak_add_to_prob( player_of_id_team(tms[team], player), const_float("float_player_streak_add_sendoff")); if(player_of_id_team(tms[team], player)->streak == PLAYER_STREAK_HOT) { player_of_id_team(tms[team], player)->streak = PLAYER_STREAK_NONE; player_streak_reset_count(player_of_id_team(tms[team], player)); } player_of_id_team(tms[team], player)->cskill = 0; if(second_yellow) player_card_set(player_of_id_team(tms[team], player), match->fix->clid, PLAYER_VALUE_CARD_RED, 2, FALSE); else player_card_set(player_of_id_team(tms[team], player), match->fix->clid, PLAYER_VALUE_CARD_RED, game_player_get_ban_duration(), FALSE); player_of_id_team(tms[team], player)->career[PLAYER_VALUE_CARD_RED]++; if(usr_idx != -1) { tms[team]->structure = team_find_appropriate_structure(tms[team]); team_rearrange(tms[team]); live_game_event_team_change(team, LIVE_GAME_EVENT_STRUCTURE_CHANGE); } if(match->subs_left[team] > 0) { if(show && usr_idx != -1 && ((option_int("int_opt_user_pause_red", &usr(usr_idx).options) && !option_int("int_opt_user_auto_sub", &usr(usr_idx).options)) || tms[team]->players->len == 1)) misc_callback_pause_live_game(); else if(tms[team]->players->len > 11) { game_substitute_player_send_off(match->fix->clid, tms[team], player_id_index(tms[team], player), &to_substitute, &substitute); if(to_substitute != -1) live_game_event_substitution(team, substitute, to_substitute); else { tms[team]->structure = team_find_appropriate_structure(tms[team]); team_rearrange(tms[team]); } live_game_event_team_change(team, LIVE_GAME_EVENT_STRUCTURE_CHANGE); } } else if(usr_idx == -1) { tms[team]->structure = team_find_appropriate_structure(tms[team]); team_rearrange(tms[team]); live_game_event_team_change(team, LIVE_GAME_EVENT_STRUCTURE_CHANGE); } game_get_values(match->fix, match->team_values, match->home_advantage); } /** Show a substitution event. @param team_number The team that substitutes. @param sub_in The id of the player who moves into the team. @param sub_out The id of the player who gets replaced. */ void live_game_event_substitution(gint team_number, gint sub_in, gint sub_out) { #ifdef DEBUG printf("live_game_event_substitution\n"); #endif LiveGameUnit new = last_unit; new.minute = -1; new.time = live_game_get_time(&last_unit); new.event.type = LIVE_GAME_EVENT_SUBSTITUTION; new.event.team = team_number; new.event.player = sub_in; new.event.player2 = sub_out; new.event.commentary = NULL; if(player_of_id_team(tms[team_number], sub_in)->cskill > 0) { match->subs_left[team_number]--; player_streak_add_to_prob( player_of_id_team(tms[team_number], sub_in), const_float("float_player_streak_add_sub_out")); player_streak_add_to_prob( player_of_id_team(tms[team_number], sub_in), const_float("float_player_streak_add_sub_in")); player_games_goals_set(player_of_id_team(tms[team_number], sub_in), match->fix->clid, PLAYER_VALUE_GAMES, 1); player_of_id_team(tms[team_number], sub_in)->career[PLAYER_VALUE_GAMES]++; player_of_id_team(tms[team_number], sub_in)->participation = TRUE; if(show) game_gui_live_game_show_opponent(); } g_array_append_val(unis, new); live_game_finish_unit(); } /** Show a team change event, e.g. structure change. @param team_number The index of the team. @param event_type The event type. */ void live_game_event_team_change(gint team_number, gint event_type) { #ifdef DEBUG printf("live_game_event_team_change\n"); #endif LiveGameUnit new = last_unit; new.minute = -1; new.time = live_game_get_time(&last_unit); new.event.team = team_number; new.event.player = new.event.player2 = -1; new.event.type = event_type; new.event.commentary = NULL; g_array_append_val(unis, new); live_game_finish_unit(); if(show) game_gui_live_game_show_opponent(); } /** Calculate whether a player who tries to score succeeds. */ void live_game_event_duel(void) { #ifdef DEBUG printf("live_game_event_duel\n"); #endif gfloat rndom = math_rnd(0, 1); gfloat scoring_prob; gfloat duel_factor; LiveGameUnit new = last_unit; Player *attacker, *goalie, *assistant; gint res_idx1, res_idx2; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_event_duel\n"); new.minute = -1; new.event.team = new.possession; new.event.commentary = NULL; attacker = player_of_id_team(tms[new.possession], new.event.player); goalie = player_of_idx_team(tms[!new.possession], 0); assistant = (new.event.player2 != -1) ? player_of_id_team(tms[new.possession], new.event.player2) : NULL; new.event.player2 = goalie->id; duel_factor = player_get_game_skill(attacker, FALSE, TRUE) / player_get_game_skill(goalie, FALSE, TRUE); res_idx1 = new.possession; if(new.time == LIVE_GAME_UNIT_TIME_PENALTIES) res_idx2 = 2; else if(new.time == LIVE_GAME_UNIT_TIME_EXTRA_TIME) res_idx2 = 1; else res_idx2 = 0; if(last_unit.event.type == LIVE_GAME_EVENT_PENALTY) scoring_prob = const_float("float_live_game_score_penalty") * duel_factor * attacker->team->luck; else if(last_unit.event.type == LIVE_GAME_EVENT_FREE_KICK) scoring_prob = const_float("float_live_game_score_free_kick") * duel_factor * attacker->team->luck; else scoring_prob = const_float("float_live_game_score_base_prob") * powf(duel_factor, const_float("float_live_game_score_duel_exponent")) * powf(match->team_values[new.possession][GAME_TEAM_VALUE_ATTACK] / match->team_values[!new.possession][GAME_TEAM_VALUE_DEFEND], const_float("float_live_game_score_team_exponent")) * attacker->team->luck; if(new.time != LIVE_GAME_UNIT_TIME_PENALTIES) { player_games_goals_set(attacker, match->fix->clid, PLAYER_VALUE_SHOTS, 1); attacker->career[PLAYER_VALUE_SHOTS]++; } if(rndom < scoring_prob) { new.event.type = LIVE_GAME_EVENT_GOAL; match->fix->result[res_idx1][res_idx2]++; new.result[res_idx1]++; if(new.time != LIVE_GAME_UNIT_TIME_PENALTIES) { player_games_goals_set(attacker, match->fix->clid, PLAYER_VALUE_GOALS, 1); player_games_goals_set(goalie, match->fix->clid, PLAYER_VALUE_GOALS, 1); attacker->career[PLAYER_VALUE_GOALS]++; goalie->career[PLAYER_VALUE_GOALS]++; player_streak_add_to_prob(attacker, const_float("float_player_streak_add_goal")); player_streak_add_to_prob(goalie, const_float("float_player_streak_add_goalie_goal")); if(assistant != NULL) player_streak_add_to_prob( assistant, const_float("float_player_streak_add_assist")); } } else new.event.type = math_gauss_disti(LIVE_GAME_EVENT_POST, LIVE_GAME_EVENT_CROSS_BAR); if(new.time != LIVE_GAME_UNIT_TIME_PENALTIES && (new.event.type == LIVE_GAME_EVENT_SAVE || new.event.type == LIVE_GAME_EVENT_GOAL)) { player_games_goals_set(goalie, match->fix->clid, PLAYER_VALUE_SHOTS, 1); goalie->career[PLAYER_VALUE_SHOTS]++; if(new.event.type == LIVE_GAME_EVENT_SAVE) player_streak_add_to_prob(goalie, const_float("float_player_streak_add_goalie_save")); } g_array_append_val(unis, new); live_game_finish_unit(); if(last_unit.time != LIVE_GAME_UNIT_TIME_PENALTIES) live_game_event_general(TRUE); } /** Find out whether the specified player already has a yellow card in this game. @param team The team index, 0 or 1. @param player The player index. @return TRUE or FALSE. */ gboolean query_live_game_second_yellow(gint team, gint player) { #ifdef DEBUG printf("query_live_game_second_yellow\n"); #endif gint i; for(i=0;ilen - 1;i++) if(uni(i).event.type == LIVE_GAME_EVENT_FOUL_YELLOW && uni(i).possession != team && uni(i).event.player2 == player) return TRUE; return FALSE; } /** Find out whether there should be a half-time break or extra time break or so. @param minute The minute of the #LiveGameUnit we want to find the break event for. @param time The #LiveGameUnitTime of the #LiveGameUnit we want to find the break event for. @return TRUE if we have a break, FALSE otherwise. */ gboolean query_live_game_event_is_break(gint minute, gint time) { #ifdef DEBUG printf("query_live_game_event_is_break\n"); #endif gfloat rndom; if(time == LIVE_GAME_UNIT_TIME_EXTRA_TIME) return (minute >= 120); if(time == LIVE_GAME_UNIT_TIME_PENALTIES) return query_live_game_penalties_over(); rndom = math_rnd(0, 1); if(time == LIVE_GAME_UNIT_TIME_FIRST_HALF) return (minute >= 45 && rndom > powf(const_float("float_live_game_break_base"), (gfloat)(minute - 44) * const_float("float_live_game_45_break_exponent_factor"))); else return (minute >= 90 && rndom > powf(const_float("float_live_game_break_base"), (gfloat)(minute - 89) * const_float("float_live_game_90_break_exponent_factor"))); } /** Find out whether the final result of the penalties is already reached. @return TRUE if the penalties are over, FALSE otherwise. */ gboolean query_live_game_penalties_over(void) { #ifdef DEBUG printf("query_live_game_penalties_over\n"); #endif gint i; gint pen_attempted[2] = {0, 0}; for(i=unis->len - 1; i > 0; i--) if(uni(i).time == LIVE_GAME_UNIT_TIME_PENALTIES) { if(uni(i).event.type == LIVE_GAME_EVENT_PENALTY) pen_attempted[uni(i).possession]++; } else break; if(pen_attempted[0] + pen_attempted[1] >= 10) return (match->fix->result[0][2] != match->fix->result[1][2] && pen_attempted[0] == pen_attempted[1]); return (match->fix->result[0][2] - match->fix->result[1][2] > 5 - pen_attempted[1] || match->fix->result[1][2] - match->fix->result[0][2] > 5 - pen_attempted[0]); } /** Return a #LiveGameUnitTime depending on the time of the last unit. @return A new #LiveGameUnitTime. */ gint live_game_get_break(void) { #ifdef DEBUG printf("live_game_get_break\n"); #endif gint type; if(last_unit.time == LIVE_GAME_UNIT_TIME_FIRST_HALF) type = LIVE_GAME_EVENT_HALF_TIME; else if(last_unit.time == LIVE_GAME_UNIT_TIME_SECOND_HALF) { if(query_fixture_is_draw(match->fix)) type = LIVE_GAME_EVENT_EXTRA_TIME; else type = LIVE_GAME_EVENT_END_MATCH; } else if(last_unit.time == LIVE_GAME_UNIT_TIME_EXTRA_TIME) { if(query_fixture_is_draw(match->fix)) type = LIVE_GAME_EVENT_PENALTIES; else type = LIVE_GAME_EVENT_END_MATCH; } else type = LIVE_GAME_EVENT_END_MATCH; return type; } /** Get the time for the unit depending of time and event of the last one. @param unit The unit before the one we create. @return A #LiveGameUnitTime */ gint live_game_get_time(const LiveGameUnit *unit) { #ifdef DEBUG printf("live_game_get_time\n"); #endif gint time; if(unit->event.type == LIVE_GAME_EVENT_HALF_TIME) time = LIVE_GAME_UNIT_TIME_SECOND_HALF; else if(unit->event.type == LIVE_GAME_EVENT_EXTRA_TIME) time = LIVE_GAME_UNIT_TIME_EXTRA_TIME; else if(unit->event.type == LIVE_GAME_EVENT_PENALTIES) time = LIVE_GAME_UNIT_TIME_PENALTIES; else time = unit->time; return time; } /** Return the minute for the next game unit. @return A new minute for a LiveGameUnit. */ gint live_game_get_minute(void) { #ifdef DEBUG printf("live_game_get_minute\n"); #endif gint i; if(last_unit.event.type == LIVE_GAME_EVENT_HALF_TIME) return 46; else if(last_unit.event.type == LIVE_GAME_EVENT_EXTRA_TIME) return 91; else if(last_unit.event.type == LIVE_GAME_EVENT_PENALTIES || last_unit.time == LIVE_GAME_UNIT_TIME_PENALTIES) return 120; for(i=unis->len - 1; i>=0; i--) if(uni(i).minute != -1) return uni(i).minute + 1; return -1; } /** Return the minutes remaining in the match. */ gint live_game_get_minutes_remaining(const LiveGameUnit *unit) { #ifdef DEBUG printf("live_game_get_minutes_remaining\n"); #endif gint current_min = live_game_unit_get_minute(unit); gint return_value = -1; if(unit->time == LIVE_GAME_UNIT_TIME_EXTRA_TIME) return_value = 120 - current_min; else if(unit->time == LIVE_GAME_UNIT_TIME_SECOND_HALF) return_value = 90 - current_min; else if(unit->time == LIVE_GAME_UNIT_TIME_FIRST_HALF) return_value = 45 - current_min; return return_value; } /** Return the minute of the unit (ie. look up the last unit with a 'normal' minute value if minute = -1). @param unit The unit we examine. @return A minute between 1 and 120. */ gint live_game_unit_get_minute(const LiveGameUnit *unit) { #ifdef DEBUG printf("live_game_unit_get_minute\n"); #endif gint i, j; for(i=unis->len - 1; i >= 0; i--) if(&uni(i) == unit) break; if(i == -1) main_exit_program(EXIT_INT_NOT_FOUND, "live_game_unit_get_minute: reached end of units array."); else for(j=i;j>=0;j--) if(uni(j).minute != -1) return uni(j).minute; return -1; } /** Return the unit before or after the specified one. @param unit The unit specified. @param gap How many units to skip. */ LiveGameUnit* live_game_unit_before(const LiveGameUnit* unit, gint gap) { #ifdef DEBUG printf("live_game_unit_before\n"); #endif gint i; if(gap > 0) { for(i=unis->len - 1;i>=0;i--) if(&uni(i) == unit) { if(i - gap > 0) return &uni(i - gap); else debug_print_message("live_game_unit_before: no unit found for gap %d\n", gap); } } else { for(i=unis->len - 1;i>=0;i--) if(&uni(i) == unit) { if(i + gap < unis->len - 1) return &uni(i + gap); else debug_print_message("live_game_unit_before: no unit found for gap %d\n", gap); } } main_exit_program(EXIT_POINTER_NOT_FOUND, NULL); return NULL; } /** Calculate which area the ball is going to be in in the next unit. @param unit The previous unit. @return An area, defend, midfield or attack. */ gint live_game_get_area(const LiveGameUnit *unit) { #ifdef DEBUG printf("live_game_get_area\n"); #endif gint new_area = unit->area; gfloat rndom = math_rnd(0, 1); gfloat probs[4] = {const_float("float_live_game_area_def_mid") * live_game_pit_teams(unit, const_float("float_live_game_area_def_mid_team_exponent")), const_float("float_live_game_area_mid_att") * live_game_pit_teams(unit, const_float("float_live_game_area_mid_team_exponent")), const_float("float_live_game_area_mid_def") / live_game_pit_teams(unit, const_float("float_live_game_area_mid_team_exponent")), const_float("float_live_game_area_att_mid") / live_game_pit_teams(unit, const_float("float_live_game_area_att_mid_team_exponent"))}; if(unit->area == LIVE_GAME_UNIT_AREA_DEFEND && rndom < probs[0]) new_area = LIVE_GAME_UNIT_AREA_MIDFIELD; else if(unit->area == LIVE_GAME_UNIT_AREA_MIDFIELD) { if(rndom < probs[1]) new_area = LIVE_GAME_UNIT_AREA_ATTACK; else if(rndom < probs[1] + probs[2]) new_area = LIVE_GAME_UNIT_AREA_DEFEND; } else if(rndom < probs[3]) new_area = LIVE_GAME_UNIT_AREA_MIDFIELD; return new_area; } /** Return the team values factor weighted with the given exponent and depending on the pitch area. @param unit The unit we calculate the value for. @param exponent The weighting exponent. */ gfloat live_game_pit_teams(const LiveGameUnit *unit, gfloat exponent) { #ifdef DEBUG printf("live_game_pit_teams\n"); #endif gfloat factor; if(unit->area == LIVE_GAME_UNIT_AREA_DEFEND) factor = powf((match->team_values[unit->possession][GAME_TEAM_VALUE_DEFEND] * tms[unit->possession]->luck) / (match->team_values[!unit->possession][GAME_TEAM_VALUE_ATTACK] * tms[!unit->possession]->luck), exponent); else if(unit->area == LIVE_GAME_UNIT_AREA_MIDFIELD) factor = powf((match->team_values[unit->possession][GAME_TEAM_VALUE_MIDFIELD] * tms[unit->possession]->luck) / (match->team_values[!unit->possession][GAME_TEAM_VALUE_MIDFIELD] * tms[!unit->possession]->luck), exponent); else factor = powf((match->team_values[unit->possession][GAME_TEAM_VALUE_ATTACK] * tms[unit->possession]->luck) / (match->team_values[!unit->possession][GAME_TEAM_VALUE_DEFEND] * tms[!unit->possession]->luck), exponent); return factor; } /** Some polishing of the latest unit. Write commentary etc. */ void live_game_finish_unit(void) { #ifdef DEBUG printf("live_game_finish_unit\n"); #endif LiveGameUnit *unit = &last_unit; if((debug > 100 && stat2 != -1) || debug > 130) g_print("\t\tlive_game_finish_unit\n"); if((debug > 100 && stat2 != -1) || debug > 130) g_print("OOOO1 idx %d min %d type %d poss %d team %d pl %d %d\n", unis->len - 1, unit->minute, unit->event.type, unit->possession, unit->event.team, unit->event.player, unit->event.player2); if(unit->minute != -1 && unit->time != LIVE_GAME_UNIT_TIME_PENALTIES) { if(stat2 != -1 && usr(stat2).tm->boost == 1) game_boost_cost(); game_decrease_fitness(match->fix); game_get_values(match->fix, match->team_values, match->home_advantage); if(stat2 != -1 && stat2 == cur_user && show && unit->minute % opt_int("int_opt_live_game_player_list_refresh") == 0) treeview_show_user_player_list(); } game_update_stats(match, unit); if(stat2 != -1 || stat5 < -1000) { if(unit->time != LIVE_GAME_UNIT_TIME_PENALTIES && show) treeview_show_game_stats(GTK_TREE_VIEW(lookup_widget(window.live, "treeview_stats")), match); lg_commentary_generate(match, unit, NULL, -1); if(-stat5 - 1000 == unit->event.type) { g_print("type %d com **%s**", unit->event.type, unit->event.commentary); if(g_strrstr(unit->event.commentary, "[") || g_strrstr(unit->event.commentary, "]") || g_strrstr(unit->event.commentary, "<") || g_strrstr(unit->event.commentary, ">") || g_strrstr(unit->event.commentary, "=") || g_strrstr(unit->event.commentary, " G ") || g_strrstr(unit->event.commentary, " L ") || g_strrstr(unit->event.commentary, " GE ") || g_strrstr(unit->event.commentary, " LE ")) g_print(" ERROR?\n"); else g_print("\n"); } unit->event.verbosity = live_game_event_get_verbosity(unit->event.type); } if(show) game_gui_live_game_show_unit(unit); if((debug > 100 && stat2 != -1) || debug > 130) g_print("OOOO idx %d type %d poss %d team %d pl %d %d\n", unis->len - 1, unit->event.type, unit->possession, unit->event.team, unit->event.player, unit->event.player2); } /** Find a random player (influenced by fitness) who gets injured. */ void live_game_injury_get_player(void) { #ifdef DEBUG printf("live_game_injury_get_player\n"); #endif gint i, j; gfloat probs[22]; gfloat rndom, fitness_factor; gfloat goalie_factor = const_float("float_live_game_injury_goalie_factor"); gfloat boost_factor = const_float("float_player_boost_injury_effect"); for(j=0;j<2;j++) { fitness_factor = (player_of_idx_team(tms[j], 0)->fitness < 0.025) ? 40 : 1 / player_of_idx_team(tms[j], 0)->fitness; probs[j * 11] = goalie_factor * fitness_factor * (player_of_idx_team(tms[j], 0)->cskill != 0) * (1 + tms[j]->boost * boost_factor); if(j == 1) probs[11] += probs[10]; for(i=1;i<11;i++) { fitness_factor = (player_of_idx_team(tms[j], i)->fitness < 0.025) ? 40 : 1 / ((gfloat)player_of_idx_team(tms[j], i)->fitness); probs[i + j * 11] = probs[i + j * 11 - 1] + (1 - goalie_factor) * fitness_factor * (player_of_idx_team(tms[j], i)->cskill != 0) * (1 + tms[j]->boost * boost_factor); } } rndom = math_rnd(0, probs[21]); if(rndom < probs[0]) { last_unit.event.player = player_of_idx_team(tm0, 0)->id; last_unit.event.team = 0; } else for(i=1;i<22;i++) if(probs[i - 1] <= rndom && rndom < probs[i]) { last_unit.event.player = player_of_idx_team(tms[(i > 10)], i % 11)->id; last_unit.event.team = (i > 10); } } /** Resume a live game. Show team changes. */ void live_game_resume(void) { #ifdef DEBUG printf("live_game_resume\n"); #endif gint i, j; gint subs_in[3], subs_out[3]; statp = &usr(stat2).live_game; for(i=0;i<2;i++) { game_get_subs(i, subs_in, subs_out); for(j=0;j<3;j++) { if(subs_in[j] != -1) live_game_event_substitution(i, subs_in[j], subs_out[j]); } if(tms[i]->structure != usr(stat2).live_game.team_state[i].structure) live_game_event_team_change(i, LIVE_GAME_EVENT_STRUCTURE_CHANGE); if(tms[i]->style != usr(stat2).live_game.team_state[i].style) live_game_event_team_change(i, LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND + tms[i]->style + 2); if(tms[i]->boost != usr(stat2).live_game.team_state[i].boost) live_game_event_team_change(i, LIVE_GAME_EVENT_BOOST_CHANGE_ANTI + tms[i]->boost + 1); } live_game_calculate_fixture(usr(stat2).live_game.fix, &usr(stat2).live_game); } /** Reset the live game variable before we begin a new live game. @param live_game The pointer to the live game. @param fix The fixture we'll show. @param free Whether or not to free the variable before resetting. */ void live_game_reset(LiveGame *live_game, Fixture *fix, gboolean free_variable) { #ifdef DEBUG printf("live_game_reset\n"); #endif gint i; if(free_variable) free_live_game(live_game); live_game->started_game = -1; live_game->units = g_array_new(FALSE, FALSE, sizeof(LiveGameUnit)); live_game->action_ids[0] = g_array_new(FALSE, FALSE, sizeof(gint)); live_game->action_ids[1] = g_array_new(FALSE, FALSE, sizeof(gint)); for(i=0;istats.players[0][i] = g_ptr_array_new(); live_game->stats.players[1][i] = g_ptr_array_new(); } live_game->stats.possession = 0; for(i=0;istats.values[0][i] = live_game->stats.values[1][i] = 0; live_game->fix = fix; if(fix != NULL) { live_game->fix_id = fix->id; live_game->team_names[0] = g_strdup(fix->teams[0]->name); live_game->team_names[1] = g_strdup(fix->teams[1]->name); } else { live_game->fix_id = -1; live_game->attendance = -1; live_game->team_names[0] = live_game->team_names[1] = NULL; } live_game->subs_left[0] = live_game->subs_left[1] = 3; live_game->stadium_event = -1; if(fix != NULL && fix->home_advantage) live_game->home_advantage = math_rnd(const_float("float_game_home_advantage_lower"), const_float("float_game_home_advantage_upper")); else live_game->home_advantage = 0; } /** Determine verbosity level depending on the event type. */ gint live_game_event_get_verbosity(gint event_type) { #ifdef DEBUG printf("live_game_event_get_verbosity\n"); #endif gint return_value = -1; if(event_type == LIVE_GAME_EVENT_START_MATCH || event_type == LIVE_GAME_EVENT_HALF_TIME || event_type == LIVE_GAME_EVENT_EXTRA_TIME || event_type == LIVE_GAME_EVENT_END_MATCH || event_type == LIVE_GAME_EVENT_PENALTIES || event_type == LIVE_GAME_EVENT_GOAL || event_type == LIVE_GAME_EVENT_OWN_GOAL) return_value = 0; else if(event_type == LIVE_GAME_EVENT_PENALTY || event_type == LIVE_GAME_EVENT_SCORING_CHANCE || event_type == LIVE_GAME_EVENT_HEADER || event_type == LIVE_GAME_EVENT_FREE_KICK || event_type == LIVE_GAME_EVENT_POST || event_type == LIVE_GAME_EVENT_MISS || event_type == LIVE_GAME_EVENT_CROSS_BAR || event_type == LIVE_GAME_EVENT_SAVE) return_value = 1; else if(event_type == LIVE_GAME_EVENT_SEND_OFF || event_type == LIVE_GAME_EVENT_INJURY) return_value = 2; else if(event_type == LIVE_GAME_EVENT_FOUL_RED || event_type == LIVE_GAME_EVENT_FOUL_YELLOW || event_type == LIVE_GAME_EVENT_FOUL_RED_INJURY) return_value = 3; else if(event_type == LIVE_GAME_EVENT_FOUL || event_type == LIVE_GAME_EVENT_TEMP_INJURY || event_type == LIVE_GAME_EVENT_STADIUM_RIOTS || event_type == LIVE_GAME_EVENT_STADIUM_BREAKDOWN || event_type == LIVE_GAME_EVENT_STADIUM_FIRE || event_type == LIVE_GAME_EVENT_LOST_POSSESSION) return_value = 4; else if(event_type == LIVE_GAME_EVENT_SUBSTITUTION || event_type == LIVE_GAME_EVENT_STRUCTURE_CHANGE || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_DEFEND || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_BALANCED || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ATTACK || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_ATTACK || event_type == LIVE_GAME_EVENT_BOOST_CHANGE_ANTI || event_type == LIVE_GAME_EVENT_BOOST_CHANGE_OFF || event_type == LIVE_GAME_EVENT_BOOST_CHANGE_ON) return_value = 5; else if(event_type == LIVE_GAME_EVENT_GENERAL) return_value = 6; else main_exit_program(EXIT_INT_NOT_FOUND, "live_game_event_get_verbosity: unknown event type %d \n", event_type); return return_value; } /** Write a result like '2:3 e.t.' into the buffer. @param swap Whether to swap the scores. */ void live_game_unit_result_to_buf(const LiveGameUnit *unit, gchar *buf, gboolean swap) { #ifdef DEBUG printf("live_game_unit_result_to_buf\n"); #endif gint idx = (swap) ? 1 : 0; if(unit->time == LIVE_GAME_UNIT_TIME_PENALTIES) /* A result after penalties. */ sprintf(buf, _("%d : %d p."), unit->result[idx], unit->result[!idx]); else if(unit->time == LIVE_GAME_UNIT_TIME_EXTRA_TIME) /* A result after extra time. */ sprintf(buf, _("%d : %d e.t."), unit->result[idx], unit->result[!idx]); else sprintf(buf, "%d : %d", unit->result[idx], unit->result[!idx]); } /** Count the number of penalties taken during penalty shoot-out. */ gint live_game_penalties_taken(void) { #ifdef DEBUG printf("live_game_penalties_taken\n"); #endif gint i, penalties = 0; for(i=unis->len - 1;i>=0;i--) { if(uni(i).event.type == LIVE_GAME_EVENT_PENALTIES) break; else if(uni(i).time == LIVE_GAME_UNIT_TIME_PENALTIES && uni(i).event.type == LIVE_GAME_EVENT_PENALTY) penalties++; } return penalties; } bygfoot-2.3.2/src/interface.c0000644000175000017500000031334311225071373015046 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "callbacks.h" #include "interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_main_window (void) { GtkWidget *main_window; GdkPixbuf *main_window_icon_pixbuf; GtkWidget *vbox1; GtkWidget *menubar1; GtkWidget *menu_file; GtkWidget *menu_file_menu; GtkWidget *menu_new; GtkWidget *menu_open; GtkWidget *menu_load_last_save; GtkWidget *image2725; GtkWidget *menu_save; GtkWidget *menu_save_as; GtkWidget *trennlinie1; GtkWidget *menu_quit; GtkWidget *menu_options; GtkWidget *menu_options_menu; GtkWidget *menu_preferences; GtkWidget *image2726; GtkWidget *trennlinie7; GtkWidget *menu_job_offers; GtkWidget *menu_live_game; GtkWidget *menu_overwrite; GtkWidget *trennlinie14; GtkWidget *menu_save_window_geometry; GtkWidget *image2727; GtkWidget *menu_figures; GtkWidget *menu_figures_menu; GtkWidget *menu_fixtures_week; GtkWidget *image2728; GtkWidget *menu_fixtures; GtkWidget *image2729; GtkWidget *menu_tables; GtkWidget *image2730; GtkWidget *menu_my_league_results; GtkWidget *image2731; GtkWidget *menu_season_results; GtkWidget *image2732; GtkWidget *menu_team; GtkWidget *menu_team_menu; GtkWidget *menu_playing_style; GtkWidget *image2733; GtkWidget *menu_playing_style_menu; GSList *menu_all_out_defend_group = NULL; GtkWidget *menu_all_out_defend; GtkWidget *menu_defend; GtkWidget *menu_balanced; GtkWidget *menu_attack; GtkWidget *menu_all_out_attack; GtkWidget *menu_scout; GtkWidget *image2734; GtkWidget *menu_scout_menu; GSList *menu_scout_best_group = NULL; GtkWidget *menu_scout_best; GtkWidget *menu_scout_good; GtkWidget *menu_scout_average; GtkWidget *menu_scout_bad; GtkWidget *menu_physio; GtkWidget *image2735; GtkWidget *menu_physio_menu; GSList *menu_physio_best_group = NULL; GtkWidget *menu_physio_best; GtkWidget *menu_physio_good; GtkWidget *menu_physio_average; GtkWidget *menu_physio_bad; GtkWidget *menu_youth_academy; GtkWidget *image2736; GtkWidget *menu_youth_academy_menu; GtkWidget *menu_show_youth_academy; GtkWidget *youth_coach1; GtkWidget *youth_coach1_menu; GSList *menu_yc_best_group = NULL; GtkWidget *menu_yc_best; GtkWidget *menu_yc_good; GtkWidget *menu_yc_average; GtkWidget *menu_yc_bad; GtkWidget *recruiting_preference1; GtkWidget *recruiting_preference1_menu; GSList *menu_recruit0_group = NULL; GtkWidget *menu_recruit0; GtkWidget *menu_recruit1; GtkWidget *menu_recruit2; GtkWidget *menu_recruit3; GtkWidget *menu_recruit4; GtkWidget *menu_set_investment; GtkWidget *menu_boost; GtkWidget *image2737; GtkWidget *menu_boost_menu; GSList *menu_boost_on_group = NULL; GtkWidget *menu_boost_on; GtkWidget *menu_boost_off; GtkWidget *menu_boost_anti; GtkWidget *trennlinie11; GtkWidget *menu_training_camp; GtkWidget *trennlinie18; GtkWidget *menu_reset_players; GtkWidget *image2738; GtkWidget *menu_custom_structure; GtkWidget *image2739; GtkWidget *menu_rearrange_team; GtkWidget *image2740; GtkWidget *trennlinie8; GtkWidget *menu_browse_teams; GtkWidget *image2741; GtkWidget *trennlinie16; GtkWidget *menu_show_job_exchange; GtkWidget *menu_player; GtkWidget *menu_player_menu; GtkWidget *menu_show_info; GtkWidget *image2742; GtkWidget *menu_put_on_transfer_list; GtkWidget *image2743; GtkWidget *menu_remove_from_transfer_list; GtkWidget *image2744; GtkWidget *menu_offer_new_contract; GtkWidget *image2745; GtkWidget *menu_fire; GtkWidget *image2746; GtkWidget *menu_shoots_penalties; GtkWidget *image2747; GtkWidget *menu_move_to_youth_academy; GtkWidget *image2748; GtkWidget *menu_edit_name; GtkWidget *image2749; GtkWidget *trennlinie10; GtkWidget *menu_browse_players; GtkWidget *image2750; GtkWidget *menu_user; GtkWidget *menu_user_menu; GtkWidget *menu_user_show_last_match; GtkWidget *image2751; GtkWidget *menu_user_show_last_stats; GtkWidget *image2752; GtkWidget *menu_user_show_coming_matches; GtkWidget *image2753; GtkWidget *trennlinie9; GtkWidget *menu_next_user; GtkWidget *image2754; GtkWidget *menu_previous_user; GtkWidget *image2755; GtkWidget *menu_manage_users; GtkWidget *image2756; GtkWidget *menu_finances_stadium; GtkWidget *menu_finances_stadium_menu; GtkWidget *menu_show_finances; GtkWidget *image2757; GtkWidget *menu_show_stadium; GtkWidget *image2758; GtkWidget *automatic_loan_repayment; GtkWidget *trennlinie15; GtkWidget *menu_betting; GtkWidget *stats1; GtkWidget *stats1_menu; GtkWidget *menu_news; GtkWidget *menu_league_stats; GtkWidget *image2759; GtkWidget *menu_season_history; GtkWidget *image2760; GtkWidget *menu_user_show_history; GtkWidget *image2761; GtkWidget *memorable_matches; GtkWidget *image2762; GtkWidget *memorable_matches_menu; GtkWidget *mm_add_last_match; GtkWidget *image2763; GtkWidget *mm_manage_matches; GtkWidget *image2764; GtkWidget *menu_help1; GtkWidget *menu_help1_menu; GtkWidget *menu_about; GtkWidget *image2765; GtkWidget *menu_contributors; GtkWidget *image2766; GtkWidget *menu_help; GtkWidget *image2767; GtkWidget *hbox1; GtkWidget *button_load; GtkWidget *image11; GtkWidget *button_save; GtkWidget *image12; GtkWidget *button_quit; GtkWidget *image13; GtkWidget *vseparator1; GtkWidget *vseparator11; GtkWidget *button_back_to_main; GtkWidget *image20; GtkWidget *button_transfers; GtkWidget *image32; GtkWidget *vseparator16; GtkWidget *button_new_week; GtkWidget *image23; GtkWidget *entry_message; GtkWidget *hseparator1; GtkWidget *eventbox_main_info; GtkWidget *hbox18; GtkWidget *label_user; GtkWidget *label23; GtkWidget *label_season; GtkWidget *label25; GtkWidget *label_week; GtkWidget *label13114; GtkWidget *label_round; GtkWidget *vseparator14; GtkWidget *hbox48; GtkWidget *eventbox_style; GtkWidget *image_style; GtkWidget *eventbox_boost; GtkWidget *image_boost; GtkWidget *eventbox_team_name; GtkWidget *label_team; GtkWidget *label_league; GtkWidget *eventbox_rank; GtkWidget *hbox49; GtkWidget *label29; GtkWidget *label_rank; GtkWidget *vseparator15; GtkWidget *label34; GtkWidget *label_money; GtkWidget *vseparator17; GtkWidget *eventbox1; GtkWidget *hbox50; GtkWidget *label69; GtkWidget *label_av_skills; GtkWidget *hbox7; GtkWidget *hpaned2; GtkWidget *vbox3; GtkWidget *scrolledwindow2; GtkWidget *viewport1; GtkWidget *notebook_player; GtkWidget *player_list1; GtkWidget *label71; GtkWidget *player_list2; GtkWidget *label72; GtkWidget *button_reset_players; GtkWidget *image298; GtkWidget *vbox8; GtkWidget *hbox_14; GtkWidget *button_cl_back; GtkWidget *image215; GtkWidget *button_cl_forward; GtkWidget *image216; GtkWidget *button_browse_back; GtkWidget *image10; GtkWidget *button_browse_forward; GtkWidget *image9; GtkWidget *scrolledwindow3; GtkWidget *treeview_right; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (main_window), 6); gtk_window_set_position (GTK_WINDOW (main_window), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (main_window), 300, 600); main_window_icon_pixbuf = create_pixbuf ("bygfoot_icon.png"); if (main_window_icon_pixbuf) { gtk_window_set_icon (GTK_WINDOW (main_window), main_window_icon_pixbuf); gdk_pixbuf_unref (main_window_icon_pixbuf); } vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (main_window), vbox1); menubar1 = gtk_menu_bar_new (); gtk_widget_show (menubar1); gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0); menu_file = gtk_menu_item_new_with_mnemonic (_("_File")); gtk_widget_show (menu_file); gtk_container_add (GTK_CONTAINER (menubar1), menu_file); menu_file_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_file), menu_file_menu); menu_new = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group); gtk_widget_show (menu_new); gtk_container_add (GTK_CONTAINER (menu_file_menu), menu_new); menu_open = gtk_image_menu_item_new_from_stock ("gtk-open", accel_group); gtk_widget_show (menu_open); gtk_container_add (GTK_CONTAINER (menu_file_menu), menu_open); menu_load_last_save = gtk_image_menu_item_new_with_mnemonic (_("L_oad last save")); gtk_widget_show (menu_load_last_save); gtk_container_add (GTK_CONTAINER (menu_file_menu), menu_load_last_save); gtk_widget_add_accelerator (menu_load_last_save, "activate", accel_group, GDK_l, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2725 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_MENU); gtk_widget_show (image2725); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_load_last_save), image2725); menu_save = gtk_image_menu_item_new_from_stock ("gtk-save", accel_group); gtk_widget_show (menu_save); gtk_container_add (GTK_CONTAINER (menu_file_menu), menu_save); menu_save_as = gtk_image_menu_item_new_from_stock ("gtk-save-as", accel_group); gtk_widget_show (menu_save_as); gtk_container_add (GTK_CONTAINER (menu_file_menu), menu_save_as); trennlinie1 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie1); gtk_container_add (GTK_CONTAINER (menu_file_menu), trennlinie1); gtk_widget_set_sensitive (trennlinie1, FALSE); menu_quit = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group); gtk_widget_show (menu_quit); gtk_container_add (GTK_CONTAINER (menu_file_menu), menu_quit); menu_options = gtk_menu_item_new_with_mnemonic (_("_Options")); gtk_widget_show (menu_options); gtk_container_add (GTK_CONTAINER (menubar1), menu_options); menu_options_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_options), menu_options_menu); menu_preferences = gtk_image_menu_item_new_with_mnemonic (_("Preferences")); gtk_widget_show (menu_preferences); gtk_container_add (GTK_CONTAINER (menu_options_menu), menu_preferences); gtk_widget_add_accelerator (menu_preferences, "activate", accel_group, GDK_p, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2726 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU); gtk_widget_show (image2726); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_preferences), image2726); trennlinie7 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie7); gtk_container_add (GTK_CONTAINER (menu_options_menu), trennlinie7); gtk_widget_set_sensitive (trennlinie7, FALSE); menu_job_offers = gtk_check_menu_item_new_with_mnemonic (_("Job offers")); gtk_widget_show (menu_job_offers); gtk_container_add (GTK_CONTAINER (menu_options_menu), menu_job_offers); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_job_offers), TRUE); menu_live_game = gtk_check_menu_item_new_with_mnemonic (_("Live game")); gtk_widget_show (menu_live_game); gtk_container_add (GTK_CONTAINER (menu_options_menu), menu_live_game); menu_overwrite = gtk_check_menu_item_new_with_mnemonic (_("Overwrite")); gtk_widget_show (menu_overwrite); gtk_container_add (GTK_CONTAINER (menu_options_menu), menu_overwrite); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_overwrite), TRUE); trennlinie14 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie14); gtk_container_add (GTK_CONTAINER (menu_options_menu), trennlinie14); gtk_widget_set_sensitive (trennlinie14, FALSE); menu_save_window_geometry = gtk_image_menu_item_new_with_mnemonic (_("Save window geometry")); gtk_widget_show (menu_save_window_geometry); gtk_container_add (GTK_CONTAINER (menu_options_menu), menu_save_window_geometry); gtk_tooltips_set_tip (tooltips, menu_save_window_geometry, _("Save window size, position and vertical divider"), NULL); image2727 = create_pixmap (main_window, "menu_save_geometry.png"); gtk_widget_show (image2727); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_window_geometry), image2727); menu_figures = gtk_menu_item_new_with_mnemonic (_("F_igures")); gtk_widget_show (menu_figures); gtk_container_add (GTK_CONTAINER (menubar1), menu_figures); menu_figures_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_figures), menu_figures_menu); menu_fixtures_week = gtk_image_menu_item_new_with_mnemonic (_("Fixtures (week)")); gtk_widget_show (menu_fixtures_week); gtk_container_add (GTK_CONTAINER (menu_figures_menu), menu_fixtures_week); gtk_widget_add_accelerator (menu_fixtures_week, "activate", accel_group, GDK_F3, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2728 = create_pixmap (main_window, "menu_fixtures.png"); gtk_widget_show (image2728); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_fixtures_week), image2728); menu_fixtures = gtk_image_menu_item_new_with_mnemonic (_("Fixtures (competitions)")); gtk_widget_show (menu_fixtures); gtk_container_add (GTK_CONTAINER (menu_figures_menu), menu_fixtures); gtk_widget_add_accelerator (menu_fixtures, "activate", accel_group, GDK_F4, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2729 = create_pixmap (main_window, "menu_fixtures_comp.png"); gtk_widget_show (image2729); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_fixtures), image2729); menu_tables = gtk_image_menu_item_new_with_mnemonic (_("Tables")); gtk_widget_show (menu_tables); gtk_container_add (GTK_CONTAINER (menu_figures_menu), menu_tables); gtk_widget_add_accelerator (menu_tables, "activate", accel_group, GDK_F5, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2730 = create_pixmap (main_window, "menu_table.png"); gtk_widget_show (image2730); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_tables), image2730); menu_my_league_results = gtk_image_menu_item_new_with_mnemonic (_("My league results")); gtk_widget_show (menu_my_league_results); gtk_container_add (GTK_CONTAINER (menu_figures_menu), menu_my_league_results); gtk_widget_add_accelerator (menu_my_league_results, "activate", accel_group, GDK_F6, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2731 = create_pixmap (main_window, "menu_league_results.png"); gtk_widget_show (image2731); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_my_league_results), image2731); menu_season_results = gtk_image_menu_item_new_with_mnemonic (_("Season results")); gtk_widget_show (menu_season_results); gtk_container_add (GTK_CONTAINER (menu_figures_menu), menu_season_results); gtk_widget_add_accelerator (menu_season_results, "activate", accel_group, GDK_s, (GdkModifierType) GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE); image2732 = create_pixmap (main_window, "menu_season_res.png"); gtk_widget_show (image2732); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_season_results), image2732); menu_team = gtk_menu_item_new_with_mnemonic (_("_Team")); gtk_widget_show (menu_team); gtk_container_add (GTK_CONTAINER (menubar1), menu_team); menu_team_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_team), menu_team_menu); menu_playing_style = gtk_image_menu_item_new_with_mnemonic (_("Playing style")); gtk_widget_show (menu_playing_style); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_playing_style); image2733 = create_pixmap (main_window, "menu_style.png"); gtk_widget_show (image2733); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_playing_style), image2733); menu_playing_style_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_playing_style), menu_playing_style_menu); menu_all_out_defend = gtk_radio_menu_item_new_with_mnemonic (menu_all_out_defend_group, _("All Out Defend")); menu_all_out_defend_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_all_out_defend)); gtk_widget_show (menu_all_out_defend); gtk_container_add (GTK_CONTAINER (menu_playing_style_menu), menu_all_out_defend); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_all_out_defend), TRUE); menu_defend = gtk_radio_menu_item_new_with_mnemonic (menu_all_out_defend_group, _("Defend")); menu_all_out_defend_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_defend)); gtk_widget_show (menu_defend); gtk_container_add (GTK_CONTAINER (menu_playing_style_menu), menu_defend); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_defend), TRUE); menu_balanced = gtk_radio_menu_item_new_with_mnemonic (menu_all_out_defend_group, _("Balanced")); menu_all_out_defend_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_balanced)); gtk_widget_show (menu_balanced); gtk_container_add (GTK_CONTAINER (menu_playing_style_menu), menu_balanced); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_balanced), TRUE); menu_attack = gtk_radio_menu_item_new_with_mnemonic (menu_all_out_defend_group, _("Attack")); menu_all_out_defend_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_attack)); gtk_widget_show (menu_attack); gtk_container_add (GTK_CONTAINER (menu_playing_style_menu), menu_attack); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_attack), TRUE); menu_all_out_attack = gtk_radio_menu_item_new_with_mnemonic (menu_all_out_defend_group, _("All Out Attack")); menu_all_out_defend_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_all_out_attack)); gtk_widget_show (menu_all_out_attack); gtk_container_add (GTK_CONTAINER (menu_playing_style_menu), menu_all_out_attack); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_all_out_attack), TRUE); menu_scout = gtk_image_menu_item_new_with_mnemonic (_("Scout")); gtk_widget_show (menu_scout); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_scout); image2734 = create_pixmap (main_window, "menu_scout.png"); gtk_widget_show (image2734); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_scout), image2734); menu_scout_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_scout), menu_scout_menu); menu_scout_best = gtk_radio_menu_item_new_with_mnemonic (menu_scout_best_group, _("Best")); menu_scout_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_scout_best)); gtk_widget_show (menu_scout_best); gtk_container_add (GTK_CONTAINER (menu_scout_menu), menu_scout_best); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_scout_best), TRUE); menu_scout_good = gtk_radio_menu_item_new_with_mnemonic (menu_scout_best_group, _("Good")); menu_scout_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_scout_good)); gtk_widget_show (menu_scout_good); gtk_container_add (GTK_CONTAINER (menu_scout_menu), menu_scout_good); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_scout_good), TRUE); menu_scout_average = gtk_radio_menu_item_new_with_mnemonic (menu_scout_best_group, _("Average")); menu_scout_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_scout_average)); gtk_widget_show (menu_scout_average); gtk_container_add (GTK_CONTAINER (menu_scout_menu), menu_scout_average); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_scout_average), TRUE); menu_scout_bad = gtk_radio_menu_item_new_with_mnemonic (menu_scout_best_group, _("Bad")); menu_scout_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_scout_bad)); gtk_widget_show (menu_scout_bad); gtk_container_add (GTK_CONTAINER (menu_scout_menu), menu_scout_bad); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_scout_bad), TRUE); menu_physio = gtk_image_menu_item_new_with_mnemonic (_("Physio")); gtk_widget_show (menu_physio); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_physio); image2735 = create_pixmap (main_window, "menu_physio.png"); gtk_widget_show (image2735); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_physio), image2735); menu_physio_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_physio), menu_physio_menu); menu_physio_best = gtk_radio_menu_item_new_with_mnemonic (menu_physio_best_group, _("Best")); menu_physio_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_physio_best)); gtk_widget_show (menu_physio_best); gtk_container_add (GTK_CONTAINER (menu_physio_menu), menu_physio_best); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_physio_best), TRUE); menu_physio_good = gtk_radio_menu_item_new_with_mnemonic (menu_physio_best_group, _("Good")); menu_physio_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_physio_good)); gtk_widget_show (menu_physio_good); gtk_container_add (GTK_CONTAINER (menu_physio_menu), menu_physio_good); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_physio_good), TRUE); menu_physio_average = gtk_radio_menu_item_new_with_mnemonic (menu_physio_best_group, _("Average")); menu_physio_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_physio_average)); gtk_widget_show (menu_physio_average); gtk_container_add (GTK_CONTAINER (menu_physio_menu), menu_physio_average); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_physio_average), TRUE); menu_physio_bad = gtk_radio_menu_item_new_with_mnemonic (menu_physio_best_group, _("Bad")); menu_physio_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_physio_bad)); gtk_widget_show (menu_physio_bad); gtk_container_add (GTK_CONTAINER (menu_physio_menu), menu_physio_bad); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_physio_bad), TRUE); menu_youth_academy = gtk_image_menu_item_new_with_mnemonic (_("Youth academy")); gtk_widget_show (menu_youth_academy); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_youth_academy); image2736 = create_pixmap (main_window, "menu_youth_academy.png"); gtk_widget_show (image2736); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_youth_academy), image2736); menu_youth_academy_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_youth_academy), menu_youth_academy_menu); menu_show_youth_academy = gtk_menu_item_new_with_mnemonic (_("Show youth academy")); gtk_widget_show (menu_show_youth_academy); gtk_container_add (GTK_CONTAINER (menu_youth_academy_menu), menu_show_youth_academy); gtk_widget_add_accelerator (menu_show_youth_academy, "activate", accel_group, GDK_y, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); youth_coach1 = gtk_menu_item_new_with_mnemonic (_("Youth coach")); gtk_widget_show (youth_coach1); gtk_container_add (GTK_CONTAINER (menu_youth_academy_menu), youth_coach1); youth_coach1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (youth_coach1), youth_coach1_menu); menu_yc_best = gtk_radio_menu_item_new_with_mnemonic (menu_yc_best_group, _("Best")); menu_yc_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_yc_best)); gtk_widget_show (menu_yc_best); gtk_container_add (GTK_CONTAINER (youth_coach1_menu), menu_yc_best); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_yc_best), TRUE); menu_yc_good = gtk_radio_menu_item_new_with_mnemonic (menu_yc_best_group, _("Good")); menu_yc_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_yc_good)); gtk_widget_show (menu_yc_good); gtk_container_add (GTK_CONTAINER (youth_coach1_menu), menu_yc_good); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_yc_good), TRUE); menu_yc_average = gtk_radio_menu_item_new_with_mnemonic (menu_yc_best_group, _("Average")); menu_yc_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_yc_average)); gtk_widget_show (menu_yc_average); gtk_container_add (GTK_CONTAINER (youth_coach1_menu), menu_yc_average); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_yc_average), TRUE); menu_yc_bad = gtk_radio_menu_item_new_with_mnemonic (menu_yc_best_group, _("Bad")); menu_yc_best_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_yc_bad)); gtk_widget_show (menu_yc_bad); gtk_container_add (GTK_CONTAINER (youth_coach1_menu), menu_yc_bad); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_yc_bad), TRUE); recruiting_preference1 = gtk_menu_item_new_with_mnemonic (_("Recruiting preference")); gtk_widget_show (recruiting_preference1); gtk_container_add (GTK_CONTAINER (menu_youth_academy_menu), recruiting_preference1); recruiting_preference1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (recruiting_preference1), recruiting_preference1_menu); menu_recruit0 = gtk_radio_menu_item_new_with_mnemonic (menu_recruit0_group, _("Goalies")); menu_recruit0_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_recruit0)); gtk_widget_show (menu_recruit0); gtk_container_add (GTK_CONTAINER (recruiting_preference1_menu), menu_recruit0); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_recruit0), TRUE); menu_recruit1 = gtk_radio_menu_item_new_with_mnemonic (menu_recruit0_group, _("Defenders")); menu_recruit0_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_recruit1)); gtk_widget_show (menu_recruit1); gtk_container_add (GTK_CONTAINER (recruiting_preference1_menu), menu_recruit1); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_recruit1), TRUE); menu_recruit2 = gtk_radio_menu_item_new_with_mnemonic (menu_recruit0_group, _("Midfielders")); menu_recruit0_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_recruit2)); gtk_widget_show (menu_recruit2); gtk_container_add (GTK_CONTAINER (recruiting_preference1_menu), menu_recruit2); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_recruit2), TRUE); menu_recruit3 = gtk_radio_menu_item_new_with_mnemonic (menu_recruit0_group, _("Forwards")); menu_recruit0_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_recruit3)); gtk_widget_show (menu_recruit3); gtk_container_add (GTK_CONTAINER (recruiting_preference1_menu), menu_recruit3); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_recruit3), TRUE); menu_recruit4 = gtk_radio_menu_item_new_with_mnemonic (menu_recruit0_group, _("Any")); menu_recruit0_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_recruit4)); gtk_widget_show (menu_recruit4); gtk_container_add (GTK_CONTAINER (recruiting_preference1_menu), menu_recruit4); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_recruit4), TRUE); menu_set_investment = gtk_menu_item_new_with_mnemonic (_("Set investment")); gtk_widget_show (menu_set_investment); gtk_container_add (GTK_CONTAINER (menu_youth_academy_menu), menu_set_investment); gtk_tooltips_set_tip (tooltips, menu_set_investment, _("Set the percentage of your income you want to devote to your youth academy."), NULL); menu_boost = gtk_image_menu_item_new_with_mnemonic (_("Boost")); gtk_widget_show (menu_boost); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_boost); image2737 = create_pixmap (main_window, "menu_boost.png"); gtk_widget_show (image2737); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_boost), image2737); menu_boost_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_boost), menu_boost_menu); menu_boost_on = gtk_radio_menu_item_new_with_mnemonic (menu_boost_on_group, _("On")); menu_boost_on_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_boost_on)); gtk_widget_show (menu_boost_on); gtk_container_add (GTK_CONTAINER (menu_boost_menu), menu_boost_on); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_boost_on), TRUE); menu_boost_off = gtk_radio_menu_item_new_with_mnemonic (menu_boost_on_group, _("Off")); menu_boost_on_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_boost_off)); gtk_widget_show (menu_boost_off); gtk_container_add (GTK_CONTAINER (menu_boost_menu), menu_boost_off); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_boost_off), TRUE); menu_boost_anti = gtk_radio_menu_item_new_with_mnemonic (menu_boost_on_group, _("Anti")); menu_boost_on_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_boost_anti)); gtk_widget_show (menu_boost_anti); gtk_container_add (GTK_CONTAINER (menu_boost_menu), menu_boost_anti); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_boost_anti), TRUE); trennlinie11 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie11); gtk_container_add (GTK_CONTAINER (menu_team_menu), trennlinie11); gtk_widget_set_sensitive (trennlinie11, FALSE); menu_training_camp = gtk_menu_item_new_with_mnemonic (_("Training camp")); gtk_widget_show (menu_training_camp); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_training_camp); trennlinie18 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie18); gtk_container_add (GTK_CONTAINER (menu_team_menu), trennlinie18); gtk_widget_set_sensitive (trennlinie18, FALSE); menu_reset_players = gtk_image_menu_item_new_with_mnemonic (_("Reset player list")); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_reset_players); gtk_tooltips_set_tip (tooltips, menu_reset_players, _("Reset player list to the formation at the beginning of the live game pause (right click on player list)"), NULL); image2738 = gtk_image_new_from_stock ("gtk-undo", GTK_ICON_SIZE_MENU); gtk_widget_show (image2738); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_reset_players), image2738); menu_custom_structure = gtk_image_menu_item_new_with_mnemonic (_("Enter custom structure")); gtk_widget_show (menu_custom_structure); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_custom_structure); image2739 = create_pixmap (main_window, "menu_structure.png"); gtk_widget_show (image2739); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_custom_structure), image2739); menu_rearrange_team = gtk_image_menu_item_new_with_mnemonic (_("Rearrange team")); gtk_widget_show (menu_rearrange_team); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_rearrange_team); gtk_tooltips_set_tip (tooltips, menu_rearrange_team, _("Try to put the startup players onto their favoured positions and sort the substitutes (Ctrl-R or middle click)"), NULL); gtk_widget_add_accelerator (menu_rearrange_team, "activate", accel_group, GDK_r, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2740 = create_pixmap (main_window, "menu_rearrange.png"); gtk_widget_show (image2740); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_rearrange_team), image2740); trennlinie8 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie8); gtk_container_add (GTK_CONTAINER (menu_team_menu), trennlinie8); gtk_widget_set_sensitive (trennlinie8, FALSE); menu_browse_teams = gtk_image_menu_item_new_with_mnemonic (_("Browse teams")); gtk_widget_show (menu_browse_teams); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_browse_teams); image2741 = create_pixmap (main_window, "menu_browse_tms.png"); gtk_widget_show (image2741); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_browse_teams), image2741); trennlinie16 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie16); gtk_container_add (GTK_CONTAINER (menu_team_menu), trennlinie16); gtk_widget_set_sensitive (trennlinie16, FALSE); menu_show_job_exchange = gtk_menu_item_new_with_mnemonic (_("Show job exchange")); gtk_widget_show (menu_show_job_exchange); gtk_container_add (GTK_CONTAINER (menu_team_menu), menu_show_job_exchange); gtk_tooltips_set_tip (tooltips, menu_show_job_exchange, _("Show the list of available manager jobs"), NULL); gtk_widget_add_accelerator (menu_show_job_exchange, "activate", accel_group, GDK_j, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); menu_player = gtk_menu_item_new_with_mnemonic (_("_Player")); gtk_widget_show (menu_player); gtk_container_add (GTK_CONTAINER (menubar1), menu_player); menu_player_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_player), menu_player_menu); menu_show_info = gtk_image_menu_item_new_with_mnemonic (_("Show info")); gtk_widget_show (menu_show_info); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_show_info); image2742 = create_pixmap (main_window, "menu_player_info.png"); gtk_widget_show (image2742); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_show_info), image2742); menu_put_on_transfer_list = gtk_image_menu_item_new_with_mnemonic (_("Put on transfer list")); gtk_widget_show (menu_put_on_transfer_list); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_put_on_transfer_list); image2743 = create_pixmap (main_window, "menu_player_put_transfer.png"); gtk_widget_show (image2743); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_put_on_transfer_list), image2743); menu_remove_from_transfer_list = gtk_image_menu_item_new_with_mnemonic (_("Remove from transfer list")); gtk_widget_show (menu_remove_from_transfer_list); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_remove_from_transfer_list); image2744 = create_pixmap (main_window, "menu_player_remove_transfer.png"); gtk_widget_show (image2744); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_remove_from_transfer_list), image2744); menu_offer_new_contract = gtk_image_menu_item_new_with_mnemonic (_("Offer new contract")); gtk_widget_show (menu_offer_new_contract); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_offer_new_contract); image2745 = create_pixmap (main_window, "menu_player_contract.png"); gtk_widget_show (image2745); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_offer_new_contract), image2745); menu_fire = gtk_image_menu_item_new_with_mnemonic (_("Fire")); gtk_widget_show (menu_fire); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_fire); image2746 = create_pixmap (main_window, "menu_player_fire.png"); gtk_widget_show (image2746); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_fire), image2746); menu_shoots_penalties = gtk_image_menu_item_new_with_mnemonic (_("Shoots penalties")); gtk_widget_show (menu_shoots_penalties); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_shoots_penalties); image2747 = create_pixmap (main_window, "menu_player_shoots.png"); gtk_widget_show (image2747); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_shoots_penalties), image2747); menu_move_to_youth_academy = gtk_image_menu_item_new_with_mnemonic (_("Move to youth academy")); gtk_widget_show (menu_move_to_youth_academy); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_move_to_youth_academy); image2748 = create_pixmap (main_window, "menu_player_move_to_ya.png"); gtk_widget_show (image2748); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_move_to_youth_academy), image2748); menu_edit_name = gtk_image_menu_item_new_with_mnemonic (_("Edit name")); gtk_widget_show (menu_edit_name); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_edit_name); image2749 = gtk_image_new_from_stock ("gtk-edit", GTK_ICON_SIZE_MENU); gtk_widget_show (image2749); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_edit_name), image2749); trennlinie10 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie10); gtk_container_add (GTK_CONTAINER (menu_player_menu), trennlinie10); gtk_widget_set_sensitive (trennlinie10, FALSE); menu_browse_players = gtk_image_menu_item_new_with_mnemonic (_("Browse players")); gtk_widget_show (menu_browse_players); gtk_container_add (GTK_CONTAINER (menu_player_menu), menu_browse_players); image2750 = create_pixmap (main_window, "menu_player_browse.png"); gtk_widget_show (image2750); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_browse_players), image2750); menu_user = gtk_menu_item_new_with_mnemonic (_("_User")); gtk_widget_show (menu_user); gtk_container_add (GTK_CONTAINER (menubar1), menu_user); menu_user_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_user), menu_user_menu); menu_user_show_last_match = gtk_image_menu_item_new_with_mnemonic (_("Show last match")); gtk_widget_show (menu_user_show_last_match); gtk_container_add (GTK_CONTAINER (menu_user_menu), menu_user_show_last_match); gtk_widget_add_accelerator (menu_user_show_last_match, "activate", accel_group, GDK_v, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2751 = create_pixmap (main_window, "menu_last_match.png"); gtk_widget_show (image2751); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_user_show_last_match), image2751); menu_user_show_last_stats = gtk_image_menu_item_new_with_mnemonic (_("Show last match stats")); gtk_widget_show (menu_user_show_last_stats); gtk_container_add (GTK_CONTAINER (menu_user_menu), menu_user_show_last_stats); gtk_widget_add_accelerator (menu_user_show_last_stats, "activate", accel_group, GDK_F2, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2752 = create_pixmap (main_window, "menu_match_stats.png"); gtk_widget_show (image2752); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_user_show_last_stats), image2752); menu_user_show_coming_matches = gtk_image_menu_item_new_with_mnemonic (_("Show coming matches")); gtk_widget_show (menu_user_show_coming_matches); gtk_container_add (GTK_CONTAINER (menu_user_menu), menu_user_show_coming_matches); gtk_widget_add_accelerator (menu_user_show_coming_matches, "activate", accel_group, GDK_F1, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2753 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU); gtk_widget_show (image2753); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_user_show_coming_matches), image2753); trennlinie9 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie9); gtk_container_add (GTK_CONTAINER (menu_user_menu), trennlinie9); gtk_widget_set_sensitive (trennlinie9, FALSE); menu_next_user = gtk_image_menu_item_new_with_mnemonic (_("Next user")); gtk_widget_show (menu_next_user); gtk_container_add (GTK_CONTAINER (menu_user_menu), menu_next_user); gtk_widget_add_accelerator (menu_next_user, "activate", accel_group, GDK_F9, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2754 = gtk_image_new_from_stock ("gtk-media-forward", GTK_ICON_SIZE_MENU); gtk_widget_show (image2754); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_next_user), image2754); menu_previous_user = gtk_image_menu_item_new_with_mnemonic (_("Previous user")); gtk_widget_show (menu_previous_user); gtk_container_add (GTK_CONTAINER (menu_user_menu), menu_previous_user); gtk_widget_add_accelerator (menu_previous_user, "activate", accel_group, GDK_F8, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2755 = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_MENU); gtk_widget_show (image2755); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_previous_user), image2755); menu_manage_users = gtk_image_menu_item_new_with_mnemonic (_("Manage users")); gtk_widget_show (menu_manage_users); gtk_container_add (GTK_CONTAINER (menu_user_menu), menu_manage_users); gtk_widget_add_accelerator (menu_manage_users, "activate", accel_group, GDK_F12, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2756 = gtk_image_new_from_stock ("gtk-justify-fill", GTK_ICON_SIZE_MENU); gtk_widget_show (image2756); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_manage_users), image2756); menu_finances_stadium = gtk_menu_item_new_with_mnemonic (_("Fin_Stad")); gtk_widget_show (menu_finances_stadium); gtk_container_add (GTK_CONTAINER (menubar1), menu_finances_stadium); menu_finances_stadium_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_finances_stadium), menu_finances_stadium_menu); menu_show_finances = gtk_image_menu_item_new_with_mnemonic (_("Show finances")); gtk_widget_show (menu_show_finances); gtk_container_add (GTK_CONTAINER (menu_finances_stadium_menu), menu_show_finances); gtk_widget_add_accelerator (menu_show_finances, "activate", accel_group, GDK_f, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2757 = create_pixmap (main_window, "menu_finances.png"); gtk_widget_show (image2757); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_show_finances), image2757); menu_show_stadium = gtk_image_menu_item_new_with_mnemonic (_("Show stadium")); gtk_widget_show (menu_show_stadium); gtk_container_add (GTK_CONTAINER (menu_finances_stadium_menu), menu_show_stadium); gtk_widget_add_accelerator (menu_show_stadium, "activate", accel_group, GDK_f, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2758 = create_pixmap (main_window, "menu_stadium.png"); gtk_widget_show (image2758); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_show_stadium), image2758); automatic_loan_repayment = gtk_menu_item_new_with_mnemonic (_("Automatic loan repayment")); gtk_widget_show (automatic_loan_repayment); gtk_container_add (GTK_CONTAINER (menu_finances_stadium_menu), automatic_loan_repayment); gtk_widget_add_accelerator (automatic_loan_repayment, "activate", accel_group, GDK_d, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); trennlinie15 = gtk_separator_menu_item_new (); gtk_widget_show (trennlinie15); gtk_container_add (GTK_CONTAINER (menu_finances_stadium_menu), trennlinie15); gtk_widget_set_sensitive (trennlinie15, FALSE); menu_betting = gtk_menu_item_new_with_mnemonic (_("Betting")); gtk_widget_show (menu_betting); gtk_container_add (GTK_CONTAINER (menu_finances_stadium_menu), menu_betting); gtk_tooltips_set_tip (tooltips, menu_betting, _("Show the betting window"), NULL); gtk_widget_add_accelerator (menu_betting, "activate", accel_group, GDK_b, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); stats1 = gtk_menu_item_new_with_mnemonic (_("St_ats")); gtk_widget_show (stats1); gtk_container_add (GTK_CONTAINER (menubar1), stats1); stats1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (stats1), stats1_menu); menu_news = gtk_menu_item_new_with_mnemonic (_("News")); gtk_widget_show (menu_news); gtk_container_add (GTK_CONTAINER (stats1_menu), menu_news); gtk_widget_add_accelerator (menu_news, "activate", accel_group, GDK_n, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); menu_league_stats = gtk_image_menu_item_new_with_mnemonic (_("League stats")); gtk_widget_show (menu_league_stats); gtk_container_add (GTK_CONTAINER (stats1_menu), menu_league_stats); gtk_widget_add_accelerator (menu_league_stats, "activate", accel_group, GDK_s, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2759 = create_pixmap (main_window, "menu_league_stats.png"); gtk_widget_show (image2759); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_league_stats), image2759); menu_season_history = gtk_image_menu_item_new_with_mnemonic (_("Season history")); gtk_widget_show (menu_season_history); gtk_container_add (GTK_CONTAINER (stats1_menu), menu_season_history); gtk_widget_add_accelerator (menu_season_history, "activate", accel_group, GDK_h, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image2760 = create_pixmap (main_window, "menu_history.png"); gtk_widget_show (image2760); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_season_history), image2760); menu_user_show_history = gtk_image_menu_item_new_with_mnemonic (_("User history")); gtk_widget_show (menu_user_show_history); gtk_container_add (GTK_CONTAINER (stats1_menu), menu_user_show_history); gtk_widget_add_accelerator (menu_user_show_history, "activate", accel_group, GDK_h, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2761 = create_pixmap (main_window, "menu_history.png"); gtk_widget_show (image2761); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_user_show_history), image2761); memorable_matches = gtk_image_menu_item_new_with_mnemonic (_("Memorable matches")); gtk_widget_show (memorable_matches); gtk_container_add (GTK_CONTAINER (stats1_menu), memorable_matches); image2762 = create_pixmap (main_window, "menu_mmatches.png"); gtk_widget_show (image2762); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (memorable_matches), image2762); memorable_matches_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (memorable_matches), memorable_matches_menu); mm_add_last_match = gtk_image_menu_item_new_with_mnemonic (_("Add last match")); gtk_widget_show (mm_add_last_match); gtk_container_add (GTK_CONTAINER (memorable_matches_menu), mm_add_last_match); gtk_tooltips_set_tip (tooltips, mm_add_last_match, _("Add last recorded match to the current memorable matches file."), NULL); gtk_widget_add_accelerator (mm_add_last_match, "activate", accel_group, GDK_a, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2763 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); gtk_widget_show (image2763); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mm_add_last_match), image2763); mm_manage_matches = gtk_image_menu_item_new_with_mnemonic (_("Manage matches")); gtk_widget_show (mm_manage_matches); gtk_container_add (GTK_CONTAINER (memorable_matches_menu), mm_manage_matches); gtk_tooltips_set_tip (tooltips, mm_manage_matches, _("Replay, delete or add memorable matches."), NULL); gtk_widget_add_accelerator (mm_manage_matches, "activate", accel_group, GDK_m, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image2764 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU); gtk_widget_show (image2764); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mm_manage_matches), image2764); menu_help1 = gtk_menu_item_new_with_mnemonic (_("_Help")); gtk_widget_show (menu_help1); gtk_container_add (GTK_CONTAINER (menubar1), menu_help1); menu_help1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_help1), menu_help1_menu); menu_about = gtk_image_menu_item_new_with_mnemonic (_("About")); gtk_widget_show (menu_about); gtk_container_add (GTK_CONTAINER (menu_help1_menu), menu_about); image2765 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_MENU); gtk_widget_show (image2765); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_about), image2765); menu_contributors = gtk_image_menu_item_new_with_mnemonic (_("Contributors")); gtk_widget_show (menu_contributors); gtk_container_add (GTK_CONTAINER (menu_help1_menu), menu_contributors); image2766 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); gtk_widget_show (image2766); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_contributors), image2766); menu_help = gtk_image_menu_item_new_with_mnemonic (_("Help")); gtk_widget_show (menu_help); gtk_container_add (GTK_CONTAINER (menu_help1_menu), menu_help); image2767 = gtk_image_new_from_stock ("gtk-help", GTK_ICON_SIZE_MENU); gtk_widget_show (image2767); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_help), image2767); hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0); button_load = gtk_button_new (); gtk_widget_show (button_load); gtk_box_pack_start (GTK_BOX (hbox1), button_load, FALSE, FALSE, 2); gtk_container_set_border_width (GTK_CONTAINER (button_load), 2); gtk_tooltips_set_tip (tooltips, button_load, _("Load game (Ctrl - O)"), NULL); image11 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image11); gtk_container_add (GTK_CONTAINER (button_load), image11); button_save = gtk_button_new (); gtk_widget_show (button_save); gtk_box_pack_start (GTK_BOX (hbox1), button_save, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_save), 2); gtk_tooltips_set_tip (tooltips, button_save, _("Save game (Ctrl - S)"), NULL); image12 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image12); gtk_container_add (GTK_CONTAINER (button_save), image12); button_quit = gtk_button_new (); gtk_widget_show (button_quit); gtk_box_pack_start (GTK_BOX (hbox1), button_quit, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_quit), 2); gtk_tooltips_set_tip (tooltips, button_quit, _("Quit (Ctrl - Q)"), NULL); image13 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image13); gtk_container_add (GTK_CONTAINER (button_quit), image13); vseparator1 = gtk_vseparator_new (); gtk_widget_show (vseparator1); gtk_box_pack_start (GTK_BOX (hbox1), vseparator1, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator1, 10, 1); vseparator11 = gtk_vseparator_new (); gtk_widget_show (vseparator11); gtk_box_pack_start (GTK_BOX (hbox1), vseparator11, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator11, 10, 1); button_back_to_main = gtk_button_new (); gtk_widget_show (button_back_to_main); gtk_box_pack_start (GTK_BOX (hbox1), button_back_to_main, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_back_to_main), 2); gtk_tooltips_set_tip (tooltips, button_back_to_main, _("Back to main menu (Esc)"), NULL); gtk_widget_add_accelerator (button_back_to_main, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image20 = gtk_image_new_from_stock ("gtk-home", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image20); gtk_container_add (GTK_CONTAINER (button_back_to_main), image20); button_transfers = gtk_button_new (); gtk_widget_show (button_transfers); gtk_box_pack_start (GTK_BOX (hbox1), button_transfers, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_transfers), 2); gtk_tooltips_set_tip (tooltips, button_transfers, _("Show transferlist (T)"), NULL); gtk_widget_add_accelerator (button_transfers, "clicked", accel_group, GDK_t, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image32 = create_pixmap (main_window, "transfers.png"); gtk_widget_show (image32); gtk_container_add (GTK_CONTAINER (button_transfers), image32); vseparator16 = gtk_vseparator_new (); gtk_widget_show (vseparator16); gtk_box_pack_start (GTK_BOX (hbox1), vseparator16, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator16, 40, 1); button_new_week = gtk_button_new (); gtk_widget_show (button_new_week); gtk_box_pack_start (GTK_BOX (hbox1), button_new_week, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_new_week), 2); gtk_tooltips_set_tip (tooltips, button_new_week, _("Begin a new week (Space)"), NULL); gtk_widget_add_accelerator (button_new_week, "clicked", accel_group, GDK_space, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image23 = create_pixmap (main_window, "new_week.png"); gtk_widget_show (image23); gtk_container_add (GTK_CONTAINER (button_new_week), image23); entry_message = gtk_entry_new (); gtk_widget_show (entry_message); gtk_box_pack_start (GTK_BOX (hbox1), entry_message, TRUE, TRUE, 5); gtk_editable_set_editable (GTK_EDITABLE (entry_message), FALSE); hseparator1 = gtk_hseparator_new (); gtk_widget_show (hseparator1); gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator1, 1, 10); eventbox_main_info = gtk_event_box_new (); gtk_widget_show (eventbox_main_info); gtk_box_pack_start (GTK_BOX (vbox1), eventbox_main_info, FALSE, FALSE, 0); hbox18 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox18); gtk_container_add (GTK_CONTAINER (eventbox_main_info), hbox18); label_user = gtk_label_new (""); gtk_widget_show (label_user); gtk_box_pack_start (GTK_BOX (hbox18), label_user, FALSE, FALSE, 0); label23 = gtk_label_new (_(" Season ")); gtk_widget_show (label23); gtk_box_pack_start (GTK_BOX (hbox18), label23, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label23), TRUE); gtk_misc_set_padding (GTK_MISC (label23), 5, 0); label_season = gtk_label_new (""); gtk_widget_show (label_season); gtk_box_pack_start (GTK_BOX (hbox18), label_season, FALSE, FALSE, 0); label25 = gtk_label_new (_(" Week ")); gtk_widget_show (label25); gtk_box_pack_start (GTK_BOX (hbox18), label25, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label25), TRUE); gtk_misc_set_padding (GTK_MISC (label25), 5, 0); label_week = gtk_label_new (""); gtk_widget_show (label_week); gtk_box_pack_start (GTK_BOX (hbox18), label_week, FALSE, FALSE, 0); label13114 = gtk_label_new (_(" Round ")); gtk_widget_show (label13114); gtk_box_pack_start (GTK_BOX (hbox18), label13114, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label13114), TRUE); label_round = gtk_label_new (""); gtk_widget_show (label_round); gtk_box_pack_start (GTK_BOX (hbox18), label_round, FALSE, FALSE, 0); vseparator14 = gtk_vseparator_new (); gtk_widget_show (vseparator14); gtk_box_pack_start (GTK_BOX (hbox18), vseparator14, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator14, 15, 1); hbox48 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox48); gtk_box_pack_start (GTK_BOX (hbox18), hbox48, FALSE, FALSE, 0); eventbox_style = gtk_event_box_new (); gtk_widget_show (eventbox_style); gtk_box_pack_start (GTK_BOX (hbox48), eventbox_style, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, eventbox_style, _("Right click and left click to change your playing style"), NULL); image_style = create_pixmap (main_window, NULL); gtk_widget_show (image_style); gtk_container_add (GTK_CONTAINER (eventbox_style), image_style); gtk_misc_set_padding (GTK_MISC (image_style), 2, 0); eventbox_boost = gtk_event_box_new (); gtk_widget_show (eventbox_boost); gtk_box_pack_start (GTK_BOX (hbox48), eventbox_boost, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, eventbox_boost, _("Right click and left click to change boost state"), NULL); image_boost = create_pixmap (main_window, NULL); gtk_widget_show (image_boost); gtk_container_add (GTK_CONTAINER (eventbox_boost), image_boost); gtk_misc_set_padding (GTK_MISC (image_boost), 2, 0); eventbox_team_name = gtk_event_box_new (); gtk_widget_show (eventbox_team_name); gtk_box_pack_start (GTK_BOX (hbox48), eventbox_team_name, FALSE, FALSE, 0); label_team = gtk_label_new (""); gtk_widget_show (label_team); gtk_container_add (GTK_CONTAINER (eventbox_team_name), label_team); gtk_misc_set_padding (GTK_MISC (label_team), 5, 0); label_league = gtk_label_new (""); gtk_widget_show (label_league); gtk_box_pack_start (GTK_BOX (hbox18), label_league, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_league), TRUE); gtk_misc_set_padding (GTK_MISC (label_league), 5, 0); eventbox_rank = gtk_event_box_new (); gtk_widget_show (eventbox_rank); gtk_box_pack_start (GTK_BOX (hbox18), eventbox_rank, FALSE, FALSE, 0); hbox49 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox49); gtk_container_add (GTK_CONTAINER (eventbox_rank), hbox49); label29 = gtk_label_new (_("Rank ")); gtk_widget_show (label29); gtk_box_pack_start (GTK_BOX (hbox49), label29, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label29), TRUE); gtk_misc_set_padding (GTK_MISC (label29), 5, 0); label_rank = gtk_label_new (""); gtk_widget_show (label_rank); gtk_box_pack_start (GTK_BOX (hbox49), label_rank, FALSE, FALSE, 0); vseparator15 = gtk_vseparator_new (); gtk_widget_show (vseparator15); gtk_box_pack_start (GTK_BOX (hbox18), vseparator15, FALSE, TRUE, 0); gtk_widget_set_size_request (vseparator15, 15, 1); label34 = gtk_label_new (_("Money ")); gtk_widget_show (label34); gtk_box_pack_start (GTK_BOX (hbox18), label34, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label34), TRUE); gtk_misc_set_padding (GTK_MISC (label34), 5, 0); label_money = gtk_label_new (""); gtk_widget_show (label_money); gtk_box_pack_start (GTK_BOX (hbox18), label_money, FALSE, FALSE, 0); vseparator17 = gtk_vseparator_new (); gtk_widget_show (vseparator17); gtk_box_pack_start (GTK_BOX (hbox18), vseparator17, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator17, 15, 1); eventbox1 = gtk_event_box_new (); gtk_widget_show (eventbox1); gtk_box_pack_start (GTK_BOX (hbox18), eventbox1, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, eventbox1, _("First value: average current skill of the first 11 players. Second value: average skill of all players."), NULL); hbox50 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox50); gtk_container_add (GTK_CONTAINER (eventbox1), hbox50); label69 = gtk_label_new (_("Av. skills: ")); gtk_widget_show (label69); gtk_box_pack_start (GTK_BOX (hbox50), label69, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label69), TRUE); label_av_skills = gtk_label_new (""); gtk_widget_show (label_av_skills); gtk_box_pack_start (GTK_BOX (hbox50), label_av_skills, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label_av_skills), 5, 0); hbox7 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox7); gtk_box_pack_start (GTK_BOX (vbox1), hbox7, TRUE, TRUE, 0); hpaned2 = gtk_hpaned_new (); gtk_widget_show (hpaned2); gtk_box_pack_start (GTK_BOX (hbox7), hpaned2, TRUE, TRUE, 3); gtk_paned_set_position (GTK_PANED (hpaned2), 470); vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox3); gtk_paned_pack1 (GTK_PANED (hpaned2), vbox3, FALSE, TRUE); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow2); gtk_box_pack_start (GTK_BOX (vbox3), scrolledwindow2, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow2), 2); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN); viewport1 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport1); gtk_container_add (GTK_CONTAINER (scrolledwindow2), viewport1); notebook_player = gtk_notebook_new (); gtk_widget_show (notebook_player); gtk_container_add (GTK_CONTAINER (viewport1), notebook_player); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook_player), FALSE); player_list1 = gtk_tree_view_new (); gtk_widget_show (player_list1); gtk_container_add (GTK_CONTAINER (notebook_player), player_list1); label71 = gtk_label_new (_("Player list 1")); gtk_widget_show (label71); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_player), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_player), 0), label71); player_list2 = gtk_tree_view_new (); gtk_widget_show (player_list2); gtk_container_add (GTK_CONTAINER (notebook_player), player_list2); label72 = gtk_label_new (_("Player list 2")); gtk_widget_show (label72); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_player), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_player), 1), label72); button_reset_players = gtk_button_new (); gtk_box_pack_start (GTK_BOX (vbox3), button_reset_players, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_reset_players, _("Reset player list to the formation at the beginning of the live game pause (right click on player list)"), NULL); image298 = gtk_image_new_from_stock ("gtk-undo", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image298); gtk_container_add (GTK_CONTAINER (button_reset_players), image298); vbox8 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox8); gtk_paned_pack2 (GTK_PANED (hpaned2), vbox8, TRUE, TRUE); hbox_14 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox_14); gtk_box_pack_start (GTK_BOX (vbox8), hbox_14, FALSE, FALSE, 4); button_cl_back = gtk_button_new (); gtk_widget_show (button_cl_back); gtk_box_pack_start (GTK_BOX (hbox_14), button_cl_back, TRUE, TRUE, 0); gtk_widget_set_sensitive (button_cl_back, FALSE); gtk_tooltips_set_tip (tooltips, button_cl_back, _("Previous league/cup (1)"), NULL); gtk_widget_add_accelerator (button_cl_back, "clicked", accel_group, GDK_1, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image215 = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image215); gtk_container_add (GTK_CONTAINER (button_cl_back), image215); button_cl_forward = gtk_button_new (); gtk_widget_show (button_cl_forward); gtk_box_pack_start (GTK_BOX (hbox_14), button_cl_forward, TRUE, TRUE, 0); gtk_widget_set_sensitive (button_cl_forward, FALSE); gtk_tooltips_set_tip (tooltips, button_cl_forward, _("Next league/cup (2)"), NULL); gtk_widget_add_accelerator (button_cl_forward, "clicked", accel_group, GDK_2, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image216 = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image216); gtk_container_add (GTK_CONTAINER (button_cl_forward), image216); button_browse_back = gtk_button_new (); gtk_widget_show (button_browse_back); gtk_box_pack_start (GTK_BOX (hbox_14), button_browse_back, TRUE, TRUE, 0); gtk_widget_set_sensitive (button_browse_back, FALSE); gtk_tooltips_set_tip (tooltips, button_browse_back, _("Previous (Q)"), NULL); gtk_widget_add_accelerator (button_browse_back, "clicked", accel_group, GDK_q, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image10 = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image10); gtk_container_add (GTK_CONTAINER (button_browse_back), image10); button_browse_forward = gtk_button_new (); gtk_widget_show (button_browse_forward); gtk_box_pack_start (GTK_BOX (hbox_14), button_browse_forward, TRUE, TRUE, 0); gtk_widget_set_sensitive (button_browse_forward, FALSE); gtk_tooltips_set_tip (tooltips, button_browse_forward, _("Next (W)"), NULL); gtk_widget_add_accelerator (button_browse_forward, "clicked", accel_group, GDK_w, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); image9 = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image9); gtk_container_add (GTK_CONTAINER (button_browse_forward), image9); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow3); gtk_box_pack_start (GTK_BOX (vbox8), scrolledwindow3, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow3), 2); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN); treeview_right = gtk_tree_view_new (); gtk_widget_show (treeview_right); gtk_container_add (GTK_CONTAINER (scrolledwindow3), treeview_right); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview_right), FALSE); g_signal_connect ((gpointer) main_window, "delete_event", G_CALLBACK (on_button_quit_clicked), NULL); g_signal_connect ((gpointer) menu_new, "activate", G_CALLBACK (on_menu_new_activate), NULL); g_signal_connect ((gpointer) menu_open, "activate", G_CALLBACK (on_menu_open_activate), NULL); g_signal_connect ((gpointer) menu_load_last_save, "activate", G_CALLBACK (on_menu_load_last_save_activate), NULL); g_signal_connect ((gpointer) menu_save, "activate", G_CALLBACK (on_menu_save_activate), NULL); g_signal_connect ((gpointer) menu_save_as, "activate", G_CALLBACK (on_menu_save_as_activate), NULL); g_signal_connect ((gpointer) menu_quit, "activate", G_CALLBACK (on_menu_quit_activate), NULL); g_signal_connect ((gpointer) menu_preferences, "activate", G_CALLBACK (on_menu_preferences_activate), NULL); g_signal_connect ((gpointer) menu_job_offers, "button_press_event", G_CALLBACK (on_menu_check_button_press_event), NULL); g_signal_connect ((gpointer) menu_live_game, "button_press_event", G_CALLBACK (on_menu_check_button_press_event), NULL); g_signal_connect ((gpointer) menu_overwrite, "button_press_event", G_CALLBACK (on_menu_check_button_press_event), NULL); g_signal_connect ((gpointer) menu_save_window_geometry, "activate", G_CALLBACK (on_menu_save_window_geometry_activate), NULL); g_signal_connect ((gpointer) menu_fixtures_week, "activate", G_CALLBACK (on_menu_fixtures_week_activate), NULL); g_signal_connect ((gpointer) menu_fixtures, "activate", G_CALLBACK (on_menu_fixtures_activate), NULL); g_signal_connect ((gpointer) menu_tables, "activate", G_CALLBACK (on_menu_tables_activate), NULL); g_signal_connect ((gpointer) menu_my_league_results, "activate", G_CALLBACK (on_menu_my_league_results_activate), NULL); g_signal_connect ((gpointer) menu_season_results, "activate", G_CALLBACK (on_menu_season_results_activate), NULL); g_signal_connect ((gpointer) menu_all_out_defend, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_defend, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_balanced, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_attack, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_all_out_attack, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_scout_best, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_scout_good, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_scout_average, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_scout_bad, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_physio_best, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_physio_good, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_physio_average, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_physio_bad, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_show_youth_academy, "activate", G_CALLBACK (on_menu_show_youth_academy_activate), NULL); g_signal_connect ((gpointer) menu_yc_best, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_yc_good, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_yc_average, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_yc_bad, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_recruit0, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_recruit1, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_recruit2, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_recruit3, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_recruit4, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_set_investment, "activate", G_CALLBACK (on_menu_set_investment_activate), NULL); g_signal_connect ((gpointer) menu_boost_on, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_boost_off, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_boost_anti, "button_release_event", G_CALLBACK (on_menu_team_button_release_event), NULL); g_signal_connect ((gpointer) menu_training_camp, "activate", G_CALLBACK (on_training_camp_activate), NULL); g_signal_connect ((gpointer) menu_reset_players, "activate", G_CALLBACK (on_menu_reset_players_activate), NULL); g_signal_connect ((gpointer) menu_custom_structure, "activate", G_CALLBACK (on_menu_custom_structure_activate), NULL); g_signal_connect ((gpointer) menu_rearrange_team, "activate", G_CALLBACK (on_menu_rearrange_team_activate), NULL); g_signal_connect ((gpointer) menu_browse_teams, "activate", G_CALLBACK (on_menu_browse_teams_activate), NULL); g_signal_connect ((gpointer) menu_show_job_exchange, "activate", G_CALLBACK (on_menu_show_job_exchange_activate), NULL); g_signal_connect ((gpointer) menu_show_info, "activate", G_CALLBACK (on_menu_show_info_activate), NULL); g_signal_connect ((gpointer) menu_put_on_transfer_list, "activate", G_CALLBACK (on_menu_put_on_transfer_list_activate), NULL); g_signal_connect ((gpointer) menu_remove_from_transfer_list, "activate", G_CALLBACK (on_menu_remove_from_transfer_list_activate), NULL); g_signal_connect ((gpointer) menu_offer_new_contract, "activate", G_CALLBACK (on_menu_offer_new_contract_activate), NULL); g_signal_connect ((gpointer) menu_fire, "activate", G_CALLBACK (on_menu_fire_activate), NULL); g_signal_connect ((gpointer) menu_shoots_penalties, "activate", G_CALLBACK (on_menu_shoots_penalties_activate), NULL); g_signal_connect ((gpointer) menu_move_to_youth_academy, "activate", G_CALLBACK (on_menu_move_to_youth_academy_activate), NULL); g_signal_connect ((gpointer) menu_edit_name, "activate", G_CALLBACK (on_menu_edit_name_activate), NULL); g_signal_connect ((gpointer) menu_browse_players, "activate", G_CALLBACK (on_menu_browse_players_activate), NULL); g_signal_connect ((gpointer) menu_user_show_last_match, "activate", G_CALLBACK (on_menu_user_show_last_match_activate), NULL); g_signal_connect ((gpointer) menu_user_show_last_stats, "activate", G_CALLBACK (on_menu_user_show_last_stats_activate), NULL); g_signal_connect ((gpointer) menu_user_show_coming_matches, "activate", G_CALLBACK (on_menu_user_show_coming_matches_activate), NULL); g_signal_connect ((gpointer) menu_next_user, "activate", G_CALLBACK (on_menu_next_user_activate), NULL); g_signal_connect ((gpointer) menu_previous_user, "activate", G_CALLBACK (on_menu_previous_user_activate), NULL); g_signal_connect ((gpointer) menu_manage_users, "activate", G_CALLBACK (on_menu_manage_users_activate), NULL); g_signal_connect ((gpointer) menu_show_finances, "activate", G_CALLBACK (on_menu_show_finances_activate), NULL); g_signal_connect ((gpointer) menu_show_stadium, "activate", G_CALLBACK (on_menu_show_stadium_activate), NULL); g_signal_connect ((gpointer) automatic_loan_repayment, "activate", G_CALLBACK (on_automatic_loan_repayment_activate), NULL); g_signal_connect ((gpointer) menu_betting, "activate", G_CALLBACK (on_menu_betting_activate), NULL); g_signal_connect ((gpointer) menu_news, "activate", G_CALLBACK (on_menu_news_activate), NULL); g_signal_connect ((gpointer) menu_league_stats, "activate", G_CALLBACK (on_menu_league_stats_activate), NULL); g_signal_connect ((gpointer) menu_season_history, "activate", G_CALLBACK (on_menu_season_history_activate), NULL); g_signal_connect ((gpointer) menu_user_show_history, "activate", G_CALLBACK (on_menu_user_show_history_activate), NULL); g_signal_connect ((gpointer) mm_add_last_match, "activate", G_CALLBACK (on_mm_add_last_match_activate), NULL); g_signal_connect ((gpointer) mm_manage_matches, "activate", G_CALLBACK (on_mm_manage_matches_activate), NULL); g_signal_connect ((gpointer) menu_about, "activate", G_CALLBACK (on_menu_about_activate), NULL); g_signal_connect ((gpointer) menu_contributors, "activate", G_CALLBACK (on_menu_contributors_activate), NULL); g_signal_connect ((gpointer) menu_help, "activate", G_CALLBACK (on_menu_help_activate), NULL); g_signal_connect ((gpointer) button_load, "clicked", G_CALLBACK (on_button_load_clicked), NULL); g_signal_connect ((gpointer) button_save, "clicked", G_CALLBACK (on_button_save_clicked), NULL); g_signal_connect ((gpointer) button_quit, "clicked", G_CALLBACK (on_button_quit_clicked), NULL); g_signal_connect ((gpointer) button_quit, "button_press_event", G_CALLBACK (on_button_quit_button_press_event), NULL); g_signal_connect ((gpointer) button_back_to_main, "clicked", G_CALLBACK (on_button_back_to_main_clicked), NULL); g_signal_connect ((gpointer) button_transfers, "clicked", G_CALLBACK (on_button_transfers_clicked), NULL); g_signal_connect ((gpointer) button_new_week, "clicked", G_CALLBACK (on_button_new_week_clicked), NULL); g_signal_connect ((gpointer) eventbox_style, "button_press_event", G_CALLBACK (on_eventbox_style_button_press_event), NULL); g_signal_connect ((gpointer) eventbox_boost, "button_press_event", G_CALLBACK (on_eventbox_boost_button_press_event), NULL); g_signal_connect ((gpointer) hpaned2, "button_release_event", G_CALLBACK (on_hpaned2_button_release_event), NULL); g_signal_connect ((gpointer) player_list1, "button_press_event", G_CALLBACK (on_player_list1_button_press_event), NULL); g_signal_connect ((gpointer) player_list1, "key_press_event", G_CALLBACK (on_player_list1_key_press_event), NULL); g_signal_connect ((gpointer) player_list2, "button_press_event", G_CALLBACK (on_player_list1_button_press_event), NULL); g_signal_connect ((gpointer) button_reset_players, "clicked", G_CALLBACK (on_button_reset_players_clicked), NULL); g_signal_connect ((gpointer) button_cl_back, "clicked", G_CALLBACK (on_button_cl_back_clicked), NULL); g_signal_connect ((gpointer) button_cl_forward, "clicked", G_CALLBACK (on_button_cl_forward_clicked), NULL); g_signal_connect ((gpointer) button_browse_back, "clicked", G_CALLBACK (on_button_browse_back_clicked), NULL); g_signal_connect ((gpointer) button_browse_forward, "clicked", G_CALLBACK (on_button_browse_forward_clicked), NULL); g_signal_connect ((gpointer) treeview_right, "button_press_event", G_CALLBACK (on_treeview_right_button_press_event), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (main_window, main_window, "main_window"); GLADE_HOOKUP_OBJECT (main_window, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT (main_window, menubar1, "menubar1"); GLADE_HOOKUP_OBJECT (main_window, menu_file, "menu_file"); GLADE_HOOKUP_OBJECT (main_window, menu_file_menu, "menu_file_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_new, "menu_new"); GLADE_HOOKUP_OBJECT (main_window, menu_open, "menu_open"); GLADE_HOOKUP_OBJECT (main_window, menu_load_last_save, "menu_load_last_save"); GLADE_HOOKUP_OBJECT (main_window, image2725, "image2725"); GLADE_HOOKUP_OBJECT (main_window, menu_save, "menu_save"); GLADE_HOOKUP_OBJECT (main_window, menu_save_as, "menu_save_as"); GLADE_HOOKUP_OBJECT (main_window, trennlinie1, "trennlinie1"); GLADE_HOOKUP_OBJECT (main_window, menu_quit, "menu_quit"); GLADE_HOOKUP_OBJECT (main_window, menu_options, "menu_options"); GLADE_HOOKUP_OBJECT (main_window, menu_options_menu, "menu_options_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_preferences, "menu_preferences"); GLADE_HOOKUP_OBJECT (main_window, image2726, "image2726"); GLADE_HOOKUP_OBJECT (main_window, trennlinie7, "trennlinie7"); GLADE_HOOKUP_OBJECT (main_window, menu_job_offers, "menu_job_offers"); GLADE_HOOKUP_OBJECT (main_window, menu_live_game, "menu_live_game"); GLADE_HOOKUP_OBJECT (main_window, menu_overwrite, "menu_overwrite"); GLADE_HOOKUP_OBJECT (main_window, trennlinie14, "trennlinie14"); GLADE_HOOKUP_OBJECT (main_window, menu_save_window_geometry, "menu_save_window_geometry"); GLADE_HOOKUP_OBJECT (main_window, image2727, "image2727"); GLADE_HOOKUP_OBJECT (main_window, menu_figures, "menu_figures"); GLADE_HOOKUP_OBJECT (main_window, menu_figures_menu, "menu_figures_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_fixtures_week, "menu_fixtures_week"); GLADE_HOOKUP_OBJECT (main_window, image2728, "image2728"); GLADE_HOOKUP_OBJECT (main_window, menu_fixtures, "menu_fixtures"); GLADE_HOOKUP_OBJECT (main_window, image2729, "image2729"); GLADE_HOOKUP_OBJECT (main_window, menu_tables, "menu_tables"); GLADE_HOOKUP_OBJECT (main_window, image2730, "image2730"); GLADE_HOOKUP_OBJECT (main_window, menu_my_league_results, "menu_my_league_results"); GLADE_HOOKUP_OBJECT (main_window, image2731, "image2731"); GLADE_HOOKUP_OBJECT (main_window, menu_season_results, "menu_season_results"); GLADE_HOOKUP_OBJECT (main_window, image2732, "image2732"); GLADE_HOOKUP_OBJECT (main_window, menu_team, "menu_team"); GLADE_HOOKUP_OBJECT (main_window, menu_team_menu, "menu_team_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_playing_style, "menu_playing_style"); GLADE_HOOKUP_OBJECT (main_window, image2733, "image2733"); GLADE_HOOKUP_OBJECT (main_window, menu_playing_style_menu, "menu_playing_style_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_all_out_defend, "menu_all_out_defend"); GLADE_HOOKUP_OBJECT (main_window, menu_defend, "menu_defend"); GLADE_HOOKUP_OBJECT (main_window, menu_balanced, "menu_balanced"); GLADE_HOOKUP_OBJECT (main_window, menu_attack, "menu_attack"); GLADE_HOOKUP_OBJECT (main_window, menu_all_out_attack, "menu_all_out_attack"); GLADE_HOOKUP_OBJECT (main_window, menu_scout, "menu_scout"); GLADE_HOOKUP_OBJECT (main_window, image2734, "image2734"); GLADE_HOOKUP_OBJECT (main_window, menu_scout_menu, "menu_scout_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_scout_best, "menu_scout_best"); GLADE_HOOKUP_OBJECT (main_window, menu_scout_good, "menu_scout_good"); GLADE_HOOKUP_OBJECT (main_window, menu_scout_average, "menu_scout_average"); GLADE_HOOKUP_OBJECT (main_window, menu_scout_bad, "menu_scout_bad"); GLADE_HOOKUP_OBJECT (main_window, menu_physio, "menu_physio"); GLADE_HOOKUP_OBJECT (main_window, image2735, "image2735"); GLADE_HOOKUP_OBJECT (main_window, menu_physio_menu, "menu_physio_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_physio_best, "menu_physio_best"); GLADE_HOOKUP_OBJECT (main_window, menu_physio_good, "menu_physio_good"); GLADE_HOOKUP_OBJECT (main_window, menu_physio_average, "menu_physio_average"); GLADE_HOOKUP_OBJECT (main_window, menu_physio_bad, "menu_physio_bad"); GLADE_HOOKUP_OBJECT (main_window, menu_youth_academy, "menu_youth_academy"); GLADE_HOOKUP_OBJECT (main_window, image2736, "image2736"); GLADE_HOOKUP_OBJECT (main_window, menu_youth_academy_menu, "menu_youth_academy_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_show_youth_academy, "menu_show_youth_academy"); GLADE_HOOKUP_OBJECT (main_window, youth_coach1, "youth_coach1"); GLADE_HOOKUP_OBJECT (main_window, youth_coach1_menu, "youth_coach1_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_yc_best, "menu_yc_best"); GLADE_HOOKUP_OBJECT (main_window, menu_yc_good, "menu_yc_good"); GLADE_HOOKUP_OBJECT (main_window, menu_yc_average, "menu_yc_average"); GLADE_HOOKUP_OBJECT (main_window, menu_yc_bad, "menu_yc_bad"); GLADE_HOOKUP_OBJECT (main_window, recruiting_preference1, "recruiting_preference1"); GLADE_HOOKUP_OBJECT (main_window, recruiting_preference1_menu, "recruiting_preference1_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_recruit0, "menu_recruit0"); GLADE_HOOKUP_OBJECT (main_window, menu_recruit1, "menu_recruit1"); GLADE_HOOKUP_OBJECT (main_window, menu_recruit2, "menu_recruit2"); GLADE_HOOKUP_OBJECT (main_window, menu_recruit3, "menu_recruit3"); GLADE_HOOKUP_OBJECT (main_window, menu_recruit4, "menu_recruit4"); GLADE_HOOKUP_OBJECT (main_window, menu_set_investment, "menu_set_investment"); GLADE_HOOKUP_OBJECT (main_window, menu_boost, "menu_boost"); GLADE_HOOKUP_OBJECT (main_window, image2737, "image2737"); GLADE_HOOKUP_OBJECT (main_window, menu_boost_menu, "menu_boost_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_boost_on, "menu_boost_on"); GLADE_HOOKUP_OBJECT (main_window, menu_boost_off, "menu_boost_off"); GLADE_HOOKUP_OBJECT (main_window, menu_boost_anti, "menu_boost_anti"); GLADE_HOOKUP_OBJECT (main_window, trennlinie11, "trennlinie11"); GLADE_HOOKUP_OBJECT (main_window, menu_training_camp, "menu_training_camp"); GLADE_HOOKUP_OBJECT (main_window, trennlinie18, "trennlinie18"); GLADE_HOOKUP_OBJECT (main_window, menu_reset_players, "menu_reset_players"); GLADE_HOOKUP_OBJECT (main_window, image2738, "image2738"); GLADE_HOOKUP_OBJECT (main_window, menu_custom_structure, "menu_custom_structure"); GLADE_HOOKUP_OBJECT (main_window, image2739, "image2739"); GLADE_HOOKUP_OBJECT (main_window, menu_rearrange_team, "menu_rearrange_team"); GLADE_HOOKUP_OBJECT (main_window, image2740, "image2740"); GLADE_HOOKUP_OBJECT (main_window, trennlinie8, "trennlinie8"); GLADE_HOOKUP_OBJECT (main_window, menu_browse_teams, "menu_browse_teams"); GLADE_HOOKUP_OBJECT (main_window, image2741, "image2741"); GLADE_HOOKUP_OBJECT (main_window, trennlinie16, "trennlinie16"); GLADE_HOOKUP_OBJECT (main_window, menu_show_job_exchange, "menu_show_job_exchange"); GLADE_HOOKUP_OBJECT (main_window, menu_player, "menu_player"); GLADE_HOOKUP_OBJECT (main_window, menu_player_menu, "menu_player_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_show_info, "menu_show_info"); GLADE_HOOKUP_OBJECT (main_window, image2742, "image2742"); GLADE_HOOKUP_OBJECT (main_window, menu_put_on_transfer_list, "menu_put_on_transfer_list"); GLADE_HOOKUP_OBJECT (main_window, image2743, "image2743"); GLADE_HOOKUP_OBJECT (main_window, menu_remove_from_transfer_list, "menu_remove_from_transfer_list"); GLADE_HOOKUP_OBJECT (main_window, image2744, "image2744"); GLADE_HOOKUP_OBJECT (main_window, menu_offer_new_contract, "menu_offer_new_contract"); GLADE_HOOKUP_OBJECT (main_window, image2745, "image2745"); GLADE_HOOKUP_OBJECT (main_window, menu_fire, "menu_fire"); GLADE_HOOKUP_OBJECT (main_window, image2746, "image2746"); GLADE_HOOKUP_OBJECT (main_window, menu_shoots_penalties, "menu_shoots_penalties"); GLADE_HOOKUP_OBJECT (main_window, image2747, "image2747"); GLADE_HOOKUP_OBJECT (main_window, menu_move_to_youth_academy, "menu_move_to_youth_academy"); GLADE_HOOKUP_OBJECT (main_window, image2748, "image2748"); GLADE_HOOKUP_OBJECT (main_window, menu_edit_name, "menu_edit_name"); GLADE_HOOKUP_OBJECT (main_window, image2749, "image2749"); GLADE_HOOKUP_OBJECT (main_window, trennlinie10, "trennlinie10"); GLADE_HOOKUP_OBJECT (main_window, menu_browse_players, "menu_browse_players"); GLADE_HOOKUP_OBJECT (main_window, image2750, "image2750"); GLADE_HOOKUP_OBJECT (main_window, menu_user, "menu_user"); GLADE_HOOKUP_OBJECT (main_window, menu_user_menu, "menu_user_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_user_show_last_match, "menu_user_show_last_match"); GLADE_HOOKUP_OBJECT (main_window, image2751, "image2751"); GLADE_HOOKUP_OBJECT (main_window, menu_user_show_last_stats, "menu_user_show_last_stats"); GLADE_HOOKUP_OBJECT (main_window, image2752, "image2752"); GLADE_HOOKUP_OBJECT (main_window, menu_user_show_coming_matches, "menu_user_show_coming_matches"); GLADE_HOOKUP_OBJECT (main_window, image2753, "image2753"); GLADE_HOOKUP_OBJECT (main_window, trennlinie9, "trennlinie9"); GLADE_HOOKUP_OBJECT (main_window, menu_next_user, "menu_next_user"); GLADE_HOOKUP_OBJECT (main_window, image2754, "image2754"); GLADE_HOOKUP_OBJECT (main_window, menu_previous_user, "menu_previous_user"); GLADE_HOOKUP_OBJECT (main_window, image2755, "image2755"); GLADE_HOOKUP_OBJECT (main_window, menu_manage_users, "menu_manage_users"); GLADE_HOOKUP_OBJECT (main_window, image2756, "image2756"); GLADE_HOOKUP_OBJECT (main_window, menu_finances_stadium, "menu_finances_stadium"); GLADE_HOOKUP_OBJECT (main_window, menu_finances_stadium_menu, "menu_finances_stadium_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_show_finances, "menu_show_finances"); GLADE_HOOKUP_OBJECT (main_window, image2757, "image2757"); GLADE_HOOKUP_OBJECT (main_window, menu_show_stadium, "menu_show_stadium"); GLADE_HOOKUP_OBJECT (main_window, image2758, "image2758"); GLADE_HOOKUP_OBJECT (main_window, automatic_loan_repayment, "automatic_loan_repayment"); GLADE_HOOKUP_OBJECT (main_window, trennlinie15, "trennlinie15"); GLADE_HOOKUP_OBJECT (main_window, menu_betting, "menu_betting"); GLADE_HOOKUP_OBJECT (main_window, stats1, "stats1"); GLADE_HOOKUP_OBJECT (main_window, stats1_menu, "stats1_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_news, "menu_news"); GLADE_HOOKUP_OBJECT (main_window, menu_league_stats, "menu_league_stats"); GLADE_HOOKUP_OBJECT (main_window, image2759, "image2759"); GLADE_HOOKUP_OBJECT (main_window, menu_season_history, "menu_season_history"); GLADE_HOOKUP_OBJECT (main_window, image2760, "image2760"); GLADE_HOOKUP_OBJECT (main_window, menu_user_show_history, "menu_user_show_history"); GLADE_HOOKUP_OBJECT (main_window, image2761, "image2761"); GLADE_HOOKUP_OBJECT (main_window, memorable_matches, "memorable_matches"); GLADE_HOOKUP_OBJECT (main_window, image2762, "image2762"); GLADE_HOOKUP_OBJECT (main_window, memorable_matches_menu, "memorable_matches_menu"); GLADE_HOOKUP_OBJECT (main_window, mm_add_last_match, "mm_add_last_match"); GLADE_HOOKUP_OBJECT (main_window, image2763, "image2763"); GLADE_HOOKUP_OBJECT (main_window, mm_manage_matches, "mm_manage_matches"); GLADE_HOOKUP_OBJECT (main_window, image2764, "image2764"); GLADE_HOOKUP_OBJECT (main_window, menu_help1, "menu_help1"); GLADE_HOOKUP_OBJECT (main_window, menu_help1_menu, "menu_help1_menu"); GLADE_HOOKUP_OBJECT (main_window, menu_about, "menu_about"); GLADE_HOOKUP_OBJECT (main_window, image2765, "image2765"); GLADE_HOOKUP_OBJECT (main_window, menu_contributors, "menu_contributors"); GLADE_HOOKUP_OBJECT (main_window, image2766, "image2766"); GLADE_HOOKUP_OBJECT (main_window, menu_help, "menu_help"); GLADE_HOOKUP_OBJECT (main_window, image2767, "image2767"); GLADE_HOOKUP_OBJECT (main_window, hbox1, "hbox1"); GLADE_HOOKUP_OBJECT (main_window, button_load, "button_load"); GLADE_HOOKUP_OBJECT (main_window, image11, "image11"); GLADE_HOOKUP_OBJECT (main_window, button_save, "button_save"); GLADE_HOOKUP_OBJECT (main_window, image12, "image12"); GLADE_HOOKUP_OBJECT (main_window, button_quit, "button_quit"); GLADE_HOOKUP_OBJECT (main_window, image13, "image13"); GLADE_HOOKUP_OBJECT (main_window, vseparator1, "vseparator1"); GLADE_HOOKUP_OBJECT (main_window, vseparator11, "vseparator11"); GLADE_HOOKUP_OBJECT (main_window, button_back_to_main, "button_back_to_main"); GLADE_HOOKUP_OBJECT (main_window, image20, "image20"); GLADE_HOOKUP_OBJECT (main_window, button_transfers, "button_transfers"); GLADE_HOOKUP_OBJECT (main_window, image32, "image32"); GLADE_HOOKUP_OBJECT (main_window, vseparator16, "vseparator16"); GLADE_HOOKUP_OBJECT (main_window, button_new_week, "button_new_week"); GLADE_HOOKUP_OBJECT (main_window, image23, "image23"); GLADE_HOOKUP_OBJECT (main_window, entry_message, "entry_message"); GLADE_HOOKUP_OBJECT (main_window, hseparator1, "hseparator1"); GLADE_HOOKUP_OBJECT (main_window, eventbox_main_info, "eventbox_main_info"); GLADE_HOOKUP_OBJECT (main_window, hbox18, "hbox18"); GLADE_HOOKUP_OBJECT (main_window, label_user, "label_user"); GLADE_HOOKUP_OBJECT (main_window, label23, "label23"); GLADE_HOOKUP_OBJECT (main_window, label_season, "label_season"); GLADE_HOOKUP_OBJECT (main_window, label25, "label25"); GLADE_HOOKUP_OBJECT (main_window, label_week, "label_week"); GLADE_HOOKUP_OBJECT (main_window, label13114, "label13114"); GLADE_HOOKUP_OBJECT (main_window, label_round, "label_round"); GLADE_HOOKUP_OBJECT (main_window, vseparator14, "vseparator14"); GLADE_HOOKUP_OBJECT (main_window, hbox48, "hbox48"); GLADE_HOOKUP_OBJECT (main_window, eventbox_style, "eventbox_style"); GLADE_HOOKUP_OBJECT (main_window, image_style, "image_style"); GLADE_HOOKUP_OBJECT (main_window, eventbox_boost, "eventbox_boost"); GLADE_HOOKUP_OBJECT (main_window, image_boost, "image_boost"); GLADE_HOOKUP_OBJECT (main_window, eventbox_team_name, "eventbox_team_name"); GLADE_HOOKUP_OBJECT (main_window, label_team, "label_team"); GLADE_HOOKUP_OBJECT (main_window, label_league, "label_league"); GLADE_HOOKUP_OBJECT (main_window, eventbox_rank, "eventbox_rank"); GLADE_HOOKUP_OBJECT (main_window, hbox49, "hbox49"); GLADE_HOOKUP_OBJECT (main_window, label29, "label29"); GLADE_HOOKUP_OBJECT (main_window, label_rank, "label_rank"); GLADE_HOOKUP_OBJECT (main_window, vseparator15, "vseparator15"); GLADE_HOOKUP_OBJECT (main_window, label34, "label34"); GLADE_HOOKUP_OBJECT (main_window, label_money, "label_money"); GLADE_HOOKUP_OBJECT (main_window, vseparator17, "vseparator17"); GLADE_HOOKUP_OBJECT (main_window, eventbox1, "eventbox1"); GLADE_HOOKUP_OBJECT (main_window, hbox50, "hbox50"); GLADE_HOOKUP_OBJECT (main_window, label69, "label69"); GLADE_HOOKUP_OBJECT (main_window, label_av_skills, "label_av_skills"); GLADE_HOOKUP_OBJECT (main_window, hbox7, "hbox7"); GLADE_HOOKUP_OBJECT (main_window, hpaned2, "hpaned2"); GLADE_HOOKUP_OBJECT (main_window, vbox3, "vbox3"); GLADE_HOOKUP_OBJECT (main_window, scrolledwindow2, "scrolledwindow2"); GLADE_HOOKUP_OBJECT (main_window, viewport1, "viewport1"); GLADE_HOOKUP_OBJECT (main_window, notebook_player, "notebook_player"); GLADE_HOOKUP_OBJECT (main_window, player_list1, "player_list1"); GLADE_HOOKUP_OBJECT (main_window, label71, "label71"); GLADE_HOOKUP_OBJECT (main_window, player_list2, "player_list2"); GLADE_HOOKUP_OBJECT (main_window, label72, "label72"); GLADE_HOOKUP_OBJECT (main_window, button_reset_players, "button_reset_players"); GLADE_HOOKUP_OBJECT (main_window, image298, "image298"); GLADE_HOOKUP_OBJECT (main_window, vbox8, "vbox8"); GLADE_HOOKUP_OBJECT (main_window, hbox_14, "hbox_14"); GLADE_HOOKUP_OBJECT (main_window, button_cl_back, "button_cl_back"); GLADE_HOOKUP_OBJECT (main_window, image215, "image215"); GLADE_HOOKUP_OBJECT (main_window, button_cl_forward, "button_cl_forward"); GLADE_HOOKUP_OBJECT (main_window, image216, "image216"); GLADE_HOOKUP_OBJECT (main_window, button_browse_back, "button_browse_back"); GLADE_HOOKUP_OBJECT (main_window, image10, "image10"); GLADE_HOOKUP_OBJECT (main_window, button_browse_forward, "button_browse_forward"); GLADE_HOOKUP_OBJECT (main_window, image9, "image9"); GLADE_HOOKUP_OBJECT (main_window, scrolledwindow3, "scrolledwindow3"); GLADE_HOOKUP_OBJECT (main_window, treeview_right, "treeview_right"); GLADE_HOOKUP_OBJECT_NO_REF (main_window, tooltips, "tooltips"); gtk_widget_grab_focus (hbox1); gtk_window_add_accel_group (GTK_WINDOW (main_window), accel_group); return main_window; } GtkWidget* create_menu_player (void) { GtkWidget *menu_player; GtkWidget *player_menu_show_info; GtkWidget *player_menu_put_on_transfer_list; GtkWidget *player_menu_remove_from_transfer_list; GtkWidget *player_menu_offer_new_contract; GtkWidget *player_menu_fire; GtkWidget *player_menu_shoots_penalties; GtkWidget *player_menu_move_to_youth_academy; GtkWidget *player_menu_edit_name; menu_player = gtk_menu_new (); player_menu_show_info = gtk_menu_item_new_with_mnemonic (_("Show info")); gtk_widget_show (player_menu_show_info); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_show_info); player_menu_put_on_transfer_list = gtk_menu_item_new_with_mnemonic (_("Put on transfer list")); gtk_widget_show (player_menu_put_on_transfer_list); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_put_on_transfer_list); player_menu_remove_from_transfer_list = gtk_menu_item_new_with_mnemonic (_("Remove from transfer list")); gtk_widget_show (player_menu_remove_from_transfer_list); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_remove_from_transfer_list); player_menu_offer_new_contract = gtk_menu_item_new_with_mnemonic (_("Offer new contract")); gtk_widget_show (player_menu_offer_new_contract); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_offer_new_contract); player_menu_fire = gtk_menu_item_new_with_mnemonic (_("Fire")); gtk_widget_show (player_menu_fire); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_fire); player_menu_shoots_penalties = gtk_menu_item_new_with_mnemonic (_("Shoots penalties")); gtk_widget_show (player_menu_shoots_penalties); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_shoots_penalties); player_menu_move_to_youth_academy = gtk_menu_item_new_with_mnemonic (_("Move to youth academy")); gtk_widget_show (player_menu_move_to_youth_academy); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_move_to_youth_academy); player_menu_edit_name = gtk_menu_item_new_with_mnemonic (_("Edit name")); gtk_widget_show (player_menu_edit_name); gtk_container_add (GTK_CONTAINER (menu_player), player_menu_edit_name); g_signal_connect ((gpointer) player_menu_show_info, "activate", G_CALLBACK (on_player_menu_show_info_activate), NULL); g_signal_connect ((gpointer) player_menu_put_on_transfer_list, "activate", G_CALLBACK (on_player_menu_put_on_transfer_list_activate), NULL); g_signal_connect ((gpointer) player_menu_remove_from_transfer_list, "activate", G_CALLBACK (on_player_menu_remove_from_transfer_list_activate), NULL); g_signal_connect ((gpointer) player_menu_offer_new_contract, "activate", G_CALLBACK (on_player_menu_offer_new_contract_activate), NULL); g_signal_connect ((gpointer) player_menu_fire, "activate", G_CALLBACK (on_player_menu_fire_activate), NULL); g_signal_connect ((gpointer) player_menu_shoots_penalties, "activate", G_CALLBACK (on_player_menu_shoots_penalties_activate), NULL); g_signal_connect ((gpointer) player_menu_move_to_youth_academy, "activate", G_CALLBACK (on_player_menu_move_to_youth_academy_activate), NULL); g_signal_connect ((gpointer) player_menu_edit_name, "activate", G_CALLBACK (on_player_menu_edit_name_activate), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (menu_player, menu_player, "menu_player"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_show_info, "player_menu_show_info"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_put_on_transfer_list, "player_menu_put_on_transfer_list"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_remove_from_transfer_list, "player_menu_remove_from_transfer_list"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_offer_new_contract, "player_menu_offer_new_contract"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_fire, "player_menu_fire"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_shoots_penalties, "player_menu_shoots_penalties"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_move_to_youth_academy, "player_menu_move_to_youth_academy"); GLADE_HOOKUP_OBJECT (menu_player, player_menu_edit_name, "player_menu_edit_name"); return menu_player; } GtkWidget* create_menu_youth (void) { GtkWidget *menu_youth; GtkWidget *menu_youth_move_to_team; GtkWidget *image2149; GtkWidget *menu_youth_kick_out_of_academy; GtkWidget *image2150; menu_youth = gtk_menu_new (); menu_youth_move_to_team = gtk_image_menu_item_new_with_mnemonic (_("Move to team")); gtk_widget_show (menu_youth_move_to_team); gtk_container_add (GTK_CONTAINER (menu_youth), menu_youth_move_to_team); image2149 = create_pixmap (menu_youth, "menu_player_move_to_team.png"); gtk_widget_show (image2149); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_youth_move_to_team), image2149); menu_youth_kick_out_of_academy = gtk_image_menu_item_new_with_mnemonic (_("Kick out of academy")); gtk_widget_show (menu_youth_kick_out_of_academy); gtk_container_add (GTK_CONTAINER (menu_youth), menu_youth_kick_out_of_academy); image2150 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_MENU); gtk_widget_show (image2150); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_youth_kick_out_of_academy), image2150); g_signal_connect ((gpointer) menu_youth_move_to_team, "activate", G_CALLBACK (on_menu_youth_move_to_team_activate), NULL); g_signal_connect ((gpointer) menu_youth_kick_out_of_academy, "activate", G_CALLBACK (on_menu_youth_kick_out_of_academy_activate), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (menu_youth, menu_youth, "menu_youth"); GLADE_HOOKUP_OBJECT (menu_youth, menu_youth_move_to_team, "menu_youth_move_to_team"); GLADE_HOOKUP_OBJECT (menu_youth, image2149, "image2149"); GLADE_HOOKUP_OBJECT (menu_youth, menu_youth_kick_out_of_academy, "menu_youth_kick_out_of_academy"); GLADE_HOOKUP_OBJECT (menu_youth, image2150, "image2150"); return menu_youth; } bygfoot-2.3.2/src/player_struct.h0000644000175000017500000001501611225071373016007 0ustar eliaselias/* player_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PLAYER_STRUCT_H #define PLAYER_STRUCT_H #include "bygfoot.h" #include "enums.h" #include "team_struct.h" /** Player positions. */ enum PlayerPos { PLAYER_POS_GOALIE = 0, PLAYER_POS_DEFENDER, PLAYER_POS_MIDFIELDER, PLAYER_POS_FORWARD, PLAYER_POS_ANY, PLAYER_POS_END }; /** Streaks a player can go on. */ enum PlayerStreak { PLAYER_STREAK_COLD = -1, PLAYER_STREAK_NONE, PLAYER_STREAK_HOT }; /** Cards in different cups are counted separately for players; for each league or cup the cards are stored in such a struct. */ typedef struct { /** Numerical id of the league or cup. */ gint clid; /** Number of yellow cards. */ gint yellow; /** Number of weeks the player is banned. */ gint red; } PlayerCard; /** Goals and games in different leagues and cups are counted separately for players. */ typedef struct { /** Numerical id of the league or cup. */ gint clid; /** Number of games the player played. */ gint games; /** Number of goals (scored for field players or conceded for goalies). */ gint goals; /** Number of shots (taken or faced). */ gint shots; } PlayerGamesGoals; enum PlayerInjury { PLAYER_INJURY_NONE = 0, PLAYER_INJURY_CONCUSSION, PLAYER_INJURY_PULLED_MUSCLE, PLAYER_INJURY_HAMSTRING, PLAYER_INJURY_GROIN, PLAYER_INJURY_FRAC_ANKLE, PLAYER_INJURY_RIB, PLAYER_INJURY_LEG, PLAYER_INJURY_BROK_ANKLE, PLAYER_INJURY_ARM, PLAYER_INJURY_SHOULDER, PLAYER_INJURY_LIGAMENT, PLAYER_INJURY_CAREER_STOP, PLAYER_INJURY_END }; /** Enum for different player data. */ enum PlayerValue { PLAYER_VALUE_GAMES = 0, PLAYER_VALUE_GOALS, PLAYER_VALUE_SHOTS, PLAYER_VALUE_CARD_YELLOW, PLAYER_VALUE_CARD_RED, PLAYER_VALUE_END }; /** Enumeration for the yellow/red card status during the live game. */ enum PlayerCardStatus { PLAYER_CARD_STATUS_NONE = 0, PLAYER_CARD_STATUS_YELLOW, PLAYER_CARD_STATUS_RED }; /** Representation of a player. @see #PlayerAttributes */ typedef struct { gchar *name; gint pos, /**< Position. @see #PlayerPos */ cpos, /**< Current position. @see #PlayerPos */ health, /**< Health. An integer signifying an injury or good health. @see #PlayerInjury */ recovery, /**< Weeks until the player gets healthy. */ id, /**< Id of the player within the team. */ value, /**< Value of the player. */ wage, /**< Wage of the player. */ offers, /**< Number of times the player received a contract offer. */ streak, /**< The streak the player is on. */ card_status; /**< The card status of the player during a live game. */ gfloat skill, /**< Skill. Between 0 and a constant (specified in the constants file). */ cskill, /**< Current Skill. */ talent, /**< Talent. The peak ability (which isn't always reached). */ etal[QUALITY_END], /**< Estimated talent (the user never sees the actual talent). Depends on scout quality. */ fitness, /**< Fitness. Between 0 and 1. */ lsu, /**< Last skill update. Number of weeks since the player skill was last updated. */ age, /**< Age in years. */ peak_age, /**< Age at which the player reaches his peak ability. */ peak_region, /**< Region around the peak age during which the player's ability is at the peak (in years). */ contract, /**< The years until the player's contract expires. */ streak_prob, /**< This number determines how probable it is that a player goes on a hot/cold streak. Between -1 and 1. */ streak_count; /**< How many weeks the streak goes (or how long a new streak may not begin if the value is negative). */ /** Whether the player participated in the team's last match. */ gboolean participation; /** Array of games and goals; one item per league and cup. @see PlayerGamesGoals */ GArray *games_goals; /** Array of cards; one item per league and cup. @see PlayerCard*/ GArray *cards; /** Career goals, games etc. */ gint career[PLAYER_VALUE_END]; /** Pointer to the player's team. */ Team *team; } Player; /** Enum for player attributes that can be shown in a player list. */ enum PlayerListAttributeValue { PLAYER_LIST_ATTRIBUTE_NAME = 0, PLAYER_LIST_ATTRIBUTE_CPOS, PLAYER_LIST_ATTRIBUTE_POS, PLAYER_LIST_ATTRIBUTE_CSKILL, PLAYER_LIST_ATTRIBUTE_SKILL, PLAYER_LIST_ATTRIBUTE_FITNESS, PLAYER_LIST_ATTRIBUTE_GAMES, PLAYER_LIST_ATTRIBUTE_SHOTS, PLAYER_LIST_ATTRIBUTE_GOALS, PLAYER_LIST_ATTRIBUTE_STATUS, PLAYER_LIST_ATTRIBUTE_CARDS, PLAYER_LIST_ATTRIBUTE_AGE, PLAYER_LIST_ATTRIBUTE_ETAL, PLAYER_LIST_ATTRIBUTE_VALUE, PLAYER_LIST_ATTRIBUTE_WAGE, PLAYER_LIST_ATTRIBUTE_CONTRACT, PLAYER_LIST_ATTRIBUTE_TEAM, PLAYER_LIST_ATTRIBUTE_LEAGUE_CUP, PLAYER_LIST_ATTRIBUTE_END }; enum PlayerInfoAttributeValue { PLAYER_INFO_ATTRIBUTE_NAME = 0, PLAYER_INFO_ATTRIBUTE_POS, PLAYER_INFO_ATTRIBUTE_CPOS, PLAYER_INFO_ATTRIBUTE_SKILL, PLAYER_INFO_ATTRIBUTE_CSKILL, PLAYER_INFO_ATTRIBUTE_FITNESS, PLAYER_INFO_ATTRIBUTE_ETAL, PLAYER_INFO_ATTRIBUTE_AGE, PLAYER_INFO_ATTRIBUTE_HEALTH, PLAYER_INFO_ATTRIBUTE_VALUE, PLAYER_INFO_ATTRIBUTE_WAGE, PLAYER_INFO_ATTRIBUTE_CONTRACT, PLAYER_INFO_ATTRIBUTE_GAMES_GOALS, PLAYER_INFO_ATTRIBUTE_YELLOW_CARDS, PLAYER_INFO_ATTRIBUTE_BANNED, PLAYER_INFO_ATTRIBUTE_STREAK, PLAYER_INFO_ATTRIBUTE_CAREER, PLAYER_INFO_ATTRIBUTE_OFFERS, PLAYER_INFO_ATTRIBUTE_END }; /** A struct telling us which player attributes to show in a player list. @see #PlayerListAttributeValue*/ typedef struct { gboolean on_off[PLAYER_LIST_ATTRIBUTE_END]; } PlayerListAttribute; #endif bygfoot-2.3.2/src/job_struct.h0000644000175000017500000000400111225071373015255 0ustar eliaselias/* job_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef JOB_STRUCT_H #define JOB_STRUCT_H /** Enumeration describing the type of a job. */ enum { /** Job offer by a team from the country the user's playing. */ JOB_TYPE_NATIONAL = 0, /** Job offer by a team from a different country than user's playing. */ JOB_TYPE_INTERNATIONAL, /** Job offer by a team from a different country than user's playing; the team participates in an international cup. */ JOB_TYPE_CUP, JOB_TYPE_END }; /** A structure representing a job in the job exchange. */ typedef struct { /** Whether it's an international job or a national one. */ gint type; /** How many weeks remaining the offer is on the list. */ gint time; /** Only relevant for international jobs. **/ gchar *country_file, *country_name, *league_name; /** Only relevant for international jobs. **/ gint league_layer; /** Only relevant for international jobs. **/ gint country_rating; /** Average talent compared to the league average in percent. */ gint talent_percent; /** The id of the team the job describes. */ gint team_id; } Job; #endif bygfoot-2.3.2/src/xml_loadsave_table.c0000644000175000017500000001337311225071373016733 0ustar eliaselias/* xml_loadsave_table.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "misc.h" #include "team.h" #include "xml.h" #include "xml_loadsave_table.h" enum { TAG_TABLE = TAG_START_TABLE, TAG_TABLE_ELEMENT, TAG_TABLE_ELEMENT_VALUE, TAG_TABLE_ELEMENT_OLD_RANK, TAG_END }; gint state, valueidx; TableElement new_element; Table *new_table; void xml_loadsave_table_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_table_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_TABLE;ielements, new_element); } else if(tag == TAG_TABLE_ELEMENT_VALUE || tag == TAG_TABLE_ELEMENT_OLD_RANK || tag == TAG_TEAM_ID) { state = TAG_TABLE_ELEMENT; if(tag == TAG_TABLE_ELEMENT_VALUE) valueidx++; } else if(tag != TAG_TABLE) debug_print_message("xml_loadsave_table_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_table_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_table_text\n"); #endif gchar buf[SMALL]; gint int_value = -1; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); if(state == TAG_NAME) misc_string_assign(&new_table->name, buf); else if(state == TAG_ID) new_table->clid = int_value; else if(state == TAG_ROUND) new_table->round = int_value; else if(state == TAG_TEAM_ID) new_element.team_id = int_value; else if(state == TAG_TABLE_ELEMENT_VALUE) new_element.values[valueidx] = int_value; else if(state == TAG_TABLE_ELEMENT_OLD_RANK) new_element.old_rank = int_value; } void xml_loadsave_table_read(const gchar *filename, Table *table) { #ifdef DEBUG printf("xml_loadsave_table_read\n"); #endif GMarkupParser parser = {xml_loadsave_table_start_element, xml_loadsave_table_end_element, xml_loadsave_table_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_table_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); } new_table = table; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_table_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } } void xml_loadsave_table_write(const gchar *filename, const Table *table) { #ifdef DEBUG printf("xml_loadsave_table_write\n"); #endif gint i, j; FILE *fil = NULL; file_my_fopen(filename, "w", &fil, TRUE); fprintf(fil, "<_%d>\n", TAG_TABLE); xml_write_string(fil, table->name, TAG_NAME, I0); xml_write_int(fil, table->clid, TAG_ID, I0); xml_write_int(fil, table->round, TAG_ROUND, I0); for(i=0;ielements->len;i++) { fprintf(fil, "<_%d>\n", TAG_TABLE_ELEMENT); xml_write_int(fil, g_array_index(table->elements, TableElement, i).team->id, TAG_TEAM_ID, I1); xml_write_int(fil, g_array_index(table->elements, TableElement, i).old_rank, TAG_TABLE_ELEMENT_OLD_RANK, I1); for(j=0;jelements, TableElement, i).values[j], TAG_TABLE_ELEMENT_VALUE, I1); fprintf(fil, "\n", TAG_TABLE_ELEMENT); } fprintf(fil, "\n", TAG_TABLE); fclose(fil); } bygfoot-2.3.2/src/gui.c0000644000175000017500000001144011225071373013663 0ustar eliaselias/* gui.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "gui.h" #include "misc.h" #include "option.h" #include "support.h" #include "variables.h" #include "window.h" /* Set into or append an integer into a label. @param label The label. @param number The number. @param append Whether or not to append.*/ void gui_label_set_text_from_int(GtkLabel *label, gint number, gboolean append) { #ifdef DEBUG printf("gui_label_set_text_from_int\n"); #endif const gchar *current_text = gtk_label_get_text(label); gchar buf[SMALL], buf2[SMALL]; strcpy(buf, ""); strcpy(buf2, ""); if(number > 1000) misc_print_grouped_int(number, buf); else sprintf(buf, "%d", number); if(!append) sprintf(buf2, "%s", buf); else sprintf(buf2, "%s%s", current_text, buf); gtk_label_set_text(label, buf2); } gdouble gui_get_progress_bar_fraction(void) { if(sett_int("int_opt_goto_mode")) return 0; return gtk_progress_bar_get_fraction( GTK_PROGRESS_BAR(lookup_widget(window.progress, "progressbar"))); } /* Show a window with a progress bar. @param value The value of the progress bar. If set to 1 or < 0 the progress bar window gets destroyed. @param text The text to show in the progress bar. @param pictype What kind of picture to show above the progress bar. */ void gui_show_progress(gfloat value, const gchar *text, gint pictype) { #ifdef DEBUG printf("gui_show_progress\n"); #endif GtkProgressBar *progressbar = NULL; if(sett_int("int_opt_goto_mode")) { window_destroy(&window.progress); return; } if(value == 1 || value < 0) { window_destroy(&window.progress); return; } if(window.progress == NULL) window_show_progress(pictype); progressbar = GTK_PROGRESS_BAR(lookup_widget(window.progress, "progressbar")); if(value >= 0 && value < 1) gtk_progress_bar_set_fraction(progressbar, value); else gtk_progress_bar_pulse(progressbar); if(text != NULL) gtk_progress_bar_set_text(progressbar, text); while(gtk_events_pending()) gtk_main_iteration(); } /** Set either the right pair of arrows atop the right treeview or the left pair or both to the specified sensitivity state. */ void gui_set_arrow_pair(gint pair, gboolean state) { #ifdef DEBUG printf("gui_set_arrow_pair\n"); #endif gint i, j; GtkWidget *buttons[2][2] = {{lookup_widget(window.main ,"button_cl_back"), lookup_widget(window.main ,"button_cl_forward")}, {lookup_widget(window.main ,"button_browse_back"), lookup_widget(window.main ,"button_browse_forward")}}; if(pair < 3) for(i=0;i<2;i++) gtk_widget_set_sensitive(buttons[pair][i], state); else for(i=0;i<2;i++) for(j=0;j<2;j++) gtk_widget_set_sensitive(buttons[i][j], state); } /** Examine the status variable and set the sensitivity of the arrows atop the right treeview accordingly. */ void gui_set_arrows(void) { #ifdef DEBUG printf("gui_set_arrows\n"); #endif gui_set_arrow_pair(3, FALSE); if(stat0 == STATUS_SHOW_FIXTURES || stat0 == STATUS_BROWSE_TEAMS || stat0 == STATUS_SHOW_SEASON_HISTORY) gui_set_arrow_pair(3, TRUE); else if(stat0 == STATUS_SHOW_PLAYER_INFO || stat0 == STATUS_SHOW_FIXTURES_WEEK) gui_set_arrow_pair(1, TRUE); else if(stat0 == STATUS_SHOW_TABLES || stat0 == STATUS_SHOW_PLAYER_LIST || stat0 == STATUS_SHOW_LEAGUE_STATS) gui_set_arrow_pair(0, TRUE); } /** Set the sensitivity of the live game window meters and their eventboxes. */ void gui_set_sensitive_lg_meters(gboolean state) { #ifdef DEBUG printf("gui_set_sensitive_lg_meters\n"); #endif gtk_widget_set_sensitive(lookup_widget(window.live, "image_lg_style"), state); gtk_widget_set_sensitive(lookup_widget(window.live, "eventbox_lg_style"), state); gtk_widget_set_sensitive(lookup_widget(window.live, "image_lg_boost"), state); gtk_widget_set_sensitive(lookup_widget(window.live, "eventbox_lg_boost"), state); } bygfoot-2.3.2/src/xml_name.c0000644000175000017500000001101111225071373014671 0ustar eliaselias/* xml_name.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "misc.h" #include "name.h" #include "variables.h" #include "xml_name.h" #define TAG_NAMES "names" #define TAG_LAST_NAME "last_name" #define TAG_FIRST_NAME "first_name" enum XmlNameStates { STATE_NAMES = 0, STATE_LAST_NAME, STATE_FIRST_NAME, STATE_END }; /** Keep track of the state. */ gint state; /** The name list we read into. */ NameList *nlist; /** @see xml_league_read_start_element */ void xml_name_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_name_read_start_element\n"); #endif if(strcmp(element_name, TAG_NAMES) == 0) state = STATE_NAMES; else if(strcmp(element_name, TAG_FIRST_NAME) == 0) state = STATE_FIRST_NAME; else if(strcmp(element_name, TAG_LAST_NAME) == 0) state = STATE_LAST_NAME; else debug_print_message("xml_name_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** @see xml_league_read_end_element */ void xml_name_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_name_read_end_element\n"); #endif if(strcmp(element_name, TAG_FIRST_NAME) == 0 || strcmp(element_name, TAG_LAST_NAME) == 0) state = STATE_NAMES; else if(strcmp(element_name, TAG_NAMES) != 0) debug_print_message("xml_name_end_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** @see xml_league_read_text */ void xml_name_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_name_read_text\n"); #endif gchar buf[text_len + 1]; strncpy(buf, text, text_len); buf[text_len] = '\0'; if(state == STATE_FIRST_NAME) g_ptr_array_add(nlist->first_names, g_strdup(buf)); else if(state == STATE_LAST_NAME) g_ptr_array_add(nlist->last_names, g_strdup(buf)); } /** Fill the name list with names from the given names file. @param sid The sid of the names file we read. @param namelist The name list we fill. */ void xml_name_read(const gchar *sid, NameList *namelist) { #ifdef DEBUG printf("xml_name_read\n"); #endif gchar *file_name = NULL; GMarkupParser parser = {xml_name_read_start_element, xml_name_read_end_element, xml_name_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; gchar buf[SMALL]; sprintf(buf, "player_names_%s.xml", sid); file_name = file_find_support_file(buf, TRUE); context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(file_name, &file_contents, &length, &error)) { debug_print_message("xml_name_read: error reading file %s\n", file_name); misc_print_error(&error, TRUE); return; } free_name_list(namelist, TRUE); misc_string_assign(&namelist->sid, sid); nlist = namelist; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { g_critical("xml_name_read: error parsing file %s\n", buf); misc_print_error(&error, TRUE); } g_free(file_name); } bygfoot-2.3.2/src/language.c0000644000175000017500000001456211225071373014672 0ustar eliaselias/* language.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "callbacks.h" #include "file.h" #include "free.h" #include "language.h" #include "lg_commentary.h" #include "misc.h" #include "news.h" #include "option.h" #include "variables.h" #include "window.h" #ifndef G_OS_UNIX extern int _nl_msg_cat_cntr=0; #endif /** Set the game language to the specified one. */ void language_set(gint index) { #ifdef DEBUG printf("language_set\n"); #endif gchar buf[SMALL], buf2[SMALL]; gchar *dir; GPtrArray *codes = misc_separate_strings(const_str("string_language_codes")); if(index > 0) strcpy(buf, (gchar*)g_ptr_array_index(codes, index - 1)); else strcpy(buf, ""); if(strcmp(buf, opt_str("string_opt_language_code")) != 0 || window.main == NULL) { #ifndef MAC_BUILD dir = g_get_current_dir(); sprintf(buf2, "%s%slocale", dir, G_DIR_SEPARATOR_S); #else dir = file_get_mac_resource_path("locale"); strcpy(buf2, dir); #endif g_free(dir); #ifdef ENABLE_NLS if(g_file_test(buf2, G_FILE_TEST_EXISTS)) { bindtextdomain (GETTEXT_PACKAGE, buf2); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); } #endif g_setenv ("LANGUAGE", buf, TRUE); opt_set_str("string_opt_language_code", buf); { extern int _nl_msg_cat_cntr; ++_nl_msg_cat_cntr; } if(window.main != NULL) { window_destroy(&window.main); window_create(WINDOW_MAIN); on_button_back_to_main_clicked(NULL, NULL); } } lg_commentary_load_commentary_file_from_option(); news_load_news_file_from_option(); free_gchar_array(&codes); } /** Get the index of the given code in the codes array. */ gint language_get_code_index(const gchar *code) { #ifdef DEBUG printf("language_get_code_index\n"); #endif gint i, return_value = -1; GPtrArray *codes = misc_separate_strings(const_str("string_language_codes")); gchar local_code[SMALL]; strcpy(local_code, code); if(strcmp(code, "en") == 0) strcpy(local_code, "C"); for(i=0;ilen;i++) if(strcmp(local_code, (gchar*)g_ptr_array_index(codes, i)) == 0) { return_value = i; break; } free_gchar_array(&codes); return return_value; } /** Compare country file names based on a preferred one (which should get moved to the start). */ gint language_compare_country_files(gconstpointer a, gconstpointer b, gpointer data) { gint i, j; const gchar *prefdef = (const gchar*)data; const gchar *def1 = *(const gchar**)a; const gchar *def2 = *(const gchar**)b; gint len1 = strlen(def1), len2 = strlen(def2), lenmin = MIN(len1, len2); gchar alphabet[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; gint return_value = 0; if(strcmp(def1, def2) == 0) return_value = 0; else if(prefdef != NULL && strcmp(prefdef, def1) == 0) return_value = -1; else if(prefdef != NULL && strcmp(prefdef, def2) == 0) return_value = 1; else { for(i=0;ilen;i++) { if(((g_str_has_prefix(lang, "en") && strcmp((gchar*)g_ptr_array_index(codes, i), "C") == 0) || g_str_has_prefix(lang, (gchar*)g_ptr_array_index(codes, i))) && strcmp((gchar*)g_ptr_array_index(defs, i), "NONE") != 0) { for(j=0;jlen;j++) if(g_str_has_suffix((gchar*)g_ptr_array_index(country_files, j), (gchar*)g_ptr_array_index(defs, i))) { prefdef = g_ptr_array_index(country_files, j); break; } break; } } g_ptr_array_sort_with_data( country_files, (GCompareDataFunc)language_compare_country_files, prefdef); free_gchar_array(&codes); free_gchar_array(&defs); } /** Find out which language to use (e.g. for live game commentary). Write the code (en, de etc.) into the buffer. */ void language_get_code(gchar *buf) { #ifdef DEBUG printf("language_get_code\n"); #endif gchar *cur_locale = NULL; #ifdef G_OS_UNIX cur_locale = setlocale(LC_MESSAGES, NULL); #else cur_locale = g_win32_getlocale (); #endif if(strcmp(opt_str("string_opt_language_code"), "C") == 0) strcpy(buf, "en"); else if(strcmp(opt_str("string_opt_language_code"), "") == 0 && cur_locale != NULL) { strncpy(buf, cur_locale, 2); buf[2] = '\0'; } else strcpy(buf, opt_str("string_opt_language_code")); } bygfoot-2.3.2/src/xml_loadsave_league.c0000644000175000017500000004156011225071373017105 0ustar eliaselias/* xml_loadsave_league.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "league.h" #include "misc.h" #include "option.h" #include "table.h" #include "variables.h" #include "xml.h" #include "xml_loadsave_cup.h" #include "xml_loadsave_fixtures.h" #include "xml_loadsave_league.h" #include "xml_loadsave_league_stat.h" #include "xml_loadsave_table.h" #include "xml_loadsave_teams.h" enum { TAG_LEAGUE = TAG_START_LEAGUE, TAG_LEAGUE_LAYER, TAG_LEAGUE_FIRST_WEEK, TAG_LEAGUE_ROUND_ROBINS, TAG_LEAGUE_AVERAGE_TALENT, TAG_LEAGUE_PROM_REL, TAG_LEAGUE_PROM_GAMES, TAG_LEAGUE_PROM_REL_PROM_GAMES_DEST_SID, TAG_LEAGUE_PROM_REL_PROM_GAMES_CUP_SID, TAG_LEAGUE_PROM_REL_PROM_GAMES_LOSER_SID, TAG_LEAGUE_PROM_REL_PROM_GAMES_NUMBER_OF_ADVANCE, TAG_LEAGUE_PROM_REL_ELEMENTS, TAG_LEAGUE_PROM_REL_ELEMENT, TAG_LEAGUE_PROM_REL_ELEMENT_RANK, TAG_LEAGUE_PROM_REL_ELEMENT_DEST_SID, TAG_LEAGUE_PROM_REL_ELEMENT_TYPE, TAG_LEAGUE_PROM_REL_ELEMENT_FROM_TABLE, TAG_LEAGUE_BREAK, TAG_LEAGUE_JOINED_LEAGUE_SID, TAG_LEAGUE_JOINED_LEAGUE_RR, TAG_LEAGUE_NEW_TABLE_NAME, TAG_LEAGUE_NEW_TABLE_ADD_WEEK, TAG_LEAGUE_TWO_MATCH_WEEK_START, TAG_LEAGUE_TWO_MATCH_WEEK_END, TAG_LEAGUE_TABLE_FILE, TAG_END }; gint promrankidx, state; PromRelElement new_element; PromGames new_prom_games; WeekBreak new_week_break; League *new_league; gchar *dirname; void xml_loadsave_league_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_league_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; JoinedLeague new_joined_league; NewTable new_table; for(i=TAG_LEAGUE;ijoined_leagues, new_joined_league); if(tag == TAG_LEAGUE_NEW_TABLE_NAME) g_array_append_val(new_league->new_tables, new_table); if(debug > 100) g_print("xml_loadsave_league_start_element: state %d\n", state); if(!valid_tag) debug_print_message("xml_loadsave_league_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_league_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_league_end_element\n"); #endif gint tag = xml_get_tag_from_name(element_name); if(tag == TAG_LEAGUE_FIRST_WEEK || tag == TAG_LEAGUE_LAYER || tag == TAG_LEAGUE_BREAK || tag == TAG_LEAGUE_JOINED_LEAGUE_SID || tag == TAG_LEAGUE_JOINED_LEAGUE_RR || tag == TAG_LEAGUE_NEW_TABLE_NAME || tag == TAG_LEAGUE_NEW_TABLE_ADD_WEEK || tag == TAG_LEAGUE_TWO_MATCH_WEEK_START || tag == TAG_LEAGUE_TWO_MATCH_WEEK_END || tag == TAG_LEAGUE_TABLE_FILE || tag == TAG_LEAGUE_AVERAGE_TALENT || tag == TAG_LEAGUE_AVERAGE_TALENT || tag == TAG_LEAGUE_ROUND_ROBINS || tag == TAG_PROPERTY || tag == TAG_NAME || tag == TAG_NAMES_FILE || tag == TAG_SHORT_NAME || tag == TAG_SYMBOL || tag == TAG_SID || tag == TAG_ID || tag == TAG_WEEK_GAP || tag == TAG_WEEK_BREAK || tag == TAG_WEEK_BREAK_LENGTH || tag == TAG_SKIP_WEEKS_WITH || tag == TAG_YELLOW_RED || tag == TAG_LEAGUE_PROM_REL) state = TAG_LEAGUE; else if(tag == TAG_LEAGUE_PROM_GAMES || tag == TAG_LEAGUE_PROM_REL_ELEMENTS) { state = TAG_LEAGUE_PROM_REL; if(tag == TAG_LEAGUE_PROM_GAMES) g_array_append_val(new_league->prom_rel.prom_games, new_prom_games); } else if(tag == TAG_LEAGUE_PROM_REL_PROM_GAMES_DEST_SID || tag == TAG_LEAGUE_PROM_REL_PROM_GAMES_CUP_SID || tag == TAG_LEAGUE_PROM_REL_PROM_GAMES_LOSER_SID || tag == TAG_LEAGUE_PROM_REL_PROM_GAMES_NUMBER_OF_ADVANCE) state = TAG_LEAGUE_PROM_GAMES; else if(tag == TAG_LEAGUE_PROM_REL_ELEMENT) { state = TAG_LEAGUE_PROM_REL_ELEMENTS; g_array_append_val(new_league->prom_rel.elements, new_element); } else if(tag == TAG_LEAGUE_PROM_REL_ELEMENT_RANK || tag == TAG_LEAGUE_PROM_REL_ELEMENT_DEST_SID || tag == TAG_LEAGUE_PROM_REL_ELEMENT_FROM_TABLE || tag == TAG_LEAGUE_PROM_REL_ELEMENT_TYPE) { state = TAG_LEAGUE_PROM_REL_ELEMENT; if(tag == TAG_LEAGUE_PROM_REL_ELEMENT_RANK) promrankidx++; } else if(tag != TAG_LEAGUE) debug_print_message("xml_league_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_league_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_league_text\n"); #endif gchar buf[SMALL], buf2[SMALL]; gint int_value = -1; gfloat float_value = -1; Table new_table; strncpy(buf, text, text_len); buf[text_len] = '\0'; float_value = (gfloat)g_ascii_strtod(buf, NULL) / 10000; int_value = (gint)g_ascii_strtod(buf, NULL); if(state == TAG_NAME) misc_string_assign(&new_league->name, buf); else if(state == TAG_PROPERTY) g_ptr_array_add(new_league->properties, g_strdup(buf)); else if(state == TAG_SHORT_NAME) misc_string_assign(&new_league->short_name, buf); else if(state == TAG_NAMES_FILE) misc_string_assign(&new_league->names_file, buf); else if(state == TAG_SYMBOL) misc_string_assign(&new_league->symbol, buf); else if(state == TAG_SID) misc_string_assign(&new_league->sid, buf); else if(state == TAG_ID) new_league->id = int_value; else if(state == TAG_LEAGUE_LAYER) new_league->layer = int_value; else if(state == TAG_LEAGUE_FIRST_WEEK) new_league->first_week = int_value; else if(state == TAG_LEAGUE_ROUND_ROBINS) new_league->round_robins = int_value; else if(state == TAG_WEEK_GAP) new_league->week_gap = int_value; else if(state == TAG_WEEK_BREAK) new_week_break.week_number = int_value; else if(state == TAG_WEEK_BREAK_LENGTH) { new_week_break.length = int_value; g_array_append_val(new_league->week_breaks, new_week_break); } else if(state == TAG_SKIP_WEEKS_WITH) g_ptr_array_add(new_league->skip_weeks_with, g_strdup(buf)); else if(state == TAG_YELLOW_RED) new_league->yellow_red = int_value; else if(state == TAG_LEAGUE_BREAK) g_array_append_val(new_league->rr_breaks, int_value); else if(state == TAG_LEAGUE_JOINED_LEAGUE_SID) g_array_index(new_league->joined_leagues, JoinedLeague, new_league->joined_leagues->len - 1).sid = g_strdup(buf); else if(state == TAG_LEAGUE_JOINED_LEAGUE_RR) g_array_index(new_league->joined_leagues, JoinedLeague, new_league->joined_leagues->len - 1).rr = int_value; else if(state == TAG_LEAGUE_NEW_TABLE_NAME) g_array_index(new_league->new_tables, NewTable, new_league->new_tables->len - 1).name = g_strdup(buf); else if(state == TAG_LEAGUE_NEW_TABLE_ADD_WEEK) g_array_index(new_league->new_tables, NewTable, new_league->new_tables->len - 1).add_week = int_value; else if(state == TAG_LEAGUE_TWO_MATCH_WEEK_START) g_array_append_val(new_league->two_match_weeks[0], int_value); else if(state == TAG_LEAGUE_TWO_MATCH_WEEK_END) g_array_append_val(new_league->two_match_weeks[1], int_value); else if(state == TAG_LEAGUE_TABLE_FILE) { new_table = table_new(); sprintf(buf2, "%s%s%s", dirname, G_DIR_SEPARATOR_S, buf); xml_loadsave_table_read(buf2, &new_table); g_array_append_val(new_league->tables, new_table); } else if(state == TAG_LEAGUE_AVERAGE_TALENT) new_league->average_talent = float_value; else if(state == TAG_LEAGUE_PROM_REL_PROM_GAMES_DEST_SID) new_prom_games.dest_sid = g_strdup(buf); else if(state == TAG_LEAGUE_PROM_REL_PROM_GAMES_CUP_SID) new_prom_games.cup_sid = g_strdup(buf); else if(state == TAG_LEAGUE_PROM_REL_PROM_GAMES_NUMBER_OF_ADVANCE) new_prom_games.number_of_advance = int_value; else if(state == TAG_LEAGUE_PROM_REL_PROM_GAMES_LOSER_SID) new_prom_games.loser_sid = g_strdup(buf); else if(state == TAG_LEAGUE_PROM_REL_ELEMENT_RANK) new_element.ranks[promrankidx] = int_value; else if(state == TAG_LEAGUE_PROM_REL_ELEMENT_TYPE) new_element.type = int_value; else if(state == TAG_LEAGUE_PROM_REL_ELEMENT_FROM_TABLE) new_element.from_table = int_value; else if(state == TAG_LEAGUE_PROM_REL_ELEMENT_DEST_SID) misc_string_assign(&new_element.dest_sid, buf); } void xml_loadsave_league_read(const gchar *filename, const gchar *team_file, League *league) { #ifdef DEBUG printf("xml_loadsave_league_read\n"); #endif GMarkupParser parser = {xml_loadsave_league_start_element, xml_loadsave_league_end_element, xml_loadsave_league_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_league_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); } new_league = league; dirname = g_path_get_dirname(filename); xml_loadsave_teams_read(team_file, new_league->teams); if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_league_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } g_free(dirname); } void xml_loadsave_league_write(const gchar *prefix, const League *league) { #ifdef DEBUG printf("xml_loadsave_league_write\n"); #endif gint i; gchar buf[SMALL]; FILE *fil = NULL; gchar *basename = g_path_get_basename(prefix); sprintf(buf, "%s___league_%d_teams.xml", prefix, league->id); xml_loadsave_teams_write(buf, league->teams); sprintf(buf, "%s___league_%d_fixtures.xml", prefix, league->id); xml_loadsave_fixtures_write(buf, league->fixtures); sprintf(buf, "%s___league_%d_stat.xml", prefix, league->id); xml_loadsave_league_stat_write(buf, &league->stats); sprintf(buf, "%s___league_%d.xml", prefix, league->id); file_my_fopen(buf, "w", &fil, TRUE); fprintf(fil, "%s<_%d>\n", I0, TAG_LEAGUE); xml_write_string(fil, league->name, TAG_NAME, I0); xml_write_string(fil, league->short_name, TAG_SHORT_NAME, I0); xml_write_string(fil, league->names_file, TAG_NAMES_FILE, I0); xml_write_string(fil, league->sid, TAG_SID, I0); xml_write_string(fil, league->symbol, TAG_SYMBOL, I0); for(i=0;iproperties->len;i++) xml_write_string(fil, (gchar*)g_ptr_array_index(league->properties, i), TAG_PROPERTY, I0); for(i = 0; i < league->skip_weeks_with->len; i++) xml_write_string(fil, (gchar*)g_ptr_array_index(league->skip_weeks_with, i), TAG_SKIP_WEEKS_WITH, I0); xml_write_int(fil, league->id, TAG_ID, I0); xml_write_int(fil, league->layer, TAG_LEAGUE_LAYER, I0); xml_write_int(fil, league->first_week, TAG_LEAGUE_FIRST_WEEK, I0); xml_write_int(fil, league->round_robins, TAG_LEAGUE_ROUND_ROBINS, I0); xml_write_int(fil, league->week_gap, TAG_WEEK_GAP, I0); xml_write_int(fil, league->yellow_red, TAG_YELLOW_RED, I0); for(i = 0; i < league->rr_breaks->len; i++) xml_write_int(fil, g_array_index(league->rr_breaks, gint, i), TAG_LEAGUE_BREAK, I0); for(i = 0; i < league->week_breaks->len; i++) { xml_write_int(fil, g_array_index(league->week_breaks, WeekBreak, i).week_number, TAG_WEEK_BREAK, I0); xml_write_int(fil, g_array_index(league->week_breaks, WeekBreak, i).length, TAG_WEEK_BREAK_LENGTH, I0); } for(i=0;itables->len;i++) { sprintf(buf, "%s___league_%d_table_%02d.xml", basename, league->id, i); xml_write_string(fil, buf, TAG_LEAGUE_TABLE_FILE, I1); sprintf(buf, "%s___league_%d_table_%02d.xml", prefix, league->id, i); xml_loadsave_table_write(buf, &g_array_index(league->tables, Table, i)); } for(i = 0; i < league->joined_leagues->len; i++) { xml_write_string(fil, g_array_index(league->joined_leagues, JoinedLeague, i).sid, TAG_LEAGUE_JOINED_LEAGUE_SID, I0); xml_write_int(fil, g_array_index(league->joined_leagues, JoinedLeague, i).rr, TAG_LEAGUE_JOINED_LEAGUE_RR, I0); } for(i = 0; i < league->new_tables->len; i++) { xml_write_string(fil, g_array_index(league->new_tables, NewTable, i).name, TAG_LEAGUE_NEW_TABLE_NAME, I0); xml_write_int(fil, g_array_index(league->new_tables, NewTable, i).add_week, TAG_LEAGUE_NEW_TABLE_ADD_WEEK, I0); } xml_write_float(fil, league->average_talent, TAG_LEAGUE_AVERAGE_TALENT, I0); for(i=0;itwo_match_weeks[0]->len;i++) { xml_write_int(fil, g_array_index(league->two_match_weeks[0], gint, i), TAG_LEAGUE_TWO_MATCH_WEEK_START, I0); xml_write_int(fil, g_array_index(league->two_match_weeks[1], gint, i), TAG_LEAGUE_TWO_MATCH_WEEK_END, I0); } xml_loadsave_league_prom_rel_write(fil, league); fprintf(fil, "%s\n", I0, TAG_LEAGUE); fclose(fil); } /** Write the prom_rel data into the file. */ void xml_loadsave_league_prom_rel_write(FILE *fil, const League *league) { gint i; fprintf(fil, "%s<_%d>\n", I0, TAG_LEAGUE_PROM_REL); for(i = 0; i < league->prom_rel.prom_games->len; i++) { fprintf(fil, "%s<_%d>\n", I1, TAG_LEAGUE_PROM_GAMES); xml_write_string(fil, g_array_index(league->prom_rel.prom_games, PromGames, i).dest_sid, TAG_LEAGUE_PROM_REL_PROM_GAMES_DEST_SID, I2); xml_write_string(fil, g_array_index(league->prom_rel.prom_games, PromGames, i).cup_sid, TAG_LEAGUE_PROM_REL_PROM_GAMES_CUP_SID, I2); xml_write_int(fil, g_array_index(league->prom_rel.prom_games, PromGames, i).number_of_advance, TAG_LEAGUE_PROM_REL_PROM_GAMES_NUMBER_OF_ADVANCE, I2); xml_write_string(fil, g_array_index(league->prom_rel.prom_games, PromGames, i).loser_sid, TAG_LEAGUE_PROM_REL_PROM_GAMES_LOSER_SID, I2); fprintf(fil, "%s\n", I1, TAG_LEAGUE_PROM_GAMES); } fprintf(fil, "%s<_%d>\n", I1, TAG_LEAGUE_PROM_REL_ELEMENTS); for(i=0;iprom_rel.elements->len;i++) { fprintf(fil, "%s<_%d>\n", I1, TAG_LEAGUE_PROM_REL_ELEMENT); xml_write_int(fil, g_array_index(league->prom_rel.elements, PromRelElement, i).ranks[0], TAG_LEAGUE_PROM_REL_ELEMENT_RANK, I2); xml_write_int(fil, g_array_index(league->prom_rel.elements, PromRelElement, i).ranks[1], TAG_LEAGUE_PROM_REL_ELEMENT_RANK, I2); xml_write_int(fil, g_array_index(league->prom_rel.elements, PromRelElement, i).type, TAG_LEAGUE_PROM_REL_ELEMENT_TYPE, I2); xml_write_int(fil, g_array_index(league->prom_rel.elements, PromRelElement, i).from_table, TAG_LEAGUE_PROM_REL_ELEMENT_FROM_TABLE, I2); xml_write_string(fil, g_array_index(league->prom_rel.elements, PromRelElement, i).dest_sid, TAG_LEAGUE_PROM_REL_ELEMENT_DEST_SID, I2); fprintf(fil, "%s\n", I1, TAG_LEAGUE_PROM_REL_ELEMENT); } fprintf(fil, "%s\n", I1, TAG_LEAGUE_PROM_REL_ELEMENTS); fprintf(fil, "%s\n", I0, TAG_LEAGUE_PROM_REL); } bygfoot-2.3.2/src/xml_loadsave_leagues_cups.h0000644000175000017500000000364111225071373020325 0ustar eliaselias/* xml_loadsave_leagues_cups.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_LEAGUES_CUPS_H #define XML_LOADSAVE_LEAGUES_CUPS_H #include "bygfoot.h" #include "variables.h" void xml_loadsave_leagues_cups_write(const gchar *prefix); void xml_loadsave_leagues_cups_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_leagues_cups_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_leagues_cups_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_leagues_cups_read(const gchar *dirname, const gchar *prefix); void xml_loadsave_leagues_cups_adjust_team_ptrs(void); #endif bygfoot-2.3.2/src/xml_loadsave_teams.c0000644000175000017500000002235111225071373016751 0ustar eliaselias/* xml_loadsave_teams.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "misc.h" #include "player.h" #include "team.h" #include "xml.h" #include "xml_loadsave_players.h" #include "xml_loadsave_teams.h" enum { TAG_TEAMS = TAG_START_TEAMS, TAG_TEAM, TAG_TEAM_NAMES_FILE, TAG_TEAM_STRUCTURE, TAG_TEAM_STYLE, TAG_TEAM_BOOST, TAG_TEAM_CLID, TAG_TEAM_STRATEGY_SID, TAG_TEAM_STADIUM, TAG_TEAM_STADIUM_NAME, TAG_TEAM_STADIUM_CAPACITY, TAG_TEAM_STADIUM_AVERAGE_ATTENDANCE, TAG_TEAM_STADIUM_POSSIBLE_ATTENDANCE, TAG_TEAM_STADIUM_GAMES, TAG_TEAM_STADIUM_SAFETY, TAG_TEAM_LUCK, TAG_TEAM_STADIUM_TICKET_PRICE, TAG_END }; gint state, etalidx, careeridx; GArray *teams_array; Team new_team; Player new_player; PlayerGamesGoals new_games_goals; PlayerCard new_card; void xml_loadsave_teams_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_teams_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_TEAMS;i= TAG_START_PLAYERS && tag <= TAG_END_PLAYERS) { valid_tag = TRUE; state = TAG_START_PLAYERS; xml_loadsave_players_start_element(tag, &new_team); } if(!valid_tag) debug_print_message("xml_loadsave_teams_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_teams_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_teams_end_element\n"); #endif gint tag = xml_get_tag_from_name(element_name); if(tag == TAG_TEAM) { state = TAG_TEAMS; g_array_append_val(teams_array, new_team); } else if(tag == TAG_NAME || tag == TAG_SYMBOL || tag == TAG_TEAM_NAMES_FILE || tag == TAG_TEAM_ID || tag == TAG_TEAM_CLID || tag == TAG_TEAM_STRATEGY_SID || tag == TAG_TEAM_STRUCTURE || tag == TAG_TEAM_STYLE || tag == TAG_TEAM_BOOST || tag == TAG_TEAM_STADIUM || tag == TAG_TEAM_LUCK) state = TAG_TEAM; else if(tag == TAG_TEAM_STADIUM_NAME || tag == TAG_TEAM_STADIUM_CAPACITY || tag == TAG_TEAM_STADIUM_AVERAGE_ATTENDANCE || tag == TAG_TEAM_STADIUM_POSSIBLE_ATTENDANCE || tag == TAG_TEAM_STADIUM_GAMES || tag == TAG_TEAM_STADIUM_TICKET_PRICE || tag == TAG_TEAM_STADIUM_SAFETY) state = TAG_TEAM_STADIUM; else if(tag >= TAG_START_PLAYERS && tag <= TAG_END_PLAYERS) { xml_loadsave_players_end_element(tag, new_team.players); if(tag == TAG_START_PLAYERS) state = TAG_TEAM; } else if(tag != TAG_TEAMS) debug_print_message("xml_loadsave_teams_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_teams_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_teams_text\n"); #endif gchar buf[SMALL]; gint int_value = -1; gfloat float_value = -1; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = (gfloat)g_ascii_strtod(buf, NULL) / 10000; if(state == TAG_NAME) misc_string_assign(&new_team.name, buf); else if(state == TAG_SYMBOL) misc_string_assign(&new_team.symbol, buf); else if(state == TAG_TEAM_NAMES_FILE) misc_string_assign(&new_team.names_file, buf); else if(state == TAG_TEAM_CLID) new_team.clid = int_value; else if(state == TAG_TEAM_STRATEGY_SID) misc_string_assign(&new_team.strategy_sid, buf); else if(state == TAG_TEAM_ID) new_team.id = int_value; else if(state == TAG_TEAM_STRUCTURE) new_team.structure = int_value; else if(state == TAG_TEAM_STYLE) new_team.style = int_value; else if(state == TAG_TEAM_BOOST) new_team.boost = int_value; else if(state == TAG_TEAM_STADIUM_NAME) misc_string_assign(&new_team.stadium.name, buf); else if(state == TAG_TEAM_STADIUM_CAPACITY) new_team.stadium.capacity = int_value; else if(state == TAG_TEAM_STADIUM_AVERAGE_ATTENDANCE) new_team.stadium.average_attendance = int_value; else if(state == TAG_TEAM_STADIUM_POSSIBLE_ATTENDANCE) new_team.stadium.possible_attendance = int_value; else if(state == TAG_TEAM_STADIUM_GAMES) new_team.stadium.games = int_value; else if(state == TAG_TEAM_STADIUM_SAFETY) new_team.stadium.safety = float_value; else if(state == TAG_TEAM_STADIUM_TICKET_PRICE) new_team.stadium.ticket_price = float_value; else if(state == TAG_TEAM_LUCK) new_team.luck = float_value; else if(state >= TAG_START_PLAYERS && state <= TAG_END_PLAYERS) xml_loadsave_players_text(buf); } void xml_loadsave_teams_read(const gchar *filename, GArray *teams) { #ifdef DEBUG printf("xml_loadsave_teams_read\n"); #endif gint i, j; GMarkupParser parser = {xml_loadsave_teams_start_element, xml_loadsave_teams_end_element, xml_loadsave_teams_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_teams_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); } teams_array = teams; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_teams_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } for(i=0;ilen;i++) for(j=0;jlen;j++) g_array_index(g_array_index(teams, Team, i).players, Player, j).team = &g_array_index(teams, Team, i); } void xml_loadsave_teams_write(const gchar *filename, const GArray *teams) { #ifdef DEBUG printf("xml_loadsave_teams_write\n"); #endif gint i; FILE *fil = NULL; file_my_fopen(filename, "w", &fil, TRUE); fprintf(fil, "<_%d>\n", TAG_TEAMS); for(i=0;ilen;i++) xml_loadsave_teams_write_team(fil, &g_array_index(teams, Team, i)); fprintf(fil, "\n", TAG_TEAMS); fclose(fil); } void xml_loadsave_teams_write_team(FILE *fil, const Team* team) { #ifdef DEBUG printf("xml_loadsave_teams_write_team\n"); #endif fprintf(fil, "<_%d>\n", TAG_TEAM); xml_write_string(fil, team->name, TAG_NAME, I1); xml_write_string(fil, team->symbol, TAG_SYMBOL, I1); xml_write_string(fil, team->names_file, TAG_TEAM_NAMES_FILE, I1); xml_write_string(fil, team->strategy_sid, TAG_TEAM_STRATEGY_SID, I1); xml_write_int(fil, team->clid, TAG_TEAM_CLID, I1); xml_write_int(fil, team->id, TAG_TEAM_ID, I1); xml_write_int(fil, team->structure, TAG_TEAM_STRUCTURE, I1); xml_write_int(fil, team->style, TAG_TEAM_STYLE, I1); xml_write_int(fil, team->boost, TAG_TEAM_BOOST, I1); fprintf(fil, "%s<_%d>\n", I1, TAG_TEAM_STADIUM); if(team->stadium.name != NULL) xml_write_string(fil, team->stadium.name, TAG_TEAM_STADIUM_NAME, I2); xml_write_int(fil, team->stadium.capacity, TAG_TEAM_STADIUM_CAPACITY, I2); xml_write_int(fil, team->stadium.average_attendance, TAG_TEAM_STADIUM_AVERAGE_ATTENDANCE, I2); xml_write_int(fil, team->stadium.possible_attendance, TAG_TEAM_STADIUM_POSSIBLE_ATTENDANCE, I2); xml_write_int(fil, team->stadium.games, TAG_TEAM_STADIUM_GAMES, I2); xml_write_float(fil, team->stadium.safety, TAG_TEAM_STADIUM_SAFETY, I2); xml_write_float(fil, team->stadium.ticket_price, TAG_TEAM_STADIUM_TICKET_PRICE, I2); fprintf(fil, "%s\n", I1, TAG_TEAM_STADIUM); xml_loadsave_players_write(fil, team->players); xml_write_float(fil, team->luck, TAG_TEAM_LUCK, I1); fprintf(fil, "\n", TAG_TEAM); } bygfoot-2.3.2/src/free.h0000644000175000017500000000561011225071373014027 0ustar eliaselias/* free.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FREE_H #define FREE_H #include "bygfoot.h" #include "cup_struct.h" #include "job_struct.h" #include "league_struct.h" #include "live_game_struct.h" #include "name_struct.h" #include "news_struct.h" #include "player_struct.h" #include "team_struct.h" #include "user_struct.h" #define free_gchar_ptr(string) {g_free(string); string = NULL;} void free_g_array(GArray **array); void free_g_ptr_array(GPtrArray **array); void free_g_string(GString **string); void free_memory(void); void free_users(gboolean reset); void free_user(User *user); void free_country(Country *cntry, gboolean reset); void free_leagues_array(GArray **leagues, gboolean reset); void free_league(League *league); void free_joined_leagues(GArray **joined_leagues); void free_teams_array(GArray **teams, gboolean reset); void free_team(Team *team); void free_cups_array(GArray **cups, gboolean reset); void free_cup(Cup *cup); void free_cup_choose_team(CupChooseTeam *cup_choose_team); void free_variables(void); void free_gchar_array(GPtrArray **array); void free_player_array(GArray **players); void free_player(Player *pl); void free_live_game(LiveGame *match); void free_lg_commentary(gboolean reset); void free_option_list(OptionList *optionlist, gboolean reset); void free_event(Event *event); void free_support_dirs(void); void free_tables(GArray **tables); void free_new_tables(GArray **new_tables); void free_league_stats(LeagueStat *stats); void free_season_stats(gboolean reset); void free_transfer_list(void); void free_name_list(NameList *namelist, gboolean reset); void free_names(gboolean reset); void free_mmatches(GArray **mmatches, gboolean reset); void free_strategies(void); void free_bets(gboolean reset); void free_job(Job *job, gboolean free_tm); void free_jobs(gboolean reset); void free_news(gboolean reset); void free_newspaper(gboolean reset); void free_newspaper_article(NewsPaperArticle *article); void free_cup_round(CupRound *cup_round); void free_prom_rel(PromRel *prom_rel); #endif bygfoot-2.3.2/src/user.c0000644000175000017500000011463011225071373014062 0ustar eliaselias/* user.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "cup.h" #include "file.h" #include "finance.h" #include "fixture.h" #include "free.h" #include "game_gui.h" #include "league.h" #include "live_game.h" #include "main.h" #include "maths.h" #include "misc.h" #include "name.h" #include "option.h" #include "player.h" #include "support.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "user.h" #include "window.h" #include "xml_mmatches.h" #include "youth_academy.h" /** Create a new user with default values. */ User user_new(void) { #ifdef DEBUG printf("user_new\n"); #endif User new; new.name = g_strdup("NONAME"); new.tm = NULL; new.team_id = -1; live_game_reset(&new.live_game, NULL, FALSE); new.events = g_array_new(FALSE, FALSE, sizeof(Event)); new.history = g_array_new(FALSE, FALSE, sizeof(UserHistory)); new.options.list = NULL; new.options.datalist = NULL; new.sponsor.name = g_string_new(""); new.sponsor.contract = new.sponsor.benefit = -1; new.youth_academy.players = g_array_new(FALSE, FALSE, sizeof(Player)); new.youth_academy.pos_pref = PLAYER_POS_ANY; new.youth_academy.coach = QUALITY_AVERAGE; new.mmatches_file = NULL; new.mmatches = g_array_new(FALSE, FALSE, sizeof(MemMatch)); new.bets[0] = g_array_new(FALSE, FALSE, sizeof(BetUser)); new.bets[1] = g_array_new(FALSE, FALSE, sizeof(BetUser)); new.default_team = g_array_new(FALSE, FALSE, sizeof(gint)); return new; } /** Move a user's team to top or bottom league at the beginning of a new game and set up the team. @param user The user we set up the team for. */ void user_set_up_team_new_game(User *user) { #ifdef DEBUG printf("user_set_up_team_new_game\n"); #endif gchar buf[SMALL]; gint rndom; /* If the user chose to start in a different league than his team is originally in, the league is stored in the scout variable. */ if(user->scout == -1) { user_set_up_team(user, TRUE); user_history_add(user, USER_HISTORY_START_GAME, user->tm->name, league_cup_get_name_string(user->tm->clid), NULL, NULL); } else { rndom = math_rndi(0, lig(user->scout).teams->len - 1); while(team_is_user(&g_array_index(lig(user->scout).teams, Team, rndom)) != -1) rndom = math_rndi(0, lig(user->scout).teams->len - 1); sprintf(buf, "%s", g_array_index(lig(user->scout).teams, Team, rndom).name); misc_string_assign(&g_array_index(lig(user->scout).teams, Team, rndom).name, user->tm->name); misc_string_assign(&user->tm->name, buf); user->tm = &g_array_index(lig(user->scout).teams, Team, rndom); user->team_id = g_array_index(lig(user->scout).teams, Team, rndom).id; user_history_add(user, USER_HISTORY_START_GAME, user->tm->name, league_cup_get_name_string(user->tm->clid), NULL, NULL); user_set_up_team(user, TRUE); } } /** Set up finances, remove some players etc. for a new user team. @par am user The user whose team we set up. */ void user_set_up_team(User *user, gboolean remove_players) { #ifdef DEBUG printf("user_set_up_team\n"); #endif gint i, j; if(remove_players) { for(i=PLAYER_POS_DEFENDER; i<=PLAYER_POS_FORWARD; i++) for(j=user->tm->players->len - 1; j > 10; j--) if(g_array_index(user->tm->players, Player, j).pos == i && g_array_index(user->tm->players, Player, j).recovery != 1) { player_remove_from_team(user->tm, j); break; } } for(i=0;itm->players->len;i++) g_array_index(user->tm->players, Player, i).recovery = 0; user->scout = user->physio = QUALITY_AVERAGE; if(sett_int("int_opt_disable_transfers")) user->physio = QUALITY_GOOD; user->tm->style = 0; user_set_up_finances(user); user_set_up_counters(user); if(!sett_int("int_opt_disable_ya")) youth_academy_new(user); user->counters[COUNT_USER_NEW_SPONSOR] = (sett_int("int_opt_disable_finances")) ? -5 : 1; option_set_int("int_opt_user_penalty_shooter", &user->options, -1); } /** Set the counters of the user to their initial values. */ void user_set_up_counters(User *user) { #ifdef DEBUG printf("user_set_up_counters\n"); #endif gint i; for(i=0;icounters[i] = 0; user->counters[COUNT_USER_LOAN] = user->counters[COUNT_USER_POSITIVE] = -1; user->counters[COUNT_USER_TRAININGS_LEFT_SEASON] = const_int("int_training_camps_per_season"); } /** Set up the user's finances when he's got a new team. @param user The user we set up the finances for. */ void user_set_up_finances(User *user) { #ifdef DEBUG printf("user_set_up_finances\n"); #endif gint i; for(i=0; imoney_out[0][i] = user->money_out[1][i] = 0; for(i=0; imoney_in[0][i] = user->money_in[1][i] = 0; user->debt = user->debt_interest = user->alr_start_week = user->alr_weekly_installment = 0; user->money = math_round_integer(user->tm->stadium.capacity * math_rndi(const_int("int_initial_money_lower"), const_int("int_initial_money_upper")), 2); } /** Remove a user from the game. @param idx The index of the user in the #users array. @param regenerate_team Whether the user's team has to be regenerated. */ void user_remove(gint idx, gboolean regenerate_team) { #ifdef DEBUG printf("user_remove\n"); #endif gint i; if(regenerate_team) { for(i=0;iplayers->len;i++) free_player(&g_array_index(usr(idx).tm->players, Player, i)); g_array_free(usr(idx).tm->players, TRUE); usr(idx).tm->players = g_array_new(FALSE, FALSE, sizeof(Player)); usr(idx).tm->luck = 1; team_generate_players_stadium(usr(idx).tm, 0); for(i=0;iplayers->len;i++) g_array_index(usr(idx).tm->players, Player, i).team = usr(idx).tm; } free_user(&usr(idx)); g_array_remove_index(users, idx); cur_user = 0; if(window.main != NULL) game_gui_show_main(); } void user_set_player_list_attributes(const User *user, PlayerListAttribute *attribute, gint list_number) { #ifdef DEBUG printf("user_set_player_list_attributes\n"); #endif gint i, cnt = 0; gchar prefix[SMALL]; sprintf(prefix, "int_opt_user_pl%d_att", list_number); for(i=0;ioptions.list->len;i++) if(g_str_has_prefix(g_array_index(user->options.list, Option, i).name, prefix)) { attribute->on_off[cnt] = g_array_index(user->options.list, Option, i).value; cnt++; } } /** Find out whether there are user events. */ gboolean query_user_events() { #ifdef DEBUG printf("query_user_events\n"); #endif gint i; for(i=0;ilen;i++) if(usr(i).events->len!=0) return TRUE; return FALSE; } /** Find out whether there are user games at the specified date. */ gboolean query_user_games_in_week_round(gint week_number, gint week_round_number) { #ifdef DEBUG printf("query_user_games_in_week_round\n"); #endif gint i; for(i=0;ilen;i++) if(query_user_game_in_week_round(i, week_number, week_round_number)) return TRUE; return FALSE; } /** Find out whether the specified user has a match at the specified date. */ gboolean query_user_game_in_week_round(gint usr_idx, gint week_number, gint week_round_number) { #ifdef DEBUG printf("query_user_game_in_week_round\n"); #endif gint i, j; for(i=0;ilen;i++) for(j=0;jlen;j++) if(fixture_user_team_involved(&g_array_index(lig(i).fixtures, Fixture, j)) == usr_idx && g_array_index(lig(i).fixtures, Fixture, j).week_number == week_number && g_array_index(lig(i).fixtures, Fixture, j).week_round_number == week_round_number) return TRUE; for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(fixture_user_team_involved(&g_array_index(acp(i)->fixtures, Fixture, j)) == usr_idx && g_array_index(acp(i)->fixtures, Fixture, j).week_number == week_number && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number == week_round_number) return TRUE; return FALSE; } /** Get the user managing the team. @param tm The team. @return A pointer to the user. */ User* user_from_team(const Team *tm) { gint i; for(i=0;ilen;i++) if(usr(i).tm == tm) return &usr(i); main_exit_program(EXIT_POINTER_NOT_FOUND, "User going with team %s not found.\n", tm->name); return NULL; } /** Check the success counter of the user and offer a new job or fire him if the counter says so. */ void user_job_offer(User *user) { #ifdef DEBUG printf("user_job_offer\n"); #endif Team *new_team = NULL; if(math_rnd(0, 1) > const_float("float_user_success_counter_check") || ABS(user->counters[COUNT_USER_SUCCESS]) < (gfloat)const_int("int_user_success_offer_limit") * 0.9) return; if(user->counters[COUNT_USER_SUCCESS] < -(gfloat)const_int("int_user_success_offer_limit") * 0.9 && !user->counters[COUNT_USER_WARNING]) { user_event_add(user, EVENT_TYPE_WARNING, -1, -1, NULL, _("The owners of %s are not satisfied with the recent performance of the team. There are rumours they're looking for a new manager."), user->tm->name); user->counters[COUNT_USER_WARNING] = 1; return; } if(math_rnd(0, 1) < const_float("float_user_success_base_prob") * log((gfloat)ABS(user->counters[COUNT_USER_SUCCESS]) * const_float("float_user_success_prob_factor"))) { if(user->counters[COUNT_USER_SUCCESS] < 0) { new_team = team_get_new(user->tm, TRUE); user_event_add(user, EVENT_TYPE_FIRE_FAILURE, -1, -1, new_team, NULL); } else if(option_int("int_opt_user_show_job_offers", &user->options)) { new_team = team_get_new(user->tm, FALSE); user_event_add(user, EVENT_TYPE_JOB_OFFER, -1, -1, new_team, NULL); } } } /** Update the counters of the users. */ void user_weekly_update_counters(User *user) { #ifdef DEBUG printf("user_weekly_update_counters\n"); #endif gint rank = team_get_league_rank(user->tm, -1); gint teamslen = ((GArray*)(league_cup_get_teams(user->tm->clid)))->len; gint rank_bounds[2] = {(gint)rint(const_float("float_user_success_table_bound_upper") * (gfloat)teamslen), (gint)rint(const_float("float_user_success_table_bound_lower") * (gfloat)teamslen)}; gint *cnts = user->counters; gint increase_capacity; gfloat increase_safety; cnts[COUNT_USER_TRAININGS_WEEK] = 0; if(cnts[COUNT_USER_STADIUM_CAPACITY] > 0) { increase_capacity = math_rndi(const_int("int_stadium_improvement_base_seats") - const_int("int_stadium_improvement_seats_variance"), const_int("int_stadium_improvement_base_seats") + const_int("int_stadium_improvement_seats_variance")); user->tm->stadium.capacity += MIN(cnts[COUNT_USER_STADIUM_CAPACITY], increase_capacity); cnts[COUNT_USER_STADIUM_CAPACITY] = MAX(cnts[COUNT_USER_STADIUM_CAPACITY] - increase_capacity, 0); } if(cnts[COUNT_USER_STADIUM_SAFETY] > 0) { increase_safety = math_rnd(const_float("float_stadium_improvement_base_safety") - const_float("float_stadium_improvement_safety_variance"), const_float("float_stadium_improvement_base_safety") + const_float("float_stadium_improvement_safety_variance")); user->tm->stadium.safety += MIN((gfloat)cnts[COUNT_USER_STADIUM_SAFETY] / 100, increase_safety); user->tm->stadium.safety = MIN(user->tm->stadium.safety, 1); cnts[COUNT_USER_STADIUM_SAFETY] = MAX(cnts[COUNT_USER_STADIUM_SAFETY] - (gint)rint(increase_safety * 100), 0); } if(query_league_matches_in_week(league_from_clid(user->tm->clid), week)) { if(rank < rank_bounds[0]) user->counters[COUNT_USER_SUCCESS] += (rank_bounds[0] - rank); else if(rank > rank_bounds[1]) user->counters[COUNT_USER_SUCCESS] -= (rank - rank_bounds[1]); else { if(user->counters[COUNT_USER_SUCCESS] > 0) user->counters[COUNT_USER_SUCCESS] -= const_int("int_user_success_mediocre_rank_change"); else user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_mediocre_rank_change"); } } } /** Return a default new user event. */ Event user_event_new(void) { #ifdef DEBUG printf("user_event_new\n"); #endif Event new; new.user = NULL; new.type = -1; new.value1 = new.value2 = -1; new.value_pointer = NULL; new.value_string = NULL; return new; } /** Add an event with the specified values to the event array of the user. */ void user_event_add(User *user, gint type, gint value1, gint value2, gpointer value_pointer, gchar *format, ...) { #ifdef DEBUG printf("user_event_add\n"); #endif Event new = user_event_new(); gchar text[SMALL]; va_list args; new.user = user; new.type = type; new.value1 = value1; new.value2 = value2; new.value_pointer = value_pointer; if(format != NULL) { va_start (args, format); g_vsprintf(text, format, args); va_end (args); new.value_string = g_strdup(text); } else new.value_string = NULL; g_array_append_val(user->events, new); } /** Remove an event from the user event array. @param user The user. @param idx The index of the event in the array. */ void user_event_remove(User *user, gint idx) { #ifdef DEBUG printf("user_event_remove\n"); #endif free_event(&g_array_index(user->events, Event, idx)); g_array_remove_index(user->events, idx); } /** Show the next event for the current user. */ void user_event_show_next(void) { #ifdef DEBUG printf("user_event_show_next\n"); #endif Event *event = NULL; gchar buf[SMALL], buf2[SMALL], buf3[SMALL]; if(current_user.events->len == 0) return; stat4 = STATUS_SHOW_EVENT; event = &g_array_index(current_user.events, Event, 0); switch(event->type) { default: debug_print_message("user_event_show_next: unknown event type %d\n", event->type); break; case EVENT_TYPE_PLAYER_LEFT: game_gui_show_warning(_("%s has left your team because his contract expired."), event->value_string); break; case EVENT_TYPE_WARNING: game_gui_show_warning(event->value_string, NULL); break; case EVENT_TYPE_FIRE_FINANCE: game_gui_show_job_offer((Team*)event->value_pointer, NULL, STATUS_JOB_OFFER_FIRE_FINANCE); break; case EVENT_TYPE_FIRE_FAILURE: game_gui_show_job_offer((Team*)event->value_pointer, NULL, STATUS_JOB_OFFER_FIRE_FAILURE); break; case EVENT_TYPE_JOB_OFFER: game_gui_show_job_offer((Team*)event->value_pointer, NULL, STATUS_JOB_OFFER_SUCCESS); break; case EVENT_TYPE_OVERDRAW: if(event->value1 == 1) game_gui_show_warning(_("You have overdrawn your bank account. The team owners give you %d weeks to get above your drawing credit limit."), const_int("int_finance_overdraw_positive")); else game_gui_show_warning(_("You have overdrawn your bank account once again. Bear in mind that after the fourth time you get fired.\nThe team owners give you %d weeks to get above your drawing credit limit."), const_int("int_finance_overdraw_positive")); break; case EVENT_TYPE_TRANSFER_OFFER_USER: game_gui_show_warning(_("Have a look at the transfer list, there's an offer for %s."), event->value_string); break; case EVENT_TYPE_TRANSFER_OFFER_CPU: game_gui_show_warning(_("Your offer for %s has been accepted. If you still want to buy him, go to the transfer list and left click on the player."), event->value_string); break; case EVENT_TYPE_TRANSFER_OFFER_REJECTED_BETTER_OFFER: misc_print_grouped_int(event->value1, buf2); misc_print_grouped_int(event->value2, buf3); game_gui_show_warning(_("The owners of %s have rejected your offer (%s / %s) for %s. There was a better offer for the player than yours."), ((Team*)event->value_pointer)->name, buf2, buf3, event->value_string); break; case EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE_WAGE: misc_print_grouped_int(event->value1, buf2); misc_print_grouped_int(event->value2, buf3); game_gui_show_warning(_("The owners of %s have rejected your offer (%s / %s) for %s. Neither the fee nor the wage you offered were acceptable, they say."), ((Team*)event->value_pointer)->name, buf2, buf3, event->value_string); break; case EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE: misc_print_grouped_int(event->value1, buf2); misc_print_grouped_int(event->value2, buf3); game_gui_show_warning(_("The owners of %s have rejected your offer (%s / %s) for %s. The team owners weren't satisfied with the fee you offered."), ((Team*)event->value_pointer)->name, buf2, buf3, event->value_string); break; case EVENT_TYPE_TRANSFER_OFFER_REJECTED_WAGE: misc_print_grouped_int(event->value1, buf2); misc_print_grouped_int(event->value2, buf3); /* A player from a team has rejected a transfer offer. */ game_gui_show_warning(_("%s of %s has rejected your offer (%s / %s). He wasn't satisfied with the wage you offered."), event->value_string, ((Team*)event->value_pointer)->name, buf2, buf3); break; case EVENT_TYPE_TRANSFER_OFFER_REJECTED_STARS: /* A player from a team has rejected a transfer offer. */ game_gui_show_warning(_("%s of %s has rejected your offer because your team has too many star players already. 'A player of my caliber doesn't play second fiddle,' he was quoted."), event->value_string, ((Team*)event->value_pointer)->name); break; case EVENT_TYPE_TRANSFER_OFFER_MONEY: /* Buy a player from a team. */ game_gui_show_warning(_("You didn't have enough money to buy %s from %s."), event->value_string, ((Team*)event->value_pointer)->name); break; case EVENT_TYPE_TRANSFER_OFFER_ROSTER: /* Buy a player from a team. */ game_gui_show_warning(_("Your roster is full. You couldn't buy %s from %s."), event->value_string, ((Team*)event->value_pointer)->name); break; case EVENT_TYPE_PLAYER_CAREER_STOP: sprintf(buf, _("%s's injury was so severe that he can't play football on a professional level anymore. He leaves your team."), player_of_id_team(event->user->tm, event->value1)->name); if(event->user->tm->players->len < 12) { strcat(buf, _(" Fortunately he's got a cousin who can help your team out.")); player_replace_by_new(player_of_id_team(event->user->tm, event->value1), TRUE); } else player_remove_from_team(event->user->tm, player_id_index(event->user->tm, event->value1)); treeview_show_user_player_list(); game_gui_show_warning(buf,NULL); break; case EVENT_TYPE_CHARITY: game_gui_show_warning(_("The team owners are very satisfied with your financial management. Since the team's been earning a lot of money lately, they decide to donate half of it to charity.")); break; } user_event_remove(¤t_user, 0); } /** Change the team of a user. */ void user_change_team(User *user, Team *tm) { #ifdef DEBUG printf("user_change_team\n"); #endif gint i; gint success = user->counters[COUNT_USER_SUCCESS]; /* Reset the ticketprice of the old team to the default value */ user->tm->stadium.ticket_price = const_int("int_team_stadium_ticket_price"); user->tm = tm; user->team_id = tm->id; user_set_up_team(user, FALSE); user->counters[COUNT_USER_NEW_SPONSOR] = 0; user->counters[COUNT_USER_SUCCESS] = (success < 0) ? 0 : (gint)rint((gfloat)success / 2); g_string_free(user->sponsor.name, TRUE); user->sponsor = user_get_sponsor(¤t_user); for(i=user->events->len - 1; i >= 0; i--) user_event_remove(user, i); } /** Check whether one of the user teams has an unfit player in the startup formation. */ gboolean query_user_teams_have_unfit(void) { #ifdef DEBUG printf("query_user_teams_have_unfit\n"); #endif gint i, j; for(i=0;ilen;i++) { if(query_user_game_in_week_round(i, week, week_round)) { for(j=0;j<11;j++) if(g_array_index(usr(i).tm->players, Player, j).health != 0 || player_is_banned(&g_array_index(usr(i).tm->players, Player, j)) > 0) return TRUE; } } return FALSE; } /** Compare function for history sorting. */ gint user_history_compare(gconstpointer a, gconstpointer b) { #ifdef DEBUG printf("user_history_compare\n"); #endif gint return_value = 0; const UserHistory *his1 = (const UserHistory*)a, *his2 = (const UserHistory*)b; if(his1->season < his2->season) return_value = 1; else if(his1->season > his2->season) return_value = -1; else if(his1->week < his2->week) return_value = 1; else if(his1->week > his2->week) return_value = -1; return return_value; } /** Add an element to the user history filled with the given values. */ void user_history_add(User *user, gint type, const gchar *team_name, const gchar* string0, const gchar *string1, const gchar *string2) { #ifdef DEBUG printf("user_history_add\n"); #endif gint i; UserHistory new_history; UserHistory *his = &new_history; gboolean replace = FALSE; his->team_name = his->string[0] = his->string[1] = his->string[2] = NULL; if(type == USER_HISTORY_WIN_FINAL || type == USER_HISTORY_LOSE_FINAL || type == USER_HISTORY_REACH_CUP_ROUND) { for(i=0;ihistory->len;i++) if((g_array_index(user->history, UserHistory, i).type == USER_HISTORY_WIN_FINAL || g_array_index(user->history, UserHistory, i).type == USER_HISTORY_LOSE_FINAL || g_array_index(user->history, UserHistory, i).type == USER_HISTORY_REACH_CUP_ROUND) && g_array_index(user->history, UserHistory, i).season == season && strcmp(g_array_index(user->history, UserHistory, i).team_name, team_name) == 0 && strcmp(g_array_index(user->history, UserHistory, i).string[0], string0) == 0) { /** Same cup round. */ if(type == USER_HISTORY_REACH_CUP_ROUND && string2 != NULL && strcmp(g_array_index(user->history, UserHistory, i).string[2], string2) == 0) return; his = &g_array_index(user->history, UserHistory, i); replace = TRUE; break; } } if(type == USER_HISTORY_PROMOTED) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_promotion"); else if(type == USER_HISTORY_RELEGATED) user->counters[COUNT_USER_SUCCESS] -= const_int("int_user_success_relegation"); his->season = season; his->week = week; his->type = type; if(replace) { if(string0 != NULL) misc_string_assign(&his->string[0], string0); if(string1 != NULL) misc_string_assign(&his->string[1], string1); if(string2 != NULL) misc_string_assign(&his->string[2], string2); g_array_sort(user->history, (GCompareFunc)user_history_compare); } else { his->team_name = g_strdup(team_name); if(string0 != NULL) his->string[0] = g_strdup(string0); if(string1 != NULL) his->string[1] = g_strdup(string1); if(string2 != NULL) his->string[2] = g_strdup(string2); g_array_prepend_val(user->history, *his); } } /** Write the text corresponding to the history event into the buffer. */ void user_history_to_string(const UserHistory *history, gchar *buf) { #ifdef DEBUG printf("user_history_to_string\n"); #endif switch(history->type) { default: debug_print_message("user_history_to_string: unknown history type %d.\n", history->type); strcpy(buf, "FIXME!!!"); case USER_HISTORY_START_GAME: /* Buy a team in a league. */ sprintf(buf, _("You start the game with %s in the %s."), history->team_name, history->string[0]); break; case USER_HISTORY_FIRE_FINANCE: /* Team fires, team in a league. */ sprintf(buf, _("%s fires you because of financial mismanagement.\nYou find a new job with %s in the %s."), history->team_name, history->string[0], history->string[1]); break; case USER_HISTORY_FIRE_FAILURE: /* Team fires, team in a league. */ sprintf(buf, _("%s fires you because of unsuccessfulness.\nYou find a new job with %s in the %s."), history->team_name, history->string[0], history->string[1]); break; case USER_HISTORY_JOB_OFFER_ACCEPTED: /* Team in a league. Leave team. */ sprintf(buf, _("%s offer you a job in the %s.\nYou accept the challenge and leave %s."), history->string[0], history->string[1], history->team_name); break; case USER_HISTORY_END_SEASON: /* League name. */ sprintf(buf, _("You finish the season in the %s on rank %s."), history->string[0], history->string[1]); break; case USER_HISTORY_PROMOTED: /* League name. */ sprintf(buf, _("You get promoted to the %s."), history->string[0]); break; case USER_HISTORY_RELEGATED: /* League name. */ sprintf(buf, _("You get relegated to the %s."), history->string[0]); break; case USER_HISTORY_WIN_FINAL: /* Cup name, team name. */ sprintf(buf, _("You win the %s final against %s."), history->string[0], history->string[1]); break; case USER_HISTORY_LOSE_FINAL: /* Cup name, team name. */ sprintf(buf, _("You lose in the %s final against %s."), history->string[0], history->string[1]); break; case USER_HISTORY_REACH_CUP_ROUND: /* Cup round name (e.g. Last 32), number, cup name. */ sprintf(buf, _("You reach the %s (round %s) of the %s."), history->string[1], history->string[2], history->string[0]); break; case USER_HISTORY_CHAMPION: /* League name. */ sprintf(buf, _("You are champion of the %s!"), history->string[0]); break; } } /** Increase the user success counter when the user is successful in a cup. */ void user_add_cup_success(User *user, const Cup *cup, gint round, gint type) { #ifdef DEBUG printf("user_add_cup_success\n"); #endif gboolean international, national; international = query_league_cup_has_property(cup->id, "international"); national = query_league_cup_has_property(cup->id, "national"); if(type == USER_HISTORY_WIN_FINAL) { if(international) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_international_winner"); else if(national) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_national_winner"); } else if(type == USER_HISTORY_LOSE_FINAL) { if(international) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_international_final"); else if(international) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_national_winner"); const_int("int_user_success_national_final"); } else if(type == USER_HISTORY_REACH_CUP_ROUND) { if(round == cup_from_clid(cup->id)->rounds->len - 2) { if(international) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_international_semis"); else if(national) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_national_semis"); } else if(round == cup_from_clid(cup->id)->rounds->len - 3) { if(international) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_international_quarter"); else if(national) user->counters[COUNT_USER_SUCCESS] += const_int("int_user_success_national_quarter"); } } } /** Find out whether there's a user who didn't have his turn before a new week round begins. */ gboolean query_user_no_turn(void) { #ifdef DEBUG printf("query_user_no_turn\n"); #endif gint i; for(i=0;ilen;i++) if(!usr(i).counters[COUNT_USER_TOOK_TURN]) return TRUE; return FALSE; } /** Get a random sponsor for the user. */ UserSponsor user_get_sponsor(const User *user) { #ifdef DEBUG printf("user_get_sponsor\n"); #endif UserSponsor new; gint suc_factor = (current_user.counters[COUNT_USER_SUCCESS] < 0) ? -1 : 1; gchar *names[18] = /* Company name. */ {_(" Systems"), /* Company name. */ _(" Communications"), /* Company name. */ _(" Holdings"), /* Company name. */ _(" Industries"), /* Company name. */ _(" Company"), /* Company name. */ _(" Telecommunications"), /* Company name. */ _(" Labs"), /* Company name. */ _(" Technologies"), /* Company name. */ _(" Chemicals"), /* Company name. */ _(" Energy"), /* Company name. */ _(" Bank"), /* Company name. */ _(" Products"), /* Company name. */ _(" Software"), /* Company name. */ _(" Scientific"), /* Company name. */ _(" Financial"), /* Company name. */ _(" Petroleum"), /* Company name. */ _(" Restaurants"), /* Company name. */ _(" Data Systems")}; gchar *short_names[7] = /* Company short name, leading to things like 'Marshall Data Systems Ltd.' */ {_(" Ltd."), /* Company short name. */ _(" Assoc."), /* Company short name. */ _(" Co."), /* Company short name. */ _(" Ent."), /* Company short name. Copy the '&'. */ _(" & Co."), /* Company short name. */ _(" Corp."), /* Company short name. */ _(" Group")}; gchar *name_add[3] = /* Company addition, leading to 'Marshall & Sons Petroleum Co.'. Copy the '&'. */ {_(" & Sons"), /* Company addition. Copy the '&'. */ _(" & Daughters"), /* Company addition. */ _(" Bros.")}; new.name = g_string_new(name_get_random_last_name(name_get_list_from_sid(user->tm->names_file))); if(math_rnd(0, 1) < 0.2) g_string_append(new.name, name_add[math_rndi(0, 2)]); g_string_append(new.name, names[math_rndi(0, 17)]); if(math_rnd(0, 1) < 0.7) g_string_append(new.name, short_names[math_rndi(0, 6)]); new.contract = 4 * math_rndi(9, 36); new.benefit = (gint)rint((((const_float("float_sponsor_wage_percentage_upper") - const_float("float_sponsor_wage_percentage_lower")) / (2 * (gfloat)const_int("int_user_success_offer_limit"))) * (gfloat)current_user.counters[COUNT_USER_SUCCESS] + ((const_float("float_sponsor_wage_percentage_upper") - const_float("float_sponsor_wage_percentage_lower")) / 2)) * (1 + suc_factor * ((gfloat)new.contract / 52 - 1) * const_float("float_sponsor_contract_length_factor")) * (finance_wage_unit(current_user.tm) * current_user.tm->players->len)); new.benefit = math_round_integer(new.benefit, 2); return new; } /** Show a list of sponsors for the user to choose from. */ void user_show_sponsors(void) { #ifdef DEBUG printf("user_show_sponsors\n"); #endif gint i, num_offers; GArray *sponsors = g_array_new(FALSE, FALSE, sizeof(UserSponsor)); UserSponsor sponsor; if(ABS(current_user.counters[COUNT_USER_SUCCESS]) >= const_int("int_user_success_offer_limit")) num_offers = (current_user.counters[COUNT_USER_SUCCESS] < 0) ? const_int("int_sponsor_offers_lower") : const_int("int_sponsor_offers_upper"); else num_offers = (gint)rint(((gfloat)(const_int("int_sponsor_offers_upper") - const_int("int_sponsor_offers_lower")) / (2 * (gfloat)const_int("int_user_success_offer_limit"))) * (gfloat)current_user.counters[COUNT_USER_SUCCESS] + ((gfloat)(const_int("int_sponsor_offers_upper") - const_int("int_sponsor_offers_lower")) / 2) + 1); num_offers += math_rndi(-1, 1); if(num_offers <= 0) num_offers = 1; for(i=0;istr, NULL); g_array_append_val(sponsors, sponsor); window_create(WINDOW_SPONSORS); sprintf(buf, _("Your current sponsor is satisfied with your results and would like to renew the contract. Currently they're paying you %d a week."), current_user.sponsor.benefit); gtk_label_set_text(GTK_LABEL(lookup_widget(window.sponsors, "label_sponsors")), buf); treeview_show_sponsors(sponsors); g_string_free(g_array_index(sponsors, UserSponsor, 0).name, TRUE); g_array_free(sponsors, TRUE); stat1 = STATUS_SPONSOR_CONTINUE; } /** Load a MM file. */ void user_mm_load_file(const gchar *filename, GArray *mmatches) { #ifdef DEBUG printf("user_mm_load_file\n"); #endif GString *prefix = g_string_new(""); gchar filename_local[SMALL], matches_file[SMALL]; GArray *mm_array = (mmatches == NULL) ? current_user.mmatches : mmatches; strcpy(filename_local, filename); g_string_append_len(prefix, filename_local, strlen(filename_local) - 8); //prefix[strlen(filename_local) - 8] = '\0'; sprintf(matches_file, "%s___mmatches", prefix->str); file_decompress(filename_local); if(mmatches == NULL) free_mmatches(&mm_array, TRUE); xml_mmatches_read(matches_file, mm_array); g_string_append(prefix, "___*"); file_remove_files(prefix); if(mmatches == NULL) misc_string_assign(¤t_user.mmatches_file, filename_local); g_string_free(prefix, TRUE); } /** Add the last match to the MM file. @param load_file Whether to load the matches from the file first. @param save_file Whether to save the MM array to file afterwards. */ void user_mm_add_last_match(gboolean load_file, gboolean save_file) { #ifdef DEBUG printf("user_mm_add_last_match\n"); #endif MemMatch new; const Fixture *fix = current_user.live_game.fix; gchar buf[SMALL]; if(fix->clid < ID_CUP_START) new.competition_name = g_string_new(league_cup_get_name_string(fix->clid)); else { fixture_get_cup_round_name(fix, buf); new.competition_name = g_string_new(""); g_string_printf(new.competition_name, "%s %s", league_cup_get_name_string(fix->clid), buf); } new.country_name = g_strdup(country.name); new.neutral = !(fix->home_advantage); new.user_team = (fix->team_ids[0] != current_user.team_id); new.lg = current_user.live_game; /** This will tell the free function NOT to free the user live game. */ current_user.live_game.started_game = -1; current_user.live_game.units = g_array_new(FALSE, FALSE, sizeof(LiveGameUnit)); if(load_file) user_mm_load_file(current_user.mmatches_file, NULL); g_array_append_val(current_user.mmatches, new); game_gui_print_message(_("Memorable match added.")); if(save_file) user_mm_save_file(current_user.mmatches_file, current_user.mmatches); } /** Save an MM file. */ void user_mm_save_file(const gchar *filename, const GArray *mmatches) { #ifdef DEBUG printf("user_mm_save_file\n"); #endif gchar prefix[SMALL]; strncpy(prefix, filename, strlen(filename) - 8); prefix[strlen(filename) - 8] = '\0'; strcat(prefix, "___"); xml_mmatches_write(prefix, mmatches); file_compress_files(filename, prefix); } /** Set an appropriate filename for the memorable matches file. */ void user_mm_set_filename(const gchar *filename, gchar *dest) { #ifdef DEBUG printf("user_mm_set_filename\n"); #endif gchar buf[SMALL]; if(g_str_has_suffix(filename, ".bmm.zip")) { if(dest == NULL) misc_string_assign(¤t_user.mmatches_file, filename); else strcpy(dest, filename); return; } strcpy(buf, filename); while(g_str_has_suffix(buf, ".bmm") || g_str_has_suffix(buf, ".zip")) buf[strlen(buf) - 4] = '\0'; if(dest == NULL) { strcat(buf, ".bmm.zip"); misc_string_assign(¤t_user.mmatches_file, buf); } else sprintf(dest, "%s.bmm.zip", buf); } /** Import an MM file into the user's MMs. */ void user_mm_import_file(const gchar *filename) { #ifdef DEBUG printf("user_mm_import_file\n"); #endif GArray *mm_array = g_array_new(FALSE, FALSE, sizeof(MemMatch)); gint i; user_mm_load_file(filename, mm_array); for(i=0;ilen;i++) g_array_append_val(current_user.mmatches, g_array_index(mm_array, MemMatch, i)); g_array_free(mm_array, TRUE); } /** Export a match to a file. */ void user_mm_export_file(const gchar *filename) { #ifdef DEBUG printf("user_mm_export_file\n"); #endif gchar buf[SMALL]; GArray *mmatches = g_array_new(FALSE, FALSE, sizeof(MemMatch)); user_mm_set_filename(filename, buf); g_array_append_val(mmatches, g_array_index(current_user.mmatches, MemMatch, stat4)); user_mm_save_file(buf, mmatches); g_array_free(mmatches, TRUE); } /** * This will store the default team of a user */ void store_default_team(User *user) { #ifdef DEBUG printf("store_player_order\n"); #endif gint i; user->default_team = g_array_sized_new(FALSE, FALSE, sizeof(gint), user->tm->players->len); for (i = 0; i < user->tm->players->len; i++) { g_array_append_val(user->default_team, g_array_index(user->tm->players, Player, i).id); } user->default_structure = user->tm->structure; } /** * This will restore the default team */ void restore_default_team(User *user) { #ifdef DEBUG printf("restore_player_order\n"); #endif gint i, player1, player2; for (i=0;itm->players->len; i++){ player1 = g_array_index(user->default_team, gint, i); player2 = g_array_index(user->tm->players, Player, i).id; if (player1 != player2) { player_swap(user->tm,player_id_index(user->tm,player1), user->tm, player_id_index(user->tm,player2)); } } team_change_structure(user->tm, user->default_structure); user->default_structure=-1; g_array_free(user->default_team, TRUE); user->default_team = g_array_new(FALSE, FALSE, sizeof(gint)); } bygfoot-2.3.2/src/xml_loadsave_cup.c0000644000175000017500000004631011225071373016430 0ustar eliaselias/* xml_loadsave_cup.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "file.h" #include "misc.h" #include "table.h" #include "team.h" #include "xml.h" #include "xml_loadsave_cup.h" #include "xml_loadsave_fixtures.h" #include "xml_loadsave_table.h" #include "xml_loadsave_teams.h" enum { TAG_CUP = TAG_START_CUP, TAG_CUP_LAST_WEEK, TAG_CUP_ADD_WEEK, TAG_CUP_GROUP, TAG_CUP_TALENT_DIFF, TAG_CUP_CHOOSE_TEAM, TAG_CUP_CHOOSE_TEAM_SID, TAG_CUP_CHOOSE_TEAM_NUMBER_OF_TEAMS, TAG_CUP_CHOOSE_TEAM_START_IDX, TAG_CUP_CHOOSE_TEAM_END_IDX, TAG_CUP_CHOOSE_TEAM_RANDOMLY, TAG_CUP_CHOOSE_TEAM_GENERATE, TAG_CUP_CHOOSE_TEAM_SKIP_GROUP_CHECK, TAG_CUP_CHOOSE_TEAM_FROM_TABLE, TAG_CUP_CHOOSE_TEAM_PRELOAD, TAG_CUP_ROUND, TAG_CUP_ROUND_NAME, TAG_CUP_ROUND_NEW_TEAMS, TAG_CUP_ROUND_BYES, TAG_CUP_ROUND_TEAMS_FILE, TAG_CUP_ROUND_TEAM_PTR_ID, TAG_CUP_ROUND_TABLE_FILE, TAG_CUP_ROUND_HOME_AWAY, TAG_CUP_ROUND_REPLAY, TAG_CUP_ROUND_NEUTRAL, TAG_CUP_ROUND_RANDOMISE_TEAMS, TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_GROUPS, TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_ADVANCE, TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_BEST_ADVANCE, TAG_CUP_ROUND_ROUND_ROBINS, TAG_CUP_ROUND_BREAK, TAG_CUP_ROUND_WAIT_CUP, TAG_CUP_ROUND_WAIT_ROUND, TAG_CUP_ROUND_TWO_MATCH_WEEK_START, TAG_CUP_ROUND_TWO_MATCH_WEEK_END, TAG_CUP_ROUND_TWO_MATCH_WEEK, TAG_CUP_TEAM_ID_BYE, TAG_CUP_TEAM_NAME, TAG_CUP_NEXT_FIXTURE_UPDATE_WEEK, TAG_CUP_NEXT_FIXTURE_UPDATE_WEEK_ROUND, TAG_CUP_ROUND_DELAY, TAG_END }; gint state; Cup *new_cup; CupChooseTeam new_choose_team; CupRound new_round; gchar *dirname; WeekBreak new_week_break; CupRoundWait new_wait; void xml_loadsave_cup_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_cup_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_CUP;irounds, new_round); } else if(tag == TAG_CUP_CHOOSE_TEAM) { state = TAG_CUP_ROUND; g_array_append_val(new_round.choose_teams, new_choose_team); } else if(tag == TAG_CUP_CHOOSE_TEAM_NUMBER_OF_TEAMS || tag == TAG_CUP_CHOOSE_TEAM_START_IDX || tag == TAG_CUP_CHOOSE_TEAM_END_IDX || tag == TAG_CUP_CHOOSE_TEAM_SID || tag == TAG_CUP_CHOOSE_TEAM_GENERATE || tag == TAG_CUP_CHOOSE_TEAM_SKIP_GROUP_CHECK || tag == TAG_CUP_CHOOSE_TEAM_FROM_TABLE || tag == TAG_CUP_CHOOSE_TEAM_PRELOAD || tag == TAG_CUP_CHOOSE_TEAM_RANDOMLY) state = TAG_CUP_CHOOSE_TEAM; else if(tag == TAG_CUP_ROUND_HOME_AWAY || tag == TAG_CUP_ROUND_TEAMS_FILE || tag == TAG_CUP_ROUND_TEAM_PTR_ID || tag == TAG_CUP_ROUND_TABLE_FILE || tag == TAG_CUP_ROUND_NEW_TEAMS || tag == TAG_CUP_ROUND_NAME || tag == TAG_CUP_ROUND_BYES || tag == TAG_CUP_ROUND_REPLAY || tag == TAG_CUP_ROUND_NEUTRAL || tag == TAG_CUP_ROUND_DELAY || tag == TAG_CUP_ROUND_RANDOMISE_TEAMS || tag == TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_GROUPS || tag == TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_ADVANCE || tag == TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_BEST_ADVANCE || tag == TAG_CUP_ROUND_ROUND_ROBINS || tag == TAG_CUP_ROUND_BREAK || tag == TAG_CUP_ROUND_WAIT_CUP || tag == TAG_CUP_ROUND_WAIT_ROUND || tag == TAG_CUP_ROUND_TWO_MATCH_WEEK_START || tag == TAG_CUP_ROUND_TWO_MATCH_WEEK_END || tag == TAG_CUP_ROUND_TWO_MATCH_WEEK) state = TAG_CUP_ROUND; else if(tag != TAG_CUP) debug_print_message("xml_loadsave_cup_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_cup_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_cup_text\n"); #endif gint i; gchar buf[SMALL], buf2[SMALL]; gint int_value = -1; gfloat float_value; Table new_table; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = (gfloat)g_ascii_strtod(buf, NULL) / 10000; if(state == TAG_NAME) misc_string_assign(&new_cup->name, buf); else if(state == TAG_SHORT_NAME) misc_string_assign(&new_cup->short_name, buf); else if(state == TAG_SYMBOL) misc_string_assign(&new_cup->symbol, buf); else if(state == TAG_SID) misc_string_assign(&new_cup->sid, buf); else if(state == TAG_ID) new_cup->id = int_value; else if(state == TAG_WEEK_GAP) new_cup->week_gap = int_value; else if(state == TAG_WEEK_BREAK) new_week_break.week_number = int_value; else if(state == TAG_WEEK_BREAK_LENGTH) { new_week_break.length = int_value; g_array_append_val(new_cup->week_breaks, new_week_break); } /* else if(state == TAG_SKIP_WEEKS_WITH) */ /* g_ptr_array_add(new_cup->skip_weeks_with, g_strdup(buf)); */ else if(state == TAG_YELLOW_RED) new_cup->yellow_red = int_value; else if(state == TAG_PROPERTY) g_ptr_array_add(new_cup->properties, g_strdup(buf)); else if(state == TAG_CUP_LAST_WEEK) new_cup->last_week = int_value; else if(state == TAG_CUP_ADD_WEEK) new_cup->add_week = int_value; else if(state == TAG_CUP_GROUP) new_cup->group = int_value; else if(state == TAG_CUP_TALENT_DIFF) new_cup->talent_diff = float_value; else if(state == TAG_CUP_NEXT_FIXTURE_UPDATE_WEEK) new_cup->next_fixture_update_week = int_value; else if(state == TAG_CUP_NEXT_FIXTURE_UPDATE_WEEK_ROUND) new_cup->next_fixture_update_week_round = int_value; else if(state == TAG_CUP_TEAM_ID_BYE) g_ptr_array_add(new_cup->bye, team_of_id(int_value)); else if(state == TAG_CUP_TEAM_NAME) g_ptr_array_add(new_cup->team_names, g_strdup(buf)); else if(state == TAG_CUP_CHOOSE_TEAM_SID) misc_string_assign(&new_choose_team.sid, buf); else if(state == TAG_CUP_CHOOSE_TEAM_NUMBER_OF_TEAMS) new_choose_team.number_of_teams = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_START_IDX) new_choose_team.start_idx = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_END_IDX) new_choose_team.end_idx = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_RANDOMLY) new_choose_team.randomly = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_GENERATE) new_choose_team.generate = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_SKIP_GROUP_CHECK) new_choose_team.skip_group_check = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_FROM_TABLE) new_choose_team.from_table = int_value; else if(state == TAG_CUP_CHOOSE_TEAM_PRELOAD) new_choose_team.preload = int_value; else if(state == TAG_CUP_ROUND_HOME_AWAY) new_round.home_away = int_value; else if(state == TAG_CUP_ROUND_NEW_TEAMS) new_round.new_teams = int_value; else if(state == TAG_CUP_ROUND_NAME) new_round.name = g_strdup(buf); else if(state == TAG_CUP_ROUND_BYES) new_round.byes = int_value; else if(state == TAG_CUP_ROUND_TEAMS_FILE) { sprintf(buf2, "%s%s%s", dirname, G_DIR_SEPARATOR_S, buf); xml_loadsave_teams_read(buf2, new_round.teams); for(i=0;ilen;i++) g_ptr_array_add(new_cup->teams, &g_array_index(new_round.teams, Team, i)); } else if(state == TAG_CUP_ROUND_TEAM_PTR_ID) g_ptr_array_add(new_round.team_ptrs, GINT_TO_POINTER(int_value)); else if(state == TAG_CUP_ROUND_TABLE_FILE) { new_table = table_new(); sprintf(buf2, "%s%s%s", dirname, G_DIR_SEPARATOR_S, buf); xml_loadsave_table_read(buf2, &new_table); g_array_append_val(new_round.tables, new_table); } else if(state == TAG_CUP_ROUND_REPLAY) new_round.replay = int_value; else if(state == TAG_CUP_ROUND_NEUTRAL) new_round.neutral = int_value; else if(state == TAG_CUP_ROUND_DELAY) new_round.delay = int_value; else if(state == TAG_CUP_ROUND_RANDOMISE_TEAMS) new_round.randomise_teams = int_value; else if(state == TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_GROUPS) new_round.round_robin_number_of_groups = int_value; else if(state == TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_ADVANCE) new_round.round_robin_number_of_advance = int_value; else if(state == TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_BEST_ADVANCE) new_round.round_robin_number_of_best_advance = int_value; else if(state == TAG_CUP_ROUND_ROUND_ROBINS) new_round.round_robins = int_value; else if(state == TAG_CUP_ROUND_BREAK) g_array_append_val(new_round.rr_breaks, int_value); else if(state == TAG_CUP_ROUND_WAIT_CUP) new_wait.cup_sid = g_strdup(buf); else if(state == TAG_CUP_ROUND_WAIT_ROUND) { new_wait.cup_round = int_value; g_array_append_val(new_round.waits, new_wait); } else if(state == TAG_CUP_ROUND_TWO_MATCH_WEEK_START) g_array_append_val(new_round.two_match_weeks[0], int_value); else if(state == TAG_CUP_ROUND_TWO_MATCH_WEEK_END) g_array_append_val(new_round.two_match_weeks[1], int_value); else if(state == TAG_CUP_ROUND_TWO_MATCH_WEEK) new_round.two_match_week = int_value; } void xml_loadsave_cup_read(const gchar *filename, Cup *cup) { #ifdef DEBUG printf("xml_loadsave_cup_read\n"); #endif GMarkupParser parser = {xml_loadsave_cup_start_element, xml_loadsave_cup_end_element, xml_loadsave_cup_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents = NULL; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_cup_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); } new_cup = cup; dirname = g_path_get_dirname(filename); if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_cup_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } g_free(dirname); } void xml_loadsave_cup_write(const gchar *prefix, const Cup *cup) { #ifdef DEBUG printf("xml_loadsave_cup_write\n"); #endif gint i; gchar buf[SMALL]; FILE *fil = NULL; sprintf(buf, "%s___cup_%d_fixtures.xml", prefix, cup->id); xml_loadsave_fixtures_write(buf, cup->fixtures); sprintf(buf, "%s___cup_%d.xml", prefix, cup->id); file_my_fopen(buf, "w", &fil, TRUE); fprintf(fil, "<_%d>\n", TAG_CUP); xml_write_string(fil, cup->name, TAG_NAME, I0); xml_write_string(fil, cup->short_name, TAG_SHORT_NAME, I0); xml_write_string(fil, cup->sid, TAG_SID, I0); xml_write_string(fil, cup->symbol, TAG_SYMBOL, I0); xml_write_int(fil, cup->id, TAG_ID, I0); xml_write_int(fil, cup->last_week, TAG_CUP_LAST_WEEK, I0); xml_write_int(fil, cup->add_week, TAG_CUP_ADD_WEEK, I0); xml_write_int(fil, cup->group, TAG_CUP_GROUP, I0); xml_write_int(fil, cup->week_gap, TAG_WEEK_GAP, I0); xml_write_int(fil, cup->yellow_red, TAG_YELLOW_RED, I0); xml_write_float(fil, cup->talent_diff, TAG_CUP_TALENT_DIFF, I0); xml_write_int(fil, cup->next_fixture_update_week, TAG_CUP_NEXT_FIXTURE_UPDATE_WEEK, I0); xml_write_int(fil, cup->next_fixture_update_week_round, TAG_CUP_NEXT_FIXTURE_UPDATE_WEEK_ROUND, I0); for(i=0;iproperties->len;i++) xml_write_string(fil, (gchar*)g_ptr_array_index(cup->properties, i), TAG_PROPERTY, I0); /* for(i = 0; i < cup->skip_weeks_with->len; i++) */ /* xml_write_string(fil, (gchar*)g_ptr_array_index(cup->skip_weeks_with, i), */ /* TAG_SKIP_WEEKS_WITH, I0); */ for(i=0;irounds->len;i++) xml_loadsave_cup_write_round(fil, prefix, cup, i); for(i = 0; i < cup->week_breaks->len; i++) { xml_write_int(fil, g_array_index(cup->week_breaks, WeekBreak, i).week_number, TAG_WEEK_BREAK, I0); xml_write_int(fil, g_array_index(cup->week_breaks, WeekBreak, i).length, TAG_WEEK_BREAK_LENGTH, I0); } if(cup->bye != NULL) for(i=0;ibye->len;i++) xml_write_int(fil, ((Team*)g_ptr_array_index(cup->bye, i))->id, TAG_CUP_TEAM_ID_BYE, I1); for(i=0;iteam_names->len;i++) xml_write_string(fil, (gchar*)g_ptr_array_index(cup->team_names, i), TAG_CUP_TEAM_NAME, I1); fprintf(fil, "\n", TAG_CUP); fclose(fil); } void xml_loadsave_cup_write_round(FILE *fil, const gchar *prefix, const Cup *cup, gint round) { #ifdef DEBUG printf("xml_loadsave_cup_write_round\n"); #endif gint i; gchar buf[SMALL]; const CupRound *cup_round = &g_array_index(cup->rounds, CupRound, round); gchar *basename = g_path_get_basename(prefix); fprintf(fil, "<_%d>\n", TAG_CUP_ROUND); if(cup_round->teams->len > 0) { sprintf(buf, "%s___cup_%d_round_%02d_teams.xml", basename, cup->id, round); xml_write_string(fil, buf, TAG_CUP_ROUND_TEAMS_FILE, I1); sprintf(buf, "%s___cup_%d_round_%02d_teams.xml", prefix, cup->id, round); xml_loadsave_teams_write(buf, cup_round->teams); } xml_write_string(fil, cup_round->name, TAG_CUP_ROUND_NAME, I1); xml_write_int(fil, cup_round->new_teams, TAG_CUP_ROUND_NEW_TEAMS, I1); xml_write_int(fil, cup_round->byes, TAG_CUP_ROUND_BYES, I1); xml_write_int(fil, cup_round->home_away, TAG_CUP_ROUND_HOME_AWAY, I1); xml_write_int(fil, cup_round->replay, TAG_CUP_ROUND_REPLAY, I1); xml_write_int(fil, cup_round->neutral, TAG_CUP_ROUND_NEUTRAL, I1); xml_write_int(fil, cup_round->delay, TAG_CUP_ROUND_DELAY, I1); xml_write_int(fil, cup_round->randomise_teams, TAG_CUP_ROUND_RANDOMISE_TEAMS, I1); xml_write_int(fil, cup_round->round_robin_number_of_groups, TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_GROUPS, I1); xml_write_int(fil, cup_round->round_robin_number_of_advance, TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_ADVANCE, I1); xml_write_int(fil, cup_round->round_robin_number_of_best_advance, TAG_CUP_ROUND_ROUND_ROBIN_NUMBER_OF_BEST_ADVANCE, I1); xml_write_int(fil, cup_round->round_robins, TAG_CUP_ROUND_ROUND_ROBINS, I1); for(i = 0; i < cup_round->rr_breaks->len; i++) xml_write_int(fil, g_array_index(cup_round->rr_breaks, gint, i), TAG_CUP_ROUND_BREAK, I1); for(i = 0; i < cup_round->waits->len; i++) { xml_write_string(fil, g_array_index(cup_round->waits, CupRoundWait, i).cup_sid, TAG_CUP_ROUND_WAIT_CUP, I1); xml_write_int(fil, g_array_index(cup_round->waits, CupRoundWait, i).cup_round, TAG_CUP_ROUND_WAIT_ROUND, I1); } xml_write_int(fil, cup_round->two_match_week, TAG_CUP_ROUND_TWO_MATCH_WEEK, I1); for(i=0;itwo_match_weeks[0]->len;i++) { xml_write_int(fil, g_array_index(cup_round->two_match_weeks[0], gint, i), TAG_CUP_ROUND_TWO_MATCH_WEEK_START, I1); xml_write_int(fil, g_array_index(cup_round->two_match_weeks[0], gint, i), TAG_CUP_ROUND_TWO_MATCH_WEEK_END, I1); } for(i=0;itables->len;i++) { sprintf(buf, "%s___cup_%d_round_%02d_table_%02d.xml", basename, cup->id, round, i); xml_write_string(fil, buf, TAG_CUP_ROUND_TABLE_FILE, I1); sprintf(buf, "%s___cup_%d_round_%02d_table_%02d.xml", prefix, cup->id, round, i); xml_loadsave_table_write(buf, &g_array_index(cup_round->tables, Table, i)); } for(i=0;ichoose_teams->len;i++) xml_loadsave_cup_write_choose_team( fil, &g_array_index(cup_round->choose_teams, CupChooseTeam, i)); for(i=0;iteam_ptrs->len;i++) xml_write_int(fil, ((Team*)g_ptr_array_index(cup_round->team_ptrs, i))->id, TAG_CUP_ROUND_TEAM_PTR_ID, I1); fprintf(fil, "\n", TAG_CUP_ROUND); g_free(basename); } void xml_loadsave_cup_write_choose_team(FILE *fil, const CupChooseTeam *choose_team) { #ifdef DEBUG printf("xml_loadsave_cup_write_choose_team\n"); #endif fprintf(fil, "%s<_%d>\n", I1, TAG_CUP_CHOOSE_TEAM); xml_write_string(fil, choose_team->sid, TAG_CUP_CHOOSE_TEAM_SID, I2); xml_write_int(fil, choose_team->number_of_teams, TAG_CUP_CHOOSE_TEAM_NUMBER_OF_TEAMS, I2); xml_write_int(fil, choose_team->start_idx, TAG_CUP_CHOOSE_TEAM_START_IDX, I2); xml_write_int(fil, choose_team->end_idx, TAG_CUP_CHOOSE_TEAM_END_IDX, I2); xml_write_int(fil, choose_team->randomly, TAG_CUP_CHOOSE_TEAM_RANDOMLY, I2); xml_write_int(fil, choose_team->generate, TAG_CUP_CHOOSE_TEAM_GENERATE, I2); xml_write_int(fil, choose_team->skip_group_check, TAG_CUP_CHOOSE_TEAM_SKIP_GROUP_CHECK, I2); xml_write_int(fil, choose_team->from_table, TAG_CUP_CHOOSE_TEAM_FROM_TABLE, I2); xml_write_int(fil, choose_team->preload, TAG_CUP_CHOOSE_TEAM_PRELOAD, I2); fprintf(fil, "%s\n", I1, TAG_CUP_CHOOSE_TEAM); } bygfoot-2.3.2/src/stat_struct.h0000644000175000017500000000351211225071373015464 0ustar eliaselias/* stat_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef STAT_STRUCT_H #define STAT_STRUCT_H /** A statistics element holding some string and integer values. */ typedef struct { gchar *team_name; gint value1, value2, value3; gchar *value_string; } Stat; /** A structure holding some stat arrays about a league. */ typedef struct { gchar *league_symbol; gchar *league_name; /** Best offensive and defensive teams. */ GArray *teams_off, *teams_def; /** Best goal getters and goalies. */ GArray *player_scorers, *player_goalies; } LeagueStat; /** A team name and a competition name. */ typedef struct { gchar *team_name, *cl_name; } ChampStat; /** A season statistics structure. */ typedef struct { /** Which season */ gint season_number; /** League and cup winners. */ GArray *league_champs; GArray *cup_champs; /** The league stats at the end of the season. */ GArray *league_stats; } SeasonStat; #endif bygfoot-2.3.2/src/misc_interface.h0000644000175000017500000000046711225071373016066 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window_startup (void); GtkWidget* create_window_font_sel (void); GtkWidget* create_window_live (void); GtkWidget* create_window_stadium (void); GtkWidget* create_window_file_chooser (void); GtkWidget* create_window_sponsors (void); bygfoot-2.3.2/src/free.c0000644000175000017500000005665411225071373014040 0ustar eliaselias/* free.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet_struct.h" #include "free.h" #include "lg_commentary_struct.h" #include "news_struct.h" #include "strategy_struct.h" #include "transfer.h" #include "user.h" #include "variables.h" /** Free all memory allocated by the program. This mainly means we have to free a lot of strings and GArrays. */ void free_memory(void) { #ifdef DEBUG printf("free_memory\n"); #endif free_variables(); free_names(FALSE); free_transfer_list(); free_strategies(); free_country(&country, FALSE); free_users(FALSE); free_bets(FALSE); free_lg_commentary(FALSE); free_news(FALSE); free_newspaper(FALSE); free_support_dirs(); free_jobs(FALSE); free_g_array(&live_games); } /** Free the transfer list. */ void free_transfer_list(void) { #ifdef DEBUG printf("free_transfer_list\n"); #endif gint i; for(i=0;ilen;i++) g_array_free(g_array_index(transfer_list, Transfer, i).offers, TRUE); free_g_array(&transfer_list); } /** Free the memory occupied by the season stats. */ void free_season_stats(gboolean reset) { #ifdef DEBUG printf("free_season_stats\n"); #endif gint i, j; if(season_stats == NULL) { if(reset) season_stats = g_array_new(FALSE, FALSE, sizeof(SeasonStat)); return; } for(i=0;ilen;i++) { for(j=0;jlen;j++) free_league_stats( &g_array_index(g_array_index(season_stats, SeasonStat, i).league_stats, LeagueStat, j)); for(j=0;jlen;j++) { free_gchar_ptr( g_array_index( g_array_index(season_stats, SeasonStat, i).league_champs, ChampStat, j).cl_name); free_gchar_ptr( g_array_index( g_array_index(season_stats, SeasonStat, i).league_champs, ChampStat, j).team_name); } for(j=0;jlen;j++) { free_gchar_ptr( g_array_index( g_array_index(season_stats, SeasonStat, i).cup_champs, ChampStat, j).cl_name); free_gchar_ptr( g_array_index( g_array_index(season_stats, SeasonStat, i).cup_champs, ChampStat, j).team_name); } g_array_free(g_array_index(season_stats, SeasonStat, i).cup_champs, TRUE); g_array_free(g_array_index(season_stats, SeasonStat, i).league_champs, TRUE); } free_g_array(&season_stats); if(reset) season_stats = g_array_new(FALSE, FALSE, sizeof(SeasonStat)); } /** Free the users array. */ void free_users(gboolean reset) { #ifdef DEBUG printf("free_users\n"); #endif gint i; if(users == NULL) { if(reset) users = g_array_new(FALSE, FALSE, sizeof(User)); return; } for(i=0;ilen;i++) free_user(&usr(i)); free_g_array(&users); if(reset) users = g_array_new(FALSE, FALSE, sizeof(User)); } /** Free the memory the user occupies. @param user The user we free. */ void free_user(User *user) { #ifdef DEBUG printf("free_user\n"); #endif gint i, j; free_gchar_ptr(user->name); free_g_string(&user->sponsor.name); free_gchar_ptr(user->mmatches_file); free_live_game(&user->live_game); free_option_list(&user->options, FALSE); for(i=0;ievents->len;i++) free_event(&g_array_index(user->events, Event, i)); free_g_array(&user->events); for(i=0;ihistory->len;i++) { free_gchar_ptr(g_array_index(user->history, UserHistory, i).team_name); for(j=0;j<3;j++) free_gchar_ptr(g_array_index(user->history, UserHistory, i).string[j]); } free_g_array(&user->history); free_mmatches(&user->mmatches, FALSE); free_player_array(&user->youth_academy.players); free_g_array(&user->bets[0]); free_g_array(&user->bets[1]); g_array_free(user->default_team, TRUE); } /** Free the memorable matches array of the user and the memorable matches file name . */ void free_mmatches(GArray **mmatches, gboolean reset) { #ifdef DEBUG printf("free_mmatches\n"); #endif gint i; if(*mmatches == NULL) { if(reset) *mmatches = g_array_new(FALSE, FALSE, sizeof(MemMatch)); return; } for(i=0;i<(*mmatches)->len;i++) { free_g_string(&g_array_index(*mmatches, MemMatch, i).competition_name); free_gchar_ptr(g_array_index(*mmatches, MemMatch, i).country_name); free_live_game(&g_array_index(*mmatches, MemMatch, i).lg); } free_g_array(mmatches); if(reset) *mmatches = g_array_new(FALSE, FALSE, sizeof(MemMatch)); } /** Free a user event. */ void free_event(Event *event) { #ifdef DEBUG printf("free_event\n"); #endif free_gchar_ptr(event->value_string); } /** Free an array of options. @param array The array we free. @param reset Whether to create the array anew (empty). @see #Option */ void free_option_list(OptionList *optionlist, gboolean reset) { #ifdef DEBUG printf("free_option_list\n"); #endif gint i; if(optionlist->list == NULL) { if(reset) { optionlist->list = g_array_new(FALSE, FALSE, sizeof(Option)); g_datalist_init(&optionlist->datalist); } return; } for(i=0;ilist->len;i++) { free_gchar_ptr(g_array_index(optionlist->list, Option, i).name); free_gchar_ptr(g_array_index(optionlist->list, Option, i).string_value); } free_g_array(&optionlist->list); if(reset) { optionlist->list = g_array_new(FALSE, FALSE, sizeof(Option)); g_datalist_init(&optionlist->datalist); } } /** Free a live game variable. */ void free_live_game(LiveGame *match) { #ifdef DEBUG printf("free_live_game\n"); #endif gint i, j, k; if(match->units == NULL || match->started_game == -1) return; for(i=0;iunits->len;i++) free_gchar_ptr(g_array_index(match->units, LiveGameUnit, i).event.commentary); for(i=0;i<2;i++) { free_g_array(&match->action_ids[i]); free_gchar_ptr(match->team_names[i]); for(j=0;jstats.players[i][j]->len;k++) g_free(g_ptr_array_index(match->stats.players[i][j], k)); free_g_ptr_array(&match->stats.players[i][j]); } } free_g_array(&match->units); } /** Free a country variable. */ void free_country(Country *cntry, gboolean reset) { #ifdef DEBUG printf("free_country\n"); #endif free_gchar_ptr(cntry->name); free_gchar_ptr(cntry->symbol); free_gchar_ptr(cntry->sid); free_leagues_array(&cntry->leagues, reset); free_cups_array(&cntry->cups, reset); free_g_ptr_array(&cntry->allcups); if(reset) { cntry->allcups = g_ptr_array_new(); cntry->sid = g_strdup("NONAME"); } } /** Free the memory occupied by a leagues array. @param leagues The pointer to the array we free. */ void free_leagues_array(GArray **leagues, gboolean reset) { #ifdef DEBUG printf("free_leagues_array\n"); #endif gint i; if(*leagues == NULL) { if(reset) *leagues = g_array_new(FALSE, FALSE, sizeof(League)); return; } for(i=0;i<(*leagues)->len;i++) free_league(&g_array_index(*leagues, League, i)); free_g_array(leagues); if(reset) *leagues = g_array_new(FALSE, FALSE, sizeof(League)); } /** Free the memory occupied by a league. @param league The pointer to the league we free. */ void free_league(League *league) { #ifdef DEBUG printf("free_league\n"); #endif free_gchar_ptr(league->name); free_gchar_ptr(league->short_name); free_gchar_ptr(league->symbol); free_gchar_ptr(league->sid); free_gchar_array(&league->skip_weeks_with); if(league->teams != NULL) free_teams_array(&league->teams, FALSE); free_joined_leagues(&league->joined_leagues); free_prom_rel(&league->prom_rel); free_g_array(&league->teams); free_tables(&league->tables); free_new_tables(&league->new_tables); free_g_array(&league->fixtures); free_g_array(&league->rr_breaks); free_g_array(&league->week_breaks); free_g_array(&league->two_match_weeks[0]); free_g_array(&league->two_match_weeks[1]); free_league_stats(&league->stats); } /** Free the promotion/relegation struct of a league. */ void free_prom_rel(PromRel *prom_rel) { gint i; for(i = 0; i < prom_rel->elements->len; i++) g_free(g_array_index(prom_rel->elements, PromRelElement, i).dest_sid); free_g_array(&prom_rel->elements); for(i = 0; i < prom_rel->prom_games->len; i++) { g_free(g_array_index(prom_rel->prom_games, PromGames, i).dest_sid); g_free(g_array_index(prom_rel->prom_games, PromGames, i).loser_sid); g_free(g_array_index(prom_rel->prom_games, PromGames, i).cup_sid); } free_g_array(&prom_rel->prom_games); } /** Free the data in the joined leagues array. */ void free_joined_leagues(GArray **joined_leagues) { #ifdef DEBUG printf("free_joined_leagues\n"); #endif gint i; for(i = 0; i < (*joined_leagues)->len; i++) free_gchar_ptr(g_array_index(*joined_leagues, JoinedLeague, i).sid); free_g_array(joined_leagues); } /** Free the league stats. */ void free_league_stats(LeagueStat *stats) { #ifdef DEBUG printf("free_league_stats\n"); #endif gint i; free_gchar_ptr(stats->league_name); free_gchar_ptr(stats->league_symbol); for(i=0;iteams_off->len;i++) { free_gchar_ptr(g_array_index(stats->teams_off, Stat, i).team_name); free_gchar_ptr(g_array_index(stats->teams_off, Stat, i).value_string); } free_g_array(&stats->teams_off); for(i=0;iteams_def->len;i++) { free_gchar_ptr(g_array_index(stats->teams_def, Stat, i).team_name); free_gchar_ptr(g_array_index(stats->teams_def, Stat, i).value_string); } free_g_array(&stats->teams_def); for(i=0;iplayer_scorers->len;i++) free_gchar_ptr(g_array_index(stats->player_scorers, Stat, i).value_string); free_g_array(&stats->player_scorers); for(i=0;iplayer_goalies->len;i++) free_gchar_ptr(g_array_index(stats->player_goalies, Stat, i).value_string); free_g_array(&stats->player_goalies); } /** Free a tables array. */ void free_tables(GArray **tables) { #ifdef DEBUG printf("free_tables\n"); #endif gint i; for(i = 0; i < (*tables)->len; i++) { free_gchar_ptr(g_array_index(*tables, Table, i).name); free_g_array(&g_array_index(*tables, Table, i).elements); } g_array_free(*tables, TRUE); *tables = NULL; } /** Free a new_tables array. */ void free_new_tables(GArray **new_tables) { #ifdef DEBUG printf("free_new_tables\n"); #endif gint i; for(i = 0; i < (*new_tables)->len; i++) free_gchar_ptr(g_array_index(*new_tables, NewTable, i).name); g_array_free(*new_tables, TRUE); *new_tables = NULL; } /** Free the memory occupied by a teams array. @param teams The pointer to the array we free. */ void free_teams_array(GArray **teams, gboolean reset) { #ifdef DEBUG printf("free_teams_array\n"); #endif gint i; if(*teams == NULL) { if(reset) *teams = g_array_new(FALSE, FALSE, sizeof(Team)); return; } for(i=0;i<(*teams)->len;i++) free_team(&g_array_index(*teams, Team, i)); free_g_array(teams); if(reset) *teams = g_array_new(FALSE, FALSE, sizeof(Team)); } /** Free the memory occupied by a team. @param tm The pointer to the team we free. */ void free_team(Team *tm) { #ifdef DEBUG printf("free_team\n"); #endif free_gchar_ptr(tm->stadium.name); free_gchar_ptr(tm->name); free_gchar_ptr(tm->names_file); free_gchar_ptr(tm->symbol); free_gchar_ptr(tm->def_file); free_player_array(&tm->players); } /** Free an array containing players. */ void free_player_array(GArray **players) { #ifdef DEBUG printf("free_player_array\n"); #endif gint i; if(*players != NULL) { for(i=0;i<(*players)->len;i++) free_player(&g_array_index((*players), Player, i)); free_g_array(players); } } /** Free the memory occupied by a player. @param pl The pointer to the player we free. */ void free_player(Player *pl) { #ifdef DEBUG printf("free_player\n"); #endif free_gchar_ptr(pl->name); free_g_array(&pl->cards); free_g_array(&pl->games_goals); } /** Free the memory occupied by a cups array. @param cups The pointer to the array we free. */ void free_cups_array(GArray **cups, gboolean reset) { #ifdef DEBUG printf("free_cups_array\n"); #endif gint i; if(*cups == NULL) { if(reset) *cups = g_array_new(FALSE, FALSE, sizeof(Cup)); return; } for(i=0;i<(*cups)->len;i++) free_cup(&g_array_index(*cups, Cup, i)); free_g_array(cups); if(reset) *cups = g_array_new(FALSE, FALSE, sizeof(Cup)); } /** Free the memory occupied by a cup. @param cup The pointer to the cup we free. */ void free_cup(Cup *cup) { #ifdef DEBUG printf("free_cup\n"); #endif gint i; free_gchar_ptr(cup->name); free_gchar_ptr(cup->short_name); free_gchar_ptr(cup->symbol); free_gchar_ptr(cup->sid); free_gchar_array(&cup->skip_weeks_with); for(i=0;irounds->len;i++) free_cup_round(&g_array_index(cup->rounds, CupRound, i)); free_g_array(&cup->rounds); free_g_array(&cup->fixtures); free_g_array(&cup->week_breaks); free_g_ptr_array(&cup->bye); free_gchar_array(&cup->team_names); free_g_ptr_array(&cup->teams); free_gchar_array(&cup->properties); } void free_cup_round(CupRound *cup_round) { #ifdef DEBUG printf("free_cup_round\n"); #endif gint j; g_free(cup_round->name); free_g_array(&cup_round->two_match_weeks[0]); free_g_array(&cup_round->two_match_weeks[1]); for(j = 0; j < cup_round->waits->len; j++) g_free(g_array_index(cup_round->waits, CupRoundWait, j).cup_sid); free_g_array(&cup_round->waits); if(cup_round->round_robin_number_of_groups > 0) { free_tables(&cup_round->tables); for(j=0;jchoose_teams->len;j++) free_cup_choose_team( &g_array_index(cup_round->choose_teams, CupChooseTeam, j)); free_g_array(&cup_round->choose_teams); free_teams_array(&cup_round->teams, FALSE); g_ptr_array_free(cup_round->team_ptrs, TRUE); } } /** Free the memory occupied by a CupChooseTeam. @param cup_choose_team The pointer to the team we free. */ void free_cup_choose_team(CupChooseTeam *cup_choose_team) { #ifdef DEBUG printf("free_cup_choose_team\n"); #endif free_gchar_ptr(cup_choose_team->sid); } /** Free some global variables (except for the country variable). */ void free_variables(void) { #ifdef DEBUG printf("free_variables\n"); #endif free_option_list(&options, FALSE); free_option_list(&settings, FALSE); free_option_list(&constants, FALSE); free_option_list(&constants_app, FALSE); free_option_list(&tokens, FALSE); free_gchar_ptr(save_file); g_rand_free(rand_generator); free_season_stats(FALSE); } /** Free the list with live game commentary text. */ void free_lg_commentary(gboolean reset) { #ifdef DEBUG printf("free_lg_commentary\n"); #endif gint i, j; for(i=0;ilen;j++) { free_gchar_ptr(g_array_index(lg_commentary[i], LGCommentary, j).text); free_gchar_ptr(g_array_index(lg_commentary[i], LGCommentary, j).condition); } free_g_array(&lg_commentary[i]); } if(reset) for(i=0;ilen;j++) { g_free(g_array_index(news[i], NewsArticle, j).condition); for(k = 0; k < g_array_index(news[i], NewsArticle, j).titles->len; k++) { g_free(g_array_index(g_array_index(news[i], NewsArticle, j).titles, NewsText, k).text); g_free(g_array_index(g_array_index(news[i], NewsArticle, j).titles, NewsText, k).condition); } g_array_free(g_array_index(news[i], NewsArticle, j).titles, TRUE); for(k = 0; k < g_array_index(news[i], NewsArticle, j).subtitles->len; k++) { g_free(g_array_index(g_array_index(news[i], NewsArticle, j).subtitles, NewsText, k).text); g_free(g_array_index(g_array_index(news[i], NewsArticle, j).subtitles, NewsText, k).condition); } g_array_free(g_array_index(news[i], NewsArticle, j).subtitles, TRUE); } free_g_array(&news[i]); } if(reset) for(i=0;ilen; i++) free_newspaper_article(&g_array_index(newspaper.articles, NewsPaperArticle, i)); g_array_free(newspaper.articles, TRUE); if(reset) newspaper.articles = g_array_new(FALSE, FALSE, sizeof(NewsPaperArticle)); } void free_newspaper_article(NewsPaperArticle *article) { g_free(article->title_small); g_free(article->title); g_free(article->subtitle); } /** Free a GPtrArray containing strings. @param array The array to be freed. */ void free_gchar_array(GPtrArray **array) { #ifdef DEBUG printf("_array\n"); #endif #ifdef DEBUG printf("free_gchar_array\n"); #endif gint i; if(*array == NULL) return; for(i=0;i<(*array)->len;i++) free_gchar_ptr(g_ptr_array_index(*array, i)); free_g_ptr_array(array); *array = NULL; } /** Free a GString if it isn't NULL. @param string The string to be freed. */ void free_g_string(GString **string) { #ifdef DEBUG printf("free_g_string\n"); #endif if(*string == NULL) return; g_string_free(*string, TRUE); *string = NULL; } /** Free a GArray if it isn't NULL. @param array The array to be freed. */ void free_g_array(GArray **array) { #ifdef DEBUG printf("free_g_array\n"); #endif if(*array == NULL) return; g_array_free(*array, TRUE); *array = NULL; } /** Free a GPtrArray if it isn't NULL. @param array The array to be freed. */ void free_g_ptr_array(GPtrArray **array) { #ifdef DEBUG printf("free_g_ptr_array\n"); #endif if(*array == NULL) return; g_ptr_array_free(*array, TRUE); *array = NULL; } /** Free the glist containing the support directories. */ void free_support_dirs(void) { #ifdef DEBUG printf("free_support_dirs\n"); #endif GList *elem = support_directories; if(elem == NULL) return; while(elem) { free_gchar_ptr(elem->data); elem = elem->next; } g_list_free(support_directories); support_directories = NULL; } /** Free a list of names. */ void free_name_list(NameList *namelist, gboolean reset) { #ifdef DEBUG printf("free_name_list\n"); #endif gint i; if(namelist->sid == NULL) { if(reset) { namelist->sid = NULL; namelist->first_names = g_ptr_array_new(); namelist->last_names = g_ptr_array_new(); } return; } free_gchar_ptr(namelist->sid); for(i=0;ifirst_names->len;i++) free_gchar_ptr(g_ptr_array_index(namelist->first_names, i)); free_g_ptr_array(&namelist->first_names); for(i=0;ilast_names->len;i++) free_gchar_ptr(g_ptr_array_index(namelist->last_names, i)); free_g_ptr_array(&namelist->last_names); if(reset) { namelist->sid = NULL; namelist->first_names = g_ptr_array_new(); namelist->last_names = g_ptr_array_new(); } } /** Free the array with the name lists. */ void free_names(gboolean reset) { #ifdef DEBUG printf("free_names\n"); #endif gint i; if(name_lists == NULL) { if(reset) name_lists = g_array_new(FALSE, FALSE, sizeof(NameList)); return; } for(i=0;ilen;i++) free_name_list(&g_array_index(name_lists, NameList, i), FALSE); free_g_array(&name_lists); if(reset) name_lists = g_array_new(FALSE, FALSE, sizeof(NameList)); } /** Free the array with the CPU strategies. */ void free_strategies(void) { #ifdef DEBUG printf("free_strategies\n"); #endif gint i, j; for(i=0;ilen;i++) { g_free(g_array_index(strategies, Strategy, i).sid); g_free(g_array_index(strategies, Strategy, i).desc); for(j=0;jlen;j++) { g_free( g_array_index( g_array_index( strategies, Strategy, i).prematch, StrategyPrematch, j).condition); g_array_free( g_array_index( g_array_index(strategies, Strategy, i).prematch, StrategyPrematch, j).formations, TRUE); } g_array_free(g_array_index(strategies, Strategy, i).prematch, TRUE); for(j=0;jlen;j++) { g_free( g_array_index( g_array_index( strategies, Strategy, i).match_action, StrategyMatchAction, j).condition); g_free( g_array_index( g_array_index( strategies, Strategy, i).match_action, StrategyMatchAction, j).sub_condition); } g_array_free(g_array_index(strategies, Strategy, i).match_action, TRUE); } g_array_free(strategies, TRUE); } /** Free the betting arrays. */ void free_bets(gboolean reset) { #ifdef DEBUG printf("free_bets\n"); #endif free_g_array(&(bets[0])); free_g_array(&(bets[1])); if(reset) { bets[0] = g_array_new(FALSE, FALSE, sizeof(BetMatch)); bets[1] = g_array_new(FALSE, FALSE, sizeof(BetMatch)); } } /** Free a job struct. @param free_team Whether to free the team associated with the job if it's an international offer. */ void free_job(Job *job, gboolean free_tm) { #ifdef DEBUG printf("free_job\n"); #endif gint i; if(job->type == JOB_TYPE_INTERNATIONAL) { free_gchar_ptr(job->country_file); free_gchar_ptr(job->country_name); free_gchar_ptr(job->league_name); for(i=0;ilen;i++) if(g_array_index(job_teams, Team, i).id == job->team_id) { if(free_tm) free_team(&g_array_index(job_teams, Team, i)); g_array_remove_index(job_teams, i); } } } /** Free the jobs and job_teams arrays. */ void free_jobs(gboolean reset) { #ifdef DEBUG printf("free_jobs\n"); #endif gint i; if(jobs == NULL) { if(reset) { jobs = g_array_new(FALSE, FALSE, sizeof(Job)); job_teams = g_array_new(FALSE, FALSE, sizeof(Team)); } return; } for(i=0;ilen;i++) free_job(&g_array_index(jobs, Job, i), TRUE); free_g_array(&jobs); free_g_array(&job_teams); if(reset) { jobs = g_array_new(FALSE, FALSE, sizeof(Job)); job_teams = g_array_new(FALSE, FALSE, sizeof(Team)); } } bygfoot-2.3.2/src/transfer.h0000644000175000017500000000455211225071373014736 0ustar eliaselias/* transfer.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TRANSFER_H #define TRANSFER_H #include "bygfoot.h" #include "player_struct.h" #include "team_struct.h" #include "transfer_struct.h" #include "variables.h" /** Convenience abbrev. */ #define trans(i) g_array_index(transfer_list, Transfer, i) #define transoff(i, j) g_array_index(g_array_index(transfer_list, Transfer, i).offers, TransferOffer, j) void transfer_update(void); void transfer_add_cpu_offers(void); void transfer_evaluate_offers(void); void transfer_add_new_players(void); Player* transfer_player_get_new(gboolean cup); void transfer_add_player(Player *pl, gint time); gint transfer_get_deadline(void); void transfer_remove_player(gint idx); gboolean query_transfer_player_is_on_list(const Player *pl); gboolean transfer_add_offer(gint idx, Team *tm, gint fee, gint wage); gboolean transfer_remove_offer(gint idx, const Team *tm); gint transfer_offer_compare_func(gconstpointer a, gconstpointer b); void transfer_remove_player_ptr(const Player *pl); Team* transfer_team_get_new(void); void transfer_add_remove_user_player(Player *pl); void transfer_offers_notify(Transfer *trans, gboolean sort); const TransferOffer* transfer_player_has_offer(const Player *pl); gboolean query_transfer_current_team_offer(const Player *pl); gboolean transfer_offers_pending(void); void transfer_get_previous_offer(const Transfer *tr, const Team *tm, gint *fee, gint *wage); gboolean transfer_new_star_balks(const Transfer *tr, const TransferOffer *troff); #endif bygfoot-2.3.2/src/xml_loadsave_newspaper.h0000644000175000017500000000353611225071373017655 0ustar eliaselias/* xml_loadsave_newspaper.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_NEWSPAPER_H #define XML_LOADSAVE_NEWSPAPER_H #include "bygfoot.h" #include "news_struct.h" void xml_loadsave_newspaper_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_newspaper_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_newspaper_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_newspaper_read(const gchar *dirname, const gchar *prefix); void xml_loadsave_newspaper_write(const gchar *prefix); #endif bygfoot-2.3.2/src/xml_loadsave_cup.h0000644000175000017500000000250511225071373016433 0ustar eliaselias/* xml_loadsave_cup.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_CUP_H #define XML_LOADSAVE_CUP_H #include "bygfoot.h" #include "cup_struct.h" void xml_loadsave_cup_read(const gchar *filename, Cup *cup); void xml_loadsave_cup_write(const gchar *prefix, const Cup *cup); void xml_loadsave_cup_write_round(FILE *fil, const gchar *prefix, const Cup *cup, gint round); void xml_loadsave_cup_write_choose_team(FILE *fil, const CupChooseTeam *choose_team); #endif bygfoot-2.3.2/src/xml_league.h0000644000175000017500000000330311225071373015225 0ustar eliaselias/* xml_league.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LEAGUE_H #define XML_LEAGUE_H #include "bygfoot.h" void xml_league_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_league_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_league_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_league_read(const gchar *league_name, GArray *leagues); #endif bygfoot-2.3.2/src/misc3_interface.c0000644000175000017500000010660711225071373016147 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "misc3_callbacks.h" #include "misc3_interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window_bets (void) { GtkWidget *window_bets; GtkWidget *vbox1; GtkWidget *label1; GtkWidget *hseparator1; GtkWidget *hbox1; GtkWidget *checkbutton_bet_all_leagues; GtkWidget *checkbutton_bet_cups; GtkWidget *checkbutton_bet_user_recent; GtkWidget *hseparator2; GtkWidget *scrolledwindow1; GtkWidget *treeview_bets; GtkWidget *button_bet_close; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_bets = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_bets), 5); gtk_window_set_position (GTK_WINDOW (window_bets), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_bets), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_bets), 600, 700); vbox1 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (window_bets), vbox1); label1 = gtk_label_new (_("Betting -- Left click on odd to place or remove bet")); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (vbox1), label1, FALSE, FALSE, 0); hseparator1 = gtk_hseparator_new (); gtk_widget_show (hseparator1); gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator1, 1, 10); hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0); checkbutton_bet_all_leagues = gtk_check_button_new_with_mnemonic (_("Show matches from all leagues")); gtk_widget_show (checkbutton_bet_all_leagues); gtk_box_pack_start (GTK_BOX (hbox1), checkbutton_bet_all_leagues, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_bet_all_leagues, _("Whether to show matches of all leagues. Use the options window to toggle permanently."), NULL); checkbutton_bet_cups = gtk_check_button_new_with_mnemonic (_("Show matches from cups")); gtk_widget_show (checkbutton_bet_cups); gtk_box_pack_start (GTK_BOX (hbox1), checkbutton_bet_cups, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_bet_cups, _("Whether to show cup matches. Use the options window to toggle permanently."), NULL); checkbutton_bet_user_recent = gtk_check_button_new_with_mnemonic (_("Show only my recent bets")); gtk_widget_show (checkbutton_bet_user_recent); gtk_box_pack_start (GTK_BOX (hbox1), checkbutton_bet_user_recent, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_bet_user_recent, _("Whether to show only your bets in the recent bets list"), NULL); hseparator2 = gtk_hseparator_new (); gtk_widget_show (hseparator2); gtk_box_pack_start (GTK_BOX (vbox1), hseparator2, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator2, 1, 10); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN); treeview_bets = gtk_tree_view_new (); gtk_widget_show (treeview_bets); gtk_container_add (GTK_CONTAINER (scrolledwindow1), treeview_bets); button_bet_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_bet_close); gtk_box_pack_start (GTK_BOX (vbox1), button_bet_close, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_bet_close, _("Esc"), NULL); gtk_widget_add_accelerator (button_bet_close, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_bets, "delete_event", G_CALLBACK (on_window_bets_delete_event), NULL); g_signal_connect ((gpointer) checkbutton_bet_all_leagues, "button_press_event", G_CALLBACK (on_checkbutton_bet_all_leagues_button_press_event), NULL); g_signal_connect ((gpointer) checkbutton_bet_cups, "button_press_event", G_CALLBACK (on_checkbutton_bet_cups_button_press_event), NULL); g_signal_connect ((gpointer) checkbutton_bet_user_recent, "button_press_event", G_CALLBACK (on_checkbutton_bet_user_recent_button_press_event), NULL); g_signal_connect ((gpointer) treeview_bets, "button_press_event", G_CALLBACK (on_treeview_bets_button_press_event), NULL); g_signal_connect ((gpointer) button_bet_close, "clicked", G_CALLBACK (on_button_bet_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_bets, window_bets, "window_bets"); GLADE_HOOKUP_OBJECT (window_bets, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT (window_bets, label1, "label1"); GLADE_HOOKUP_OBJECT (window_bets, hseparator1, "hseparator1"); GLADE_HOOKUP_OBJECT (window_bets, hbox1, "hbox1"); GLADE_HOOKUP_OBJECT (window_bets, checkbutton_bet_all_leagues, "checkbutton_bet_all_leagues"); GLADE_HOOKUP_OBJECT (window_bets, checkbutton_bet_cups, "checkbutton_bet_cups"); GLADE_HOOKUP_OBJECT (window_bets, checkbutton_bet_user_recent, "checkbutton_bet_user_recent"); GLADE_HOOKUP_OBJECT (window_bets, hseparator2, "hseparator2"); GLADE_HOOKUP_OBJECT (window_bets, scrolledwindow1, "scrolledwindow1"); GLADE_HOOKUP_OBJECT (window_bets, treeview_bets, "treeview_bets"); GLADE_HOOKUP_OBJECT (window_bets, button_bet_close, "button_bet_close"); GLADE_HOOKUP_OBJECT_NO_REF (window_bets, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_bets), accel_group); return window_bets; } GtkWidget* create_window_splash (void) { GtkWidget *window_splash; GtkWidget *vbox2; GtkWidget *notebook1; GtkWidget *image1; GtkWidget *label2; GtkWidget *scrolledwindow2; GtkWidget *treeview_splash_contributors; GtkWidget *label3; GtkWidget *hseparator3; GtkWidget *vbox3; GtkWidget *hbox2; GtkWidget *image2; GtkWidget *label4; GtkWidget *label_splash_hintcounter; GtkWidget *label_splash_hint; GtkWidget *hbox10; GtkWidget *button_splash_hint_back; GtkWidget *alignment4; GtkWidget *hbox8; GtkWidget *image6; GtkWidget *label11; GtkWidget *button_splash_hint_next; GtkWidget *alignment5; GtkWidget *hbox9; GtkWidget *image7; GtkWidget *label12; GtkWidget *hseparator4; GtkWidget *hbox3; GtkWidget *button_splash_new_game; GtkWidget *alignment1; GtkWidget *hbox4; GtkWidget *image3; GtkWidget *label7; GtkWidget *button_splash_load_game; GtkWidget *alignment2; GtkWidget *hbox5; GtkWidget *image4; GtkWidget *label8; GtkWidget *button_splash_resume_game; GtkWidget *alignment3; GtkWidget *hbox6; GtkWidget *image5; GtkWidget *label9; GtkWidget *button_splash_quit; GtkWidget *hbox7; GtkWidget *label_splash_progress; GtkWidget *progressbar_splash; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_splash = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_splash), 5); gtk_window_set_position (GTK_WINDOW (window_splash), GTK_WIN_POS_CENTER_ALWAYS); vbox2 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (window_splash), vbox2); notebook1 = gtk_notebook_new (); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (vbox2), notebook1, TRUE, TRUE, 0); image1 = create_pixmap (window_splash, "bygfoot_splash.png"); gtk_widget_show (image1); gtk_container_add (GTK_CONTAINER (notebook1), image1); label2 = gtk_label_new (" "); gtk_widget_show (label2); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label2); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow2); gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow2); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN); treeview_splash_contributors = gtk_tree_view_new (); gtk_widget_show (treeview_splash_contributors); gtk_container_add (GTK_CONTAINER (scrolledwindow2), treeview_splash_contributors); label3 = gtk_label_new (_("Contributors")); gtk_widget_show (label3); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label3); hseparator3 = gtk_hseparator_new (); gtk_widget_show (hseparator3); gtk_box_pack_start (GTK_BOX (vbox2), hseparator3, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator3, 1, 10); vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox3); gtk_box_pack_start (GTK_BOX (vbox2), vbox3, TRUE, TRUE, 0); hbox2 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox3), hbox2, FALSE, FALSE, 0); image2 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_DND); gtk_widget_show (image2); gtk_box_pack_start (GTK_BOX (hbox2), image2, FALSE, FALSE, 0); /* Splash screen hint question. */ label4 = gtk_label_new (_("Did you know?")); gtk_widget_show (label4); gtk_box_pack_start (GTK_BOX (hbox2), label4, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (label4), TRUE); label_splash_hintcounter = gtk_label_new (""); gtk_widget_show (label_splash_hintcounter); gtk_box_pack_end (GTK_BOX (hbox2), label_splash_hintcounter, FALSE, FALSE, 0); label_splash_hint = gtk_label_new (""); gtk_widget_show (label_splash_hint); gtk_box_pack_start (GTK_BOX (vbox3), label_splash_hint, FALSE, FALSE, 0); gtk_widget_set_size_request (label_splash_hint, -1, 90); gtk_label_set_line_wrap (GTK_LABEL (label_splash_hint), TRUE); gtk_misc_set_padding (GTK_MISC (label_splash_hint), 0, 5); hbox10 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox10); gtk_box_pack_start (GTK_BOX (vbox3), hbox10, FALSE, FALSE, 0); button_splash_hint_back = gtk_button_new (); gtk_widget_show (button_splash_hint_back); gtk_box_pack_start (GTK_BOX (hbox10), button_splash_hint_back, TRUE, TRUE, 0); alignment4 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment4); gtk_container_add (GTK_CONTAINER (button_splash_hint_back), alignment4); hbox8 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox8); gtk_container_add (GTK_CONTAINER (alignment4), hbox8); image6 = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image6); gtk_box_pack_start (GTK_BOX (hbox8), image6, FALSE, FALSE, 0); label11 = gtk_label_new_with_mnemonic (_("Previous")); gtk_widget_show (label11); gtk_box_pack_start (GTK_BOX (hbox8), label11, FALSE, FALSE, 0); button_splash_hint_next = gtk_button_new (); gtk_widget_show (button_splash_hint_next); gtk_box_pack_start (GTK_BOX (hbox10), button_splash_hint_next, TRUE, TRUE, 0); alignment5 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment5); gtk_container_add (GTK_CONTAINER (button_splash_hint_next), alignment5); hbox9 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox9); gtk_container_add (GTK_CONTAINER (alignment5), hbox9); image7 = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image7); gtk_box_pack_start (GTK_BOX (hbox9), image7, FALSE, FALSE, 0); label12 = gtk_label_new_with_mnemonic (_("Next")); gtk_widget_show (label12); gtk_box_pack_start (GTK_BOX (hbox9), label12, FALSE, FALSE, 0); hseparator4 = gtk_hseparator_new (); gtk_widget_show (hseparator4); gtk_box_pack_start (GTK_BOX (vbox2), hseparator4, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator4, 1, 10); hbox3 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox3); gtk_box_pack_start (GTK_BOX (vbox2), hbox3, TRUE, TRUE, 0); button_splash_new_game = gtk_button_new (); gtk_widget_show (button_splash_new_game); gtk_box_pack_start (GTK_BOX (hbox3), button_splash_new_game, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_splash_new_game, _("Ctrl-N"), NULL); gtk_widget_add_accelerator (button_splash_new_game, "clicked", accel_group, GDK_n, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment1); gtk_container_add (GTK_CONTAINER (button_splash_new_game), alignment1); hbox4 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox4); gtk_container_add (GTK_CONTAINER (alignment1), hbox4); image3 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image3); gtk_box_pack_start (GTK_BOX (hbox4), image3, FALSE, FALSE, 0); label7 = gtk_label_new_with_mnemonic (_("Start _new game")); gtk_widget_show (label7); gtk_box_pack_start (GTK_BOX (hbox4), label7, FALSE, FALSE, 0); button_splash_load_game = gtk_button_new (); gtk_widget_show (button_splash_load_game); gtk_box_pack_start (GTK_BOX (hbox3), button_splash_load_game, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_splash_load_game, _("Ctrl-O"), NULL); gtk_widget_add_accelerator (button_splash_load_game, "clicked", accel_group, GDK_o, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment2); gtk_container_add (GTK_CONTAINER (button_splash_load_game), alignment2); hbox5 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox5); gtk_container_add (GTK_CONTAINER (alignment2), hbox5); image4 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image4); gtk_box_pack_start (GTK_BOX (hbox5), image4, FALSE, FALSE, 0); label8 = gtk_label_new_with_mnemonic (_("_Load game")); gtk_widget_show (label8); gtk_box_pack_start (GTK_BOX (hbox5), label8, FALSE, FALSE, 0); button_splash_resume_game = gtk_button_new (); gtk_widget_show (button_splash_resume_game); gtk_box_pack_start (GTK_BOX (hbox3), button_splash_resume_game, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_splash_resume_game, _("Ctrl-R"), NULL); gtk_widget_add_accelerator (button_splash_resume_game, "clicked", accel_group, GDK_r, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); alignment3 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment3); gtk_container_add (GTK_CONTAINER (button_splash_resume_game), alignment3); hbox6 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox6); gtk_container_add (GTK_CONTAINER (alignment3), hbox6); image5 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image5); gtk_box_pack_start (GTK_BOX (hbox6), image5, FALSE, FALSE, 0); label9 = gtk_label_new_with_mnemonic (_("_Resume game")); gtk_widget_show (label9); gtk_box_pack_start (GTK_BOX (hbox6), label9, FALSE, FALSE, 0); button_splash_quit = gtk_button_new_from_stock ("gtk-quit"); gtk_widget_show (button_splash_quit); gtk_box_pack_start (GTK_BOX (hbox3), button_splash_quit, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_splash_quit, _("Esc"), NULL); gtk_widget_add_accelerator (button_splash_quit, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); hbox7 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox7); gtk_box_pack_start (GTK_BOX (vbox2), hbox7, TRUE, TRUE, 0); label_splash_progress = gtk_label_new (_("Ready")); gtk_widget_show (label_splash_progress); gtk_box_pack_start (GTK_BOX (hbox7), label_splash_progress, FALSE, FALSE, 0); gtk_widget_set_size_request (label_splash_progress, 400, -1); gtk_misc_set_alignment (GTK_MISC (label_splash_progress), 0, 0.5); progressbar_splash = gtk_progress_bar_new (); gtk_widget_show (progressbar_splash); gtk_box_pack_end (GTK_BOX (hbox7), progressbar_splash, FALSE, FALSE, 0); gtk_widget_set_size_request (progressbar_splash, -1, 10); g_signal_connect ((gpointer) window_splash, "delete_event", G_CALLBACK (on_window_splash_delete_event), NULL); g_signal_connect ((gpointer) button_splash_hint_back, "clicked", G_CALLBACK (on_button_splash_hint_back_clicked), NULL); g_signal_connect ((gpointer) button_splash_hint_next, "clicked", G_CALLBACK (on_button_splash_hint_next_clicked), NULL); g_signal_connect ((gpointer) button_splash_new_game, "clicked", G_CALLBACK (on_button_splash_new_game_clicked), NULL); g_signal_connect ((gpointer) button_splash_load_game, "clicked", G_CALLBACK (on_button_splash_load_game_clicked), NULL); g_signal_connect ((gpointer) button_splash_resume_game, "clicked", G_CALLBACK (on_button_splash_resume_game_clicked), NULL); g_signal_connect ((gpointer) button_splash_quit, "clicked", G_CALLBACK (on_button_splash_quit_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_splash, window_splash, "window_splash"); GLADE_HOOKUP_OBJECT (window_splash, vbox2, "vbox2"); GLADE_HOOKUP_OBJECT (window_splash, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (window_splash, image1, "image1"); GLADE_HOOKUP_OBJECT (window_splash, label2, "label2"); GLADE_HOOKUP_OBJECT (window_splash, scrolledwindow2, "scrolledwindow2"); GLADE_HOOKUP_OBJECT (window_splash, treeview_splash_contributors, "treeview_splash_contributors"); GLADE_HOOKUP_OBJECT (window_splash, label3, "label3"); GLADE_HOOKUP_OBJECT (window_splash, hseparator3, "hseparator3"); GLADE_HOOKUP_OBJECT (window_splash, vbox3, "vbox3"); GLADE_HOOKUP_OBJECT (window_splash, hbox2, "hbox2"); GLADE_HOOKUP_OBJECT (window_splash, image2, "image2"); GLADE_HOOKUP_OBJECT (window_splash, label4, "label4"); GLADE_HOOKUP_OBJECT (window_splash, label_splash_hintcounter, "label_splash_hintcounter"); GLADE_HOOKUP_OBJECT (window_splash, label_splash_hint, "label_splash_hint"); GLADE_HOOKUP_OBJECT (window_splash, hbox10, "hbox10"); GLADE_HOOKUP_OBJECT (window_splash, button_splash_hint_back, "button_splash_hint_back"); GLADE_HOOKUP_OBJECT (window_splash, alignment4, "alignment4"); GLADE_HOOKUP_OBJECT (window_splash, hbox8, "hbox8"); GLADE_HOOKUP_OBJECT (window_splash, image6, "image6"); GLADE_HOOKUP_OBJECT (window_splash, label11, "label11"); GLADE_HOOKUP_OBJECT (window_splash, button_splash_hint_next, "button_splash_hint_next"); GLADE_HOOKUP_OBJECT (window_splash, alignment5, "alignment5"); GLADE_HOOKUP_OBJECT (window_splash, hbox9, "hbox9"); GLADE_HOOKUP_OBJECT (window_splash, image7, "image7"); GLADE_HOOKUP_OBJECT (window_splash, label12, "label12"); GLADE_HOOKUP_OBJECT (window_splash, hseparator4, "hseparator4"); GLADE_HOOKUP_OBJECT (window_splash, hbox3, "hbox3"); GLADE_HOOKUP_OBJECT (window_splash, button_splash_new_game, "button_splash_new_game"); GLADE_HOOKUP_OBJECT (window_splash, alignment1, "alignment1"); GLADE_HOOKUP_OBJECT (window_splash, hbox4, "hbox4"); GLADE_HOOKUP_OBJECT (window_splash, image3, "image3"); GLADE_HOOKUP_OBJECT (window_splash, label7, "label7"); GLADE_HOOKUP_OBJECT (window_splash, button_splash_load_game, "button_splash_load_game"); GLADE_HOOKUP_OBJECT (window_splash, alignment2, "alignment2"); GLADE_HOOKUP_OBJECT (window_splash, hbox5, "hbox5"); GLADE_HOOKUP_OBJECT (window_splash, image4, "image4"); GLADE_HOOKUP_OBJECT (window_splash, label8, "label8"); GLADE_HOOKUP_OBJECT (window_splash, button_splash_resume_game, "button_splash_resume_game"); GLADE_HOOKUP_OBJECT (window_splash, alignment3, "alignment3"); GLADE_HOOKUP_OBJECT (window_splash, hbox6, "hbox6"); GLADE_HOOKUP_OBJECT (window_splash, image5, "image5"); GLADE_HOOKUP_OBJECT (window_splash, label9, "label9"); GLADE_HOOKUP_OBJECT (window_splash, button_splash_quit, "button_splash_quit"); GLADE_HOOKUP_OBJECT (window_splash, hbox7, "hbox7"); GLADE_HOOKUP_OBJECT (window_splash, label_splash_progress, "label_splash_progress"); GLADE_HOOKUP_OBJECT (window_splash, progressbar_splash, "progressbar_splash"); GLADE_HOOKUP_OBJECT_NO_REF (window_splash, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_splash), accel_group); return window_splash; } GtkWidget* create_window_alr (void) { GtkWidget *window_alr; GtkWidget *vbox5; GtkWidget *hbox17; GtkWidget *label26; GtkWidget *label_alr_debt; GtkWidget *hseparator7; GtkWidget *label22; GtkWidget *table2; GtkWidget *label23; GtkWidget *label24; GtkWidget *label_current_start_week; GtkWidget *label_current_weekly_installment; GtkWidget *hseparator5; GtkWidget *label25; GtkWidget *table1; GtkWidget *label17; GtkWidget *label18; GtkWidget *button_calculate_installment; GtkWidget *alignment6; GtkWidget *hbox15; GtkWidget *image8; GtkWidget *label20; GtkWidget *button_calculate_start_week; GtkWidget *alignment7; GtkWidget *hbox16; GtkWidget *image9; GtkWidget *label21; GtkObject *spinbutton_start_week_adj; GtkWidget *spinbutton_start_week; GtkObject *spinbutton_weekly_installment_adj; GtkWidget *spinbutton_weekly_installment; GtkWidget *hseparator6; GtkWidget *hbox11; GtkWidget *button_alr_confirm; GtkWidget *button_alr_cancel; GtkAccelGroup *accel_group; accel_group = gtk_accel_group_new (); window_alr = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_alr), _("Automatic loan repayment")); gtk_window_set_modal (GTK_WINDOW (window_alr), TRUE); vbox5 = gtk_vbox_new (FALSE, 7); gtk_widget_show (vbox5); gtk_container_add (GTK_CONTAINER (window_alr), vbox5); gtk_container_set_border_width (GTK_CONTAINER (vbox5), 5); hbox17 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox17); gtk_box_pack_start (GTK_BOX (vbox5), hbox17, FALSE, FALSE, 0); label26 = gtk_label_new (_("Your debt:")); gtk_widget_show (label26); gtk_box_pack_start (GTK_BOX (hbox17), label26, FALSE, FALSE, 0); label_alr_debt = gtk_label_new (""); gtk_widget_show (label_alr_debt); gtk_box_pack_start (GTK_BOX (hbox17), label_alr_debt, FALSE, FALSE, 0); hseparator7 = gtk_hseparator_new (); gtk_widget_show (hseparator7); gtk_box_pack_start (GTK_BOX (vbox5), hseparator7, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator7, -1, 10); label22 = gtk_label_new (_("Current settings:")); gtk_widget_show (label22); gtk_box_pack_start (GTK_BOX (vbox5), label22, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label22), 0, 0.5); table2 = gtk_table_new (2, 2, FALSE); gtk_widget_show (table2); gtk_box_pack_start (GTK_BOX (vbox5), table2, FALSE, FALSE, 0); label23 = gtk_label_new (_("Start in week:")); gtk_widget_show (label23); gtk_table_attach (GTK_TABLE (table2), label23, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label23), 0, 0.5); gtk_misc_set_padding (GTK_MISC (label23), 5, 0); label24 = gtk_label_new (_("Weekly installment:")); gtk_widget_show (label24); gtk_table_attach (GTK_TABLE (table2), label24, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); gtk_misc_set_padding (GTK_MISC (label24), 5, 0); label_current_start_week = gtk_label_new (""); gtk_widget_show (label_current_start_week); gtk_table_attach (GTK_TABLE (table2), label_current_start_week, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_current_start_week), 0, 0.5); label_current_weekly_installment = gtk_label_new (""); gtk_widget_show (label_current_weekly_installment); gtk_table_attach (GTK_TABLE (table2), label_current_weekly_installment, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_current_weekly_installment), 0, 0.5); hseparator5 = gtk_hseparator_new (); gtk_widget_show (hseparator5); gtk_box_pack_start (GTK_BOX (vbox5), hseparator5, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator5, -1, 10); label25 = gtk_label_new (_("New settings:")); gtk_widget_show (label25); gtk_box_pack_start (GTK_BOX (vbox5), label25, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); table1 = gtk_table_new (2, 3, FALSE); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox5), table1, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table1), 5); gtk_table_set_col_spacings (GTK_TABLE (table1), 10); label17 = gtk_label_new (_("Start in week")); gtk_widget_show (label17); gtk_table_attach (GTK_TABLE (table1), label17, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label17), 1, 0.5); gtk_misc_set_padding (GTK_MISC (label17), 3, 0); label18 = gtk_label_new (_("Weekly installment")); gtk_widget_show (label18); gtk_table_attach (GTK_TABLE (table1), label18, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label18), 1, 0.5); gtk_misc_set_padding (GTK_MISC (label18), 3, 0); button_calculate_installment = gtk_button_new (); gtk_widget_show (button_calculate_installment); gtk_table_attach (GTK_TABLE (table1), button_calculate_installment, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); alignment6 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment6); gtk_container_add (GTK_CONTAINER (button_calculate_installment), alignment6); hbox15 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox15); gtk_container_add (GTK_CONTAINER (alignment6), hbox15); image8 = gtk_image_new_from_stock ("gtk-execute", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image8); gtk_box_pack_start (GTK_BOX (hbox15), image8, FALSE, FALSE, 0); label20 = gtk_label_new_with_mnemonic (_("Calculate weekly installment")); gtk_widget_show (label20); gtk_box_pack_start (GTK_BOX (hbox15), label20, FALSE, FALSE, 0); button_calculate_start_week = gtk_button_new (); gtk_widget_show (button_calculate_start_week); gtk_table_attach (GTK_TABLE (table1), button_calculate_start_week, 2, 3, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); alignment7 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment7); gtk_container_add (GTK_CONTAINER (button_calculate_start_week), alignment7); hbox16 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox16); gtk_container_add (GTK_CONTAINER (alignment7), hbox16); image9 = gtk_image_new_from_stock ("gtk-execute", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image9); gtk_box_pack_start (GTK_BOX (hbox16), image9, FALSE, FALSE, 0); label21 = gtk_label_new_with_mnemonic (_("Calculate start week")); gtk_widget_show (label21); gtk_box_pack_start (GTK_BOX (hbox16), label21, FALSE, FALSE, 0); spinbutton_start_week_adj = gtk_adjustment_new (0, 0, 0, 1, 10, 0); spinbutton_start_week = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_start_week_adj), 1, 0); gtk_widget_show (spinbutton_start_week); gtk_table_attach (GTK_TABLE (table1), spinbutton_start_week, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); spinbutton_weekly_installment_adj = gtk_adjustment_new (1, 0, 0, 1, 10, 0); spinbutton_weekly_installment = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_weekly_installment_adj), 1, 0); gtk_widget_show (spinbutton_weekly_installment); gtk_table_attach (GTK_TABLE (table1), spinbutton_weekly_installment, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); hseparator6 = gtk_hseparator_new (); gtk_widget_show (hseparator6); gtk_box_pack_start (GTK_BOX (vbox5), hseparator6, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator6, -1, 10); hbox11 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox11); gtk_box_pack_start (GTK_BOX (vbox5), hbox11, FALSE, TRUE, 3); button_alr_confirm = gtk_button_new_from_stock ("gtk-apply"); gtk_widget_show (button_alr_confirm); gtk_box_pack_start (GTK_BOX (hbox11), button_alr_confirm, TRUE, TRUE, 0); button_alr_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_alr_cancel); gtk_box_pack_start (GTK_BOX (hbox11), button_alr_cancel, TRUE, TRUE, 0); gtk_widget_add_accelerator (button_alr_cancel, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_alr, "delete_event", G_CALLBACK (on_window_alr_delete_event), NULL); g_signal_connect ((gpointer) button_calculate_installment, "clicked", G_CALLBACK (on_button_calculate_installment_clicked), NULL); g_signal_connect ((gpointer) button_calculate_start_week, "clicked", G_CALLBACK (on_button_calculate_start_week_clicked), NULL); g_signal_connect ((gpointer) button_alr_confirm, "clicked", G_CALLBACK (on_button_alr_confirm_clicked), NULL); g_signal_connect ((gpointer) button_alr_cancel, "clicked", G_CALLBACK (on_button_alr_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_alr, window_alr, "window_alr"); GLADE_HOOKUP_OBJECT (window_alr, vbox5, "vbox5"); GLADE_HOOKUP_OBJECT (window_alr, hbox17, "hbox17"); GLADE_HOOKUP_OBJECT (window_alr, label26, "label26"); GLADE_HOOKUP_OBJECT (window_alr, label_alr_debt, "label_alr_debt"); GLADE_HOOKUP_OBJECT (window_alr, hseparator7, "hseparator7"); GLADE_HOOKUP_OBJECT (window_alr, label22, "label22"); GLADE_HOOKUP_OBJECT (window_alr, table2, "table2"); GLADE_HOOKUP_OBJECT (window_alr, label23, "label23"); GLADE_HOOKUP_OBJECT (window_alr, label24, "label24"); GLADE_HOOKUP_OBJECT (window_alr, label_current_start_week, "label_current_start_week"); GLADE_HOOKUP_OBJECT (window_alr, label_current_weekly_installment, "label_current_weekly_installment"); GLADE_HOOKUP_OBJECT (window_alr, hseparator5, "hseparator5"); GLADE_HOOKUP_OBJECT (window_alr, label25, "label25"); GLADE_HOOKUP_OBJECT (window_alr, table1, "table1"); GLADE_HOOKUP_OBJECT (window_alr, label17, "label17"); GLADE_HOOKUP_OBJECT (window_alr, label18, "label18"); GLADE_HOOKUP_OBJECT (window_alr, button_calculate_installment, "button_calculate_installment"); GLADE_HOOKUP_OBJECT (window_alr, alignment6, "alignment6"); GLADE_HOOKUP_OBJECT (window_alr, hbox15, "hbox15"); GLADE_HOOKUP_OBJECT (window_alr, image8, "image8"); GLADE_HOOKUP_OBJECT (window_alr, label20, "label20"); GLADE_HOOKUP_OBJECT (window_alr, button_calculate_start_week, "button_calculate_start_week"); GLADE_HOOKUP_OBJECT (window_alr, alignment7, "alignment7"); GLADE_HOOKUP_OBJECT (window_alr, hbox16, "hbox16"); GLADE_HOOKUP_OBJECT (window_alr, image9, "image9"); GLADE_HOOKUP_OBJECT (window_alr, label21, "label21"); GLADE_HOOKUP_OBJECT (window_alr, spinbutton_start_week, "spinbutton_start_week"); GLADE_HOOKUP_OBJECT (window_alr, spinbutton_weekly_installment, "spinbutton_weekly_installment"); GLADE_HOOKUP_OBJECT (window_alr, hseparator6, "hseparator6"); GLADE_HOOKUP_OBJECT (window_alr, hbox11, "hbox11"); GLADE_HOOKUP_OBJECT (window_alr, button_alr_confirm, "button_alr_confirm"); GLADE_HOOKUP_OBJECT (window_alr, button_alr_cancel, "button_alr_cancel"); gtk_window_add_accel_group (GTK_WINDOW (window_alr), accel_group); return window_alr; } GtkWidget* create_window_news (void) { GtkWidget *window_news; GtkWidget *vbox6; GtkWidget *scrolledwindow3; GtkWidget *treeview_news; GtkWidget *hseparator8; GtkWidget *button_news_close; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_news = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_news), _("Bygfoot News")); gtk_window_set_position (GTK_WINDOW (window_news), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (window_news), 700, 600); vbox6 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox6); gtk_container_add (GTK_CONTAINER (window_news), vbox6); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow3); gtk_box_pack_start (GTK_BOX (vbox6), scrolledwindow3, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN); treeview_news = gtk_tree_view_new (); gtk_widget_show (treeview_news); gtk_container_add (GTK_CONTAINER (scrolledwindow3), treeview_news); hseparator8 = gtk_hseparator_new (); gtk_widget_show (hseparator8); gtk_box_pack_start (GTK_BOX (vbox6), hseparator8, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator8, -1, 10); button_news_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_news_close); gtk_box_pack_start (GTK_BOX (vbox6), button_news_close, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_news_close, _("Esc"), NULL); gtk_widget_add_accelerator (button_news_close, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_news, "delete_event", G_CALLBACK (on_window_news_delete_event), NULL); g_signal_connect ((gpointer) window_news, "destroy_event", G_CALLBACK (on_window_news_destroy_event), NULL); g_signal_connect ((gpointer) button_news_close, "clicked", G_CALLBACK (on_button_news_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_news, window_news, "window_news"); GLADE_HOOKUP_OBJECT (window_news, vbox6, "vbox6"); GLADE_HOOKUP_OBJECT (window_news, scrolledwindow3, "scrolledwindow3"); GLADE_HOOKUP_OBJECT (window_news, treeview_news, "treeview_news"); GLADE_HOOKUP_OBJECT (window_news, hseparator8, "hseparator8"); GLADE_HOOKUP_OBJECT (window_news, button_news_close, "button_news_close"); GLADE_HOOKUP_OBJECT_NO_REF (window_news, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_news), accel_group); return window_news; } bygfoot-2.3.2/src/main.h0000644000175000017500000000244111225071373014031 0ustar eliaselias/* main.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MAIN_H #define MAIN_H #include "bygfoot.h" void main_init(gint *argc, gchar ***argv); void main_init_variables(void); #ifdef G_OS_UNIX void main_exit_program(gint exit_code, gchar *format, ...) __attribute__ ((noreturn, format (printf, 2, 3))); #else void main_exit_program(gint exit_code, gchar *format, ...); #endif void main_parse_cl_arguments(gint *argc, gchar ***argv); #endif bygfoot-2.3.2/src/load_save.h0000644000175000017500000000237111225071373015044 0ustar eliaselias/* load_save.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LOAD_SAVE_H #define LOAD_SAVE_H #include "bygfoot.h" void load_save_save_game(const gchar* filename); gboolean load_save_load_game(const gchar* filename, gboolean create_main_window); void load_save_autosave(void); gboolean load_game_from_command_line(const gchar *filename); void load_save_write_autosave_name(gchar *filename); #endif bygfoot-2.3.2/src/maths.c0000644000175000017500000001300211225071373014207 0ustar eliaselias/* maths.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "maths.h" #include "misc.h" #include "variables.h" /** Generate a Gauss-distributed (pseudo)random number. "By Box and Muller, and recommended by Knuth". @return A Gauss-distributed random number. */ gdouble math_gaussrand(void) { #ifdef DEBUG printf("math_gaussrand\n"); #endif static gdouble V1, V2, S; static gint phase = 0; gdouble X; if(phase == 0) { do { gdouble U1 = g_rand_double(rand_generator); gdouble U2 = g_rand_double(rand_generator); V1 = 2 * U1 - 1; V2 = 2 * U2 - 1; S = V1 * V1 + V2 * V2; } while(S >= 1 || S == 0); X = V1 * sqrt(-2 * log(S) / S); } else X = V2 * sqrt(-2 * log(S) / S); phase = 1 - phase; return X; } /** Generate a Gauss-distributed random number within given boundaries using math_gaussrand(). Expectation value of the distribution is (upper + lower) / 2, the variance is so that the number is between the boundaries with probability 99,7 %. If the number isn't between the boundaries, we cut off. @param lower Lower cutoff boundary. @param upper Upper cutoff boundary. @return A Gauss-distributed number */ gdouble math_gauss_dist(gdouble lower, gdouble upper) { #ifdef DEBUG printf("math_gauss_dist\n"); #endif gdouble result; result = (upper - lower) / 6 * math_gaussrand() + (upper + lower) / 2; if(result < lower) result = lower; if(result > upper) result = upper; return result; } /** Get a certain part of an integer number. If 'place' is between 1 and 9, the 'place'th digit beginning from the right is returned, e.g. if the number = 1234 and place = 2, the function returns 3. If 'place' is between 10 and 19, say 10 + x, the first 'x' digits are returned, e.g. number = 8765 and place = 12 leads to return value 87. If 'place' is between 20 and 29, say 20 + x, the last 'x' digits are returned, e.g. number = 4869 and place = 22 leads to return value 69. @param value The number which gets scrutinized. @param place The number telling the function which part of 'value' to return. @return A part of the integer 'value'. */ gint math_get_place(gint value, gint place) { #ifdef DEBUG printf("math_get_place\n"); #endif if(place < 10) return (value % (gint)powf(10, place) - value % (gint)powf(10, place - 1)) / (gint)powf(10, place - 1); else if(place < 20) { while(value >= (gint)powf(10, place % 10)) value = (value - value % 10) / 10; return value; } return value % (gint)powf(10, place % 10); } /** Round an integer with given precision. If places > 0, round with precision 'places', e.g. number = 124566 and places = 2 leads to return value 124600. If places < 0, precision is length of 'number' minus 'places', e.g. number = 654987 and places = -2 leads to return value 65000. @param number The number to be rounded. @param places The precision. @return The rounded integer. */ gint math_round_integer(gint number, gint places) { #ifdef DEBUG printf("math_round_integer\n"); #endif gint length = 0; gfloat copy = (gfloat)number; if(places > 0) return (gint)rint( (gfloat)number / powf(10, places) ) * powf(10, places); while(copy >= 1) { copy /= 10; length++; } return (gint)rint( (gfloat)number / powf(10, length + places) ) * powf(10, length + places); } /** Generate a permutation of integers and write it to 'array'. @param array The integer array we store the permutation in. It must have size at least end - start - 1. @param start The integer to start with. @param end The integer to end with. */ void math_generate_permutation(gint *array, gint start, gint end) { #ifdef DEBUG printf("math_generate_permutation\n"); #endif gint i; for(i = start; i < end + 1; i++) array[i - start] = i; for(i=0;i= number) break; return (gint)powf(2, i) - number; } /** Return the sum of the integers in the array. @param array The integer array. @param max The size of the array. @return The sum of all the integers in the array. */ gint math_sum_int_array(const gint *array, gint max) { #ifdef DEBUG printf("math_sum_int_array\n"); #endif gint i, sum = 0; for(i=0;iplayers->len - 1 < const_int("int_team_min_players")) { game_gui_show_warning(_("Your team can't have less than 11 players.")); } else { if(team_is_user(new_team) != -1) { if((new_team->players->len < const_int("int_team_max_players")) && (BUDGET(team_is_user(new_team)) >= transoff(stat2, 0).fee)) { current_user.money += transoff(stat2, 0).fee; current_user.money_in[1][MON_IN_TRANSFERS] += transoff(stat2, 0).fee; user_from_team(new_team)->money -= transoff(stat2, 0).fee; user_from_team(new_team)->money_out[1][MON_OUT_TRANSFERS] -= transoff(stat2, 0).fee; if(player_of_id_team(trans(stat2).tm, trans(stat2).id)->id == opt_user_int("int_opt_user_penalty_shooter")) opt_user_set_int("int_opt_user_penalty_shooter", -1); player_copy(player_of_id_team(trans(stat2).tm, trans(stat2).id), new_team, new_team->players->len); player_of_idx_team(new_team, new_team->players->len - 1)->contract = (gfloat)math_rndi(const_int("int_transfer_contract_lower"), const_int("int_transfer_contract_upper")); player_of_idx_team(new_team, new_team->players->len - 1)->wage = transoff(stat2, 0).wage; g_array_remove_index(current_user.tm->players, player_id_index(current_user.tm, trans(stat2).id)); transfer_remove_player(stat2); } else { game_gui_show_warning(_("%s couldn't afford to buy %s or his roster was full."), user_from_team(new_team)->name, player_of_id_team(trans(stat2).tm, trans(stat2).id)->name); user_event_add(user_from_team(new_team), EVENT_TYPE_WARNING, -1, -1, NULL, _("You didn't have enough money to buy %s or your roster was full."), player_of_id_team(trans(stat2).tm, trans(stat2).id)->name); g_array_remove_index(trans(stat2).offers, 0); if(trans(stat2).offers->len > 0 && transoff(stat2, 0).status == TRANSFER_OFFER_NOT_CONSIDERED) transoff(stat2, 0).status = TRANSFER_OFFER_ACCEPTED; } } else { current_user.money += transoff(stat2, 0).fee; current_user.money_in[1][MON_IN_TRANSFERS] += transoff(stat2, 0).fee; player_remove_from_team(current_user.tm, player_id_index(current_user.tm, trans(stat2).id)); } } treeview_show_user_player_list(); game_gui_set_main_window_header(); on_button_transfers_clicked(NULL, NULL); } /** Transfer a cpu player to a user team. */ void misc2_callback_transfer_cpu_player(void) { #ifdef DEBUG printf("misc2_callback_transfer_cpu_player\n"); #endif if(current_user.tm->players->len > const_int("int_team_max_players") || BUDGET(cur_user) < transoff(stat2, 0).fee) { game_gui_show_warning(_("Your player roster is full or you don't enough money.")); return; } player_copy(player_of_id_team(trans(stat2).tm, trans(stat2).id), current_user.tm, current_user.tm->players->len); player_of_idx_team(current_user.tm, current_user.tm->players->len - 1)->contract = (gfloat)math_rndi(const_int("int_transfer_contract_lower"), const_int("int_transfer_contract_upper")); player_of_idx_team(current_user.tm, current_user.tm->players->len - 1)->wage = transoff(stat2, 0).wage; user_from_team(current_user.tm)->money -= transoff(stat2, 0).fee; user_from_team(current_user.tm)->money_out[1][MON_OUT_TRANSFERS] -= transoff(stat2, 0).fee; player_replace_by_new(player_of_id_team(trans(stat2).tm, trans(stat2).id), FALSE); transfer_remove_player(stat2); treeview_show_user_player_list(); game_gui_set_main_window_header(); if(week < transfer_get_deadline() || transfer_list->len > 0 ) on_button_transfers_clicked(NULL, NULL); else on_button_back_to_main_clicked(NULL, NULL); } /** Change the user team's structure to a value he's specified. */ gboolean misc2_callback_change_structure(gint structure) { #ifdef DEBUG printf("misc2_callback_change_structure\n"); #endif gint poss_struct = team_find_appropriate_structure(current_user.tm); if(math_get_place(structure, 1) + math_get_place(structure, 2) + math_get_place(structure, 3) != math_get_place(poss_struct, 1) + math_get_place(poss_struct, 2) + math_get_place(poss_struct, 3)) { game_gui_show_warning(_("The structure value %d is invalid."), structure); return FALSE; } team_change_structure(current_user.tm, structure); treeview_show_user_player_list(); setsav0; return TRUE; } /** Handle a click on the contract offer button. */ void misc2_callback_contract_offer(void) { #ifdef DEBUG printf("misc2_callback_contract_offer\n"); #endif gint i; gchar buf[SMALL]; GtkSpinButton *spinbutton; gint value = 0; Player *pl = (Player*)statp; gtk_widget_set_sensitive(lookup_widget(window.contract, "button_contract_cancel"), FALSE); for(i=0;i<4;i++) { sprintf(buf, "radiobutton_contract%d", i + 1); if(gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(window.contract, buf)))) { sprintf(buf, "spinbutton_contract%d", i + 1); spinbutton = GTK_SPIN_BUTTON(lookup_widget(window.contract, buf)); value = gtk_spin_button_get_value_as_int(spinbutton); if(value >= (gint)rint((gfloat)stat1 * (1 + (i * const_float("float_contract_scale_factor") * powf(-1, (pl->age > pl->peak_age)))))) { pl->contract += (i + 1); pl->offers = 0; pl->wage = value; game_gui_show_warning(_("%s accepts your offer."), pl->name); window_destroy(&window.contract); } else { pl->offers++; if(pl->offers < const_int("int_contract_max_offers")) game_gui_show_warning(_("%s rejects your offer. You may still make %d offers."), pl->name, const_int("int_contract_max_offers") - pl->offers); else { game_gui_show_warning(_("%s rejects your offer and won't negotiate with you anymore. You should sell him before his contract expires (he'll simply leave your team otherwise)."), pl->name); window_destroy(&window.contract); } } break; } } } /** Add a user to the users array. */ void misc2_callback_add_user(void) { #ifdef DEBUG printf("misc2_callback_add_user\n"); #endif GtkTreeView *treeview_user_management_teams = GTK_TREE_VIEW(lookup_widget(window.user_management, "treeview_user_management_teams")); GtkEntry *entry_user_management = GTK_ENTRY(lookup_widget(window.user_management, "entry_user_management")); const gchar *user_name = gtk_entry_get_text(entry_user_management); User new_user = user_new(); Team *tm = (Team*)treeview_helper_get_pointer(treeview_user_management_teams, 2); if(strlen(user_name) > 0) { misc_string_assign(&new_user.name, user_name); gtk_entry_set_text(entry_user_management, ""); } new_user.tm = tm; new_user.team_id = tm->id; user_history_add(&new_user, USER_HISTORY_START_GAME, tm->name, league_cup_get_name_string(tm->clid), NULL, NULL); g_array_append_val(users, new_user); file_load_user_conf_file(&usr(users->len - 1)); user_set_up_team(&usr(users->len - 1), TRUE); treeview_show_users( GTK_TREE_VIEW(lookup_widget(window.user_management, "treeview_user_management_users"))); treeview_show_team_list(treeview_user_management_teams, FALSE, FALSE); setsav0; } /** Handle a click in the MM window treeview. @param widget The treeview widget. @param row_num The row that's been clicked on. @param col_num The column number. */ void misc2_callback_mmatches_button_press(GtkWidget *widget, gint row_num, gint col_num) { #ifdef DEBUG printf("misc2_callback_mmatches_button_press\n"); #endif if(row_num < current_user.mmatches->len) { if(col_num == TREEVIEW_MMATCH_COL_REPLAY) { stat1 = STATUS_SHOW_LAST_MATCH; stat3 = 0; callback_show_last_match( TRUE, &g_array_index(current_user.mmatches, MemMatch, row_num).lg); } else if(col_num == TREEVIEW_MMATCH_COL_REMOVE) { gtk_widget_hide(widget); free_g_string(&g_array_index(current_user.mmatches, MemMatch, row_num). competition_name); free_gchar_ptr(g_array_index(current_user.mmatches, MemMatch, row_num). country_name); free_live_game(&g_array_index(current_user.mmatches, MemMatch, row_num).lg); g_array_remove_index(current_user.mmatches, row_num); treeview2_show_mmatches(); gtk_widget_show(widget); } else if(col_num == TREEVIEW_MMATCH_COL_EXPORT) { stat5 = STATUS_SELECT_MM_FILE_EXPORT; stat4 = row_num; window_show_file_sel(); } } else if(row_num == current_user.mmatches->len && col_num == 1) { if(current_user.live_game.units->len == 0) { game_gui_show_warning(_("No match stored.")); return; } user_mm_add_last_match(FALSE, FALSE); treeview2_show_mmatches(); } } /** Find out whether the user's application for the job is accepted and show the appropriate popups. @return TRUE if accepted, FALSE otherwise. */ gboolean misc2_callback_evaluate_job_application(Job *job, User *user) { #ifdef DEBUG printf("misc2_callback_evaluate_job_application\n"); #endif if(!query_job_application_successful(job, user)) { game_gui_show_warning( _("The owners of %s politely reject your application. You're not successful enough in their eyes."), job_get_team(job)->name); return FALSE; } if(job->type != JOB_TYPE_NATIONAL) { game_gui_show_warning( /* A lame duck is someone who will quit his job soon and thus doesn't have a lot of influence/impact anymore, e.g. an American president during the last 2 years of his second presidency. */ _("The owners of %s accept your application. Since %s don't want to get stuck with a lame duck, you get fired instantly and spend the rest of the current season tending your garden."), job_get_team(job)->name, user->tm->name); job_change_country(job); } else game_gui_show_warning( _("The owners of %s accept your application."), job_get_team(job)->name); user_change_team(user, team_of_id(job->team_id)); if(job->type == JOB_TYPE_NATIONAL) job_remove(job, TRUE); else free_jobs(TRUE); return TRUE; } bygfoot-2.3.2/src/xml_country.h0000644000175000017500000000331111225071373015465 0ustar eliaselias/* xml_country.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_COUNTRY_H #define XML_COUNTRY_H #include "bygfoot.h" void xml_country_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_country_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_country_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_country_read(const gchar *country_name, Country *cntry_arg); #endif bygfoot-2.3.2/src/xml_loadsave_misc.c0000644000175000017500000001762711225071373016605 0ustar eliaselias/* xml_loadsave_misc.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet_struct.h" #include "cup.h" #include "file.h" #include "fixture.h" #include "free.h" #include "misc.h" #include "xml.h" #include "variables.h" #include "xml_loadsave_misc.h" #include "xml_loadsave_cup.h" #include "xml_loadsave_league.h" enum XmlLoadSaveCountryTags { TAG_MISC = TAG_START_MISC, TAG_MISC_RATING, TAG_MISC_SEASON, TAG_MISC_WEEK, TAG_MISC_WEEK_ROUND, TAG_MISC_COUNTER, TAG_MISC_ALLCUP, TAG_MISC_BET0, TAG_MISC_BET1, TAG_MISC_BET_FIX_ID, TAG_MISC_BET_ODD, TAG_MISC_VERSION, TAG_MISC_CURRENT_INTEREST, TAG_END }; gint state, countidx, oddidx, betidx; BetMatch new_bet; void xml_loadsave_misc_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_misc_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_MISC;i\n", TAG_MISC); xml_write_string(fil, VERS, TAG_MISC_VERSION, I0); xml_write_float(fil, current_interest, TAG_MISC_CURRENT_INTEREST, I0); xml_write_string(fil, country.name, TAG_NAME, I0); xml_write_string(fil, country.symbol, TAG_SYMBOL, I0); xml_write_string(fil, country.sid, TAG_SID, I0); xml_write_int(fil, country.rating, TAG_MISC_RATING, I0); xml_write_int(fil, season, TAG_MISC_SEASON, I0); xml_write_int(fil, week, TAG_MISC_WEEK, I0); xml_write_int(fil, week_round, TAG_MISC_WEEK_ROUND, I0); for(i=0;ilen;i++) xml_write_int(fil, acp(i)->id, TAG_MISC_ALLCUP, I0); xml_loadsave_misc_write_bets(fil); fprintf(fil, "\n", TAG_MISC); fclose(fil); } /** Write the bets arrays into the file. */ void xml_loadsave_misc_write_bets(FILE *fil) { #ifdef DEBUG printf("xml_loadsave_misc_write_bets\n"); #endif gint i, j, k; for(i=0;i<2;i++) for(j=0;jlen;j++) { fprintf(fil, "%s<_%d>\n", I0, (i == 0) ? TAG_MISC_BET0 : TAG_MISC_BET1); xml_write_int(fil, g_array_index(bets[i], BetMatch, j).fix_id, TAG_MISC_BET_FIX_ID, I1); for(k=0;k<3;k++) xml_write_float(fil, g_array_index(bets[i], BetMatch, j).odds[k], TAG_MISC_BET_ODD, I1); fprintf(fil, "%s\n", I0, (i == 0) ? TAG_MISC_BET0 : TAG_MISC_BET1); } } bygfoot-2.3.2/src/xml_loadsave_leagues_cups.c0000644000175000017500000001504311225071373020317 0ustar eliaselias/* xml_loadsave_leagues_cups.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "file.h" #include "fixture.h" #include "free.h" #include "league_struct.h" #include "misc.h" #include "table.h" #include "team.h" #include "xml.h" #include "xml_loadsave_cup.h" #include "xml_loadsave_league.h" #include "xml_loadsave_leagues_cups.h" enum { TAG_LEAGUES_CUPS = TAG_START_LEAGUES_CUPS, TAG_LEAGUE_FILE, TAG_CUP_FILE, TAG_END }; gint state; const gchar *dir; void xml_loadsave_leagues_cups_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_leagues_cups_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_LEAGUES_CUPS;ilen - 1), dir, buf); } } /** Load the leagues and cups given in the leagues_cups.xml file. */ void xml_loadsave_leagues_cups_read(const gchar *dirname, const gchar *prefix) { #ifdef DEBUG printf("xml_loadsave_leagues_cups_read\n"); #endif gchar file[SMALL]; GMarkupParser parser = {xml_loadsave_leagues_cups_start_element, xml_loadsave_leagues_cups_end_element, xml_loadsave_leagues_cups_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; sprintf(file, "%s%s%s___leagues_cups.xml", dirname, G_DIR_SEPARATOR_S, prefix); context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(file, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_misc_read: error reading file %s\n", file); misc_print_error(&error, TRUE); } free_leagues_array(&ligs, TRUE); free_cups_array(&cps, TRUE); dir = dirname; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_misc_read: error parsing file %s\n", file); misc_print_error(&error, TRUE); } xml_loadsave_leagues_cups_adjust_team_ptrs(); } /** Write the leagues into xml files with the given prefix. */ void xml_loadsave_leagues_cups_write(const gchar *prefix) { #ifdef DEBUG printf("xml_loadsave_leagues_cups_write\n"); #endif gint i; gchar buf[SMALL], *basename = g_path_get_basename(prefix); FILE *fil = NULL; sprintf(buf, "%s___leagues_cups.xml", prefix); file_my_fopen(buf, "w", &fil, TRUE); fprintf(fil, "%s<_%d>\n", I0, TAG_LEAGUES_CUPS); for(i=0;ilen;i++) { xml_loadsave_league_write(prefix, &lig(i)); sprintf(buf, "%s___league_%d.xml", basename, lig(i).id); xml_write_string(fil, buf, TAG_LEAGUE_FILE, I1); } for(i=0;ilen;i++) { xml_loadsave_cup_write(prefix, &cp(i)); sprintf(buf, "%s___cup_%d.xml", basename, cp(i).id); xml_write_string(fil, buf, TAG_CUP_FILE, I1); } fprintf(fil, "%s\n", I0, TAG_LEAGUES_CUPS); fclose(fil); g_free(basename); } void xml_loadsave_leagues_cups_adjust_team_ptrs(void) { gint i, j, k; GPtrArray *team_ptrs; for(i = 0; i < ligs->len; i++) { fixture_refresh_team_pointers(lig(i).fixtures); for(j = 0; j < lig(i).tables->len; j++) table_refresh_team_pointers(&g_array_index(lig(i).tables, Table, j)); } for(i = 0; i < cps->len; i++) { fixture_refresh_team_pointers(cp(i).fixtures); for(j = 0; j < cp(i).rounds->len; j++) { team_ptrs = g_ptr_array_new(); for(k = 0; k < g_array_index(cp(i).rounds, CupRound, j).team_ptrs->len; k++) g_ptr_array_add(team_ptrs, team_of_id(GPOINTER_TO_INT(g_ptr_array_index(g_array_index(cp(i).rounds, CupRound, j).team_ptrs, k)))); g_ptr_array_free(g_array_index(cp(i).rounds, CupRound, j).team_ptrs, TRUE); g_array_index(cp(i).rounds, CupRound, j).team_ptrs = team_ptrs; for(k = 0; k < g_array_index(cp(i).rounds, CupRound, j).tables->len; k++) table_refresh_team_pointers(&g_array_index(g_array_index(cp(i).rounds, CupRound, j).tables, Table, k)); } } } bygfoot-2.3.2/src/xml_loadsave_teams.h0000644000175000017500000000365511225071373016764 0ustar eliaselias/* xml_loadsave_teams.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_TEAMS_H #define XML_LOADSAVE_TEAMS_H #include "bygfoot.h" #include "player_struct.h" #include "team_struct.h" void xml_loadsave_teams_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_teams_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_teams_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_teams_read(const gchar *filename, GArray *teams); void xml_loadsave_teams_write(const gchar *filename, const GArray *teams); void xml_loadsave_teams_write_team(FILE *fil, const Team* team); #endif bygfoot-2.3.2/src/player.c0000644000175000017500000013656611225071373014414 0ustar eliaselias/* player.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "fixture.h" #include "free.h" #include "game_gui.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "name.h" #include "option.h" #include "player.h" #include "team.h" #include "transfer.h" #include "user.h" /** Create and return a new player. @param tm The team the player will belong to. @param average_talent The average talent of the team. @return A newly created player. */ Player player_new(Team *tm, gfloat average_talent, gboolean new_id) { #ifdef DEBUG printf("player_new\n"); #endif gint i; gfloat skill_factor = math_rnd(1 - const_float("float_player_average_talent_variance"), 1 + const_float("float_player_average_talent_variance")); Player new; new.name = (new_id) ? name_get(tm->names_file) : NULL; new.id = (new_id) ? player_id_new : -1; new.pos = player_get_position_from_structure(tm->structure, tm->players->len); new.cpos = new.pos; new.age = math_gauss_dist(const_float("float_player_age_lower"), const_float("float_player_age_upper"));//30; new.peak_age = math_rnd(const_float("float_player_peak_age_lower") + (new.pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition"), const_float("float_player_peak_age_upper") + (new.pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition"));//30; new.peak_region = math_gauss_dist(const_float("float_player_peak_region_lower"), const_float("float_player_peak_region_upper"));//2; new.talent = CLAMP(average_talent * skill_factor, 0, const_float("float_player_max_skill"));; new.skill = player_skill_from_talent(&new); new.cskill = new.skill; player_estimate_talent(&new); new.fitness = math_rnd(const_float("float_player_fitness_lower"), const_float("float_player_fitness_upper")); new.health = new.recovery = 0; new.value = player_assign_value(&new); new.wage = player_assign_wage(&new); new.contract = math_rnd(const_float("float_player_contract_lower"), const_float("float_player_contract_upper")); new.lsu = math_rnd(const_float("float_player_lsu_lower"), const_float("float_player_lsu_upper")); new.cards = g_array_new(FALSE, FALSE, sizeof(PlayerCard)); new.games_goals = g_array_new(FALSE, FALSE, sizeof(PlayerGamesGoals)); new.card_status = PLAYER_CARD_STATUS_NONE; for(i=0;ipeak_age = math_rnd(const_float("float_player_peak_age_lower") + (pl->pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition"), const_float("float_player_peak_age_upper") + (pl->pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition")); if(opt_int("int_opt_load_defs") == 2) { pl->age = math_gauss_dist(const_float("float_player_age_lower"), const_float("float_player_age_upper")); pl->peak_age = math_rnd(const_float("float_player_peak_age_lower") + (pl->pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition"), const_float("float_player_peak_age_upper") + (pl->pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition")); pl->peak_region = math_gauss_dist(const_float("float_player_peak_region_lower"), const_float("float_player_peak_region_upper")); pl->talent = CLAMP(average_talent * skill_factor, 0, const_float("float_player_max_skill")); pl->skill = player_skill_from_talent(pl); } pl->cpos = pl->pos; player_estimate_talent(pl); pl->cskill = pl->skill; pl->fitness = math_rnd(const_float("float_player_fitness_lower"), const_float("float_player_fitness_upper")); pl->health = pl->recovery = 0; pl->value = player_assign_value(pl); pl->wage = player_assign_wage(pl); pl->contract = math_rnd(const_float("float_player_contract_lower"), const_float("float_player_contract_upper")); pl->lsu = math_rnd(const_float("float_player_lsu_lower"), const_float("float_player_lsu_upper")); pl->cards = g_array_new(FALSE, FALSE, sizeof(PlayerCard)); pl->games_goals = g_array_new(FALSE, FALSE, sizeof(PlayerGamesGoals)); for(i=0;icareer[i] = 0; pl->participation = FALSE; pl->offers = 0; } /** Return the appropriate position for the player with the given number. The position depends on the team structure if the player number is < 11 and on some constants otherwise. @param structure The team structure, something like 442 or 352. @param player_number The number of the player within the team. @return A new position for the player. */ gint player_get_position_from_structure(gint structure, gint player_number) { #ifdef DEBUG printf("player_get_position_from_structure\n"); #endif gint position = -1; gint bound[2] = {math_get_place(structure, 3) + 1, math_get_place(structure, 3) + math_get_place(structure, 2) + 1}; if(player_number == 0 || player_number == 11) position = PLAYER_POS_GOALIE; else if(player_number < bound[0] || (player_number > 10 && player_number < (11 + (const_int("int_team_cpu_players") - 11) * const_float("float_player_pos_bound1")))) position = PLAYER_POS_DEFENDER; else if(player_number < bound[1] || (player_number > 10 && player_number < (11 + (const_int("int_team_cpu_players") - 11) * const_float("float_player_pos_bound2")))) position = PLAYER_POS_MIDFIELDER; else position = PLAYER_POS_FORWARD; return position; } /** Calculate a player's skill depending on his age and talent. */ gfloat player_skill_from_talent(const Player *pl) { #ifdef DEBUG printf("player_skill_from_talent\n"); #endif gfloat skill = pl->talent, cur_age = pl->peak_age; if(pl->age < pl->peak_age) { while(cur_age > pl->age) { cur_age -= ((const_float("float_player_lsu_update_limit") + 2) * 0.0192); if(pl->peak_age - cur_age > pl->peak_region) skill *= (1 - ((pl->peak_age - cur_age) * const_float("float_player_skill_update_younger_factor") + const_float("float_player_skill_update_younger_add"))); } } else { while(cur_age < pl->age) { cur_age += ((const_float("float_player_lsu_update_limit") + 2) * 0.0192); if(cur_age - pl->peak_age > pl->peak_region) skill *= (1 - ((cur_age - pl->peak_age) * const_float("float_player_skill_update_older_factor") + const_float("float_player_skill_update_older_add"))); } } if(skill > pl->talent) skill = pl->talent; return skill; } /** Estimate a player's talent. @param pl The player of which we'd like to estimate the talent. */ void player_estimate_talent(Player *pl) { #ifdef DEBUG printf("player_estimate_talent\n"); #endif gint i, j; gfloat scout_deviance[QUALITY_END]; /* the maximal deviance in both directions */ gfloat deviance_bound[2] = {pl->talent - pl->skill, const_float("float_player_max_skill") - pl->talent}; for(i=0;ietal[i] = math_rnd(pl->talent - deviance_bound[0], pl->talent + deviance_bound[1]); } } /** Assign a (transfer) value to a player. The value depends on skill, talent and age. @param pl The player we examine. @return The value of the player. */ gint player_assign_value(const Player *pl) { #ifdef DEBUG printf("player_assign_value\n"); #endif gfloat value; value = powf((const_float("float_player_value_skill_weight") * pl->skill + (1 - const_float("float_player_value_skill_weight")) * pl->talent * 0.7), const_float("float_player_value_power")); if(pl->peak_age > pl->age) value *= (1 + const_float("float_player_value_younger_factor") * (pl->peak_age - pl->age)); else value *= (1 - const_float("float_player_value_older_factor") * (pl->age - pl->peak_age)); return math_round_integer((gint)rint(value), 2); } /** Assign a wage to a player. The wage depends mainly on the value. @param pl The player we examine. @return The wage of the player. */ gint player_assign_wage(const Player *pl) { #ifdef DEBUG printf("player_assign_wage\n"); #endif gfloat wage; wage = rint(((gfloat)pl->value * const_float("float_player_wage_value_factor")) * math_rnd(1 - const_float("float_player_wage_random_dev"), 1 + const_float("float_player_wage_random_dev") )); return math_round_integer((gint)wage, 1); } /** Get a player's index in the players array from his id. @param tm The team. @param player_id The player's id. @return The array index or -1. */ gint player_id_index(const Team *tm, gint player_id) { gint i; for(i=0;iplayers->len;i++) if(g_array_index(tm->players, Player, i).id == player_id) return i; main_exit_program(EXIT_INT_NOT_FOUND, "player_id_index: didn't find player with id %d of team %s\n", player_id, tm->name); return -1; } /** Return a pointer to the number'th player of the team. @param tm The team. @param number The player number. @return A pointer to the player or NULL. */ Player* player_of_idx_team(const Team *tm, gint number) { if(tm->players->len <= number) main_exit_program(EXIT_POINTER_NOT_FOUND, "player_of_idx_team: Player list of team %s too short for number %d.\n", tm->name, number); return &g_array_index(tm->players, Player, number); } /** Return a pointer to the player with specified id of the team. @param tm The team. @param id The player's id. @return A pointer to the player or NULL. */ Player* player_of_id_team(const Team *tm, gint id) { #ifdef DEBUG printf("player_of_id_team\n"); #endif gint i; for(i=0;iplayers->len;i++) if(g_array_index(tm->players, Player, i).id == id) return &g_array_index(tm->players, Player, i); main_exit_program(EXIT_POINTER_NOT_FOUND, "player_of_id_team: didn't find player with id %d of team %s\n", id, tm->name); return NULL; } /** Find out whether the given player id is in the team. */ gboolean query_player_id_in_team(gint player_id, const Team *tm) { #ifdef DEBUG printf("query_player_id_in_team\n"); #endif gint i; for(i=0;iplayers->len;i++) if(g_array_index(tm->players, Player, i).id == player_id) return TRUE; return FALSE; } /** Return the number of all games or goals the player's participated in / scored in all cups and leagues. @param pl The player we examine. @param goals Whether we sum up the goals. @return The number of goals. */ gint player_all_games_goals(const Player *pl, gint type) { #ifdef DEBUG printf("player_all_games_goals\n"); #endif gint i, sum = 0; for(i=0;igames_goals->len;i++) if(type == PLAYER_VALUE_GOALS) sum += g_array_index(pl->games_goals, PlayerGamesGoals, i).goals; else if(type == PLAYER_VALUE_GAMES) sum += g_array_index(pl->games_goals, PlayerGamesGoals, i).games; else if(type == PLAYER_VALUE_SHOTS) sum += g_array_index(pl->games_goals, PlayerGamesGoals, i).shots; return sum; } /** Return the sum of all the yellow cards in all leagues and cups for the player. @param pl The player we examine. @return The number of all cards.*/ gint player_all_cards(const Player *pl) { #ifdef DEBUG printf("player_all_cards\n"); #endif gint i, sum = 0; for(i=0;icards->len;i++) sum += g_array_index(pl->cards, PlayerCard, i).yellow; return sum; } /** Compare two players in a (pointer) array. @param pl1 Pointer to the pointer to the first player. @param pl2 Pointer to the pointer to the second player. @param data Coded integer that tells us which attribute to compare. @return 1, 0 or -1 (see the C qsort() function). */ gint player_compare_func(gconstpointer a, gconstpointer b, gpointer data) { #ifdef DEBUG printf("player_compare_func\n"); #endif gint data_int = ABS(GPOINTER_TO_INT(data)); gint data_int2 = GPOINTER_TO_INT(data); gint type = data_int % 100; const Player *pl1 = (data_int < 100) ? *(const Player**)a : (const Player*)a; const Player *pl2 = (data_int < 100) ? *(const Player**)b : (const Player*)b; gint return_value = 0; if(type == PLAYER_COMPARE_ATTRIBUTE_GAME_SKILL) return_value = misc_float_compare(player_get_game_skill(pl1, FALSE, TRUE), player_get_game_skill(pl2, FALSE, TRUE)); else if(type == PLAYER_COMPARE_ATTRIBUTE_POS) { if(MIN(player_id_index(pl1->team, pl1->id), player_id_index(pl2->team, pl2->id)) < 11 && MAX(player_id_index(pl1->team, pl1->id), player_id_index(pl2->team, pl2->id)) >= 11) return_value = (player_id_index(pl1->team, pl1->id) > player_id_index(pl2->team, pl2->id)) ? 1 : -1; else if(pl1->cskill == 0) return_value = (pl2->cskill == 0) ? 0 : 1; else if(pl2->cskill == 0) return_value = (pl1->cskill == 0) ? 0 : -1; else if(pl2->pos != pl1->pos) return_value = misc_int_compare(pl2->pos, pl1->pos); else return_value = 0; } else if(type == PLAYER_COMPARE_ATTRIBUTE_LEAGUE_GOALS) { gint goals1 = player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS), games1 = player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GAMES), shots1 = player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_SHOTS), goals2 = player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS), games2 = player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GAMES), shots2 = player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_SHOTS); if(goals1 != goals2) return_value = misc_int_compare(goals1, goals2); else if(games1 != games2) return_value = misc_int_compare(games2, games1); else return_value = misc_int_compare(shots2, shots1); } if(data_int2 != 0) return_value *= (data_int / data_int2); return return_value; } /** Compare two players in a pointer array. @param pl1 Pointer to the pointer to the first player. @param pl2 Pointer to the pointer to the second player. @param data Coded integer that tells us which position we would like to substitute. @return 1, 0 or -1 (see the C qsort() function). */ gint player_compare_substitute_func(gconstpointer a, gconstpointer b, gpointer data) { #ifdef DEBUG printf("player_compare_substitute_func\n"); #endif const Player *pl1 = *(const Player**)a; const Player *pl2 = *(const Player**)b; gint position = GPOINTER_TO_INT(data); gfloat skill_for_pos1 = player_get_cskill(pl1, position, FALSE) * powf(pl1->fitness, const_float("float_player_fitness_exponent")), skill_for_pos2 = player_get_cskill(pl2, position, FALSE) * powf(pl2->fitness, const_float("float_player_fitness_exponent")); gfloat game_skill1 = player_get_game_skill(pl1, FALSE, TRUE), game_skill2 = player_get_game_skill(pl2, FALSE, TRUE); gboolean good_structure1 = player_substitution_good_structure(pl1->team->structure, position, pl1->pos), good_structure2 = player_substitution_good_structure(pl2->team->structure, position, pl2->pos); gint return_value = 0; if(pl1->pos == position && pl2->pos == position) return_value = misc_float_compare(game_skill1, game_skill2); else if(pl1->pos == position) return_value = -1; else if(pl2->pos == position) return_value = 1; else if(position != PLAYER_POS_GOALIE) { if(good_structure1 && good_structure2) return_value = misc_float_compare(game_skill1, game_skill2); else if(good_structure1) return_value = misc_float_compare(game_skill1, skill_for_pos2); else if(good_structure2) return_value = misc_float_compare(skill_for_pos1, game_skill2); else return_value = misc_float_compare(skill_for_pos1, skill_for_pos2); } else return_value = misc_float_compare(skill_for_pos1, skill_for_pos2); return return_value; } /** Find out whether substituting a player into a team and adapting the team structure results in a normal structure. @param old_structure The team's structure before substituting. @param old_pos The position of the player that gets replaced. @param player_pos The position of the player that comes into the game. @return TRUE or FALSE. */ gboolean player_substitution_good_structure(gint old_structure, gint old_pos, gint player_pos) { #ifdef DEBUG printf("player_substitution_good_structure\n"); #endif gint accepted_structures[5] = {532, 442, 352, 433, 343}; gint new_structure = old_structure - (gint)rint(powf(10, PLAYER_POS_FORWARD - old_pos)) + (gint)rint(powf(10, PLAYER_POS_FORWARD - player_pos)); return query_integer_is_in_array(new_structure, accepted_structures, 5); } /** Copy a player into a team. @param pl The player. @param tm The dest team. @param insert_at The new index of the player in the players array. */ void player_copy(Player *pl, Team *tm, gint insert_at) { #ifdef DEBUG printf("player_copy\n"); #endif Player new = *pl; new.team = tm; g_array_insert_val(tm->players, insert_at, new); if(insert_at < 11) player_of_idx_team(tm, insert_at)->cpos = player_get_position_from_structure(tm->structure, insert_at); else player_of_idx_team(tm, insert_at)->cpos = player_of_idx_team(tm, insert_at)->pos; player_of_idx_team(tm, insert_at)->cskill = player_get_cskill(player_of_idx_team(tm, insert_at), player_of_idx_team(tm, insert_at)->cpos, TRUE); } /** Move a player from one player array to another one. @param tm1 The source team. @param player_number The index of the player in the players array. @param tm2 The dest team. @param insert_at The new index of the player in the players array. */ void player_move(Team *tm1, gint player_number, Team *tm2, gint insert_at) { #ifdef DEBUG printf("player_move\n"); #endif Player pl = *player_of_idx_team(tm1, player_number); pl.team = tm2; g_array_remove_index(tm1->players, player_number); g_array_insert_val(tm2->players, insert_at, pl); } /** Swap two players. */ void player_swap(Team *tm1, gint player_number1, Team *tm2, gint player_number2) { #ifdef DEBUG printf("player_swap\n"); #endif gint move = (tm1 == tm2 && player_number1 < player_number2) ? -1 : 1; if(stat0 == STATUS_LIVE_GAME_PAUSE) { if((player_number1 < 11 && player_is_banned(player_of_idx_team(tm1, player_number1)) > 0 && player_of_idx_team(tm1, player_number1)->participation) || (player_number2 < 11 && player_is_banned(player_of_idx_team(tm2, player_number2)) > 0 && player_of_idx_team(tm2, player_number2)->participation)) { game_gui_show_warning(_("You can't replace a banned player.")); return; } } player_move(tm1, player_number1, tm2, player_number2); if(player_number2 < 11) player_of_idx_team(tm2, player_number2)->cpos = player_get_position_from_structure(tm2->structure, player_number2); else player_of_idx_team(tm2, player_number2)->cpos = player_of_idx_team(tm2, player_number2)->pos; player_of_idx_team(tm2, player_number2)->cskill = player_get_cskill(player_of_idx_team(tm2, player_number2), player_of_idx_team(tm2, player_number2)->cpos, TRUE); player_move(tm2, player_number2 + move, tm1, player_number1); if(player_number1 < 11) player_of_idx_team(tm1, player_number1)->cpos = player_get_position_from_structure(tm1->structure, player_number1); else player_of_idx_team(tm1, player_number1)->cpos = player_of_idx_team(tm1, player_number1)->pos; player_of_idx_team(tm1, player_number1)->cskill = player_get_cskill(player_of_idx_team(tm1, player_number1), player_of_idx_team(tm1, player_number1)->cpos, TRUE); } /** Return the player's cskill depending on whether he's on his normal position or not. @param pl The player we examine. @param position The position we's like to put the player. @param check_health Whether to check for injury and ban (profiling reasons). @return A new cskill. */ gfloat player_get_cskill(const Player *pl, gint position, gboolean check_health) { #ifdef DEBUG printf("player_get_cskill\n"); #endif gfloat cskill_factor; if(check_health && (pl->health != PLAYER_INJURY_NONE || player_is_banned(pl) > 0)) return 0; if(pl->pos != position) { if(position == PLAYER_POS_GOALIE || pl->pos == PLAYER_POS_GOALIE) cskill_factor = 0.5; else if(abs(position - pl->pos) == 2) cskill_factor = 0.65; else cskill_factor = 0.75; return MIN(pl->talent * cskill_factor, pl->skill); } else return pl->skill; } /** Find out whether the player is banned in the next match or whether he will be if he gets a yellow card. @param pl The player we examine. @return Number of games banned, or 0 if not banned, or -1 if yellow. */ gint player_is_banned(const Player *pl) { #ifdef DEBUG printf("player_is_banned\n"); #endif Fixture *fix = team_get_fixture(pl->team, FALSE); gint yellow_red = -1, yellow, red; if(fix == NULL) return 0; if(fix->clid < ID_CUP_START) yellow_red = league_from_clid(fix->clid)->yellow_red; else yellow_red = cup_from_clid(fix->clid)->yellow_red; yellow = player_card_get(pl, fix->clid, PLAYER_VALUE_CARD_YELLOW); red = player_card_get(pl, fix->clid, PLAYER_VALUE_CARD_RED); if(red > 0) return red; if(yellow == yellow_red - 1) return -1; return 0; } /** Return the player's skill contribution to his team. @param pl The player. @param skill Whether to take his skill or current skill into account. @param special Whether to count special influence like boost and streak. @return A float value representing the player's contribution. */ gfloat player_get_game_skill(const Player *pl, gboolean skill, gboolean count_special) { gfloat boost = (count_special) ? 1 + const_float("float_player_boost_skill_effect") * pl->team->boost : 1; gfloat streak = (count_special) ? 1 + (gfloat)pl->streak * const_float("float_player_streak_influence_skill") : 1; return (skill) ? pl->skill * boost * streak * powf(pl->fitness, const_float("float_player_fitness_exponent")) : pl->cskill * boost * streak * powf(pl->fitness, const_float("float_player_fitness_exponent")); } /** Decrease a player's fitness during a match. @param pl The player. */ void player_decrease_fitness(Player *pl) { #ifdef DEBUG printf("player_decrease_fitness\n"); #endif gfloat goalie_factor = 1 - const_float("float_player_fitness_decrease_factor_goalie") * (pl->cpos == 0); gfloat boost_factor = 1 + (gfloat)pl->team->boost * const_float("float_player_boost_fitness_effect"); gfloat streak_factor = 1 + (gfloat)pl->streak * const_float("float_player_streak_influence_fitness_decrease"); if(pl->age < pl->peak_age - pl->peak_region) { pl->fitness -= (((pl->peak_age - pl->peak_region - pl->age) * const_float("float_player_fitness_decrease_younger_factor") + const_float("float_player_fitness_decrease_add")) * goalie_factor * boost_factor * streak_factor); } else if(pl->age > pl->peak_age + pl->peak_region) { pl->fitness -= (((pl->age - pl->peak_age - pl->peak_region) * const_float("float_player_fitness_decrease_older_factor") + const_float("float_player_fitness_decrease_add")) * goalie_factor * boost_factor * streak_factor); } else { pl->fitness -= (const_float("float_player_fitness_decrease_add") * goalie_factor * boost_factor * streak_factor); } if(pl->fitness < 0) pl->fitness = 0; } /** Increase of player fitness after a match. Depends on the decrease values and the percentage values that determine how much of the decrease a player gains. @param pl The player we edit. */ void player_update_fitness(Player *pl) { #ifdef DEBUG printf("player_update_fitness\n"); #endif gfloat variance = math_rnd(1 - const_float("float_player_fitness_increase_variance"), 1 + const_float("float_player_fitness_increase_variance")); gfloat streak_factor = 1 + (pl->streak * const_float("float_player_streak_influence_fitness_increase")); if(pl->participation) { pl->participation = FALSE; return; } if(pl->age < pl->peak_age - pl->peak_region) pl->fitness += (((pl->peak_age - pl->peak_region - pl->age) * const_float("float_player_fitness_increase_younger_factor") + const_float("float_player_fitness_increase_add")) * variance * streak_factor); else if(pl->age > pl->peak_age + pl->peak_region) pl->fitness += (((pl->age - pl->peak_age - pl->peak_region) * const_float("float_player_fitness_increase_older_factor") + const_float("float_player_fitness_increase_add")) * variance * streak_factor); else pl->fitness += (const_float("float_player_fitness_increase_add") * variance * streak_factor); pl->fitness = MIN(pl->fitness, 1); } /** Return the number of yellow cards of a player or the number of weeks banned. @param pl The player. @param clid The cup or league id. @param card_type Whether red or yellow cards. */ gint player_card_get(const Player *pl, gint clid, gint card_type) { #ifdef DEBUG printf("player_card_get\n"); #endif gint i; gint return_value = 0; for(i=0;icards->len;i++) if(g_array_index(pl->cards, PlayerCard, i).clid == clid) { if(card_type == PLAYER_VALUE_CARD_YELLOW) return_value = g_array_index(pl->cards, PlayerCard, i).yellow; else return_value = g_array_index(pl->cards, PlayerCard, i).red; break; } return return_value; } /** Change a card value for the player. @param pl The player. @param clid The cup or league id. @param card_type Whether red or yellow card. @param value The new value. @param diff Whether we add the value to the old one or replace the old value by the new one. */ void player_card_set(Player *pl, gint clid, gint card_type, gint value, gboolean diff) { #ifdef DEBUG printf("player_card_set\n"); #endif gint i, *card_value = NULL; PlayerCard new; for(i=0;icards->len;i++) if(g_array_index(pl->cards, PlayerCard, i).clid == clid) { if(card_type == PLAYER_VALUE_CARD_YELLOW) card_value = &g_array_index(pl->cards, PlayerCard, i).yellow; else if(card_type == PLAYER_VALUE_CARD_RED) card_value = &g_array_index(pl->cards, PlayerCard, i).red; if(diff) *card_value += value; else *card_value = value; if(*card_value < 0) { debug_print_message("player_card_set: negative card value; setting to 0\n"); *card_value = 0; } return; } new.clid = clid; new.yellow = new.red = 0; g_array_append_val(pl->cards, new); player_card_set(pl, clid, card_type, value, diff); } /** Return the number of games or goals. @param pl The player. @param clid The cup or league id. @param card_type Whether games or goals cards. */ gint player_games_goals_get(const Player *pl, gint clid, gint type) { #ifdef DEBUG printf("player_games_goals_get\n"); #endif gint i, return_value = 0; for(i=0;igames_goals->len;i++) if(g_array_index(pl->games_goals, PlayerGamesGoals, i).clid == clid) { if(type == PLAYER_VALUE_GAMES) return_value = g_array_index(pl->games_goals, PlayerGamesGoals, i).games; else if(type == PLAYER_VALUE_GOALS) return_value = g_array_index(pl->games_goals, PlayerGamesGoals, i).goals; else if(type == PLAYER_VALUE_SHOTS) return_value = g_array_index(pl->games_goals, PlayerGamesGoals, i).shots; else main_exit_program(EXIT_INT_NOT_FOUND, "player_games_goals_get: unknown type %d.\n", type); } return return_value; } /** Change a card value for the player. @param pl The player. @param clid The cup or league id. @param type Whether games or goals or shots. @param value The new value. @param diff Whether we add the value to the old one or replace the old value by the new one. */ void player_games_goals_set(Player *pl, gint clid, gint type, gint value) { #ifdef DEBUG printf("player_games_goals_set\n"); #endif gint i, *games_goals_value = NULL; PlayerGamesGoals new; for(i=0;igames_goals->len;i++) if(g_array_index(pl->games_goals, PlayerGamesGoals, i).clid == clid) { if(type == PLAYER_VALUE_GAMES) games_goals_value = &g_array_index(pl->games_goals, PlayerGamesGoals, i).games; else if(type == PLAYER_VALUE_GOALS) games_goals_value = &g_array_index(pl->games_goals, PlayerGamesGoals, i).goals; else if(type == PLAYER_VALUE_SHOTS) games_goals_value = &g_array_index(pl->games_goals, PlayerGamesGoals, i).shots; *games_goals_value += value; if(*games_goals_value < 0) { debug_print_message("player_games_goals_set: negative value; setting to 0\n"); *games_goals_value = 0; } return; } new.clid = clid; new.games = new.goals = new.shots = 0; g_array_append_val(pl->games_goals, new); player_games_goals_set(pl, clid, type, value); } /** Update skill and lsu of a user player. @param pl The player we update. */ void player_update_skill(Player *pl) { #ifdef DEBUG printf("player_update_skill\n"); #endif gint i; if(!query_player_is_youth(pl)) { if(pl->age > pl->peak_age) pl->lsu += (pl->health == 0) ? 1 : const_float("float_player_lsu_injured_old"); else if(pl->health == 0 && ((gfloat)player_games_goals_get(pl, pl->team->clid, PLAYER_VALUE_GAMES) / (gfloat)week >= const_float("float_player_lsu_games_percentage") || math_rnd(0, 1) <= const_float("float_player_lsu_increase_prob"))) pl->lsu++; } else pl->lsu += (pl->health != 0) ? 0 : const_float("float_youth_academy_lsu_addition_best") - (user_from_team(pl->team)->youth_academy.av_coach * const_float("float_youth_academy_lsu_penalty")); if(pl->lsu < const_float("float_player_lsu_update_limit") || math_rnd(0, 1) < powf(const_float("float_player_lsu_update_base_prob"), pl->lsu - const_float("float_player_lsu_update_limit"))) return; pl->lsu = 0; if(pl->age < pl->peak_age - pl->peak_region) pl->skill *= (1 + ((pl->peak_age - pl->age) * const_float("float_player_skill_update_younger_factor") + const_float("float_player_skill_update_younger_add"))); else if(pl->age > pl->peak_age + pl->peak_region) pl->skill *= (1 - ((pl->age - pl->peak_age) * const_float("float_player_skill_update_older_factor") + const_float("float_player_skill_update_older_add"))); else pl->skill *= math_rnd(1 - const_float("float_player_skill_update_peak"), 1 + const_float("float_player_skill_update_peak")); pl->skill = CLAMP(pl->skill, 0, pl->talent); pl->cskill = player_get_cskill(pl, pl->cpos, TRUE); pl->value = player_assign_value(pl); for(i=0;iskill > pl->etal[i]) { player_estimate_talent(pl); break; } } /** Decrement the number of weeks until recovery depending on the user's physio. @param pl An injured player. */ void player_update_injury(Player *pl) { #ifdef DEBUG printf("player_update_injury\n"); #endif gint i, j; gfloat rndom; gint physio = (query_player_is_cpu(pl)) ? QUALITY_GOOD : user_from_team(pl->team)->physio; gfloat injury_decrease_probs[4][3] = {{const_float("float_player_injury_recovery_best0"), const_float("float_player_injury_recovery_best1"), const_float("float_player_injury_recovery_best2")}, {const_float("float_player_injury_recovery_good0"), const_float("float_player_injury_recovery_good1"), const_float("float_player_injury_recovery_good2")}, {const_float("float_player_injury_recovery_good2"), const_float("float_player_injury_recovery_good1"), const_float("float_player_injury_recovery_good0")}, {const_float("float_player_injury_recovery_best2"), const_float("float_player_injury_recovery_best1"), const_float("float_player_injury_recovery_best0")}}; for(j=1;j<3;j++) injury_decrease_probs[physio][j] += injury_decrease_probs[physio][j - 1]; rndom = math_rnd(0, 1); for(i=0;i<3;i++) if(rndom <= injury_decrease_probs[physio][i]) { pl->recovery = MAX(pl->recovery - i, 0); break; } if(pl->recovery == 0) { pl->health = 0; pl->fitness = math_rnd(const_float("float_player_injury_recovery_fitness_lower"), const_float("float_player_injury_recovery_fitness_upper")); } } /** Weekly test whether a player goes on a hot/cold streak; if he's on a streak, decrease the streak counter. */ void player_update_streak(Player *pl) { #ifdef DEBUG printf("player_update_streak\n"); #endif gfloat streak_type, streak_prob, streak_length, decrease_factor = 0; gfloat streak_prob_factor = const_float("float_player_streak_prob_max") - const_float("float_player_streak_prob_zero"), streak_prob_add = const_float("float_player_streak_prob_zero"); /** Player streak is locked. */ if(pl->streak_count < 0) { pl->streak_count++; if(pl->streak_count >= 0) pl->streak_count = 0; return; } else if(pl->streak_count > 0) { if(pl->streak == PLAYER_STREAK_HOT) decrease_factor = -1; else if(pl->streak == PLAYER_STREAK_COLD) decrease_factor = 1; else debug_print_message("player_update_streak: streak count is positive (%.1f) but player %s is not on a streak!\n", pl->streak_count, pl->name); pl->streak_count -= (pl->streak_prob * decrease_factor * const_float("float_player_streak_count_decrease_factor") + const_float("float_player_streak_count_decrease_add")); /** Streak is over. */ if(pl->streak_count <= 0) { pl->streak = PLAYER_STREAK_NONE; player_streak_reset_count(pl); } return; } if(query_player_is_in_ya(pl)) return; /** Now let's find out whether there's a new streak. */ streak_type = math_rnd(-1, 1); streak_prob = math_rnd(0, 1); streak_length = math_rnd(const_float("float_player_streak_length_lower"), const_float("float_player_streak_length_upper")); if(streak_type < pl->streak_prob && ((pl->streak_prob > 0 && streak_prob < streak_prob_factor * pl->streak_prob + streak_prob_add) || (pl->streak_prob <= 0 && streak_prob < streak_prob_add * pl->streak_prob + streak_prob_add))) { pl->streak = PLAYER_STREAK_HOT; pl->streak_count = streak_length; } else if(streak_type > pl->streak_prob && ((pl->streak_prob > 0 && streak_prob < -streak_prob_add * pl->streak_prob + streak_prob_add) || (pl->streak_prob <= 0 && streak_prob < -streak_prob_factor * pl->streak_prob + streak_prob_add))) { pl->streak = PLAYER_STREAK_COLD; pl->streak_count = streak_length; } } /** Update a player in a team (age, skill etc.). */ void player_update_weekly(Player *pl) { #ifdef DEBUG printf("player_update_weekly\n"); #endif // workaround, possibly unnecessary if(pl->fitness < 0) pl->fitness = const_float("float_player_fitness_lower"); if(pl->health > 0) player_update_injury(pl); else player_update_streak(pl); if(query_player_is_cpu(pl)) return; pl->age += 0.0192; if(debug < 50) if(!sett_int("int_opt_disable_contracts") && pl->age > const_float("float_player_age_lower")) pl->contract -= 0.0192; if(!sett_int("int_opt_disable_contracts") && debug < 50 && pl->contract * 12 <= opt_user_int("int_opt_user_contract_limit") && (pl->contract + 0.0192) * 12 > opt_user_int("int_opt_user_contract_limit")) user_event_add(user_from_team(pl->team), EVENT_TYPE_WARNING, -1, -1, NULL, _("%s's contract expires in %.1f years."), pl->name, pl->contract); if(pl->contract <= 0) { player_remove_contract(pl); return; } player_update_skill(pl); } /** Remove a player from a user team after the contract expired. @param tm The user team. @param idx The player index. */ void player_remove_contract(Player *pl) { #ifdef DEBUG printf("player_remove_contract\n"); #endif if(debug < 50) user_event_add(user_from_team(pl->team), EVENT_TYPE_PLAYER_LEFT, -1, -1, NULL, pl->name, NULL); player_remove_from_team(pl->team, player_id_index(pl->team, pl->id)); } /** Remove a player from a team. @param idx The player index in the players array. */ void player_remove_from_team(Team *tm, gint idx) { #ifdef DEBUG printf("player_remove_from_team\n"); #endif gint usr_idx = team_is_user(tm); if(usr_idx != -1 && player_of_idx_team(tm, idx)->id == option_int("int_opt_user_penalty_shooter", &usr(usr_idx).options)) option_set_int("int_opt_user_penalty_shooter", &usr(usr_idx).options, -1); transfer_remove_player_ptr(player_of_idx_team(tm, idx)); free_player(player_of_idx_team(tm, idx)); g_array_remove_index(tm->players, idx); } /** Make some player updates after a match for players. @param pl The player we update. @param clid The fixture clid. */ void player_update_post_match(Player *pl, const Fixture *fix) { #ifdef DEBUG printf("player_update_post_match\n"); #endif gint yellow_red = league_cup_get_yellow_red(fix->clid); gint winner = -1; if(player_card_get(pl, fix->clid, PLAYER_VALUE_CARD_RED) > 0) player_card_set(pl, fix->clid, PLAYER_VALUE_CARD_RED, -1, TRUE); if(player_card_get(pl, fix->clid, PLAYER_VALUE_CARD_YELLOW) >= yellow_red) { player_card_set(pl, fix->clid, PLAYER_VALUE_CARD_YELLOW, 0, FALSE); if(player_card_get(pl, fix->clid, PLAYER_VALUE_CARD_RED) == 0 && debug < 50) player_card_set(pl, fix->clid, PLAYER_VALUE_CARD_RED, 1, FALSE); } pl->card_status = PLAYER_CARD_STATUS_NONE; if(pl->cpos == PLAYER_POS_GOALIE && ((fix->result[0][0] == 0 && fix->teams[1] == pl->team) || (fix->result[1][0] == 0 && fix->teams[0] == pl->team))) player_streak_add_to_prob( pl, const_float("float_player_streak_add_goalie_clean")); /** No streak change if we had a draw. */ if(!fix->decisive && fix->result[0][0] == fix->result[1][0]) return; winner = GPOINTER_TO_INT(fixture_winner_of(fix, TRUE)); if(winner == pl->team->id) player_streak_add_to_prob( pl, const_float("float_player_streak_add_win")); else player_streak_add_to_prob( pl, const_float("float_player_streak_add_loss")); } /** Replace a player by a new one in a cpu team. @param free_player Whether to free the memory occupied by the player. */ void player_replace_by_new(Player *pl, gboolean free_player) { #ifdef DEBUG printf("player_replace_by_new\n"); #endif Team *tm = pl->team; gint idx = player_id_index(tm, pl->id); Player new = player_new(tm, team_get_average_talent(tm), FALSE); new.name = name_get(pl->team->names_file); new.pos = pl->pos; new.cpos = pl->cpos; new.id = pl->id; if(free_player) player_remove_from_team(tm, idx); else g_array_remove_index(tm->players, idx); g_array_insert_val(tm->players, idx, new); } /** Update players in teams. @param tm The team of the player. @param idx The index in the players array. */ void player_update_week_roundly(Team *tm, gint idx) { #ifdef DEBUG printf("player_update_week_roundly\n"); #endif Player *pl = player_of_idx_team(tm, idx); if(pl->health == 0 && (week_round == 1 || (week_round > 1 && query_team_plays(tm, week, week_round)))) player_update_fitness(pl); pl->cskill = (pl->health > 0 || player_is_banned(pl) > 0) ? 0 : player_get_cskill(pl, pl->cpos, TRUE); } /** Return injury descriptions. */ gchar* player_injury_to_char(gint injury_type) { #ifdef DEBUG printf("player_injury_to_char\n"); #endif #ifdef DEBUG printf("player_injury_to_char\n"); #endif switch(injury_type) { default: debug_print_message("player_injury_to_char: unknown type %d\n", injury_type); return ""; break; case PLAYER_INJURY_NONE: return _("OK"); break; case PLAYER_INJURY_CONCUSSION: return _("Concussion"); break; case PLAYER_INJURY_PULLED_MUSCLE: return _("Pulled muscle"); break; case PLAYER_INJURY_HAMSTRING: return _("Hamstring"); break; case PLAYER_INJURY_GROIN: return _("Groin injury"); break; case PLAYER_INJURY_FRAC_ANKLE: return _("Fractured ankle"); break; case PLAYER_INJURY_RIB: return _("Broken rib"); break; case PLAYER_INJURY_LEG: return _("Broken leg"); break; case PLAYER_INJURY_BROK_ANKLE: return _("Broken ankle"); break; case PLAYER_INJURY_ARM: return _("Broken arm"); break; case PLAYER_INJURY_SHOULDER: return _("Broken shoulder"); break; case PLAYER_INJURY_LIGAMENT: return _("Torn crucial ligament"); break; } return NULL; } /** Nullify some stuff at the beginning of the season and change the skills and talents of cpu players. @param skill_change Skill/talent change of the player in percentage. */ void player_season_start(Player *pl, gfloat skill_change) { #ifdef DEBUG printf("player_season_start\n"); #endif gint i; if(pl->games_goals->len > 0) { g_array_free(pl->games_goals, TRUE); pl->games_goals = g_array_new(FALSE, FALSE, sizeof(PlayerGamesGoals)); } if(pl->cards->len > 0) { g_array_free(pl->cards, TRUE); pl->cards = g_array_new(FALSE, FALSE, sizeof(PlayerGamesGoals)); } if(skill_change != 0) { pl->talent *= (1 + skill_change); pl->talent = CLAMP(pl->talent, 0, const_float("float_player_max_skill")); pl->skill *= (1 + skill_change); pl->skill = CLAMP(pl->skill, 0, pl->talent); pl->cskill = player_get_cskill(pl, pl->cpos, TRUE); pl->value = player_assign_value(pl); for(i=0;iskill > pl->etal[i]) { player_estimate_talent(pl); break; } } } /** Return the last name of a player. */ gchar* player_get_last_name(const gchar *name) { #ifdef DEBUG printf("player_get_last_name\n"); #endif #ifdef DEBUG printf("player_get_last_name\n"); #endif gint i; gchar buf[SMALL]; gchar *rev_name = NULL; const gchar *temp; if(!g_utf8_validate(name, -1, NULL)) { debug_print_message("player_get_last_name: invalid utf8-string: %s \n", name); return ""; } temp = name; for(i=0;ilen;i++) g_ptr_array_add(players, &g_array_index(players_array, Player, i)); return players; } /** Move a player from the team to the youth academy. */ void player_move_to_ya(gint idx) { #ifdef DEBUG printf("player_move_to_ya\n"); #endif Player *pl = player_of_idx_team(current_user.tm, idx); Player player = *pl; if(query_transfer_player_is_on_list(pl)) transfer_remove_player_ptr(pl); player.cskill = player.skill; player.cpos = player.pos; g_array_remove_index(current_user.tm->players, idx); g_array_append_val(current_user.youth_academy.players, player); } /** Move a player from the youth academy to the team. */ void player_move_from_ya(gint idx) { #ifdef DEBUG printf("player_move_from_ya\n"); #endif Player *pl = &g_array_index(current_user.youth_academy.players, Player, idx); Player player = *pl; player.contract = const_float("float_player_contract_youth"); g_array_remove_index(current_user.youth_academy.players, idx); g_array_append_val(current_user.tm->players, player); } /** Wrapper for the streak probability addition operation so that it always stays between -1 and 1. */ void player_streak_add_to_prob(Player *pl, gfloat add) { #ifdef DEBUG printf("player_streak_add_to_prob\n"); #endif pl->streak_prob += add; pl->streak_prob = CLAMP(pl->streak_prob, -1, 1); } /** Find out whether a player is in the youth academy. */ gboolean query_player_is_in_ya(const Player *pl) { #ifdef DEBUG printf("query_player_is_in_ya\n"); #endif gint i; for(i=0;iteam->players->len;i++) if(pl == &g_array_index(pl->team->players, Player, i)) return FALSE; return TRUE; } /** Find out if a star balks when offered a new or a renewed contract because there are already enough stars on the prospective new team. */ gboolean query_player_star_balks(const Player *pl, const Team *tm, gboolean transfer) { #ifdef DEBUG printf("query_player_star_balks\n"); #endif gint i; gint number_of_stars_field; gint number_of_stars_goal; gfloat skill_limit; /* Weak players never balk. */ if(pl->skill < const_float("float_transfer_star_skill_limit")) return FALSE; /* There is some chance that the new star doesn't balk at all. */ if((transfer && math_rnd(0, 1) < const_float("float_transfer_star_no_balk")) || (!transfer && math_rnd(0, 1) < const_float("float_contract_star_no_balk"))) return FALSE; /* Find out if there are any stars at all on the team. */ number_of_stars_field = number_of_stars_goal = 0; skill_limit = (transfer ? const_float("float_transfer_star_skill_limit") : const_float("float_contract_star_skill_limit")); for(i = 0; i < tm->players->len; i++) { if(g_array_index(tm->players, Player, i).skill > skill_limit) { if(g_array_index(tm->players, Player, i).pos == PLAYER_POS_GOALIE) number_of_stars_goal++; else number_of_stars_field++; } } if(pl->pos == PLAYER_POS_GOALIE) { if(number_of_stars_goal == 0) return FALSE; else return (math_rnd(0, 1) > const_float("float_transfer_star_goalie_accepts")); } else { if(number_of_stars_field == 0) return FALSE; else return (math_rnd(0, 1) > 1 - number_of_stars_field * const_float("float_transfer_star_prob_decrease")); } } bygfoot-2.3.2/src/user.h0000644000175000017500000000654711225071373014076 0ustar eliaselias/* user.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef USER_H #define USER_H #include "bygfoot.h" #include "cup_struct.h" #include "user_struct.h" #include "variables.h" /** Convenience abbrevs. */ #define usr(i) g_array_index(users, User, i) #define query_user_games_this_week_round() query_user_games_in_week_round(week, week_round) #define current_user usr(cur_user) void user_set_up_team_new_game(User *user); void user_set_up_team(User *user, gboolean remove_players); void user_set_up_finances(User *user); User user_new(void); void user_remove(gint idx, gboolean regenerate_team); void user_set_player_list_attributes(const User *user, PlayerListAttribute *attribute, gint list_number); gboolean query_user_game_in_week_round(gint usr_idx, gint week_number, gint week_round_number); gboolean query_user_games_in_week_round(gint week_number, gint week_round_number); User* user_from_team(const Team *tm); void user_weekly_update_counters(User *user); Event user_event_new(void); #ifdef G_OS_UNIX void user_event_add(User *user, gint type, gint value1, gint value2, gpointer value_pointer, gchar *format, ...) __attribute__ ((format (printf, 6, 7))); #else void user_event_add(User *user, gint type, gint value1, gint value2, gpointer value_pointer, gchar *format, ...); #endif void user_event_remove(User *user, gint idx); void user_event_show_next(void); gboolean query_user_events(); void user_change_team(User *user, Team *tm); void user_set_up_counters(User *user); gboolean query_user_teams_have_unfit(void); void user_history_add(User *user, gint type, const gchar *team_name, const gchar* string0, const gchar *string1, const gchar *string2); void user_history_to_string(const UserHistory *history, gchar *buf); gint user_history_compare(gconstpointer a, gconstpointer b); void user_add_cup_success(User *user, const Cup *cup, gint round, gint type); void user_job_offer(User *user); gboolean query_user_no_turn(void); void user_show_sponsors(void); UserSponsor user_get_sponsor(const User *user); void user_show_sponsor_continue(void); void user_mm_set_filename(const gchar *filename, gchar *dest); void user_mm_save_file(const gchar *filename, const GArray *mmatches); void user_mm_add_last_match(gboolean load_file, gboolean save_file); void user_mm_import_file(const gchar *filename); void user_mm_load_file(const gchar *filename, GArray *mmatches); void user_mm_export_file(const gchar *filename); void store_default_team(User *user); void restore_default_team(User *user); #endif bygfoot-2.3.2/src/treeview.h0000644000175000017500000001344211225071373014742 0ustar eliaselias/* treeview.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TREEVIEW_H #define TREEVIEW_H #include "bygfoot.h" #include "league_struct.h" #include "live_game_struct.h" #include "player_struct.h" #include "user_struct.h" #include "table_struct.h" GtkTreeModel* treeview_create_team_selection_list(gboolean show_cup_teams, gboolean show_user_teams); void treeview_set_up_team_selection_treeview (GtkTreeView *treeview); void treeview_show_team_list(GtkTreeView *treeview, gboolean show_cup_teams, gboolean show_user_teams); GtkTreeModel* treeview_create_player_list(GPtrArray *players, gint *attributes, gint max, gboolean show_separator, gboolean sortable, gboolean status); void treeview_set_up_player_list(GtkTreeView *treeview, gint *attributes, gint max, gboolean show_separator, gboolean transfer_list, gboolean sortable); void treeview_show_player_list(GtkTreeView *treeview, GPtrArray *players, PlayerListAttribute attribute, gboolean show_separator, gboolean transfer_list); void treeview_show_user_player_list(void); void treeview_live_game_show_commentary(const LiveGameUnit *unit); void treeview_live_game_show_initial_commentary(const LiveGameUnit *unit); void treeview_live_game_set_up_commentary(void); GtkTreeModel* treeview_live_game_create_init_commentary(const LiveGameUnit *unit); GtkTreeModel* treeview_live_game_create_result(const LiveGameUnit *unit); void treeview_live_game_set_up_result(void); void treeview_live_game_show_result(const LiveGameUnit *unit); void treeview_show_users(GtkTreeView *treeview); GtkTreeModel* treeview_create_users(void); void treeview_set_up_users(GtkTreeView *treeview); GtkTreeModel* treeview_create_game_stats(LiveGame *live_game); void treeview_show_game_stats(GtkTreeView *treeview, LiveGame *live_game); void treeview_set_up_game_stats(GtkTreeView *treeview); void treeview_show_fixtures(GtkTreeView *treeview, gint clid, gint week_number, gint week_round_number); void treeview_set_up_fixtures(GtkTreeView *treeview); GtkTreeModel* treeview_create_fixtures(gint clid, gint week_number, gint week_round_number); void treeview_create_fixtures_header(const Fixture *fix, GtkListStore *liststore, gboolean blank_line); void treeview_create_fixture(const Fixture *fix, GtkListStore *liststore); void treeview_show_table(GtkTreeView *treeview, gint clid); void treeview_set_up_table(GtkTreeView *treeview); GtkTreeModel* treeview_create_table(gint clid); void treeview_create_single_table(GtkListStore *liststore, const Table *table, gint table_index); void treeview_table_write_header(GtkListStore *ls, const Table *table, gint table_index); void treeview_show_finances(GtkTreeView *treeview, const User* user); void treeview_set_up_finances(GtkTreeView *treeview); GtkTreeModel* treeview_create_finances(const User *user); void treeview_show_player_list_team(GtkTreeView *treeview, const Team *tm, gint scout); void treeview_show_transfer_list(GtkTreeView *treeview); void treeview_show_next_opponent(void); void treeview_set_up_next_opponent(GtkTreeView *treeview); GtkTreeModel* treeview_create_next_opponent(void); void treeview_show_league_results(GtkTreeView *treeview); void treeview_set_up_league_results(GtkTreeView *treeview); GtkTreeModel* treeview_create_league_results(void); void treeview_create_next_opponent_values(GtkListStore *liststore, const Fixture *fix); void treeview_show_all_players(gint clid); GtkTreeModel* treeview_create_preview(void); void treeview_show_preview(void); void treeview_show_player_info(const Player *pl); void treeview_set_up_player_info(GtkTreeView *treeview); GtkTreeModel* treeview_create_player_info(const Player *pl); void treeview_create_stadium_summary(GtkListStore *liststore); void treeview_show_fixtures_week(gint week_number, gint week_round_number); GtkTreeModel* treeview_create_fixtures_week(gint week_number, gint week_round_number); void treeview_show_user_history(void); void treeview_set_up_user_history(GtkTreeView *treeview); GtkTreeModel* treeview_create_user_history(void); void treeview_show_league_stats(gint clid); void treeview_set_up_league_stats(GtkTreeView *treeview); void treeview_create_league_stats(GtkListStore *ls, const LeagueStat *league_stat); void treeview_show_season_history(gint page, gint idx); void treeview_create_season_history_champions(GtkListStore *ls, const GArray* league_champs, const GArray *cup_champs); GtkTreeModel* treeview_create_country_list(const GPtrArray *country_list); void treeview_show_contributors(GtkTreeView *treeview); GtkTreeModel* treeview_create_league_list(void); void treeview_show_leagues_combo(void); void treeview_show_language_combo(void); GtkTreeModel* treeview_create_sponsors(const GArray *sponsors); void treeview_set_up_sponsors(GtkTreeView *treeview); void treeview_show_sponsors(const GArray *sponsors); GtkTreeModel* treeview_create_training_hotel_list(void); void treeview_show_training_hotels_combo(void); #endif bygfoot-2.3.2/src/misc_callbacks.c0000644000175000017500000003521311225071373016035 0ustar eliaselias/* misc_callbacks.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "callback_func.h" #include "game.h" #include "game_gui.h" #include "gui.h" #include "live_game.h" #include "load_save.h" #include "main.h" #include "maths.h" #include "misc_callback_func.h" #include "misc_callbacks.h" #include "option.h" #include "user.h" #include "variables.h" #include "window.h" #include "xml_country.h" void on_button_add_player_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_add_player_clicked\n"); #endif misc_callback_add_player(); } void on_entry_player_name_activate (GtkEntry *entry, gpointer user_data) { #ifdef DEBUG printf("on_entry_player_name_activate\n"); #endif on_button_add_player_clicked(NULL, NULL); } void on_team_selection_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_team_selection_ok_clicked\n"); #endif misc_callback_start_game(); } void on_team_selection_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_team_selection_cancel_clicked\n"); #endif main_exit_program(EXIT_OK, NULL); } gboolean on_button_font_sel_cancel_clicked (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_button_font_sel_cancel_clicked\n"); #endif window_destroy(&window.font_sel); return FALSE; } void on_button_font_sel_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_font_sel_ok_clicked\n"); #endif gchar *font = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(window.font_sel)); if(font != NULL) { gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.options, "entry_font_name")), font); g_free(font); } window_destroy(&window.font_sel); } void on_button_font_sel_apply_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_font_sel_apply_clicked\n"); #endif gchar *font = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(window.font_sel)); if(font != NULL) { opt_set_str("string_opt_font_name", font); gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.options, "entry_font_name")), font); g_free(font); stat0 = STATUS_MAIN; game_gui_show_main(); setsav0; } } gboolean on_live_window_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_live_window_delete_event\n"); #endif if(GTK_WIDGET_IS_SENSITIVE(lookup_widget(widget, "button_live_close"))) { on_button_live_close_clicked(NULL, NULL); return FALSE; } return TRUE; } void on_button_live_close_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_live_close_clicked\n"); #endif if(stat1 == STATUS_SHOW_LAST_MATCH && stat3 != -1 && stat4 != STATUS_SHOW_LAST_MATCH_PAUSE) stat4 = STATUS_SHOW_LAST_MATCH_ABORT; else if(stat1 != STATUS_SHOW_LAST_MATCH) callback_show_next_live_game(); else { window_destroy(&window.live); stat1 = stat2 = stat3 = stat4 = -1; } } void on_button_pause_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_pause_clicked\n"); #endif misc_callback_pause_live_game(); } void on_button_resume_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_resume_clicked\n"); #endif GtkWidget *button_pause = lookup_widget(window.live, "button_pause"); if(stat1 == STATUS_SHOW_LAST_MATCH) { callback_show_last_match(FALSE, ¤t_user.live_game); return; } else if(game_check_live_game_resume_state()) { gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE); if(g_array_index(usr(stat2).live_game.units, LiveGameUnit, usr(stat2).live_game.units->len - 1).event.type != LIVE_GAME_EVENT_PENALTIES) { gtk_widget_set_sensitive(button_pause, TRUE); gtk_widget_grab_focus(button_pause); } game_gui_set_main_window_sensitivity(FALSE); live_game_resume(); } else game_gui_show_warning(_("There were too many substitutions. Only 3 per game are allowed. Player list reset.")); } void on_spinbutton_speed_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_speed_value_changed\n"); #endif option_set_int("int_opt_user_live_game_speed", &usr(stat2).options, gtk_spin_button_get_value_as_int(spinbutton)); } void on_spinbutton_verbosity_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_verbosity_value_changed\n"); #endif option_set_int("int_opt_user_live_game_verbosity", &usr(stat2).options, gtk_spin_button_get_value_as_int(spinbutton)); } gboolean on_treeview_users_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_treeview_users_button_press_event\n"); #endif misc_callback_remove_user(event); return FALSE; } void on_spinbutton_capacity_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_capacity_value_changed\n"); #endif misc_callback_update_stadium_window(TRUE); } void on_spinbutton_safety_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_safety_value_changed\n"); #endif misc_callback_update_stadium_window(FALSE); } void on_button_stadium_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_stadium_ok_clicked\n"); #endif misc_callback_improve_stadium(); if(stat0 == STATUS_SHOW_FINANCES) on_menu_show_finances_activate(NULL, NULL); } void on_button_stadium_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_stadium_cancel_clicked\n"); #endif window_destroy(&window.stadium); } gboolean on_spinbutton_capacity_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_capacity_button_press_event\n"); #endif if(event->button == 3) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), 0); return TRUE; } return FALSE; } gboolean on_window_stadium_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_stadium_delete_event\n"); #endif on_button_stadium_cancel_clicked(NULL, NULL); return TRUE; } void on_combo_country_changed (GtkComboBox *combobox, gpointer user_data) { #ifdef DEBUG printf("on_combo_country_changed\n"); #endif GtkTreeIter iter; gchar *buf = NULL; gtk_combo_box_get_active_iter(combobox, &iter); if (!gtk_tree_model_iter_has_child (gtk_combo_box_get_model(combobox), &iter)) { gtk_tree_model_get(gtk_combo_box_get_model(combobox), &iter, 1, &buf, -1); misc_callback_show_team_list(GTK_WIDGET(combobox), buf); } else { gtk_widget_set_sensitive(lookup_widget(window.startup, "button_add_player"), FALSE); } g_free(buf); } gboolean on_spinbutton_speed_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_speed_button_press_event\n"); #endif if(event->button == 3) { if(option_int("int_opt_user_live_game_speed", &usr(stat2).options) == -rint((gfloat)(const_int("int_game_gui_live_game_speed_max") - 10) / (gfloat)(const_int("int_game_gui_live_game_speed_grad")))) option_set_int("int_opt_user_live_game_speed", &usr(stat2).options, 0); else if(option_int("int_opt_user_live_game_speed", &usr(stat2).options) == 0) option_set_int("int_opt_user_live_game_speed", &usr(stat2).options, -rint((gfloat)(const_int("int_game_gui_live_game_speed_max") - 10) / (gfloat)(const_int("int_game_gui_live_game_speed_grad") * 2))); else option_set_int("int_opt_user_live_game_speed", &usr(stat2).options, -rint((gfloat)(const_int("int_game_gui_live_game_speed_max") - 10) / (gfloat)(const_int("int_game_gui_live_game_speed_grad")))); gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(window.live, "spinbutton_speed")), (gdouble)option_int("int_opt_user_live_game_speed", &usr(stat2).options)); return TRUE; } return FALSE; } void on_button_sponsors_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_sponsors_clicked\n"); #endif misc_callback_new_sponsor(); window_destroy(&window.sponsors); } void on_treeview_sponsors_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { #ifdef DEBUG printf("on_treeview_sponsors_row_activated\n"); #endif on_button_sponsors_clicked(NULL, NULL); } gboolean on_window_sponsors_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_sponsors_delete_event\n"); #endif return TRUE; } void on_button_sponsors_wait_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_sponsors_wait_clicked\n"); #endif if(stat1 != STATUS_SPONSOR_CONTINUE) { g_string_printf(current_user.sponsor.name, _("None")); current_user.sponsor.contract = 0; current_user.sponsor.benefit = 0; current_user.counters[COUNT_USER_NEW_SPONSOR] = math_rndi(const_int("int_sponsor_without_weeks_lower"), const_int("int_sponsor_without_weeks_upper")); } else current_user.counters[COUNT_USER_NEW_SPONSOR] = 0; window_destroy(&window.sponsors); } gboolean on_eventbox_lg_style_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_eventbox_lg_style_button_press_event\n"); #endif gint new_style = -1; if(stat0 == STATUS_LIVE_GAME_PAUSE) { on_eventbox_style_button_press_event(NULL, event, NULL); return FALSE; } if(event->type != GDK_BUTTON_PRESS || g_array_index(usr(stat2).live_game.units, LiveGameUnit, usr(stat2).live_game.units->len -1).event.type == LIVE_GAME_EVENT_END_MATCH) return FALSE; if(event->button == 3) new_style = (usr(stat2).tm->style != 2) ? usr(stat2).tm->style + 1 : -2; else if(event->button == 1) new_style = (usr(stat2).tm->style != -2) ? usr(stat2).tm->style - 1 : 2; else return FALSE; game_save_team_states(); usr(stat2).tm->style = new_style; game_gui_write_meters(usr(stat2).tm); if(¤t_user == &usr(stat2)) game_gui_write_meters(current_user.tm); stat0 = STATUS_LIVE_GAME_CHANGE; return FALSE; } gboolean on_eventbox_lg_boost_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_eventbox_lg_boost_button_press_event\n"); #endif gint new_boost = -1; if(stat0 == STATUS_LIVE_GAME_PAUSE) { on_eventbox_boost_button_press_event(NULL, event, NULL); return FALSE; } if(event->type != GDK_BUTTON_PRESS || g_array_index(usr(stat2).live_game.units, LiveGameUnit, usr(stat2).live_game.units->len -1).event.type == LIVE_GAME_EVENT_END_MATCH) return FALSE; if(event->button == 3) new_boost = (usr(stat2).tm->boost != 1) ? usr(stat2).tm->boost + 1 : -1; else if(event->button == 1) new_boost = (usr(stat2).tm->boost != -1) ? usr(stat2).tm->boost - 1 : 1; else return FALSE; if(new_boost == 1 && sett_int("int_opt_disable_boost_on")) { game_gui_show_warning(_("Boost ON is disabled in this country definition.")); return FALSE; } game_save_team_states(); usr(stat2).tm->boost = new_boost; game_gui_write_meters(usr(stat2).tm); if(¤t_user == &usr(stat2)) game_gui_write_meters(current_user.tm); stat0 = STATUS_LIVE_GAME_CHANGE; return FALSE; } void on_button_team_selection_back_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_team_selection_back_clicked\n"); #endif window_destroy(&window.startup); stat0 = STATUS_SPLASH; window_show_splash(); } bygfoot-2.3.2/src/strategy_struct.h0000644000175000017500000000503611225071373016356 0ustar eliaselias/* strategy_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef STRATEGY_STRUCT_H #define STRATEGY_STRUCT_H /** Lineup types for a CPU team (ie. which players are preferred when putting together the first 11). */ enum StratLineupType { STRAT_LINEUP_BEST = 1, STRAT_LINEUP_WEAKEST, STRAT_LINEUP_FITTEST, STRAT_LINEUP_UNFITTEST, STRAT_LINEUP_END }; /** A struct describing the pre-match strategy settings of a CPU team. */ typedef struct { /** A condition describing when the strategy should be applied. */ gchar *condition; /** Array of possible formations, sorted by preference. */ GArray *formations; /** Boost, style values and lineup type. */ gint boost, style, lineup; /** The fitness value below which a player gets substituted if there's a sub with better fitness. */ gfloat min_fitness; } StrategyPrematch; typedef struct { /** A condition describing when the action should be taken. */ gchar *condition, *sub_condition; /** New boost and style values. */ gint boost, style; /** Substitution specifiers (position and property). Property is taken from #StratLineupType. */ gint sub_in_pos, sub_in_prop, sub_out_pos, sub_out_prop; /** An id to prevent actions from being applied again and again during a match. */ gint id; } StrategyMatchAction; /** A CPU strategy. */ typedef struct { /** String id and description of the strategy. */ gchar *sid, *desc; /** How often this strategy gets picked, relative to the other strategies. */ gint priority; /** Array with prematch settings. */ GArray *prematch; /** Array with match settings. */ GArray *match_action; } Strategy; #endif bygfoot-2.3.2/src/debug.c0000644000175000017500000002223111225071373014165 0ustar eliaselias/* debug.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "debug.h" #include "game_gui.h" #include "league.h" #include "live_game.h" #include "option.h" #include "strategy.h" #include "support.h" #include "team.h" #include "user.h" #include "variables.h" void debug_print_message(gchar *format, ...) { gchar text[SMALL]; va_list args; gchar buf[SMALL]; const gchar *home; FILE *fil = NULL; GTimeVal logtime; gchar *logtime_string; if(format != NULL) { va_start (args, format); g_vsprintf(buf, format, args); va_end (args); } if(debug_output != DEBUG_OUT_LOGFILE) g_warning("%s\n", buf); if(debug_output != DEBUG_OUT_STDOUT) { g_get_current_time(&logtime); logtime_string = g_time_val_to_iso8601(&logtime); sprintf(text, "%s %s\n", logtime_string, buf); g_free(logtime_string); home = g_get_home_dir(); if(os_is_unix) sprintf(buf, "%s%s%s%sbygfoot.log", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S); else { gchar *pwd = g_get_current_dir(); sprintf(buf, "%s%sbygfoot.log", pwd, G_DIR_SEPARATOR_S); g_free(pwd); } fil = fopen(buf, "a"); if(fil == NULL) { g_warning("Couldn't open log file %s\n", buf); return; } fprintf(fil, "%s\n", text); fclose(fil); } } /** Take some debug action depending on the text. Text is a prefix and a number. */ void debug_action(const gchar *text) { #ifdef DEBUG printf("debug_action\n"); #endif gchar buf[SMALL]; gint value = -1; gint i, j; printf("debact: %s\n", text); sscanf(text, "%[^-0-9]%d", buf, &value); if(g_str_has_prefix(text, "deb")) { debug_level = value; game_gui_print_message("Debug value set to %d.", value); } else if(g_str_has_prefix(text, "cap")) { current_user.tm->stadium.capacity += value; game_gui_print_message("Stadium capacity changed by %d. New: %d.", value, current_user.tm->stadium.capacity); } else if(g_str_has_prefix(text, "saf")) { current_user.tm->stadium.safety += ((gfloat)value / 100); current_user.tm->stadium.safety = CLAMP(current_user.tm->stadium.safety, 0, 1); game_gui_print_message("Stadium safety changed by %d. New: %.2f", value, current_user.tm->stadium.safety); } else if(g_str_has_prefix(text, "mon")) { current_user.money += value; game_gui_print_message("Money changed by %d. New: %d.", value, current_user.money); } else if(g_str_has_prefix(text, "suc")) { current_user.counters[COUNT_USER_SUCCESS] += value; game_gui_print_message("Success counter changed by %d. New: %d.", value, current_user.counters[COUNT_USER_SUCCESS]); } else if(g_str_has_prefix(text, "scout")) { current_user.scout = value; game_gui_print_message("Scout changed to %d.", value); } else if(g_str_has_prefix(text, "phys")) { current_user.physio = value; game_gui_print_message("Physio changed to %d.", value); } else if(g_str_has_prefix(text, "yc")) { current_user.youth_academy.coach = value; game_gui_print_message("Youth coach changed to %d.", value); } else if(g_str_has_prefix(text, "pospref")) { current_user.youth_academy.pos_pref = value; game_gui_print_message("Recruiting pref changed to %d.", value); } else if(g_str_has_prefix(text, "goto")) { if(debug < 50) debug_level = 50; if(option_int("int_opt_user_show_live_game", ¤t_user.options)) option_set_int("int_opt_user_show_live_game", ¤t_user.options, 0); sett_set_int("int_opt_goto_mode", 1); if(value < 100) while(week < value) { on_button_new_week_clicked(NULL, NULL); game_gui_set_main_window_header(); while (gtk_events_pending ()) gtk_main_iteration (); } else while(season < value - 100) { on_button_new_week_clicked(NULL, NULL); game_gui_set_main_window_header(); while (gtk_events_pending ()) gtk_main_iteration (); } sett_set_int("int_opt_goto_mode", 0); } else if(g_str_has_prefix(text, "testcom") || g_str_has_prefix(text, "tc")) { stat5 = -value - 1000; game_gui_print_message("Commentary type displayed: %d.", value); } else if(g_str_has_prefix(text, "printweeks")) { for(i = 0; i < cps->len; i++) { if(cp(i).add_week != 1000) { g_print("Cup: %s\n", cp(i).name); for(j = 0; j < cp(i).rounds->len; j++) g_print(" Round %2d: Week %2d (w/o delay: %2d)\n", j, cup_get_first_week_of_cup_round(&cp(i), j, TRUE), cup_get_first_week_of_cup_round(&cp(i), j, FALSE)); } } } else if(g_str_has_prefix(text, "help")) { g_print("Debug options:\n" "deb \t set debug value\n" "writer \t set debug-writer value\n" "cap \t change stadium capacity\n" "saf \t change stadium safety\n" "mon \t change money\n" "suc \t change success counter\n" "scout \t change scout\n" "physio \t change physio\n" "printweeks \t print the starting weeks of all cup rounds\n" "youth coach \t change youth coach\n" "pospref \t change recruiting pref\n" "goto \t Press 'new week' automatically until\n" " \t the appropriate week is reached\n" " \t Supply 100+X to go to season X (e.g. 102)\n" "testcom|tc \t Test a specific live game commentary.\n" " \t Find the numbers in live_game_struct.h (LiveGameEventType)\n" " \t Use 'goto' afterwards.\n" "help \t display this help\n"); } setsav0; } gboolean debug_reset_counter(gpointer data) { #ifdef DEBUG printf("debug_reset_counter\n"); #endif counters[COUNT_SHOW_DEBUG] = 0; return FALSE; } void debug_calibrate_betting_odds(gint skilldiffmax, gint matches_per_skilldiff) { #ifdef DEBUG printf("debug_calibrate_betting_odds\n"); #endif gint i, skilldiff, matches; Fixture *fix = &g_array_index(lig(0).fixtures, Fixture, 0); LiveGame live_game; fix->home_advantage = FALSE; for(skilldiff=0;skilldiff<=skilldiffmax;skilldiff++) { gint res[3] = {0, 0, 0}; for(matches=0;matchesattendance = -1; fix->result[0][0] = fix->result[1][0] = 0; for(i=0;iteams[0]->players->len;i++) { strategy_repair_player(&g_array_index(fix->teams[0]->players, Player, i)); strategy_repair_player(&g_array_index(fix->teams[1]->players, Player, i)); g_array_index(fix->teams[0]->players, Player, i).skill = 90; g_array_index(fix->teams[1]->players, Player, i).skill = 90 - skilldiff; g_array_index(fix->teams[0]->players, Player, i).fitness = 0.9; g_array_index(fix->teams[1]->players, Player, i).fitness = 0.9; } live_game_calculate_fixture(fix, &live_game); if(fix->result[0][0] < fix->result[1][0]) res[2]++; else res[(fix->result[0][0] == fix->result[1][0])]++; } g_print("sd %3d res %3d %3d %3d prob %.2f %.2f %.2f\n", skilldiff, res[0], res[1], res[2], (gfloat)res[0] / (gfloat)matches, (gfloat)res[1] / (gfloat)matches, (gfloat)res[2] / (gfloat)matches); } } /** Check whether the 4 forwards, boost on, style all-out-attack easter egg should be activated. */ gboolean debug_egg_forwards_boost_style(void) { #ifdef DEBUG printf("debug_egg_forwards_boost_style\n"); #endif gint i, fwds = 0; if(current_user.tm->boost != 1 || current_user.tm->style != 2 || current_user.tm->players->len < 11) return FALSE; for(i=0;i<11;i++) if(g_array_index(current_user.tm->players, Player, i).cpos == 3 && g_array_index(current_user.tm->players, Player, i).cskill > 0) fwds++; return (fwds > 3); } bygfoot-2.3.2/src/stat.c0000644000175000017500000002163611225071373014062 0ustar eliaselias/* stat.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "free.h" #include "league.h" #include "misc.h" #include "option.h" #include "player.h" #include "stat.h" #include "table_struct.h" #include "team.h" #include "variables.h" /** Return a newly allocated league stat with specified league name and symbol. */ LeagueStat stat_league_new(const gchar *league_name, const gchar *league_symbol) { LeagueStat new; new.league_name = g_strdup(league_name); new.league_symbol = g_strdup(league_symbol); new.teams_off = g_array_new(FALSE, FALSE, sizeof(Stat)); new.teams_def = g_array_new(FALSE, FALSE, sizeof(Stat)); new.player_scorers = g_array_new(FALSE, FALSE, sizeof(Stat)); new.player_goalies = g_array_new(FALSE, FALSE, sizeof(Stat)); return new; } /** Update the league stats. */ void stat_update_leagues(void) { #ifdef DEBUG printf("stat_update_leagues\n"); #endif gint i; for(i=0;ilen;i++) if(query_league_active(&lig(i)) && g_array_index( lig(i).fixtures, Fixture, lig(i).fixtures->len - 1).week_number >= week) { free_league_stats(&lig(i).stats); lig(i).stats.league_name = g_strdup(lig(i).name); lig(i).stats.league_symbol = g_strdup(lig(i).symbol); lig(i).stats.teams_off = stat_update_league_teams(lig(i).teams, TEAM_COMPARE_OFFENSIVE); lig(i).stats.teams_def = stat_update_league_teams(lig(i).teams, TEAM_COMPARE_DEFENSE); stat_update_league_players(&lig(i)); } } /** Update the league player stats. */ void stat_update_league_players(League *league) { #ifdef DEBUG printf("stat_update_league_players\n"); #endif gint i, j; GPtrArray *players_sorted[2] = {g_ptr_array_new(), g_ptr_array_new()}; GArray *players[2] = {g_array_new(FALSE, FALSE, sizeof(Stat)), g_array_new(FALSE, FALSE, sizeof(Stat))}; Player *pl = NULL; gint maxlen = const_int("int_stat_players_len"); Stat new_stat; for(i=0;iteams->len;i++) for(j=0;jteams, Team, i).players->len;j++) { pl = &g_array_index(g_array_index(league->teams, Team, i).players, Player, j); if(pl->pos != PLAYER_POS_GOALIE) g_ptr_array_add(players_sorted[0], pl); else if(player_games_goals_get(pl, pl->team->clid, PLAYER_VALUE_GAMES) >= const_float("float_stat_goalie_percentage") * (gfloat)team_get_table_value(pl->team, TABLE_PLAYED)) g_ptr_array_add(players_sorted[1], pl); } g_ptr_array_sort_with_data(players_sorted[0], player_compare_func, GINT_TO_POINTER(PLAYER_COMPARE_ATTRIBUTE_LEAGUE_GOALS)); g_ptr_array_sort_with_data(players_sorted[1], player_compare_func, GINT_TO_POINTER(-PLAYER_COMPARE_ATTRIBUTE_LEAGUE_GOALS)); maxlen = MIN(maxlen, players_sorted[0]->len); maxlen = MIN(maxlen, players_sorted[1]->len); for(i=0;i<2;i++) for(j=0;jteam->name); new_stat.value_string = g_strdup(pl->name); new_stat.value1 = player_games_goals_get(pl, pl->team->clid, PLAYER_VALUE_GOALS); new_stat.value2 = player_games_goals_get(pl, pl->team->clid, PLAYER_VALUE_GAMES); new_stat.value3 = player_games_goals_get(pl, pl->team->clid, PLAYER_VALUE_SHOTS); g_array_append_val(players[i], new_stat); } league->stats.player_scorers = players[0]; league->stats.player_goalies = players[1]; } /** Update the stats of the league. */ GArray* stat_update_league_teams(const GArray *teams_array, gint compare_type) { #ifdef DEBUG printf("stat_update_league_teams\n"); #endif gint i; GArray *stats = g_array_new(FALSE, FALSE, sizeof(Stat)); GPtrArray *teams = g_ptr_array_new(); Stat new_stat; gint maxlen = const_int("int_stat_teams_len"); maxlen = MIN(maxlen, teams_array->len); for(i=0;ilen;i++) g_ptr_array_add(teams, &g_array_index(teams_array, Team, i)); g_ptr_array_sort_with_data(teams, team_compare_func, GINT_TO_POINTER(compare_type)); for(i=0;iname); new_stat.value1 = team_get_table_value((Team*)g_ptr_array_index(teams, i), TABLE_GF); new_stat.value2 = team_get_table_value((Team*)g_ptr_array_index(teams, i), TABLE_GA); new_stat.value3 = -1; new_stat.value_string = NULL; g_array_append_val(stats, new_stat); } g_ptr_array_free(teams, TRUE); return stats; } /** Create a new empty season stat with specified season number. */ SeasonStat stat_season_stat_new(gint season_number) { #ifdef DEBUG printf("stat_season_stat_new\n"); #endif SeasonStat new; new.season_number = season_number; new.league_champs = g_array_new(FALSE, FALSE, sizeof(ChampStat)); new.cup_champs = g_array_new(FALSE, FALSE, sizeof(ChampStat)); new.league_stats = g_array_new(FALSE, FALSE, sizeof(LeagueStat)); return new; } /** Create a seasonstat struct at the end of a season. */ void stat_create_season_stat(void) { #ifdef DEBUG printf("stat_create_season_stat\n"); #endif gint i, j; SeasonStat new = stat_season_stat_new(season); ChampStat new_champ; for(i=0;ilen;i++) { if(!query_league_cup_has_property(lig(i).id, "omit_from_history") && !query_league_cup_has_property(lig(i).id, "inactive")) { for(j = 0; j < lig(i).tables->len; j++) { new_champ.cl_name = g_strdup(g_array_index(lig(i).tables, Table, j).name); new_champ.team_name = g_strdup(g_array_index(g_array_index(lig(i).tables, Table, j).elements, TableElement, 0).team->name); g_array_append_val(new.league_champs, new_champ); } g_array_append_val(new.league_stats, lig(i).stats); lig(i).stats = stat_league_new(lig(i).name, lig(i).symbol); } } for(i=0;ilen;i++) { if(!query_league_cup_has_property(acp(i)->id, "omit_from_history")) { new_champ.cl_name = g_strdup(acp(i)->name); new_champ.team_name = g_strdup(cup_get_winner(acp(i))->name); g_array_append_val(new.cup_champs, new_champ); } } g_array_append_val(season_stats, new); } /** Function printing goals stats from the fixture array. Used for fine-tuning the game. */ void stat_show_av_goals(GArray *fixtures) { #ifdef DEBUG printf("stat_show_av_goals\n"); #endif gint i; gfloat games = 0, allgoals = 0, homegoals = 0, awaygoals = 0, goaldiff = 0, homewon = 0, homeloss = 0, draw = 0; for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).attendance != -1) { games++; allgoals += (g_array_index(fixtures, Fixture, i).result[0][0] + g_array_index(fixtures, Fixture, i).result[1][0]); homegoals += g_array_index(fixtures, Fixture, i).result[0][0]; awaygoals += g_array_index(fixtures, Fixture, i).result[1][0]; goaldiff += ABS(g_array_index(fixtures, Fixture, i).result[0][0] - g_array_index(fixtures, Fixture, i).result[1][0]); if(g_array_index(fixtures, Fixture, i).result[0][0] > g_array_index(fixtures, Fixture, i).result[1][0]) homewon++; else if(g_array_index(fixtures, Fixture, i).result[0][0] < g_array_index(fixtures, Fixture, i).result[1][0]) homeloss++; else draw++; } g_print("------------------------------------ \n"); g_print("%s\nGoals/G HomeG/G AwayG/G Away %% GD/G \n", league_cup_get_name_string(g_array_index(fixtures, Fixture, 0).clid)); g_print("%.2f \t %.2f \t %.2f \t %.2f \t %.2f \n", allgoals/games, homegoals/games, awaygoals/games, awaygoals / allgoals, goaldiff/games); g_print("Home win %%: %.2f Loss %%: %.2f Draw %%: %.2f \n", homewon / games, homeloss / games, draw / games); } /** Show league goals stats (debug). */ void stat_show_av_league_goals(void) { #ifdef DEBUG printf("stat_show_av_league_goals\n"); #endif gint i; g_print("\n\n"); for(i=0;ilen;i++) stat_show_av_goals(league_cup_get_fixtures(lig(i).id)); } bygfoot-2.3.2/src/training_callbacks.h0000755000175000017500000000473211225071373016727 0ustar eliaselias/* bet_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include void on_b_cancel_clicked (GtkButton *button, gpointer user_data); void on_b_ok_clicked (GtkButton *button, gpointer user_data); void on_rb_camp3_clicked (GtkButton *button, gpointer user_data); void on_rb_camp2_clicked (GtkButton *button, gpointer user_data); void on_rb_camp1_clicked (GtkButton *button, gpointer user_data); void on_b_dec_recreation_clicked (GtkButton *button, gpointer user_data); void on_b_inc_recreation_clicked (GtkButton *button, gpointer user_data); void on_b_dec_training_clicked (GtkButton *button, gpointer user_data); void on_b_inc_training_clicked (GtkButton *button, gpointer user_data); gboolean on_window_training_camp_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_hs_recreation_value_changed (GtkRange *range, gpointer user_data); bygfoot-2.3.2/src/debug.h0000644000175000017500000000272711225071373014202 0ustar eliaselias/* debug.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef DEBUG_H #define DEBUG_H #include //#include "bygfoot.h" enum DebugOutput { DEBUG_OUT_STDOUT = 0, DEBUG_OUT_LOGFILE, DEBUG_OUT_STDOUT_LOGFILE }; void debug_action(const gchar *text); gboolean debug_reset_counter(gpointer data); void debug_calibrate_betting_odds(gint skilldiffmax, gint matches_per_skilldiff); gboolean debug_egg_forwards_boost_style(void); void debug_writer_out(const gchar *file_name, const gchar *method_name, const gchar *text, gint debuglevel); void debug_print_message(gchar *format, ...); #endif bygfoot-2.3.2/src/fixture_struct.h0000644000175000017500000000415011225071373016176 0ustar eliaselias/* fixture_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FIXTURE_STRUCT_H #define FIXTURE_STRUCT_H #include "bygfoot.h" #include "team_struct.h" /** Structure representing a fixture, or, in other words, a match. */ typedef struct { /** The cup or league the fixture belongs to. */ gint clid; /** The unique id of the fixture. */ gint id; /** The round (in a cup) the fixture belongs to. */ gint round; /** The replay number (ie. how often the match was repeated because of a draw). */ gint replay_number; /** When it takes place. */ gint week_number, week_round_number; /** The teams involved. */ Team *teams[2]; /** Ids of the teams. Needed when the team pointers get invalid (e.g. after promotion/relegation). */ gint team_ids[2]; /** The number of goals for each team in regulation, extra time and penalty shoot-out. */ gint result[2][3]; /** Whether there's home advantage, this is second leg, or the game has to be decided. */ gboolean home_advantage, second_leg, decisive; /** How many people attended and whether there were special events. */ gint attendance; /** Pointer to the live game used for the fixture calculation. */ gpointer live_game; } Fixture; #endif bygfoot-2.3.2/src/xml_loadsave_fixtures.h0000644000175000017500000000356111225071373017520 0ustar eliaselias/* xml_loadsave_fixtures.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_FIXTURES_H #define XML_LOADSAVE_FIXTURES_H #include "bygfoot.h" #include "fixture_struct.h" void xml_loadsave_fixtures_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_fixtures_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_fixtures_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_fixtures_read(const gchar *filename, GArray *fixtures); void xml_loadsave_fixtures_write(const gchar *filename, const GArray *fixtures); #endif bygfoot-2.3.2/src/xml_league.c0000644000175000017500000004720611225071373015232 0ustar eliaselias/* xml_league.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup_struct.h" #include "file.h" #include "free.h" #include "league.h" #include "misc.h" #include "option.h" #include "team.h" #include "table.h" #include "variables.h" #include "xml_league.h" #include "xml_cup.h" #include "xml.h" /** * The tags used in the XML files defining leagues. */ #define TAG_LEAGUE "league" #define TAG_LAYER "layer" #define TAG_FIRST_WEEK "first_week" #define TAG_ROUND_ROBINS "round_robins" #define TAG_AVERAGE_TALENT "average_talent" #define TAG_NAMES_FILE "names_file" #define TAG_BREAK "break" #define TAG_JOINED_LEAGUE "joined_league" #define TAG_NEW_TABLE "new_table" #define TAG_PROM_REL "prom_rel" #define TAG_PROM_GAMES "prom_games" #define TAG_PROM_GAMES_DEST_SID "prom_games_dest_sid" #define TAG_PROM_GAMES_LOSER_SID "prom_games_loser_sid" #define TAG_PROM_GAMES_NUMBER_OF_ADVANCE "prom_games_number_of_advance" #define TAG_PROM_GAMES_CUP_SID "prom_games_cup_sid" #define TAG_PROM_REL_ELEMENT "prom_rel_element" #define TAG_PROM_REL_ELEMENT_RANK_START "rank_start" #define TAG_PROM_REL_ELEMENT_RANK_END "rank_end" #define TAG_PROM_REL_ELEMENT_DEST_SID "dest_sid" #define TAG_PROM_REL_ELEMENT_TYPE "prom_rel_type" #define TAG_PROM_REL_ELEMENT_FROM_TABLE "from_table" #define TAG_TEAMS "teams" #define TAG_TEAM "team" #define TAG_TEAM_NAME "team_name" #define TAG_TEAM_SYMBOL "team_symbol" #define TAG_TEAM_NAMES_FILE "team_names_file" #define TAG_TEAM_AVERAGE_TALENT "team_average_talent" #define TAG_TEAM_DEF_FILE "def_file" #define TAG_TWO_MATCH_WEEK_START "two_match_week_start" #define TAG_TWO_MATCH_WEEK_END "two_match_week_end" #define ATT_NAME_JOINED_LEAGUE_RR "rr" #define ATT_NAME_NEW_TABLE_NAME "name" /** * Enum with the states used in the XML parser functions. */ enum XmlLeagueStates { STATE_LEAGUE = 0, STATE_SID, STATE_NAME, STATE_SHORT_NAME, STATE_SYMBOL, STATE_LAYER, STATE_FIRST_WEEK, STATE_WEEK_GAP, STATE_WEEK_BREAK, STATE_SKIP_WEEKS_WITH, STATE_ROUND_ROBINS, STATE_YELLOW_RED, STATE_AVERAGE_TALENT, STATE_NAMES_FILE, STATE_PROM_REL, STATE_PROM_GAMES, STATE_PROM_GAMES_DEST_SID, STATE_PROM_GAMES_LOSER_SID, STATE_PROM_GAMES_NUMBER_OF_ADVANCE, STATE_PROM_GAMES_CUP_SID, STATE_PROM_REL_ELEMENT, STATE_PROM_REL_ELEMENT_RANK_START, STATE_PROM_REL_ELEMENT_RANK_END, STATE_PROM_REL_ELEMENT_DEST_SID, STATE_PROM_REL_ELEMENT_TYPE, STATE_PROM_REL_ELEMENT_FROM_TABLE, STATE_TEAMS, STATE_TEAM, STATE_TEAM_NAME, STATE_TEAM_SYMBOL, STATE_TEAM_NAMES_FILE, STATE_TEAM_AVERAGE_TALENT, STATE_TEAM_DEF_FILE, STATE_BREAK, STATE_JOINED_LEAGUE, STATE_PROPERTY, STATE_NEW_TABLE, STATE_TWO_MATCH_WEEK_START, STATE_TWO_MATCH_WEEK_END, STATE_END }; /** * The state variable used in the XML parsing functions. */ gint state; /** The new league we create and append to an array. */ League new_league; /** * The function called by the parser when an opening tag is read. * The state variable is changed in this function and * sometimes memory allocated for the information that's going to be read. * @see The GLib manual (Simple XML parser). */ void xml_league_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_league_read_start_element\n"); #endif PromRelElement new_element; PromGames new_prom_games; Team new_team; JoinedLeague new_joined_league; NewTable new_table; WeekBreak new_week_break; if(strcmp(element_name, TAG_LEAGUE) == 0) { new_league = league_new(TRUE); state = STATE_LEAGUE; } else if(strcmp(element_name, TAG_DEF_NAME) == 0) state = STATE_NAME; else if(strcmp(element_name, TAG_DEF_SHORT_NAME) == 0) state = STATE_SHORT_NAME; else if(strcmp(element_name, TAG_DEF_SID) == 0) state = STATE_SID; else if(strcmp(element_name, TAG_DEF_SYMBOL) == 0) state = STATE_SYMBOL; else if(strcmp(element_name, TAG_FIRST_WEEK) == 0) state = STATE_FIRST_WEEK; else if(strcmp(element_name, TAG_LAYER) == 0) state = STATE_LAYER; else if(strcmp(element_name, TAG_DEF_WEEK_GAP) == 0) state = STATE_WEEK_GAP; else if(strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0) { state = STATE_WEEK_BREAK; if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_DEF_NAME_WEEK_BREAK_LENGTH) == 0) new_week_break.length = (gint)g_ascii_strtod(attribute_values[0], NULL); else new_week_break.length = -1000; g_array_append_val(new_league.week_breaks, new_week_break); } else if(strcmp(element_name, TAG_DEF_SKIP_WEEKS_WITH) == 0) state = STATE_SKIP_WEEKS_WITH; else if(strcmp(element_name, TAG_ROUND_ROBINS) == 0) state = STATE_ROUND_ROBINS; else if(strcmp(element_name, TAG_DEF_YELLOW_RED) == 0) state = STATE_YELLOW_RED; else if(strcmp(element_name, TAG_AVERAGE_TALENT) == 0) state = STATE_AVERAGE_TALENT; else if(strcmp(element_name, TAG_NAMES_FILE) == 0) state = STATE_NAMES_FILE; else if(strcmp(element_name, TAG_BREAK) == 0) state = STATE_BREAK; else if(strcmp(element_name, TAG_DEF_PROPERTY) == 0) state = STATE_PROPERTY; else if(strcmp(element_name, TAG_JOINED_LEAGUE) == 0) { state = STATE_JOINED_LEAGUE; new_joined_league.sid = NULL; if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_NAME_JOINED_LEAGUE_RR) == 0) new_joined_league.rr = (gint)g_ascii_strtod(attribute_values[0], NULL); else new_joined_league.rr = 2; g_array_append_val(new_league.joined_leagues, new_joined_league); } else if(strcmp(element_name, TAG_NEW_TABLE) == 0) { state = STATE_NEW_TABLE; if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_NAME_NEW_TABLE_NAME) == 0) new_table.name = g_strdup(attribute_values[0]); else new_table.name = g_strdup(new_league.name); g_array_append_val(new_league.new_tables, new_table); } else if(strcmp(element_name, TAG_TWO_MATCH_WEEK_START) == 0) state = STATE_TWO_MATCH_WEEK_START; else if(strcmp(element_name, TAG_TWO_MATCH_WEEK_END) == 0) state = STATE_TWO_MATCH_WEEK_END; else if(strcmp(element_name, TAG_PROM_REL) == 0) state = STATE_PROM_REL; else if(strcmp(element_name, TAG_PROM_GAMES) == 0) { state = STATE_PROM_GAMES; new_prom_games = prom_games_new(); g_array_append_val(new_league.prom_rel.prom_games, new_prom_games); } else if(strcmp(element_name, TAG_PROM_GAMES_DEST_SID) == 0) state = STATE_PROM_GAMES_DEST_SID; else if(strcmp(element_name, TAG_PROM_GAMES_LOSER_SID) == 0) state = STATE_PROM_GAMES_LOSER_SID; else if(strcmp(element_name, TAG_PROM_GAMES_NUMBER_OF_ADVANCE) == 0) state = STATE_PROM_GAMES_NUMBER_OF_ADVANCE; else if(strcmp(element_name, TAG_PROM_GAMES_CUP_SID) == 0) state = STATE_PROM_GAMES_CUP_SID; else if(strcmp(element_name, TAG_PROM_REL_ELEMENT) == 0) { new_element = prom_rel_element_new(); g_array_append_val(new_league.prom_rel.elements, new_element); state = STATE_PROM_REL_ELEMENT; } else if(strcmp(element_name, TAG_PROM_REL_ELEMENT_RANK_START) == 0) state = STATE_PROM_REL_ELEMENT_RANK_START; else if(strcmp(element_name, TAG_PROM_REL_ELEMENT_RANK_END) == 0) state = STATE_PROM_REL_ELEMENT_RANK_END; else if(strcmp(element_name, TAG_PROM_REL_ELEMENT_DEST_SID) == 0) state = STATE_PROM_REL_ELEMENT_DEST_SID; else if(strcmp(element_name, TAG_PROM_REL_ELEMENT_TYPE) == 0) state = STATE_PROM_REL_ELEMENT_TYPE; else if(strcmp(element_name, TAG_PROM_REL_ELEMENT_FROM_TABLE) == 0) state = STATE_PROM_REL_ELEMENT_FROM_TABLE; else if(strcmp(element_name, TAG_TEAMS) == 0) state = STATE_TEAMS; else if(strcmp(element_name, TAG_TEAM) == 0) { new_team = team_new(TRUE); misc_string_assign(&(new_team.symbol), new_league.symbol); misc_string_assign(&(new_team.names_file), new_league.names_file); new_team.clid = new_league.id; g_array_append_val(new_league.teams, new_team); state = STATE_TEAM; } else if(strcmp(element_name, TAG_TEAM_NAME) == 0) state = STATE_TEAM_NAME; else if(strcmp(element_name, TAG_TEAM_SYMBOL) == 0) state = STATE_TEAM_SYMBOL; else if(strcmp(element_name, TAG_TEAM_NAMES_FILE) == 0) state = STATE_TEAM_NAMES_FILE; else if(strcmp(element_name, TAG_TEAM_AVERAGE_TALENT) == 0) state = STATE_TEAM_AVERAGE_TALENT; else if(strcmp(element_name, TAG_TEAM_DEF_FILE) == 0) state = STATE_TEAM_DEF_FILE; else debug_print_message("xml_league_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_league_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_league_read_end_element\n"); #endif if(strcmp(element_name, TAG_DEF_NAME) == 0 || strcmp(element_name, TAG_DEF_SHORT_NAME) == 0 || strcmp(element_name, TAG_DEF_SID) == 0 || strcmp(element_name, TAG_DEF_SYMBOL) == 0 || strcmp(element_name, TAG_LAYER) == 0 || strcmp(element_name, TAG_FIRST_WEEK) == 0 || strcmp(element_name, TAG_DEF_WEEK_GAP) == 0 || strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0 || strcmp(element_name, TAG_DEF_SKIP_WEEKS_WITH) == 0 || strcmp(element_name, TAG_ROUND_ROBINS) == 0 || strcmp(element_name, TAG_DEF_YELLOW_RED) == 0 || strcmp(element_name, TAG_AVERAGE_TALENT) == 0 || strcmp(element_name, TAG_NAMES_FILE) == 0 || strcmp(element_name, TAG_BREAK) == 0 || strcmp(element_name, TAG_JOINED_LEAGUE) == 0 || strcmp(element_name, TAG_DEF_PROPERTY) == 0 || strcmp(element_name, TAG_NEW_TABLE) == 0 || strcmp(element_name, TAG_TWO_MATCH_WEEK_START) == 0 || strcmp(element_name, TAG_TWO_MATCH_WEEK_END) == 0 || strcmp(element_name, TAG_PROM_REL) == 0 || strcmp(element_name, TAG_TEAMS) == 0) state = STATE_LEAGUE; else if(strcmp(element_name, TAG_PROM_GAMES) == 0 || strcmp(element_name, TAG_PROM_REL_ELEMENT) == 0) state = STATE_PROM_REL; else if(strcmp(element_name, TAG_PROM_GAMES_DEST_SID) == 0 || strcmp(element_name, TAG_PROM_GAMES_LOSER_SID) == 0 || strcmp(element_name, TAG_PROM_GAMES_NUMBER_OF_ADVANCE) == 0 || strcmp(element_name, TAG_PROM_GAMES_CUP_SID) == 0) state = STATE_PROM_GAMES; else if(strcmp(element_name, TAG_PROM_REL_ELEMENT_RANK_START) == 0 || strcmp(element_name, TAG_PROM_REL_ELEMENT_RANK_END) == 0 || strcmp(element_name, TAG_PROM_REL_ELEMENT_DEST_SID) == 0 || strcmp(element_name, TAG_PROM_REL_ELEMENT_FROM_TABLE) == 0 || strcmp(element_name, TAG_PROM_REL_ELEMENT_TYPE) == 0) state = STATE_PROM_REL_ELEMENT; else if(strcmp(element_name, TAG_TEAM) == 0) state = STATE_TEAMS; else if(strcmp(element_name, TAG_TEAM_NAME) == 0 || strcmp(element_name, TAG_TEAM_DEF_FILE) == 0 || strcmp(element_name, TAG_TEAM_AVERAGE_TALENT) == 0 || strcmp(element_name, TAG_TEAM_SYMBOL) == 0 || strcmp(element_name, TAG_TEAM_NAMES_FILE) == 0) state = STATE_TEAM; else if(strcmp(element_name, TAG_LEAGUE) != 0) debug_print_message("xml_league_end_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_league_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_league_read_text\n"); #endif gchar buf[text_len + 1]; gint int_value; gfloat float_value; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = (gfloat)g_ascii_strtod(buf, NULL); if(state == STATE_NAME) misc_string_assign(&new_league.name, buf); else if(state == STATE_SHORT_NAME) misc_string_assign(&new_league.short_name, buf); else if(state == STATE_SID) misc_string_assign(&new_league.sid, buf); else if(state == STATE_SYMBOL) misc_string_assign(&new_league.symbol, buf); else if(state == STATE_LAYER) new_league.layer = int_value; else if(state == STATE_FIRST_WEEK) new_league.first_week = int_value; else if(state == STATE_WEEK_GAP) new_league.week_gap = int_value; else if(state == STATE_WEEK_BREAK) g_array_index(new_league.week_breaks, WeekBreak, new_league.week_breaks->len - 1).week_number = int_value; else if(state == STATE_SKIP_WEEKS_WITH) g_ptr_array_add(new_league.skip_weeks_with, g_strdup(buf)); else if(state == STATE_ROUND_ROBINS) new_league.round_robins = int_value; else if(state == STATE_YELLOW_RED) new_league.yellow_red = int_value; else if(state == STATE_AVERAGE_TALENT) new_league.average_talent = (float_value / 10000) * const_float("float_player_max_skill"); else if(state == STATE_NAMES_FILE) misc_string_assign(&new_league.names_file, buf); else if(state == STATE_BREAK) league_cup_fill_rr_breaks(new_league.rr_breaks, buf); else if(state == STATE_PROPERTY) g_ptr_array_add(new_league.properties, g_strdup(buf)); else if(state == STATE_JOINED_LEAGUE) misc_string_assign( &g_array_index(new_league.joined_leagues, JoinedLeague, new_league.joined_leagues->len - 1).sid, buf); else if(state == STATE_NEW_TABLE) g_array_index(new_league.new_tables, NewTable, new_league.new_tables->len - 1).add_week = int_value; else if(state == STATE_TWO_MATCH_WEEK_START) g_array_append_val(new_league.two_match_weeks[0], int_value); else if(state == STATE_TWO_MATCH_WEEK_END) g_array_append_val(new_league.two_match_weeks[1], int_value); else if(state == STATE_PROM_GAMES_DEST_SID) g_array_index(new_league.prom_rel.prom_games, PromGames, new_league.prom_rel.prom_games->len - 1).dest_sid = g_strdup(buf); else if(state == STATE_PROM_GAMES_LOSER_SID) g_array_index(new_league.prom_rel.prom_games, PromGames, new_league.prom_rel.prom_games->len - 1).loser_sid = g_strdup(buf); else if(state == STATE_PROM_GAMES_NUMBER_OF_ADVANCE) g_array_index(new_league.prom_rel.prom_games, PromGames, new_league.prom_rel.prom_games->len - 1).number_of_advance = int_value; else if(state == STATE_PROM_GAMES_CUP_SID) g_array_index(new_league.prom_rel.prom_games, PromGames, new_league.prom_rel.prom_games->len - 1).cup_sid = g_strdup(buf); else if(state == STATE_PROM_REL_ELEMENT_RANK_START) g_array_index(new_league.prom_rel.elements, PromRelElement, new_league.prom_rel.elements->len - 1).ranks[0] = int_value; else if(state == STATE_PROM_REL_ELEMENT_RANK_END) g_array_index(new_league.prom_rel.elements, PromRelElement, new_league.prom_rel.elements->len - 1).ranks[1] = int_value; else if(state == STATE_PROM_REL_ELEMENT_DEST_SID) misc_string_assign(&g_array_index(new_league.prom_rel.elements, PromRelElement, new_league.prom_rel.elements->len - 1).dest_sid, buf); else if(state == STATE_PROM_REL_ELEMENT_FROM_TABLE) g_array_index(new_league.prom_rel.elements, PromRelElement, new_league.prom_rel.elements->len - 1).from_table = int_value; else if(state == STATE_PROM_REL_ELEMENT_TYPE) { if(strcmp(buf, "promotion") == 0) g_array_index(new_league.prom_rel.elements, PromRelElement, new_league.prom_rel.elements->len - 1).type = PROM_REL_PROMOTION; else if(strcmp(buf, "relegation") == 0) g_array_index(new_league.prom_rel.elements, PromRelElement, new_league.prom_rel.elements->len - 1).type = PROM_REL_RELEGATION; } else if(state == STATE_TEAM_NAME) misc_string_assign(&g_array_index(new_league.teams, Team, new_league.teams->len - 1).name, buf); else if(state == STATE_TEAM_SYMBOL) misc_string_assign(&g_array_index(new_league.teams, Team, new_league.teams->len - 1).symbol, buf); else if(state == STATE_TEAM_NAMES_FILE) misc_string_assign(&g_array_index(new_league.teams, Team, new_league.teams->len - 1).names_file, buf); else if(state == STATE_TEAM_AVERAGE_TALENT) g_array_index(new_league.teams, Team, new_league.teams->len - 1).average_talent = (float_value / 10000) * const_float("float_player_max_skill"); else if(state == STATE_TEAM_DEF_FILE) misc_string_assign(&g_array_index(new_league.teams, Team, new_league.teams->len - 1).def_file, buf); } /** * Function reading an XML file specifying a league. * A new league struct is filled in and appended to the * _Country::leagues array. * @param league_name name of the xml file ( e.g. 'league_england1.xml') * to be read. Full path is not necessary, if the file is located in * one of the suppport directories; neither are the prefix 'league_' * or the suffix '.xml'. * @param leagues The array we write the league into. */ void xml_league_read(const gchar *league_name, GArray *leagues) { #ifdef DEBUG printf("xml_league_read\n"); #endif gchar *file_name = file_find_support_file(league_name, FALSE); GMarkupParser parser = {xml_league_read_start_element, xml_league_read_end_element, xml_league_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; gchar buf[SMALL]; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(file_name == NULL) { sprintf(buf, "league_%s.xml", league_name); file_name = file_find_support_file(buf, TRUE); } if(!g_file_get_contents(file_name, &file_contents, &length, &error)) { debug_print_message("xml_league_read: error reading file %s\n", file_name); misc_print_error(&error, FALSE); return; } state = STATE_LEAGUE; strcpy(buf, file_name); g_free(file_name); if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); league_cup_adjust_rr_breaks(new_league.rr_breaks, new_league.round_robins, new_league.week_gap); league_cup_adjust_week_breaks(new_league.week_breaks, new_league.week_gap); g_array_append_val(leagues, new_league); } else { g_critical("xml_league_read: error parsing file %s\n", buf); misc_print_error(&error, TRUE); } } bygfoot-2.3.2/src/xml_name.h0000644000175000017500000000333111225071373014704 0ustar eliaselias/* xml_name.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_NAME_H #define XML_NAME_H #include "bygfoot.h" #include "name_struct.h" void xml_name_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_name_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_name_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_name_read(const gchar *sid, NameList *namelist); #endif bygfoot-2.3.2/src/game.h0000644000175000017500000000576711225071373014034 0ustar eliaselias/* game.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GAME_H #define GAME_H #include "bygfoot.h" #include "fixture_struct.h" #include "player_struct.h" #include "live_game_struct.h" /** Player types. @see game_get_player() */ enum GamePlayerType { GAME_PLAYER_TYPE_DEFEND = LIVE_GAME_UNIT_AREA_DEFEND, GAME_PLAYER_TYPE_MIDFIELD = LIVE_GAME_UNIT_AREA_MIDFIELD, GAME_PLAYER_TYPE_ATTACK = LIVE_GAME_UNIT_AREA_ATTACK, GAME_PLAYER_TYPE_PENALTY, GAME_PLAYER_TYPE_END }; void game_get_values(const Fixture *fix, gfloat team_values[][GAME_TEAM_VALUE_END], gfloat home_advantage); gfloat game_get_player_contribution(const Player *pl, gboolean attack, gboolean special); gint game_get_player(const Team *tm, gint player_type, gint number_of_penalty, gint not_this_one, gboolean skills); void game_get_player_probs(GArray *players, gfloat *probs, gfloat *weights, gboolean skills); gint game_get_penalty_taker(const Team *tm, gint last_penalty); void game_initialize(Fixture *fix); void game_save_team_states(void); gboolean game_check_live_game_resume_state(void); void game_get_subs(gint team_number, gint *subs_in, gint *subs_out); gint game_substitute_player(Team *tm, gint player_number); void game_player_injury(Player *pl); gfloat game_get_foul_possession_factor(gboolean boost1, gboolean boost2); gint game_find_to_substitute(gint clid, const Team *tm); void game_substitute_player_send_off(gint clid, Team *tm, gint player_number, gint *to_substitute, gint *substitute); void game_decrease_fitness(const Fixture *fix); gint game_player_get_ban_duration(void); void game_update_stats(LiveGame *lg, const LiveGameUnit *unit); void game_update_stats_player(LiveGame *lg, const LiveGameUnit *unit); void game_post_match(Fixture *fix); void game_assign_attendance(Fixture *fix); void game_assign_attendance_neutral(Fixture *fix); void game_stadium_event(Stadium *stadium, gint type); void game_get_max_values(gfloat max_values[3]); void game_reset_players(gint idx); gint game_get_default_penalty_shooter(const Team *tm); void game_boost_cost(void); gfloat game_get_foul_prob(const LiveGame *live_game, const LiveGameUnit *unit); #endif bygfoot-2.3.2/src/xml_loadsave_transfers.h0000644000175000017500000000350411225071373017653 0ustar eliaselias/* xml_loadsave_transfers.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_TRANSFERS_H #define XML_LOADSAVE_TRANSFERS_H #include "bygfoot.h" void xml_loadsave_transfers_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_transfers_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_transfers_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_transfers_read(const gchar *filename); void xml_loadsave_transfers_write(const gchar *prefix); #endif bygfoot-2.3.2/src/misc2_interface.h0000644000175000017500000000101511225071373016136 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window_job_offer (void); GtkWidget* create_window_progress (void); GtkWidget* create_window_warning (void); GtkWidget* create_window_digits (void); GtkWidget* create_window_yesno (void); GtkWidget* create_window_contract (void); GtkWidget* create_window_user_management (void); GtkWidget* create_window_debug (void); GtkWidget* create_window_help (void); GtkWidget* create_window_transfer_dialog (void); GtkWidget* create_window_mmatches (void); bygfoot-2.3.2/src/xml_strategy.h0000644000175000017500000000335311225071373015632 0ustar eliaselias/* xml_strategy.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_STRATEGY_H #define XML_STRATEGY_H #include "bygfoot.h" #include "variables.h" void xml_strategy_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_strategy_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_strategy_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_strategy_read(const gchar *filename); void xml_strategy_load_strategies(void); #endif bygfoot-2.3.2/src/xml_loadsave_league_stat.h0000644000175000017500000000373511225071373020147 0ustar eliaselias/* xml_loadsave_league_stat.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_LEAGUE_STAT_H #define XML_LOADSAVE_LEAGUE_STAT_H #include "bygfoot.h" #include "stat_struct.h" void xml_loadsave_league_stat_write(const gchar *filename, const LeagueStat *league_stat); void xml_loadsave_league_stat_write_stat(FILE *fil, const Stat *stat); void xml_loadsave_league_stat_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_league_stat_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_league_stat_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_league_stat_read(const gchar *filename, LeagueStat *league_stat); #endif bygfoot-2.3.2/src/youth_academy.h0000644000175000017500000000223611225071373015742 0ustar eliaselias/* youth_academy.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef YOUTH_ACADEMY_H #define YOUTH_ACADEMY_H #include "bygfoot.h" #include "youth_academy_struct.h" void youth_academy_new(User *user); void youth_academy_add_new_player(YouthAcademy *youth_academy); void youth_academy_update_weekly(void); #endif bygfoot-2.3.2/src/start_end.c0000644000175000017500000005241411225071373015070 0ustar eliaselias/* start_end.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "cup.h" #include "file.h" #include "finance.h" #include "fixture.h" #include "free.h" #include "game_gui.h" #include "gui.h" #include "job.h" #include "league.h" #include "live_game.h" #include "load_save.h" #include "main.h" #include "maths.h" #include "misc.h" #include "name.h" #include "news.h" #include "option.h" #include "player.h" #include "start_end.h" #include "stat.h" #include "table.h" #include "team.h" #include "transfer.h" #include "user.h" #include "variables.h" #include "xml_name.h" #include "youth_academy.h" /** Prototype of a function called at the start or end of a week round. */ typedef void(*WeekFunc)(void); /** Array of functions called when a week round is ended. */ WeekFunc end_week_round_funcs[] = {end_week_round_results, end_week_round_sort_tables, end_week_round_generate_news, end_week_round_update_fixtures, NULL}; /** Array of functions called when a week round is started. */ WeekFunc start_week_round_funcs[] = {start_week_round_update_teams, bet_update, NULL}; /** Array of functions called when a week is started. */ WeekFunc start_week_funcs[] = {start_week_update_leagues, start_week_add_cups, start_week_update_users, start_week_update_teams, start_week_update_user_finances, youth_academy_update_weekly, transfer_update, job_update, finance_update_current_interest, NULL}; WeekFunc end_week_funcs[] = {stat_update_leagues, end_week_hide_cups, NULL}; /** Generate the teams etc. */ void start_new_game(void) { #ifdef DEBUG printf("start_new_game\n"); #endif start_write_variables(); start_generate_league_teams(); start_new_season(); } /** Make new fixtures, nullify things etc. */ void start_new_season(void) { #ifdef DEBUG printf("start_new_season\n"); #endif gint i, j; gchar buf[SMALL]; week = week_round = 1; free_names(TRUE); stat5 = STATUS_GENERATE_TEAMS; if(season == 1) { for(i=0;ilen;i++) { league_add_table(&lig(i)); league_check_new_tables(&lig(i)); } for(i=0;ilen;i++) if(cp(i).add_week <= 0) g_ptr_array_add(acps, &cp(i)); } /* Remove cups that don't start at the beginning of season. */ for(i = acps->len - 1; i >= 0; i--) { g_ptr_array_free(acp(i)->team_names, TRUE); acp(i)->team_names = g_ptr_array_new(); if(acp(i)->add_week > 0) g_ptr_array_remove_index(acps, i); } /* Deal with cups that have to take place before promotion/relegation. */ for(i=cps->len - 1; i >= 0; i--) if(cp(i).add_week == -1) fixture_write_cup_fixtures(&cp(i)); if(season > 1) { for(i=0;ilen;i++) { sprintf(buf, "%d", team_get_league_rank(usr(i).tm, -1)); user_history_add(&usr(i), USER_HISTORY_END_SEASON, usr(i).tm->name, league_cup_get_name_string(usr(i).tm->clid), buf, NULL); usr(i).counters[COUNT_USER_TRAININGS_LEFT_SEASON] = const_int("int_training_camps_per_season"); } /* Promotion/relegation, mainly. */ start_new_season_league_changes(); for(i=0;ilen;i++) { usr(i).tm = team_of_id(usr(i).team_id); usr(i).youth_academy.tm = usr(i).tm; for(j=0;jlen;j++) { g_array_index(usr(i).youth_academy.players, Player, j).team = usr(i).tm; player_season_start( &g_array_index(usr(i).youth_academy.players, Player, j), 0); } live_game_reset(&usr(i).live_game, NULL, TRUE); } start_new_season_reset_ids(); } /* We have to reset all fixture arrays beforehand because of interleague scheduling (see joined_league). */ for(i=0;ilen;i++) if(query_league_active(&lig(i))) { g_array_free(lig(i).fixtures, TRUE); lig(i).fixtures = g_array_new(FALSE, FALSE, sizeof(Fixture)); } for(i=0;ilen;i++) if(query_league_active(&lig(i))) fixture_write_league_fixtures(&lig(i)); /* Loop backwards because the national cup is usually the first the results are often still needed for the international cups. */ for(i=cps->len - 1; i >= 0; i--) { if(cp(i).add_week == 0) fixture_write_cup_fixtures(&cp(i)); /* Reset team pointers using the stored ids (pointers might have changed because of prom/rel). */ else if(cp(i).add_week == -1) fixture_refresh_team_pointers(cp(i).fixtures); else if(!query_cup_self_referential(&cp(i))) cup_reset(&cp(i)); } for(i = acps->len - 1; i >= 0; i--) if(!cup_check_fixtures(acp(i))) { cup_reset(acp(i)); g_ptr_array_remove_index(acps, i); } stat5 = -1; for(i=0;ilen;i++) name_shorten_list(&nli(i)); if(season == 1) bet_update(); } /** Fill some global variables with default values at the beginning of a new game. */ void start_write_variables(void) { #ifdef DEBUG printf("start_write_variables\n"); #endif gint i; season = 1; cur_user = 0; for(i=0;ilen;i++) file_load_user_conf_file(&usr(i)); } /** Generate the teams in the leagues. */ void start_generate_league_teams(void) { #ifdef DEBUG printf("start_generate_league_teams\n"); #endif gint i, j; stat5 = STATUS_GENERATE_TEAMS; if(ligs->len == 0) main_exit_program(EXIT_NO_LEAGUES, "start_generate_league_teams: no leagues found. There must be at least one league in the game.\n"); for(i=0;ilen;i++) for(j=0;jlen;j++) team_generate_players_stadium(&g_array_index(lig(i).teams, Team, j), 0); stat5 = -1; } /** Reset the cup and league ids to the smallest possible value to avoid an overflow (gotta admit, the id system isn't perfect). */ void start_new_season_reset_ids(void) { #ifdef DEBUG printf("start_new_season_reset_ids\n"); #endif gint i, max; max = -1; for(i=0;ilen;i++) if(lig(i).id > max) max = lig(i).id; counters[COUNT_LEAGUE_ID] = max + 1; max = -1; for(i=0;ilen;i++) if(cp(i).id > max) max = cp(i).id; counters[COUNT_CUP_ID] = max + 1; } /** End a week round. */ void end_week_round(void) { #ifdef DEBUG printf("end_week_round\n"); #endif gint i = 0; gboolean new_week = TRUE; WeekFunc *end_func = end_week_round_funcs; if(debug > 100) g_print("End w %d r %d \n", week, week_round); while(*end_func != NULL) { (*end_func)(); end_func++; } week_round++; for(i=0;ilen;i++) if(query_fixture_in_week_round(lig(i).id, week, week_round)) { new_week = FALSE; break; } for(i=0;ilen;i++) if(query_fixture_in_week_round(acp(i)->id, week, week_round)) { new_week = FALSE; break; } if(new_week) { end_week(); if(query_start_end_season_end()) { end_season(); season++; week = 1; start_new_season(); } else week++; week_round = 1; start_week(); } start_week_round(); } /** Calculate the match results of a week round. */ void end_week_round_results(void) { #ifdef DEBUG printf("end_week_round_results\n"); #endif gint i, j, done = 0; LiveGame live_game; gchar buf[SMALL], buf2[SMALL]; gfloat num_matches = (gfloat)fixture_get_number_of_matches(week, week_round); gint usr_idx; /** Free the matches from last week. */ for(i = 0; i < live_games->len; i++) free_live_game(&g_array_index(live_games, LiveGame, i)); g_array_free(live_games, TRUE); live_games = g_array_new(FALSE, FALSE, sizeof(LiveGame)); for(i=0;ilen;i++) { for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number == week && g_array_index(lig(i).fixtures, Fixture, j).week_round_number == week_round && g_array_index(lig(i).fixtures, Fixture, j).attendance == -1) { usr_idx = fixture_user_team_involved(&g_array_index(lig(i).fixtures, Fixture, j)); if(usr_idx == -1) { g_array_append_val(live_games, live_game); live_game_calculate_fixture(&g_array_index(lig(i).fixtures, Fixture, j), &g_array_index(live_games, LiveGame, live_games->len - 1)); } else live_game_calculate_fixture(&g_array_index(lig(i).fixtures, Fixture, j), &usr(usr_idx).live_game); done++; fixture_result_to_buf(&g_array_index(lig(i).fixtures, Fixture, j), buf, FALSE); sprintf(buf2, "%s %s %s", g_array_index(lig(i).fixtures, Fixture, j).teams[0]->name, buf, g_array_index(lig(i).fixtures, Fixture, j).teams[1]->name); gui_show_progress((gfloat)done / num_matches, buf2, PIC_TYPE_MATCHPIC); if(debug > 120) g_print("%s \n", buf2); } } for(i=0;ilen;i++) { for(j=0;jfixtures->len;j++) { if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number == week_round && g_array_index(acp(i)->fixtures, Fixture, j).attendance == -1) { usr_idx = fixture_user_team_involved(&g_array_index(acp(i)->fixtures, Fixture, j)); if(usr_idx == -1) { g_array_append_val(live_games, live_game); live_game_calculate_fixture(&g_array_index(acp(i)->fixtures, Fixture, j), &g_array_index(live_games, LiveGame, live_games->len - 1)); } else live_game_calculate_fixture(&g_array_index(acp(i)->fixtures, Fixture, j), &usr(usr_idx).live_game); done++; fixture_result_to_buf(&g_array_index(acp(i)->fixtures, Fixture, j), buf, FALSE); sprintf(buf2, "%s %s %s", g_array_index(acp(i)->fixtures, Fixture, j).teams[0]->name, buf, g_array_index(acp(i)->fixtures, Fixture, j).teams[1]->name); gui_show_progress((gfloat)done / num_matches, buf2, PIC_TYPE_MATCHPIC); if(debug > 120) g_print("%s \n", buf2); } } } gui_show_progress(-1, "", PIC_TYPE_MATCHPIC); } /** Sort league and cup tables. */ void end_week_round_sort_tables(void) { #ifdef DEBUG printf("end_week_round_sort_tables\n"); #endif gint i, j, k; for(i=0;ilen;i++) if(query_fixture_in_week_round(lig(i).id, week, week_round)) { for(k = 0; k < lig(i).tables->len; k++) { for(j=0;jlen;j++) g_array_index(g_array_index(lig(i).tables, Table, k).elements, TableElement, j).old_rank = j; g_array_sort_with_data(g_array_index(lig(i).tables, Table, k).elements, (GCompareDataFunc)table_element_compare_func, GINT_TO_POINTER(lig(i).id)); } } for(i=0;ilen;i++) if(query_fixture_in_week_round(acp(i)->id, week, week_round) && g_array_index(acp(i)->fixtures, Fixture, acp(i)->fixtures->len - 1).round == cup_has_tables(acp(i)->id)) for(j=0;jid)->len;j++) { for(k=0;kid), Table, j).elements->len;k++) g_array_index( g_array_index(cup_get_last_tables(acp(i)->id), Table, j).elements, TableElement, k).old_rank = k; g_array_sort_with_data( g_array_index(cup_get_last_tables(acp(i)->id), Table, j).elements, (GCompareDataFunc)table_element_compare_func, GINT_TO_POINTER(acp(i)->id)); } } /** Update cup fixtures. */ void end_week_round_update_fixtures(void) { #ifdef DEBUG printf("end_week_round_update_fixtures\n"); #endif gint i; for(i=0;ilen;i++) if(acp(i)->next_fixture_update_week <= week && acp(i)->next_fixture_update_week_round <= week_round) fixture_update(acp(i)); for(i=0;ilen;i++) if(query_league_active(&lig(i)) && week == g_array_index( lig(i).fixtures, Fixture, lig(i).fixtures->len - 1).week_number && week_round == 1 && team_is_user(g_array_index(league_table((&lig(i)))->elements, TableElement, 0).team) != -1) user_history_add(&usr(team_is_user(g_array_index(league_table((&lig(i)))->elements, TableElement, 0).team)), USER_HISTORY_CHAMPION, g_array_index(league_table((&lig(i)))->elements, TableElement, 0).team->name, league_cup_get_name_string(lig(i).id), NULL, NULL); for(i=0;ilen;i++) { if(cp(i).add_week == 1000 && query_cup_hidden(&cp(i)) && query_cup_begins(&cp(i))) { cp(i).last_week = cup_get_last_week_from_first(&cp(i), week + 1); if(fixture_write_cup_fixtures(&cp(i))) g_ptr_array_add(acps, &cp(i)); } } } /** Write newspaper articles after week round. */ void end_week_round_generate_news(void) { gint i; /** News for user matches. */ for(i = 0; i < users->len; i++) if(usr(i).live_game.fix != NULL && usr(i).live_game.fix->week_number == week && usr(i).live_game.fix->week_round_number == week_round && news_check_match_relevant(&usr(i).live_game)) news_generate_match(&usr(i).live_game); /** News for other matches. */ for(i = 0; i < live_games->len; i++) if(news_check_match_relevant(&g_array_index(live_games, LiveGame, i))) news_generate_match(&g_array_index(live_games, LiveGame, i)); /* Get rid of older news. */ while(newspaper.articles->len > const_int("int_news_history_length")) { free_newspaper_article(&g_array_index(newspaper.articles, NewsPaperArticle, 0)); g_array_remove_index(newspaper.articles, 0); } } /** Start a new week round. */ void start_week_round(void) { #ifdef DEBUG printf("start_week_round\n"); #endif WeekFunc *start_func = start_week_round_funcs; if(debug > 100) g_print("Start w %d r %d \n", week, week_round); while(*start_func != NULL) { (*start_func)(); start_func++; } if(!query_start_end_season_end() && opt_int("int_opt_skip") && !query_user_games_this_week_round() && !query_user_events() && ((week_round == 1 && !query_user_games_in_week_round(week - 1, fixture_get_last_week_round(week - 1))) || (week_round > 1 && !query_user_games_in_week_round(week, week_round - 1)))) { user_event_show_next(); end_week_round(); } else { cur_user = 0; game_gui_show_main(); user_event_show_next(); } } /** Start a new week. */ void start_week(void) { #ifdef DEBUG printf("start_week\n"); #endif WeekFunc *start_func = start_week_funcs; while(*start_func != NULL) { (*start_func)(); start_func++; } } /** Finish a week. */ void end_week(void) { #ifdef DEBUG printf("end_week\n"); #endif WeekFunc *end_func = end_week_funcs; while(*end_func != NULL) { (*end_func)(); end_func++; } if(debug > 150) stat_show_av_league_goals(); } /** Hide some not-so-important cups that are already finished. */ void end_week_hide_cups(void) { #ifdef DEBUG printf("end_week_hide_cups\n"); #endif gint i; for(i=acps->len - 1; i >= 0; i--) if(query_league_cup_has_property(acp(i)->id, "hide") && g_array_index(acp(i)->fixtures, Fixture, acp(i)->fixtures->len - 1).attendance > 0) g_ptr_array_remove_index(acps, i); } /** Add the cups that begin later in the season to the acps array. */ void start_week_add_cups(void) { #ifdef DEBUG printf("start_week_add_cups\n"); #endif gint i; for(i=0;ilen;i++) if(cp(i).add_week == week) { if(fixture_write_cup_fixtures(&cp(i))) g_ptr_array_add(acps, &cp(i)); } } /** Age increase etc. of players. CPU teams get updated at the end of their matches (to avoid cup teams getting updated too often). */ void start_week_update_teams(void) { #ifdef DEBUG printf("start_week_update_teams\n"); #endif gint i, j; for(i=0;ilen;i++) for(j=0;jlen;j++) team_update_team_weekly(&g_array_index(lig(i).teams, Team, j)); for(i=0;ilen;i++) for(j=0;jlen;j++) team_update_team_weekly((Team*)g_ptr_array_index(cp(i).teams, j)); } /** Do some things at the beginning of each new round for the user teams. */ void start_week_round_update_teams(void) { #ifdef DEBUG printf("start_week_round_update_teams\n"); #endif gint i, j; for(i=0;ilen;i++) for(j=0;jlen;j++) team_update_team_week_roundly(&g_array_index(lig(i).teams, Team, j)); for(i=0;ilen;i++) for(j=0;jlen;j++) team_update_team_week_roundly((Team*)g_ptr_array_index(cp(i).teams, j)); } /** Deduce wages etc. */ void start_week_update_user_finances(void) { #ifdef DEBUG printf("start_week_update_user_finances\n"); #endif gint i; if(sett_int("int_opt_disable_finances")) return; for(i=0;ilen;i++) finance_update_user_weekly(&usr(i)); } /** Some general user update. */ void start_week_update_users(void) { #ifdef DEBUG printf("start_week_update_users\n"); #endif gint i; for(i=0;ilen;i++) { if(usr(i).scout >= 100) usr(i).scout = math_get_place(usr(i).scout, 2); if(usr(i).physio >= 100) usr(i).physio = math_get_place(usr(i).physio, 2); if(usr(i).youth_academy.coach >= 100) usr(i).youth_academy.coach = math_get_place(usr(i).youth_academy.coach, 2); user_weekly_update_counters(&usr(i)); } } /** Create new tables if necessary etc. */ void start_week_update_leagues(void) { #ifdef DEBUG printf("start_week_update_leagues\n"); #endif gint i; for(i = 0; i < ligs->len; i++) league_check_new_tables(&lig(i)); } /** Check whether the season has ended. */ gboolean query_start_end_season_end(void) { #ifdef DEBUG printf("query_start_end_season_end\n"); #endif gint i, j; for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number > week - 1) return FALSE; for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number > week - 1) return FALSE; return TRUE; } /** Manage promotions and relegations at the beginning of a new season. */ void start_new_season_league_changes(void) { #ifdef DEBUG printf("start_new_season_league_changes\n"); #endif gint i, j, k; gint league_size[ligs->len]; GArray *team_movements = g_array_new(FALSE, FALSE, sizeof(TeamMove)); for(i=0;ilen;i++) league_get_team_movements(&lig(i), team_movements); for(i=0;ilen;i++) league_size[i] = lig(i).teams->len; for(i=0;ilen;i++) league_remove_team_with_id( league_from_clid(g_array_index(team_movements, TeamMove, i).tm.clid), g_array_index(team_movements, TeamMove, i).tm.id); league_team_movements_destinations(team_movements, league_size); for(i = team_movements->len - 1; i >= 0; i--) if(g_array_index(team_movements, TeamMove, i).prom_rel_type == PROM_REL_RELEGATION) g_array_prepend_val( lig(g_array_index( g_array_index(team_movements, TeamMove, i).dest_idcs, gint, 0)).teams, g_array_index(team_movements, TeamMove, i).tm); for(i=1;ilen;i++) if(g_array_index(team_movements, TeamMove, i).prom_rel_type != PROM_REL_RELEGATION) g_array_append_val( lig(g_array_index( g_array_index(team_movements, TeamMove, i).dest_idcs, gint, 0)).teams, g_array_index(team_movements, TeamMove, i).tm); for(i=0;ilen;i++) g_array_free(g_array_index(team_movements, TeamMove, i).dest_idcs, TRUE); g_array_free(team_movements, TRUE); for(i=0;ilen;i++) { for(j=0;jlen;j++) { g_array_index(lig(i).teams, Team, j).clid = lig(i).id; for(k=0;klen;k++) g_array_index(g_array_index(lig(i).teams, Team, j).players, Player, k).team = &g_array_index(lig(i).teams, Team, j); } league_season_start(&lig(i)); } } /** End a season (store stats etc.) */ void end_season(void) { #ifdef DEBUG printf("end_season\n"); #endif stat_create_season_stat(); } bygfoot-2.3.2/src/misc_callback_func.h0000644000175000017500000000270511225071373016672 0ustar eliaselias/* misc_callback_func.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MISC_CALLBACK_FUNC_H #define MISC_CALLBACK_FUNC_H #include "bygfoot.h" void misc_callback_start_game(void); void misc_callback_show_team_list(GtkWidget *widget, const gchar *country_file); void misc_callback_add_player(void); void misc_callback_remove_user(GdkEventButton *event); void misc_callback_pause_live_game(void); void misc_callback_improve_stadium(void); void misc_callback_update_stadium_window(gboolean capacity); void misc_callback_startup_load(const gchar *filename); void misc_callback_new_sponsor(void); #endif bygfoot-2.3.2/src/transfer.c0000644000175000017500000004151311225071373014727 0ustar eliaselias/* transfer.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "cup.h" #include "finance.h" #include "free.h" #include "game_gui.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "support.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "user.h" /** Weekly update of the transfer list. */ void transfer_update(void) { #ifdef DEBUG printf("transfer_update\n"); #endif gint i, j; if((week > transfer_get_deadline() || sett_int("int_opt_disable_transfers")) && transfer_list->len == 0) return; if(week >= transfer_get_deadline()) { for(i=transfer_list->len - 1;i>=0;i--) if(trans(i).offers->len == 0) transfer_remove_player(i); if(transfer_list->len == 0) return; } for(i=transfer_list->len - 1;i>=0;i--) for(j=trans(i).offers->len - 1;j>=0;j--) if(transoff(i, j).status == TRANSFER_OFFER_REJECTED2 || team_is_user(transoff(i, j).tm) == -1) g_array_remove_index(trans(i).offers, j); else if(transoff(i, j).status == TRANSFER_OFFER_REJECTED) transoff(i, j).status = TRANSFER_OFFER_REJECTED2; if(week < transfer_get_deadline()) { transfer_add_new_players(); transfer_add_cpu_offers(); } transfer_evaluate_offers(); for(i=transfer_list->len - 1;i>=0;i--) { if(team_is_user(trans(i).tm) == -1 && trans(i).offers->len == 0) { trans(i).time--; if(trans(i).time == 0) transfer_remove_player(i); } } } /** Add offers for the users' players on the list. We also sort the offers from other users. */ void transfer_add_cpu_offers(void) { #ifdef DEBUG printf("transfer_add_cpu_offers\n"); #endif gint i; gfloat scout_factor_bounds[4][2] = {{const_float("float_transfer_offer_fee_best_lower"), const_float("float_transfer_offer_fee_best_upper")}, {const_float("float_transfer_offer_fee_good_lower"), const_float("float_transfer_offer_fee_good_upper")}, {-const_float("float_transfer_offer_fee_good_upper"), -const_float("float_transfer_offer_fee_good_lower")}, {-const_float("float_transfer_offer_fee_best_upper"), -const_float("float_transfer_offer_fee_best_lower")}}; for(i=0;ilen;i++) if(team_is_user(trans(i).tm) != -1 && trans(i).offers->len == 0 && math_rnd(0, 1) < const_float("float_transfer_offer_prob_max") - (user_from_team(trans(i).tm)->scout % 10 * const_float("float_transfer_offer_prob_reduce"))) transfer_add_offer( i, transfer_team_get_new(), math_round_integer( (gint)rint( (gfloat)player_of_id_team(trans(i).tm, trans(i).id)->value * (1 + math_rnd( scout_factor_bounds[user_from_team(trans(i).tm)->scout % 10][0], scout_factor_bounds[user_from_team(trans(i).tm)->scout % 10][1]))), 2), -1); } /** Return a random team as a potential buyer for a user player. */ Team* transfer_team_get_new(void) { #ifdef DEBUG printf("transfer_team_get_new\n"); #endif gint rndom; GPtrArray *league_teams = team_get_sorted(team_compare_func, TEAM_COMPARE_UNSORTED, FALSE), *cup_teams = team_get_sorted(team_compare_func, TEAM_COMPARE_UNSORTED, TRUE); Team *return_value = NULL; while(return_value == NULL || team_is_user(return_value) != -1) { rndom = math_rndi(0, league_teams->len + cup_teams->len - 1); if(rndom < league_teams->len) return_value = (Team*)g_ptr_array_index(league_teams, rndom); else return_value = (Team*)g_ptr_array_index(cup_teams, rndom - league_teams->len); } return return_value; } /** Compare function for transfer offers. */ gint transfer_offer_compare_func(gconstpointer a, gconstpointer b) { #ifdef DEBUG printf("transfer_offer_compare_func\n"); #endif const TransferOffer *tr1 = (const TransferOffer*)a, *tr2 = (const TransferOffer*)b; gint return_value; if(tr1->status >= TRANSFER_OFFER_REJECTED && tr2->status >= TRANSFER_OFFER_REJECTED) return_value = 0; else if(tr1->status >= TRANSFER_OFFER_REJECTED) return_value = 1; else if(tr2->status >= TRANSFER_OFFER_REJECTED) return_value = -1; else return_value = (tr1->fee != tr2->fee) ? misc_int_compare(tr1->fee, tr2->fee) : misc_int_compare(tr1->wage, tr2->wage); return return_value; } /** Send notification events about accepted transfer offers for user players. */ void transfer_offers_notify(Transfer *tr, gboolean sort) { #ifdef DEBUG printf("transfer_offers_notify\n"); #endif TransferOffer *off = NULL; if(sort) g_array_sort(tr->offers, transfer_offer_compare_func); off = &g_array_index(tr->offers, TransferOffer, 0); off->status = TRANSFER_OFFER_ACCEPTED; if(team_is_user(tr->tm) != -1) user_event_add(user_from_team(tr->tm), EVENT_TYPE_TRANSFER_OFFER_USER, -1, -1, NULL, player_of_id_team(tr->tm, tr->id)->name, NULL); else user_event_add(user_from_team(off->tm), EVENT_TYPE_TRANSFER_OFFER_CPU, -1, -1, NULL, player_of_id_team(tr->tm, tr->id)->name, NULL); if(!sort) user_event_show_next(); } /** Move players to the users' teams if their offer was accepted or remove the players from the list if not. */ void transfer_evaluate_offers(void) { #ifdef DEBUG printf("transfer_evaluate_offers\n"); #endif gint i, j; gboolean notify; for(i=transfer_list->len - 1;i>=0;i--) if(trans(i).offers->len > 0) { notify = FALSE; if(team_is_user(trans(i).tm) == -1) { for(j=trans(i).offers->len - 1; j >= 0; j--) { if(transoff(i, j).status != TRANSFER_OFFER_REJECTED2) { if(player_of_id_team(trans(i).tm, trans(i).id)->value > transoff(i, j).fee && player_of_id_team(trans(i).tm, trans(i).id)->wage > transoff(i, j).wage) { user_event_add( user_from_team(transoff(i, j).tm), EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE_WAGE, transoff(i, j).fee, transoff(i, j).wage, trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name, NULL); transoff(i, j).status = TRANSFER_OFFER_REJECTED; } else if(player_of_id_team(trans(i).tm, trans(i).id)->value > transoff(i, j).fee) { user_event_add( user_from_team(transoff(i, j).tm), EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE, transoff(i, j).fee, transoff(i, j).wage, trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name, NULL); transoff(i, j).status = TRANSFER_OFFER_REJECTED; } else if(player_of_id_team(trans(i).tm, trans(i).id)->wage > transoff(i, j).wage) { user_event_add( user_from_team(transoff(i, j).tm), EVENT_TYPE_TRANSFER_OFFER_REJECTED_WAGE, transoff(i, j).fee, transoff(i, j).wage, trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name, NULL); transoff(i, j).status = TRANSFER_OFFER_REJECTED; } else if(transfer_new_star_balks(&trans(i), &transoff(i, j))) { user_event_add( user_from_team(transoff(i, j).tm), EVENT_TYPE_TRANSFER_OFFER_REJECTED_STARS, -1, -1, trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name, NULL); transoff(i, j).status = TRANSFER_OFFER_REJECTED; } else notify = TRUE; } } } else notify = TRUE; if(notify) transfer_offers_notify(&trans(i), TRUE); else if(week >= transfer_get_deadline()) transfer_remove_player(i); } } /** Add new players to the transfer list. */ void transfer_add_new_players(void) { #ifdef DEBUG printf("transfer_add_new_players\n"); #endif gint i; gint number_of_new = math_rndi(const_int("int_transfer_new_players_lower"), const_int("int_transfer_new_players_upper")); number_of_new = MIN(number_of_new, const_int("int_transfer_max_players") - transfer_list->len); for(i=0;iteam) != -1 || query_transfer_player_is_on_list(pl)) { tm = (Team*)g_ptr_array_index(teams, math_rndi(0, teams->len - 1)); pl = player_of_idx_team(tm, math_rndi(0, tm->players->len - 1)); if(pl->skill > const_float("float_player_max_skill") * const_float("float_transfer_good_player_skill_bound") && math_rnd(0, 1) > const_float("float_transfer_good_player_prob")) pl = NULL; } return pl; } /** Add the player to the transfer list. @param time The number of weeks he'll be on the list. */ void transfer_add_player(Player *pl, gint time) { #ifdef DEBUG printf("transfer_add_player\n"); #endif gint i; Transfer new; gfloat deviance_value, deviance_wage; new.tm = pl->team; new.id = pl->id; new.time = time; new.offers = g_array_new(FALSE, FALSE, sizeof(TransferOffer)); for(i=0;i<4;i++) { deviance_value = math_rnd(-(i + 1) * const_float("float_transfer_scout_deviance_value"), (i + 1) * const_float("float_transfer_scout_deviance_value")); deviance_wage = math_rnd(-(i + 1) * const_float("float_transfer_scout_deviance_wage"), (i + 1) * const_float("float_transfer_scout_deviance_wage")); new.fee[i] = math_round_integer( (gint)rint((gfloat)pl->value * (1 + deviance_value)), 3); new.wage[i] = math_round_integer( (gint)rint((gfloat)pl->wage * (1 + deviance_wage)), 2); } g_array_append_val(transfer_list, new); } /** Return the transfer deadline. */ gint transfer_get_deadline(void) { #ifdef DEBUG printf("transfer_get_deadline\n"); #endif gint i; gint length = 0; for(i=0;ilen;i++) if(query_league_active(&lig(i))) length = MAX(length, g_array_index( lig(i).fixtures, Fixture, lig(i).fixtures->len - 1).week_number); if(length == 0) for(i=0;ilen;i++) length = MAX(length, cp(i).last_week); return (length > 0) ? (gint)rint((gfloat)length * const_float("float_transfer_deadline_percentage")) : 35; } /** Remove a player from the transfer list. */ void transfer_remove_player(gint idx) { #ifdef DEBUG printf("transfer_remove_player\n"); #endif free_g_array(&trans(idx).offers); g_array_remove_index(transfer_list, idx); } /** Remove a player given by a pointer from the list. */ void transfer_remove_player_ptr(const Player *pl) { #ifdef DEBUG printf("transfer_remove_player_ptr\n"); #endif gint i; for(i=0;ilen;i++) if(player_of_id_team(trans(i).tm, trans(i).id) == pl) { transfer_remove_player(i); break; } } /** Find out whether a player is on the transfer list. */ gboolean query_transfer_player_is_on_list(const Player *pl) { #ifdef DEBUG printf("query_transfer_player_is_on_list\n"); #endif gint i; for(i=0;ilen;i++) if(trans(i).tm == pl->team && trans(i).id == pl->id) return TRUE; return FALSE; } /** Check whether there is an offer by the current user for the player. */ gboolean query_transfer_current_team_offer(const Player *pl) { #ifdef DEBUG printf("query_transfer_current_team_offer\n"); #endif gint i, j; for(i=0;ilen;i++) if(trans(i).tm == pl->team && trans(i).id == pl->id) { for(j=0;jlen;j++) if(transoff(i, j).tm == current_user.tm) return TRUE; } return FALSE; } /** Find out whether a player is on the list and there are offers to buy him. */ const TransferOffer* transfer_player_has_offer(const Player *pl) { gint i; for(i=0;ilen;i++) if(trans(i).tm == pl->team && trans(i).id == pl->id && trans(i).offers->len > 0 && transoff(i, 0).status == TRANSFER_OFFER_ACCEPTED) return &transoff(i, 0); return NULL; } /** Add an offer to the player with specified index on the transfer list. @param return TRUE if the offer updated an earlier offer, FALSE, otherwise. */ gboolean transfer_add_offer(gint idx, Team *tm, gint fee, gint wage) { #ifdef DEBUG printf("transfer_add_offer\n"); #endif gint i; TransferOffer new; for(i=0;ilen;i++) if(transoff(idx, i).tm == tm) { transoff(idx, i).fee = fee; transoff(idx, i).wage = wage; transoff(idx, i).status = TRANSFER_OFFER_NOT_CONSIDERED; return TRUE; } new.tm = tm; new.fee = fee; new.wage = wage; new.status = TRANSFER_OFFER_NOT_CONSIDERED; g_array_append_val(trans(idx).offers, new); return FALSE; } /** Remove any offers from the team for the given transfer player. */ gboolean transfer_remove_offer(gint idx, const Team *tm) { #ifdef DEBUG printf("transfer_remove_offer\n"); #endif gint i; for(i=0;ilen;i++) if(transoff(idx, i).tm == tm) { g_array_remove_index(trans(idx).offers, i); return TRUE; } return FALSE; } /** Add or remove a user player from the transfer list. */ void transfer_add_remove_user_player(Player *pl) { #ifdef DEBUG printf("transfer_add_remove_user_player\n"); #endif if(!query_transfer_player_is_on_list(pl)) { if(week < transfer_get_deadline()) { transfer_add_player( pl, (gint)rint(((gfloat)const_int("int_transfer_time_lower") + (gfloat)const_int("int_transfer_time_upper")) / 2)); game_gui_print_message( _("%s has been added to the transfer list for %d weeks."), pl->name, (gint)rint(((gfloat)const_int("int_transfer_time_lower") + (gfloat)const_int("int_transfer_time_upper")) / 2)); } else { game_gui_print_message(_("The transfer deadline is over.")); return; } } else transfer_remove_player_ptr(pl); on_button_transfers_clicked(NULL, NULL); } /** Find out whether the current user has to do some transfer business before a user change or a new week. */ gboolean transfer_offers_pending(void) { #ifdef DEBUG printf("transfer_offers_pending\n"); #endif gint i; for(i=0;ilen;i++) if((trans(i).tm == current_user.tm && trans(i).offers->len > 0 && transoff(i, 0).status == TRANSFER_OFFER_ACCEPTED) || (team_is_user(trans(i).tm) == -1 && trans(i).offers->len > 0 && transoff(i, 0).tm == current_user.tm && transoff(i, 0).status == TRANSFER_OFFER_ACCEPTED)) return TRUE; return FALSE; } /** Find out whether the team has already made an offer for the player and set the fee and wage accordingly. */ void transfer_get_previous_offer(const Transfer *tr, const Team *tm, gint *fee, gint *wage) { #ifdef DEBUG printf("transfer_get_previous_offer\n"); #endif gint i; for(i=0;ioffers->len;i++) if(g_array_index(tr->offers, TransferOffer, i).tm == tm) { *fee = g_array_index(tr->offers, TransferOffer, i).fee; *wage = g_array_index(tr->offers, TransferOffer, i).wage; } } /** Find out if a potential new star balks because there are already enough stars on the user team. */ gboolean transfer_new_star_balks(const Transfer *tr, const TransferOffer *troff) { #ifdef DEBUG printf("transfer_new_star_balks\n"); #endif gint i; gint number_of_stars; /* Weak players never balk. */ if(player_of_id_team(tr->tm, tr->id)->skill < const_float("float_transfer_star_skill_limit")) return FALSE; /* There is some chance that the new star doesn't balk at all. */ if(math_rnd(0, 1) < const_float("float_transfer_star_no_balk")) return FALSE; /* Find out if there are any stars at all on the team. */ number_of_stars = 0; for(i = 0; i < troff->tm->players->len; i++) { if(g_array_index(troff->tm->players, Player, i).skill > const_float("float_transfer_star_skill_limit")) number_of_stars++; } if(number_of_stars == 0) return FALSE; return (math_rnd(0, 1) > 1 - number_of_stars * const_float("float_transfer_star_prob_decrease")); } bygfoot-2.3.2/src/option.h0000644000175000017500000000670011225071373014417 0ustar eliaselias/* option.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef OPTION_H #define OPTION_H #include #include "bygfoot.h" #include "option_struct.h" /** We store float constants as integer to avoid localisation problems, and this is the value the integers get divided by when we load them. */ #define OPTION_FLOAT_DIVISOR 100000 /** Convenience abbrevs. */ #define option_set_float(name, option_array, value) option_set_int(name, option_array, (gint)rint(value * 1000)) #define opt_str(name) option_string(name, &options) #define opt_strp(name) option_string_pointer(name, &options) #define opt_int(name) option_int(name, &options) #define opt_intp(name) option_int_pointer(name, &options) #define opt_float(name) option_float(name, &options) #define opt_set_int(name, value) option_set_int(name, &options, value) #define opt_set_str(name, value) option_set_string(name, &options, value) #define opt_set_float(name, value) option_set_float(name, &options, value) #define opt_user_str(name) option_string(name, ¤t_user.options) #define opt_user_strp(name) option_string_pointer(name, ¤t_user.options) #define opt_user_int(name) option_int(name, ¤t_user.options) #define opt_user_intp(name) option_int_pointer(name, ¤t_user.options) #define opt_user_float(name) option_float(name, ¤t_user.options) #define opt_user_set_int(name, value) option_set_int(name, ¤t_user.options, value) #define opt_user_set_str(name, value) option_set_string(name, ¤t_user.options, value) #define opt_user_set_float(name, value) option_set_float(name, ¤t_user.options, value) #define const_app(name) option_string(name, &constants_app) #define const_str(name) option_string(name, &constants) #define const_int(name) option_int(name, &constants) #define const_float(name) option_float(name, &constants) #define sett_int(name) option_int(name, &settings) #define sett_set_int(name, value) option_set_int(name, &settings, value) gfloat option_float(const gchar *name, OptionList *optionlist); gint option_int(const gchar *name, OptionList *optionlist); gint* option_int_pointer(const gchar *name, OptionList *optionlist); gchar* option_string(const gchar *name, OptionList *optionlist); gchar** option_string_pointer(const gchar *name, OptionList *optionlist); void option_set_string(const gchar *name, OptionList *optionlist, const gchar *new_value); void option_set_int(const gchar *name, OptionList *optionlist, gint new_value); void option_add(OptionList *optionlist, const gchar *name, gint int_value, const gchar *string_value); gint option_compare_func(gconstpointer a, gconstpointer b); #endif bygfoot-2.3.2/src/league_table_interface.h0000644000175000017500000000015311225071373017534 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window_league_table (void); bygfoot-2.3.2/src/xml_team.h0000644000175000017500000000326611225071373014721 0ustar eliaselias/* xml_team.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_TEAM_H #define XML_TEAM_H #include "bygfoot.h" void xml_team_read(Team *tm, const gchar *def_file); void xml_team_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_team_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_team_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); #endif bygfoot-2.3.2/src/nonsourcestrings.c0000644000175000017500000000164111225071373016526 0ustar eliaselias/* nonsourcestrings.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ bygfoot-2.3.2/src/youth_academy.c0000644000175000017500000002203111225071373015730 0ustar eliaselias/* youth_academy.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "free.h" #include "maths.h" #include "name.h" #include "option.h" #include "player.h" #include "team.h" #include "user.h" #include "youth_academy.h" /** Set up a youth academy taking the average skill and talent in the team into account. */ void youth_academy_new(User *user) { #ifdef DEBUG printf("youth_academy_new\n"); #endif gint i; gint num_of_youths = math_rndi(const_int("int_youth_academy_youths_lower"), const_int("int_youth_academy_youths_upper")); user->youth_academy.tm = user->tm; user->youth_academy.coach = user->youth_academy.av_coach = QUALITY_AVERAGE; user->youth_academy.pos_pref = PLAYER_POS_ANY; user->youth_academy.percentage = user->youth_academy.av_percentage = const_int("int_youth_academy_default_percentage"); user->youth_academy.counter_youth = math_rnd(const_float("float_youth_academy_youth_counter_lower"), const_float("float_youth_academy_youth_counter_upper")); free_player_array(&user->youth_academy.players); user->youth_academy.players = g_array_new(FALSE, FALSE, sizeof(Player)); for(i=0;iyouth_academy); } /** Add a new player to the academy based on the average skill value of the user team, the average percentage the user paid for the academy for a period of time and the average youth coach quality. */ void youth_academy_add_new_player(YouthAcademy *youth_academy) { #ifdef DEBUG printf("youth_academy_add_new_player\n"); #endif gint i; gfloat pos_probs[4] = {const_float("float_youth_academy_pos_goalie"), const_float("float_youth_academy_pos_defender"), const_float("float_youth_academy_pos_midfielder"), const_float("float_youth_academy_pos_forward")}; gfloat rndom; gfloat av_talent = team_get_average_talent(youth_academy->tm); gfloat percentage_coach_talent_factor; Player new; new.name = name_get(youth_academy->tm->names_file); new.id = player_id_new; for(i=0;i<4;i++) { if(i == youth_academy->pos_pref) pos_probs[i] += (const_float("float_youth_academy_coach_search_addition") * (gfloat)(QUALITY_END - youth_academy->coach)); if(i > 0) pos_probs[i] += pos_probs[i - 1]; } rndom = math_rnd(0, pos_probs[3]); for(i=0;i<4;i++) if(rndom <= pos_probs[i]) { new.pos = i; break; } new.cpos = new.pos; new.age = math_rnd(const_float("float_youth_academy_age_lower"), const_float("float_youth_academy_age_upper")); new.peak_age = math_rnd(const_float("float_player_peak_age_lower") + (new.pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition"), const_float("float_player_peak_age_upper") + (new.pos == PLAYER_POS_GOALIE) * const_float("float_player_peak_age_goalie_addition")); /* Argument for the talent factor function, depending on average coach and percentage values (weighted). */ percentage_coach_talent_factor = (4 - youth_academy->av_coach) * (gfloat)const_int("int_youth_academy_max_percentage") * const_float("float_youth_academy_coach_weight") * 0.25 + youth_academy->av_percentage; /* Applying the talent factor funtion leading to a factor between float_youth_academy_talent_factor_lower and _upper */ percentage_coach_talent_factor = ((const_float("float_youth_academy_talent_factor_upper") - const_float("float_youth_academy_talent_factor_lower")) / ((gfloat)const_int("int_youth_academy_max_percentage") * (1 + const_float("float_youth_academy_coach_weight")))) * percentage_coach_talent_factor + const_float("float_youth_academy_talent_factor_lower"); new.talent = math_gauss_dist( percentage_coach_talent_factor * av_talent * (1 - const_float("float_youth_academy_talent_variance")), percentage_coach_talent_factor * av_talent * (1 + const_float("float_youth_academy_talent_variance"))); new.peak_region = math_gauss_dist(const_float("float_player_peak_region_lower"), const_float("float_player_peak_region_upper"));//2; new.talent = CLAMP(new.talent, 0, const_float("float_player_max_skill")); new.skill = player_skill_from_talent(&new); new.cskill = new.skill; player_estimate_talent(&new); new.fitness = math_rnd(const_float("float_player_fitness_lower"), const_float("float_player_fitness_upper")); new.health = new.recovery = 0; new.value = player_assign_value(&new); new.wage = player_assign_wage(&new); new.contract = math_rnd(const_float("float_player_contract_lower"), const_float("float_player_contract_upper")); new.lsu = math_rnd(const_float("float_player_lsu_lower"), const_float("float_player_lsu_upper")); new.cards = g_array_new(FALSE, FALSE, sizeof(PlayerCard)); new.games_goals = g_array_new(FALSE, FALSE, sizeof(PlayerGamesGoals)); for(i=0;itm; new.participation = FALSE; new.offers = 0; new.streak = PLAYER_STREAK_NONE; new.streak_count = new.streak_prob = 0; g_array_append_val(youth_academy->players, new); } /** Update the users' youth academies. */ void youth_academy_update_weekly(void) { #ifdef DEBUG printf("youth_academy_update_weekly\n"); #endif gint i, j; YouthAcademy *ya = NULL; if(sett_int("int_opt_disable_ya")) return; for(i=0;ilen;i++) { ya = &usr(i).youth_academy; for(j=ya->players->len - 1;j>=0;j--) { player_update_weekly(&g_array_index(ya->players, Player, j)); if(g_array_index(ya->players, Player, i).fitness < 0.9) player_update_fitness(&g_array_index(ya->players, Player, j)); else { g_array_index(ya->players, Player, j).fitness += math_rnd(-0.05, 0.05); g_array_index(ya->players, Player, j).fitness = MIN(g_array_index(ya->players, Player, j).fitness, 1); } if(g_array_index(ya->players, Player, j).age + 0.1 > const_float("float_player_age_lower") && g_array_index(ya->players, Player, j).age + 0.08 <= const_float("float_player_age_lower") && !sett_int("int_opt_goto_mode")) user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL, _("Youth %s will be too old for the youth academy soon. Move him to your team or kick him out of the academy. Otherwise he'll probably look for another team to play in."), g_array_index(ya->players, Player, j).name); else if(g_array_index(ya->players, Player, j).age > const_float("float_player_age_lower")) { if(!sett_int("int_opt_goto_mode")) user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL, _("Youth %s thought he's old enough for a real contract and left your youth academy."), g_array_index(ya->players, Player, j).name); free_player(&g_array_index(ya->players, Player, j)); g_array_remove_index(ya->players, j); } } ya->av_coach = (ya->av_coach * const_float("float_youth_academy_average_weight") + (gfloat)ya->coach) / (const_float("float_youth_academy_average_weight") + 1); ya->av_percentage = (ya->av_percentage * const_float("float_youth_academy_average_weight") + (gfloat)ya->percentage) / (const_float("float_youth_academy_average_weight") + 1); if(ya->percentage > 0) { ya->counter_youth -= ((1 / (gfloat)const_int("int_youth_academy_max_percentage")) * ya->av_percentage + const_float("float_youth_academy_counter_decrease_min")); if(ya->counter_youth <= 0) { ya->counter_youth = math_rnd(const_float("float_youth_academy_youth_counter_lower"), const_float("float_youth_academy_youth_counter_upper")); if(ya->players->len < const_int("int_youth_academy_max_youths")) { youth_academy_add_new_player(ya); if(!sett_int("int_opt_goto_mode")) user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL, _("A new youth registered at your youth academy.")); } else if(!sett_int("int_opt_goto_mode")) user_event_add(&usr(i), EVENT_TYPE_WARNING, -1, -1, NULL, _("A new youth wanted to registered at your youth academy but there was no room for him.")); } } } } bygfoot-2.3.2/src/training_struct.h0000755000175000017500000000233011225071373016324 0ustar eliaselias/* bet_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TRAINING_STRUCT_H_ #define TRAINING_STRUCT_H_ #include "bygfoot.h" #define CAMP_SCALE_MIN 0 #define CAMP_SCALE_MAX 10 #define CAMP_SCALE_STEP 1 enum TrainingCampHotel { TRAINING_CAMP_HOTEL_GOOD = 1, TRAINING_CAMP_HOTEL_FIRST, TRAINING_CAMP_HOTEL_PREMIUM, TRAINING_CAMP_HOTEL_END }; #endif bygfoot-2.3.2/src/treeview.c0000644000175000017500000026655311225071373014752 0ustar eliaselias/* treeview.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "file.h" #include "finance.h" #include "fixture.h" #include "free.h" #include "game.h" #include "game_gui.h" #include "language.h" #include "league.h" #include "live_game.h" #include "maths.h" #include "misc.h" #include "player.h" #include "option.h" #include "support.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "treeview_helper.h" #include "user.h" /** Creates the model for the treeview in the team selection window. The model contains a list of all the teams from the leagues in the country::leagues array; if show_cup_teams is TRUE, the teams from international cups are shown, too. @param show_cup_teams Whether or not teams from international cups are shown. @param show_user_teams Whether or not user teams are shown. @return The model containing the team names. */ GtkTreeModel* treeview_create_team_selection_list(gboolean show_cup_teams, gboolean show_user_teams) { #ifdef DEBUG printf("treeview_create_team_selection_list\n"); #endif gint i, j, cnt = 1; GtkListStore *ls; GtkTreeIter iter; ls = gtk_list_store_new(5, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_POINTER); for(i=0;ilen;i++) { for(j=0;jlen;j++) { if(team_is_user(&g_array_index(lig(i).teams, Team, j)) == -1) { gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 1, g_array_index(lig(i).teams, Team, j).symbol); gtk_list_store_set(ls, &iter, 0, cnt++, 2, (gpointer)&g_array_index(lig(i).teams, Team, j), 3, lig(i).name, 4, (gpointer)&g_array_index(lig(i).teams, Team, j), -1); } } } if(!show_cup_teams) return GTK_TREE_MODEL(ls); for(i=0;ilen;i++) if(cp(i).teams->len > 0) for(j=0;jlen;j++) { gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 1, ((Team*)g_ptr_array_index(cp(i).teams, j))->symbol); gtk_list_store_set(ls, &iter, 0, cnt++, 2, g_ptr_array_index(cp(i).teams, j), 3, cp(i).name, 4, g_ptr_array_index(cp(i).teams, j), -1); } gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(ls), 4, treeview_helper_team_compare, GINT_TO_POINTER(TEAM_COMPARE_AV_SKILL), NULL); return GTK_TREE_MODEL(ls); } /** Sets up the treeview for the team selection window. Columns and cell renderers are added etc. @param treeview The treeview that gets configured. */ void treeview_set_up_team_selection_treeview(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_team_selection_treeview\n"); #endif GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode( gtk_tree_view_get_selection(treeview), GTK_SELECTION_BROWSE); gtk_tree_view_set_headers_visible(treeview, TRUE); gtk_tree_view_set_rules_hint(treeview, TRUE); gtk_tree_view_set_search_column(treeview, 2); gtk_tree_view_set_search_equal_func(treeview, treeview_helper_search_equal_teams, NULL, NULL); /* Numbering the teams */ col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", 0); /* Flags */ col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 1); /* Team column */ col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Team")); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_team_selection, NULL, NULL); /* League column */ col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("League")); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", 3); col = gtk_tree_view_column_new(); /* Average skill */ gtk_tree_view_column_set_title(col, _("Av.Sk.")); gtk_tree_view_column_set_sort_column_id(col, 4); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_team_selection, NULL, NULL); } /** Shows the list of teams in the game. If show_cup_teams is TRUE, the teams from international cups are shown, too. @param treeview The treeview we show the list in. @param show_cup_teams Whether or not teams from international cups are shown. @param show_user_teams Whether or not user teams are shown. */ void treeview_show_team_list(GtkTreeView *treeview, gboolean show_cup_teams, gboolean show_user_teams) { #ifdef DEBUG printf("treeview_show_team_list\n"); #endif GtkTreeModel *team_list = treeview_create_team_selection_list(show_cup_teams, show_user_teams); GtkTreeSelection *selection; GtkTreePath *path = gtk_tree_path_new_from_string("0"); treeview_helper_clear(treeview); treeview_set_up_team_selection_treeview(treeview); gtk_tree_view_set_model(treeview, team_list); selection = gtk_tree_view_get_selection(treeview); gtk_tree_selection_select_path(selection, path); g_object_unref(team_list); gtk_tree_path_free(path); } /** Create the list store for a player list. @param players The array containing the players. @param attributes An array containing the attributes we show. @param max The size of the attribute array. @param separator Whether we draw a blank line after the 11th player. @param status Whether player status is shown (takes two columns). */ GtkTreeModel* treeview_create_player_list(GPtrArray *players, gint *attributes, gint max, gboolean show_separator, gboolean sortable, gboolean status) { #ifdef DEBUG printf("treeview_create_player_list\n"); #endif gint i, j; GtkListStore *ls; GtkTreeIter iter; GType types[max + 1 + status]; types[0] = G_TYPE_INT; for(i=0;ilen;i++) { gtk_list_store_append(ls, &iter); if(show_separator && i == 11) { gtk_list_store_set(ls, &iter, 0, const_int("int_treeview_helper_int_empty"), -1); for(j=0;j PLAYER_LIST_ATTRIBUTE_STATUS), treeview_helper_player_compare, GINT_TO_POINTER(attributes[i]), NULL); } return (GtkTreeModel*)ls; } /** Set up the tree view for a player list */ void treeview_set_up_player_list(GtkTreeView *treeview, gint *attributes, gint max, gboolean show_separator, gboolean transfer_list, gboolean sortable) { #ifdef DEBUG printf("treeview_set_up_player_list\n"); #endif gint i, cnt = 1; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[PLAYER_LIST_ATTRIBUTE_END] = {_("Name"), /* Current position of a player. */ _("CPos"), /* Position of a player. */ _("Pos"), /* Current skill of a player. */ _("CSk"), /* Skill of a player. */ _("Sk"), /* Fitness of a player. */ _("Fit"), /* Games of a player. */ _("Ga"), /* Shots of a player. */ _("Sh"), /* Goals of a player. */ _("Go"), /* Status of a player. */ _("Status"), /* Yellow cards of a player. */ _("YC"), _("Age"), /* Estimated talent of a player. */ _("Etal"), _("Value"), _("Wage"), _("Contract"), _("Team"), _("League")}; gtk_tree_selection_set_mode( gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, TRUE); /* number the players */ col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_int_to_cell, NULL, NULL); for(i=0;iplayers); user_set_player_list_attributes(¤t_user, &attribute, i + 1); treeview_show_player_list(GTK_TREE_VIEW(treeview[i]), players, attribute, TRUE, (i == 1)); } } /** Show the player list of a foreign team depending on the scout quality. */ void treeview_show_player_list_team(GtkTreeView *treeview, const Team *tm, gint scout) { #ifdef DEBUG printf("treeview_show_player_list_team\n"); #endif GPtrArray *players = player_get_pointers_from_array(tm->players); treeview_show_player_list(treeview, players, treeview_helper_get_attributes_from_scout(scout), TRUE, FALSE); } /** Show the commentary and the minute belonging to the unit. @param unit The #LiveGameUnit we show. */ void treeview_live_game_show_commentary(const LiveGameUnit *unit) { #ifdef DEBUG printf("treeview_live_game_show_commentary\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.live, "treeview_commentary")); GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(treeview)); GtkAdjustment *adjustment = gtk_scrolled_window_get_vadjustment( GTK_SCROLLED_WINDOW(lookup_widget(window.live, "scrolledwindow9"))); GtkTreeIter iter; GtkTreePath *path; gchar buf[SMALL], buf2[SMALL]; sprintf(buf, "%3d.", live_game_unit_get_minute(unit)); if(unit->possession == 1) sprintf(buf2, "%s", const_app("string_treeview_live_game_commentary_away_bg"), const_app("string_treeview_live_game_commentary_away_fg"), unit->event.commentary); else sprintf(buf2, "%s", const_app("string_treeview_helper_color_default_background"), const_app("string_treeview_helper_color_default_foreground"), unit->event.commentary); gtk_list_store_prepend(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 1, treeview_helper_live_game_icon(unit->event.type)); gtk_list_store_set(ls, &iter, 0, buf, 2, buf2, -1); adjustment->value = adjustment->lower - adjustment->page_size; gtk_adjustment_value_changed(adjustment); path = gtk_tree_model_get_path(GTK_TREE_MODEL(ls), &iter); gtk_tree_view_set_cursor(treeview, path, NULL, FALSE); gtk_widget_grab_focus(GTK_WIDGET(treeview)); gtk_tree_path_free(path); } /** Create the list store for the live game commentary treeview. @param unit The unit we show. @return The ls. */ GtkTreeModel* treeview_live_game_create_init_commentary(const LiveGameUnit *unit) { #ifdef DEBUG printf("treeview_live_game_create_init_commentary\n"); #endif GtkListStore *ls; GtkTreeIter iter; gchar buf[SMALL]; ls = gtk_list_store_new(3, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING); sprintf(buf, "%3d.", unit->minute); gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 1, treeview_helper_live_game_icon(unit->event.type)); gtk_list_store_set(ls, &iter, 0, buf, 2, unit->event.commentary, -1); return GTK_TREE_MODEL(ls); } /** Set up the commentary treeview for the live game. */ void treeview_live_game_set_up_commentary(void) { #ifdef DEBUG printf("treeview_live_game_set_up_commentary\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.live, "treeview_commentary")); GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_headers_visible(treeview, FALSE); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", 0); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 1); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", 2); } /** Show the first commentary of the live game @param unit The #LiveGameUnit we show. */ void treeview_live_game_show_initial_commentary(const LiveGameUnit *unit) { #ifdef DEBUG printf("treeview_live_game_show_initial_commentary\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.live, "treeview_commentary")); GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_live_game_set_up_commentary(); model = treeview_live_game_create_init_commentary(unit); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Fill the ls for the live game result treeview. @param unit The current live game unit. @return The ls we created. */ GtkTreeModel* treeview_live_game_create_result(const LiveGameUnit *unit) { #ifdef DEBUG printf("treeview_live_game_create_result\n"); #endif GtkListStore *ls; GtkTreeIter iter; gchar buf[SMALL]; ls = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); live_game_unit_result_to_buf(unit, buf, FALSE); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, ((LiveGame*)statp)->team_names[0], 1, buf, 2, ((LiveGame*)statp)->team_names[1], -1); return GTK_TREE_MODEL(ls); } /** Set up the treeview columns for the result. */ void treeview_live_game_set_up_result(void) { #ifdef DEBUG printf("treeview_live_game_set_up_result\n"); #endif gint i; GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.live, "treeview_result")); GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_headers_visible(treeview, FALSE); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_live_game_result, NULL, NULL); } } /** Write the current result of the live game into the corresponding treeview. @param unit The current live game unit. */ void treeview_live_game_show_result(const LiveGameUnit *unit) { #ifdef DEBUG printf("treeview_live_game_show_result\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.live, "treeview_result")); GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_live_game_set_up_result(); model = treeview_live_game_create_result(unit); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Fill a tree model with the users. */ GtkTreeModel* treeview_create_users(void) { #ifdef DEBUG printf("treeview_create_users\n"); #endif gint i; GtkListStore *ls; GtkTreeIter iter; ls = gtk_list_store_new(4, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); for(i=0;ilen;i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, i + 1, 1, usr(i).name, 2, usr(i).tm->name, -1); if(stat0 == STATUS_TEAM_SELECTION) { if(usr(i).scout == -1) gtk_list_store_set(ls, &iter, 3, league_cup_get_name_string(usr(i).tm->clid), -1); else gtk_list_store_set(ls, &iter, 3, lig(usr(i).scout).name, -1); } else gtk_list_store_set(ls, &iter, 3, league_cup_get_name_string(usr(i).tm->clid), -1); } return GTK_TREE_MODEL(ls); } /** Set up the users treeview. @param treeview The treeview we use. */ void treeview_set_up_users(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_users\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[4] = {"", _("Name"), _("Team"), _("League")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, TRUE); for(i=0;i<4;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, (i != 3)); gtk_tree_view_column_add_attribute(col, renderer, "text", i); } } /** Show the list of users at startup. @param treeview The treeview we use. */ void treeview_show_users(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_show_users\n"); #endif GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_users(treeview); model = treeview_create_users(); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Fill a model with live game stats. @param live_game The live game. */ GtkTreeModel* treeview_create_game_stats(LiveGame *live_game) { #ifdef DEBUG printf("treeview_create_game_stats\n"); #endif gint i, j, k; LiveGameStats *stats = &live_game->stats; GtkListStore *ls; GtkTreeIter iter; gchar buf[2][SMALL]; gchar buf3[SMALL]; gchar *categories[LIVE_GAME_STAT_VALUE_END] = /* 'Normal' goals, ie. no penalties or free kicks. */ {_("Goals (regular)"), _("Shots"), _("Shot %"), _("Possession"), _("Penalties"), _("Fouls"), _("Yellows"), _("Reds"), _("Injuries")}; ls = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); if(live_game->fix != NULL) fixture_result_to_buf(live_game->fix, buf[0], FALSE); else sprintf( buf[0], "%d : %d", g_array_index(live_game->units, LiveGameUnit, live_game->units->len - 1). result[0], g_array_index(live_game->units, LiveGameUnit, live_game->units->len - 1). result[1]); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, live_game->team_names[0], 1, buf[0], 2, live_game->team_names[1], -1); for(k=0;k"); if(k == LIVE_GAME_STAT_ARRAY_INJURED) sprintf(buf[0], " ", const_app("string_treeview_helper_color_player_injury")); else if(k == LIVE_GAME_STAT_ARRAY_REDS) sprintf(buf[0], " ", const_app("string_treeview_helper_color_player_banned")); else if(k == LIVE_GAME_STAT_ARRAY_YELLOWS) sprintf(buf[0], " ", const_app("string_treeview_helper_color_player_yellow_danger")); } for(i=0;iplayers[0][k]->len, stats->players[1][k]->len);i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 1, "", -1); for(j=0;j<2;j++) { if(i < stats->players[j][k]->len) { sprintf(buf3, "%s%s%s", buf[0], (gchar*)g_ptr_array_index(stats->players[j][k], i), buf[1]); gtk_list_store_set(ls, &iter, j * 2, buf3, -1); } } } } misc_print_grouped_int(live_game->attendance, buf[0]); sprintf(buf[1], _("Attendance\n%s"), buf[0]); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, buf[1], 1, "", 2, "", -1); if(live_game->stadium_event != -1) { gtk_list_store_append(ls, &iter); if(live_game->stadium_event == LIVE_GAME_EVENT_STADIUM_BREAKDOWN) sprintf(buf[0], _("There were technical problems\nin the stadium."), const_app("string_treeview_stadium_event_bg")); else if(live_game->stadium_event == LIVE_GAME_EVENT_STADIUM_RIOTS) sprintf(buf[0], _("There were riots\nin the stadium."), const_app("string_treeview_stadium_event_bg")); else sprintf(buf[0], _("There was a fire\nin the stadium."), const_app("string_treeview_stadium_event_bg")); gtk_list_store_set(ls, &iter, 0, buf[0], 1, "", 2, "", -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1); for(i=0;ivalues[j][i]); else for(j=0;j<2;j++) sprintf(buf[j], "%d", (gint)rint(100 * ((gfloat)stats->values[j][i] / ((gfloat)stats->values[0][i] + (gfloat)stats->values[1][i])))); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, buf[0], 1, categories[i], 2, buf[1], -1); } return GTK_TREE_MODEL(ls); } /** Configure a treeview to show game stats. @param treeview The treeview. */ void treeview_set_up_game_stats(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_game_stats\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, FALSE); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i); g_object_set(renderer, "xalign", 0 + (2 - i) * 0.5, NULL); } } /** Show the stats of the live game in a treeview. @param live_game The live game. */ void treeview_show_game_stats(GtkTreeView *treeview, LiveGame *live_game) { #ifdef DEBUG printf("treeview_show_game_stats\n"); #endif GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_game_stats(treeview); model = treeview_create_game_stats(live_game); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Write some general information like cup/league name, week etc. into a ls. @param fix A 'sample' fixture. @param ls The ls we edit. @param blank_line Whether to draw a blank line after the header. */ void treeview_create_fixtures_header(const Fixture *fix, GtkListStore *ls, gboolean blank_line) { #ifdef DEBUG printf("treeview_create_fixtures_header\n"); #endif GtkTreeIter iter; gchar buf[SMALL], buf2[SMALL], buf3[SMALL], round_name[SMALL]; gchar *name = NULL; gchar *symbol = NULL; if(fix->clid < ID_CUP_START) { sprintf(buf3, _("Week %d Round %d"), fix->week_number, fix->week_round_number); name = league_cup_get_name_string(fix->clid); strcpy(round_name, ""); symbol = league_from_clid(fix->clid)->symbol; } else { sprintf(buf3, _("Week %d Round %d\nCup round %d"), fix->week_number, fix->week_round_number, fix->round + 1); name = cup_from_clid(fix->clid)->name; sprintf(round_name, "\n%s", g_array_index(cup_from_clid(fix->clid)->rounds, CupRound, fix->round).name); symbol = cup_from_clid(fix->clid)->symbol; } sprintf(buf, "%s%s", const_app("string_treeview_fixture_header_bg"), const_app("string_treeview_fixture_header_fg"), name, round_name); sprintf(buf2, "%s", const_app("string_treeview_fixture_header_bg"), const_app("string_treeview_fixture_header_fg"), buf3); gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, symbol); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 4, symbol); gtk_list_store_set(ls, &iter, 1, buf, 2, "", 3, buf2, -1); if(blank_line) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, "", 2, "", 3, "", 4, NULL, -1); } } /** Display a fixture in a ls. */ void treeview_create_fixture(const Fixture *fix, GtkListStore *ls) { #ifdef DEBUG printf("treeview_create_fixture\n"); #endif gint i, rank; GtkTreeIter iter; gchar *symbol[2] = {NULL, NULL}; gchar buf_result[SMALL], buf[3][SMALL]; gchar *colour_fg = NULL, *colour_bg = NULL; gint user_idx = fixture_user_team_involved(fix); if(fix->clid >= ID_CUP_START && query_league_cup_has_property(fix->clid, "international")) for(i=0;i<2;i++) symbol[i] = fix->teams[i]->symbol; if(user_idx != -1) treeview_helper_set_user_colours(usr(user_idx).tm->name, &colour_bg, &colour_fg); else { colour_fg = const_app("string_treeview_helper_color_default_foreground"); colour_bg = const_app("string_treeview_helper_color_default_background"); } fixture_result_to_buf(fix, buf_result, FALSE); for(i=0;i<2;i++) if(query_fixture_has_tables(fix)) { if(fix->clid < ID_CUP_START) rank = team_get_league_rank(fix->teams[i], fix->clid); else rank = team_get_cup_rank(fix->teams[i], cup_get_last_tables_round(fix->clid), TRUE); sprintf(buf[i], "%s [%d]", colour_bg, colour_fg, fix->teams[i]->name, rank); } else if(fix->clid >= ID_CUP_START && query_league_cup_has_property(fix->clid, "national")) sprintf(buf[i], "%s (%d)", colour_bg, colour_fg, fix->teams[i]->name, league_from_clid(fix->teams[i]->clid)->layer); else sprintf(buf[i], "%s", colour_bg, colour_fg, fix->teams[i]->name); sprintf(buf[2], "%s", colour_bg, colour_fg, buf_result); gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, symbol[0]); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 4, symbol[1]); gtk_list_store_set(ls, &iter, 1, buf[0], 2, buf[2], 3, buf[1], -1); } GtkTreeModel* treeview_create_fixtures(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("treeview_create_fixtures\n"); #endif gint i; GtkListStore *ls; GPtrArray *fixtures = fixture_get_week_list_clid(clid, week_number, week_round_number); if(fixtures->len == 0) { free_g_ptr_array(&fixtures); return NULL; } ls = gtk_list_store_new(5, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF); treeview_create_fixtures_header((Fixture*)g_ptr_array_index(fixtures, 0), ls, TRUE); for(i=0;ilen;i++) treeview_create_fixture((Fixture*)g_ptr_array_index(fixtures, i), ls); g_ptr_array_free(fixtures, TRUE); return GTK_TREE_MODEL(ls); } void treeview_set_up_fixtures(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_fixtures\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, FALSE); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "cell-background", const_app("string_treeview_symbol_bg"), NULL); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 0); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i + 1); g_object_set(renderer, "xalign", 0 + (2 - i) * 0.5, NULL); } col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "cell-background", const_app("string_treeview_symbol_bg"), NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 4); } /** Show some fixtures in a treeview. @param treeview The treeview we use. @param clid The cup / league id. @param week_number The week number of the fixtures. @param week_round_number The week round. */ void treeview_show_fixtures(GtkTreeView *treeview, gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("treeview_show_fixtures\n"); #endif GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_fixtures(treeview); model = treeview_create_fixtures(clid, week_number, week_round_number); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Write the header for a table into the ls @param clid The cup or league id. @param number The number of the table if we display more than one. */ void treeview_table_write_header(GtkListStore *ls, const Table *table, gint table_index) { #ifdef DEBUG printf("treeview_table_write_header\n"); #endif gint i; gchar buf[SMALL]; gchar *symbol = NULL; GtkTreeIter iter; if(table->clid < ID_CUP_START) { symbol = league_from_clid(table->clid)->symbol; strcpy(buf, table->name); } else { symbol = cup_from_clid(table->clid)->symbol; if(g_array_index(cup_from_clid(table->clid)->rounds, CupRound, table->round).tables->len > 1) /* A group of a round robin stage of a cup. */ sprintf(buf, _("%s Group %d"), cup_from_clid(table->clid)->name, table_index + 1); else sprintf(buf, "%s", cup_from_clid(table->clid)->name); } gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, symbol); gtk_list_store_set(ls, &iter, 1, "", 2, NULL, 3, buf, -1); for(i=4;i<12;i++) gtk_list_store_set(ls, &iter, i, "", -1); } /** Display a table in the ls. @param number The number of the table if we display more than one (cups, round robin); or -1 for leagues. */ void treeview_create_single_table(GtkListStore *ls, const Table *table, gint table_index) { #ifdef DEBUG printf("treeview_create_single_table\n"); #endif gint i, j; GtkTreeIter iter; TableElement *elem = NULL; gchar buf[10][SMALL]; gchar *colour_bg = NULL, *colour_fg = NULL; treeview_table_write_header(ls, table, table_index); for(i=0;ielements->len;i++) { gtk_list_store_append(ls, &iter); elem = &g_array_index(table->elements, TableElement, i); if(table->clid >= ID_CUP_START) treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, elem->team->symbol); if(elem->old_rank > i) treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 2, const_app("string_treeview_table_up_icon")); else if(elem->old_rank < i) treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 2, const_app("string_treeview_table_down_icon")); else treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 2, const_app("string_treeview_table_stay_icon")); treeview_helper_get_table_element_colours(table, table_index, i, &colour_fg, &colour_bg, FALSE); sprintf(buf[0], "%d", colour_bg, colour_fg, i + 1); treeview_helper_get_table_element_colours(table, table_index, i, &colour_fg, &colour_bg, TRUE); if(debug < 50) sprintf(buf[1], "%s", colour_bg, colour_fg, elem->team->name); else sprintf(buf[1], "%s (%s)", colour_bg, colour_fg, elem->team->name, elem->team->strategy_sid); gtk_list_store_set(ls, &iter, 1, buf[0], 3, buf[1], -1); for(j=2;j<10;j++) if(j - 2 != TABLE_GD) sprintf(buf[j], "%d", elem->values[j - 2]); else sprintf(buf[j], "%+d", elem->values[j - 2]); for(j=2;j<10;j++) gtk_list_store_set(ls, &iter, j + 2, buf[j], -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, "", 2, NULL, -1); for(j=3;j<11;j++) gtk_list_store_set(ls, &iter, j, "", -1); } /** Create a league table or one or more cup tables. */ GtkTreeModel* treeview_create_table(gint clid) { #ifdef DEBUG printf("treeview_create_table\n"); #endif gint i; GArray *tables; GtkListStore *ls = gtk_list_store_new(12, GDK_TYPE_PIXBUF, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); if(clid < ID_CUP_START) { tables = league_from_clid(clid)->tables; for(i = tables->len - 1; i >= 0; i--) treeview_create_single_table(ls, &g_array_index(tables, Table, i), i); } else { tables = cup_get_last_tables(clid); for(i=0;i< tables->len;i++) treeview_create_single_table(ls, &g_array_index(tables, Table, i), i); } return GTK_TREE_MODEL(ls); } void treeview_set_up_table(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_table\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[9] = {_("Team"), /* Games played (a number). */ _("PL"), /* Games won. */ _("W"), /* Games drawn. */ _("Dw"), /* Games lost. */ _("L"), /* Goals for. */ _("GF"), /* Goals against. */ _("GA"), /* Goal difference. */ _("GD"), /* Points. */ _("PTS")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, TRUE); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "cell-background", const_app("string_treeview_symbol_bg"), NULL); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 0); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, ""); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "markup", 1); g_object_set(renderer, "xalign", 0.5, NULL); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 2); for(i=0;i<9;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i + 3); g_object_set(renderer, "xalign", 0.5 - (0.5 * (i == 0)), NULL); } } /** Show the table going with a league or cup. */ void treeview_show_table(GtkTreeView *treeview, gint clid) { #ifdef DEBUG printf("treeview_show_table\n"); #endif GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_table(treeview); model = treeview_create_table(clid); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Print some quick info about the stadium in the finances view. */ void treeview_create_stadium_summary(GtkListStore *ls) { #ifdef DEBUG printf("treeview_create_stadium_summary\n"); #endif gchar buf[SMALL]; GtkTreeIter iter; if(current_user.tm->stadium.name != NULL) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Stadium"), 1, current_user.tm->stadium.name, 2, "", -1); } gtk_list_store_append(ls, &iter); misc_print_grouped_int(current_user.tm->stadium.capacity, buf); gtk_list_store_set(ls, &iter, 0, _("Stadium capacity"), 1, buf, 2, "", -1); gtk_list_store_append(ls, &iter); sprintf(buf, "%.0f%%", current_user.tm->stadium.safety * 100); gtk_list_store_set(ls, &iter, 0, _("Stadium safety"), 1, buf, 2, "", -1); if(current_user.counters[COUNT_USER_STADIUM_CAPACITY] + current_user.counters[COUNT_USER_STADIUM_SAFETY] != 0) { gtk_list_store_append(ls, &iter); sprintf(buf, _("Improvement in progress.\n%d seats and %d%% safety still to be done.\nExpected finish: %d weeks."), current_user.counters[COUNT_USER_STADIUM_CAPACITY], current_user.counters[COUNT_USER_STADIUM_SAFETY], MAX(finance_get_stadium_improvement_duration( (gfloat)current_user.counters[COUNT_USER_STADIUM_CAPACITY], TRUE), finance_get_stadium_improvement_duration( (gfloat)current_user.counters[COUNT_USER_STADIUM_SAFETY] / 100, FALSE))); gtk_list_store_set(ls, &iter, 0, _("Stadium status"), 1, buf, 2, "", -1); } } GtkTreeModel* treeview_create_finances(const User *user) { #ifdef DEBUG printf("treeview_create_finances\n"); #endif gint i, balance = 0; gchar buf[SMALL], buf2[SMALL], buf3[SMALL]; const gint *in = user->money_in[0], *out = user->money_out[0]; gchar *in_titles[MON_IN_TRANSFERS] = {_("Prize money"), _("Ticket income"), _("Sponsorship"), _("Betting")}; gchar *out_titles[MON_OUT_TRANSFERS] = {_("Wages"), _("Physio"), _("Scout"), _("Youth coach"), _("Youth academy"), _("Journey costs"), /* Money paid to players a user fired. */ _("Compensations"), _("Betting"), /* Applying boost costs money. */ _("Boost costs")}; GtkTreeIter iter; GtkListStore *ls = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); gtk_list_store_append(ls, &iter); /* Finances balance. */ if(week > 2) { if(week % 2 == 1) sprintf(buf, _("Bi-weekly balance\n(Week %d and %d)"), week - 2, week - 1); else sprintf(buf, _("Bi-weekly balance\n(Week %d and %d)"), week - 3, week - 2); } else strcpy(buf, _("Bi-weekly balance")); gtk_list_store_set(ls, &iter, 0, buf, 1, "", 2, "", -1); for(i=0;i%s", const_app("string_treeview_finances_expenses_fg"), buf3); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, out_titles[i], 1, "", 2, buf, -1); balance += out[i]; } misc_print_grouped_int(balance, buf); gtk_list_store_append(ls, &iter); /* Finances balance. */ gtk_list_store_set(ls, &iter, 0, _("Balance"), 1, "", 2, "", -1); if(balance >= 0) strcpy(buf2, buf); else sprintf(buf2, "%s", const_app("string_treeview_finances_expenses_fg"), buf); gtk_list_store_set(ls, &iter, 1 + (balance < 0), buf2, -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1); if(in[MON_IN_TRANSFERS] != 0 || out[MON_OUT_TRANSFERS] != 0) { misc_print_grouped_int(in[MON_IN_TRANSFERS], buf); misc_print_grouped_int(out[MON_OUT_TRANSFERS], buf3); sprintf(buf2, "%s", const_app("string_treeview_finances_expenses_fg"), buf3); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Transfers"), 1, buf, 2, buf2, -1); } if(out[MON_OUT_STADIUM_IMPROVEMENT] + out[MON_OUT_STADIUM_BILLS] != 0) { misc_print_grouped_int(out[MON_OUT_STADIUM_IMPROVEMENT] + out[MON_OUT_STADIUM_BILLS], buf); sprintf(buf2, "%s", const_app("string_treeview_finances_expenses_fg"), buf); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Stadium expenses"), 1, "", 2, buf2, -1); } if(out[MON_OUT_TRAINING_CAMP] != 0) { misc_print_grouped_int(out[MON_OUT_TRAINING_CAMP], buf); sprintf(buf2, "%s", const_app("string_treeview_finances_expenses_fg"), buf); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Training camp"), 1, "", 2, buf2, -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1); misc_print_grouped_int(user->money, buf); gtk_list_store_append(ls, &iter); if(user->money >= 0) strcpy(buf2, buf); else sprintf(buf2, "%s", const_app("string_treeview_finances_expenses_fg"), buf); gtk_list_store_set(ls, &iter, 0, _("Money"), 1, buf2, 2, "", -1); misc_print_grouped_int(finance_team_drawing_credit_loan(user->tm, FALSE), buf); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Drawing credit"), 1, buf, 2, "", -1); sprintf(buf, "%.2f%%", current_interest * 100); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Current market interest"), 1, buf, 2, "", -1); if(user->debt != 0) { misc_print_grouped_int(user->debt, buf); sprintf(buf2, "%s (%.2f%% %s)", const_app("string_treeview_finances_expenses_fg"), buf, user->debt_interest * 100, _("interest rate")); sprintf(buf, _("Debt (repay in %d weeks)"), user->counters[COUNT_USER_LOAN]); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, buf, 1, "", 2, buf2, -1); } if(user->alr_start_week != 0) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Automatic repayment"), 1, "", 2, "", -1); misc_print_grouped_int(user->alr_weekly_installment, buf); sprintf(buf2, "%s", const_app("string_treeview_finances_expenses_fg"), buf); sprintf(buf, _("(starting week %d)"), user->alr_start_week); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, buf, 1, "", 2, buf2, -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Sponsor"), 1, user->sponsor.name->str, 2, "", -1); misc_print_grouped_int(user->sponsor.benefit, buf); /* Contract time and money a sponsor pays. */ sprintf(buf2, _("%.1f months / %s"), ((gfloat)user->sponsor.contract) / 4, buf); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Contract / Money"), 1, buf2, 2, "", -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1); sprintf(buf, "%d%%", user->youth_academy.percentage); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Youth acad. invest."), 1, buf, 2, "", -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1); treeview_create_stadium_summary(ls); return GTK_TREE_MODEL(ls); } void treeview_set_up_finances(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_finances\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[3] = {"", _("Income"), _("Expenses")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, TRUE); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i); if(i == 0) g_object_set(renderer, "xalign", 1.0, NULL); } } /** Show the finance overview of the user. */ void treeview_show_finances(GtkTreeView *treeview, const User* user) { #ifdef DEBUG printf("treeview_show_finances\n"); #endif GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_finances(treeview); model = treeview_create_finances(user); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Show the transfer list. */ void treeview_show_transfer_list(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_show_transfer_list\n"); #endif gint i; GPtrArray *players = g_ptr_array_new(); for(i=0;ilen;i++) g_ptr_array_add(players, player_of_id_team(trans(i).tm, trans(i).id)); treeview_show_player_list(treeview, players, treeview_helper_get_attributes_from_scout(current_user.scout), FALSE, FALSE); } /** Create attack, midfield and defend bars. */ void treeview_create_next_opponent_values(GtkListStore *ls, const Fixture *fix) { #ifdef DEBUG printf("treeview_create_next_opponent_values\n"); #endif gint i, j; gchar buf[SMALL], buf2[SMALL]; gfloat max_values[4], team_values[2][GAME_TEAM_VALUE_END]; gchar *titles[4] = {_("Goalie"), _("Defend"), _("Midfield"), _("Attack")}; GtkTreeIter iter; game_get_values(fix, team_values, 0); game_get_max_values(max_values); for(i=0;i<4;i++) { strcpy(buf2, ""); for(j=0;j<(gint)rint((gfloat)const_int("int_treeview_max_pipes") * (team_values[fix->teams[0] == current_user.tm][i] / max_values[i]));j++) strcat(buf2, "|"); sprintf(buf, "%s\n", buf2, const_app("string_treeview_opponent_value_colour_fg")); for(j=0;j<(gint)rint((gfloat)const_int("int_treeview_max_pipes") * (team_values[fix->teams[0] != current_user.tm][i] / max_values[i]));j++) strcat(buf, "|"); strcat(buf, ""); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, titles[i], 1, buf, -1); } } GtkTreeModel* treeview_create_next_opponent(void) { #ifdef DEBUG printf("treeview_create_next_opponent\n"); #endif gchar buf[SMALL], buf2[SMALL]; const Fixture *fix = team_get_fixture(current_user.tm, FALSE); const Team *opp = (fix == NULL) ? NULL : fix->teams[fix->teams[0] == current_user.tm]; GtkListStore *ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); GtkTreeIter iter; gint rank; if(opp == NULL) return NULL; ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); if(fix->clid < ID_CUP_START) strcpy(buf, league_cup_get_name_string(fix->clid)); else sprintf(buf, "%s (%s)", league_cup_get_name_string(fix->clid), g_array_index(cup_from_clid(fix->clid)->rounds, CupRound, fix->round).name); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Your next opponent"), 1, buf, -1); gtk_list_store_append(ls, &iter); if(fix->week_number == week && fix->week_round_number == week_round) sprintf(buf, _("Week %d Round %d"), const_app("string_treeview_helper_color_default_foreground"), const_app("string_treeview_helper_color_default_background"), fix->week_number, fix->week_round_number); else sprintf(buf, _("Week %d Round %d"), const_app("string_treeview_opponent_match_later_fg"), const_app("string_treeview_opponent_match_later_bg"), fix->week_number, fix->week_round_number); if(!fix->home_advantage) strcpy(buf2, _("Neutral ground")); else if(fix->teams[0] == current_user.tm) strcpy(buf2, _("Home")); else strcpy(buf2, _("Away")); gtk_list_store_set(ls, &iter, 0, buf, 1, buf2, -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, "", 1, "", -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Team"), 1, opp->name, -1); rank = team_get_league_rank(opp, fix->clid); if(rank != 0) { sprintf(buf, "%d (%s)", rank, league_cup_get_name_string(fix->clid)); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Rank"), 1, buf, -1); } sprintf(buf, "%.1f", team_get_average_skill(opp, TRUE)); if(team_get_average_skill(opp, TRUE) > team_get_average_skill(current_user.tm, TRUE)) sprintf(buf2, " (%+.1f)", const_app("string_treeview_opponent_skill_positive_fg"), team_get_average_skill(opp, TRUE) - team_get_average_skill(current_user.tm, TRUE)); else sprintf(buf2, " (%+.1f)", const_app("string_treeview_opponent_skill_negative_fg"), team_get_average_skill(opp, TRUE) - team_get_average_skill(current_user.tm, TRUE)); strcat(buf, buf2); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Average skill"), 1, buf, -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Playing style"), 1, team_attribute_to_char(TEAM_ATTRIBUTE_STYLE, opp->style), -1); sprintf(buf, "%d", opp->structure); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Team structure"), 1, buf, -1); treeview_create_next_opponent_values(ls, fix); team_write_results(opp, buf, buf2); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Latest results"), 1, buf, -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Goals"), 1, buf2, -1); team_write_overall_results(opp, fix->clid, buf); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Overall results"), 1, buf, -1); team_write_own_results(opp, buf, FALSE, TRUE); gtk_list_store_append(ls, &iter); /* The user's results against a specific team. */ gtk_list_store_set(ls, &iter, 0, _("Your results"), 1, buf, -1); team_write_overall_results(current_user.tm, fix->clid, buf); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Your overall results"), 1, buf, -1); return GTK_TREE_MODEL(ls); } void treeview_set_up_next_opponent(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_next_opponent\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_SINGLE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, FALSE); for(i=0;i<2;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i); } } /** Show some information about the next opponent. */ void treeview_show_next_opponent(void) { #ifdef DEBUG printf("treeview_show_next_opponent\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_next_opponent(treeview); model = treeview_create_next_opponent(); gtk_tree_view_set_model(treeview, model); treeview_helper_unref(G_OBJECT(model)); } GtkTreeModel* treeview_create_league_results(void) { #ifdef DEBUG printf("treeview_create_league_results\n"); #endif gint i; gchar name[SMALL], results[SMALL]; GArray *table_elements = league_table(league_from_clid(current_user.tm->clid))->elements; GtkListStore *ls = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); GtkTreeIter iter; for(i=0;ilen;i++) if(g_array_index(table_elements, TableElement, i).team != current_user.tm) { if(team_is_user(g_array_index(table_elements, TableElement, i).team) != -1) sprintf(name, "%s", const_app("string_treeview_user_bg"), g_array_index(table_elements, TableElement, i).team->name); else strcpy(name, g_array_index(table_elements, TableElement, i).team->name); team_write_own_results(g_array_index(table_elements, TableElement, i).team, results, TRUE, FALSE); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, name, 1, results, -1); } return GTK_TREE_MODEL(ls); } void treeview_set_up_league_results(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_league_results\n"); #endif gint i; gchar *titles[2] = {_("Team"), _("Results")}; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_rules_hint(treeview, TRUE); gtk_tree_view_set_headers_visible(treeview, TRUE); for(i=0;i<2;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i); } } /** Show the results of the current user against fellow league teams. */ void treeview_show_league_results(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_show_league_results\n"); #endif GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_league_results(treeview); model = treeview_create_league_results(); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } /** Show a list of all players in the teams of the cup or league. */ void treeview_show_all_players(gint clid) { #ifdef DEBUG printf("treeview_show_all_players\n"); #endif gint i, j; GPtrArray *players = g_ptr_array_new(); const GArray *teams = NULL; const GPtrArray *teamsp = NULL; if(clid < ID_CUP_START) { teams = (GArray*)league_cup_get_teams(clid); for(i=0;ilen;i++) if(&g_array_index(teams, Team, i) != current_user.tm) for(j=0;jlen;j++) g_ptr_array_add(players, &g_array_index(g_array_index(teams, Team, i).players, Player, j)); } else { teamsp = (GPtrArray*)league_cup_get_teams(clid); for(i=0;ilen;i++) if((Team*)g_ptr_array_index(teamsp, i) != current_user.tm) for(j=0;j<((Team*)g_ptr_array_index(teamsp, i))->players->len;j++) g_ptr_array_add(players, &g_array_index(((Team*)g_ptr_array_index(teamsp, i))->players, Player, j)); } treeview_show_player_list(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")), players, treeview_helper_get_attributes_from_scout(current_user.scout), FALSE, FALSE); } GtkTreeModel* treeview_create_preview(void) { #ifdef DEBUG printf("treeview_create_preview\n"); #endif gint i; GtkListStore *ls; GPtrArray *fixtures = fixture_get_coming(current_user.tm); gint max = MIN(const_int("int_treeview_coming_matches"), fixtures->len); GtkTreeIter iter; if(fixtures->len == 0) { free_g_ptr_array(&fixtures); return NULL; } ls = gtk_list_store_new(5, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF); for(i=0;ilen;i++) { if(((Fixture*)g_ptr_array_index(fixtures, i))->clid >= ID_CUP_START || ((Fixture*)g_ptr_array_index(fixtures, i))->clid == current_user.tm->clid || opt_user_int("int_opt_user_show_all_leagues")) { if(i == 0 || ((Fixture*)g_ptr_array_index(fixtures, i))->clid != ((Fixture*)g_ptr_array_index(fixtures, i - 1))->clid) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, -1); treeview_create_fixtures_header((Fixture*)g_ptr_array_index(fixtures, i), ls, TRUE); } treeview_create_fixture((Fixture*)g_ptr_array_index(fixtures, i), ls); } } g_ptr_array_free(fixtures, TRUE); return GTK_TREE_MODEL(ls); } /** Show a fixture list of all matches in the given week and round. */ void treeview_show_fixtures_week(gint week_number, gint week_round_number) { #ifdef DEBUG printf("treeview_show_fixtures_week\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_fixtures(treeview); model = treeview_create_fixtures_week(week_number, week_round_number); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } GtkTreeModel* treeview_create_user_history(void) { #ifdef DEBUG printf("treeview_create_user_history\n"); #endif gint i; gchar buf[SMALL]; GtkListStore *ls = gtk_list_store_new(5, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING); GtkTreeIter iter; for(i=0;ilen;i++) { user_history_to_string(&g_array_index(current_user.history, UserHistory, i), buf); gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 3, treeview_helper_get_user_history_icon( g_array_index(current_user.history, UserHistory, i).type)); gtk_list_store_set(ls, &iter, 0, g_array_index(current_user.history, UserHistory, i).season, 1, g_array_index(current_user.history, UserHistory, i).week, 2, g_array_index(current_user.history, UserHistory, i).team_name, 4, buf, -1); } return GTK_TREE_MODEL(ls); } void treeview_set_up_user_history(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_user_history\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; /* Season. */ gchar *titles[3] ={_("Sea"), _("Week"), _("Team")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_rules_hint(treeview, TRUE); gtk_tree_view_set_headers_visible(treeview, TRUE); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "text", i); g_object_set(renderer, "xalign", 0.5, NULL); } col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 3); g_object_set(renderer, "xalign", 0.5, NULL); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Event")); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 4); } /** Show the history array of the current user in the right treeview. */ void treeview_show_user_history(void) { #ifdef DEBUG printf("treeview_show_user_history\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkTreeModel *model = NULL; treeview_helper_clear(treeview); treeview_set_up_user_history(treeview); model = treeview_create_user_history(); gtk_tree_view_set_model(treeview, model); g_object_unref(model); } void treeview_create_league_stats(GtkListStore *ls, const LeagueStat *league_stat) { #ifdef DEBUG printf("treeview_create_league_stats\n"); #endif gint i, j; gchar buf[SMALL], buf2[SMALL], buf3[SMALL], buf4[SMALL]; GtkTreeIter iter; GArray *teams[2] = {league_stat->teams_off, league_stat->teams_def}; GArray *players[2] = {league_stat->player_scorers, league_stat->player_goalies}; gchar *team_titles[2] = {_("Best offensive teams"), _("Best defensive teams")}; gchar *team_icons[2] = {const_app("string_treeview_league_stats_off_teams_icon"), const_app("string_treeview_league_stats_def_teams_icon")}; gchar *player_titles[2][2] = {{_("Best goal scorers"), _("Shot %")}, {_("Best goalkeepers"), /* % of saves for goalies (#goals / #shots) */ _("Save %")}}; gchar *player_icons[2] = {const_app("string_treeview_league_stats_scorers_icon"), const_app("string_treeview_league_stats_goalies_icon")}; gchar *colour_fg = NULL, *colour_bg = NULL; gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, league_stat->league_symbol); gtk_list_store_set(ls, &iter, 1, const_int("int_treeview_helper_int_empty"), 2, league_stat->league_name, 3, "", 4, "", 5, "", -1); for(i=0;i<2;i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, const_int("int_treeview_helper_int_empty"), 2, "", 3, "", 4, "", 5, "", -1); gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, team_icons[i]); gtk_list_store_set(ls, &iter, 1, const_int("int_treeview_helper_int_empty"), 2, team_titles[i], 4, _("Goals"), -1); for(j=0;jlen;j++) { sprintf(buf, "%d : %d", g_array_index(teams[i], Stat, j).value1, g_array_index(teams[i], Stat, j).value2); treeview_helper_set_user_colours( g_array_index(teams[i], Stat, j).team_name, &colour_bg, &colour_fg); sprintf(buf2, "%s", colour_bg, colour_fg, g_array_index(teams[i], Stat, j).team_name); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, j + 1, 2, buf2, 4, buf, 5, "", -1); } } for(i=0;i<2;i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, const_int("int_treeview_helper_int_empty"), 2, "", 3, "", 4, "", 5, "", -1); gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, player_icons[i]); gtk_list_store_set(ls, &iter, 1, const_int("int_treeview_helper_int_empty"), /* Goals. */ 2, player_titles[i][0], 3, _("Go"), /* Goals per game. */ 4, _("Go/Ga"), 5, player_titles[i][1], -1); for(j=0;jlen;j++) { sprintf(buf, "%.1f", (gfloat)g_array_index(players[i], Stat, j).value1 / (gfloat)g_array_index(players[i], Stat, j).value2); if(i == 0) sprintf(buf2, "%.1f %%", (g_array_index(players[i], Stat, j).value3 > 0) ? 100 * ((gfloat)g_array_index(players[i], Stat, j).value1 / (gfloat)g_array_index(players[i], Stat, j).value3) : 0); else sprintf(buf2, "%.1f %%", (g_array_index(players[i], Stat, j).value3 > 0) ? 100 * (1 - (gfloat)g_array_index(players[i], Stat, j).value1 / (gfloat)g_array_index(players[i], Stat, j).value3) : 0); treeview_helper_set_user_colours( g_array_index(players[i], Stat, j).team_name, &colour_bg, &colour_fg); sprintf(buf3, "%s (%s)", colour_bg, colour_fg, g_array_index(players[i], Stat, j).value_string, g_array_index(players[i], Stat, j).team_name); sprintf(buf4, "%d", g_array_index(players[i], Stat, j).value1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, j + 1, 2, buf3, 3, buf4, 4, buf, 5, buf2, -1); } } } void treeview_set_up_league_stats(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_league_stats\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_NONE); gtk_tree_view_set_rules_hint(treeview, FALSE); gtk_tree_view_set_headers_visible(treeview, FALSE); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 0); g_object_set(renderer, "xalign", 0.5, NULL); col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, treeview_helper_int_to_cell, NULL, NULL); for(i=2;i<6;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i); if(i > 3) g_object_set(renderer, "xalign", 0.5, NULL); } } /** Show the stats of the league with specified id. */ void treeview_show_league_stats(gint clid) { #ifdef DEBUG printf("treeview_show_league_stats\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkListStore *model = gtk_list_store_new(6, GDK_TYPE_PIXBUF, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); treeview_helper_clear(treeview); treeview_set_up_league_stats(treeview); treeview_create_league_stats(model, &league_from_clid(clid)->stats); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); g_object_unref(model); } void treeview_create_season_history_champions(GtkListStore *ls, const GArray* league_champs, const GArray *cup_champs) { #ifdef DEBUG printf("treeview_create_season_history_champions\n"); #endif gint i, j; GtkTreeIter iter; const GArray *champs[2] = {league_champs, cup_champs}; gchar *titles[2] = {_("League champions"), _("Cup champions")}; gchar *icons[2] = {const_app("string_treeview_season_hist_league_champions_icon"), const_app("string_treeview_season_hist_cup_champions_icon")}; for(i=0;i<2;i++) { gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, icons[i]); gtk_list_store_set(ls, &iter, 1, const_int("int_treeview_helper_int_empty"), 2, titles[i], 3, "", 4, "", 5, "", -1); for(j=0;jlen;j++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, const_int("int_treeview_helper_int_empty"), 2, g_array_index(champs[i], ChampStat, j).cl_name, 3, g_array_index(champs[i], ChampStat, j).team_name, 4, "", 5, "", -1); } gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, NULL, 1, const_int("int_treeview_helper_int_empty"), 2, "", 3, "", 4, "", 5, "", -1); } } /** Show the season history with given index in the season_stats array and the specified page. @param page Either a page of league stats (if != -1) or -1 which means we show the champions. */ void treeview_show_season_history(gint page, gint idx) { #ifdef DEBUG printf("treeview_show_season_history\n"); #endif gchar buf[SMALL]; GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); GtkListStore *model = gtk_list_store_new(6, GDK_TYPE_PIXBUF, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); GtkTreeIter iter; SeasonStat *stat = &g_array_index(season_stats, SeasonStat, idx); treeview_helper_clear(treeview); treeview_set_up_league_stats(treeview); sprintf(buf, _("Season %d"), stat->season_number); gtk_list_store_append(model, &iter); gtk_list_store_set(model, &iter, 0, NULL, 1, const_int("int_treeview_helper_int_empty"), 2, buf, -1); if(page != -1) treeview_create_league_stats( model, &g_array_index(stat->league_stats, LeagueStat, page)); else treeview_create_season_history_champions( model, stat->league_champs, stat->cup_champs); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); g_object_unref(model); } /** Create the model for the startup country files combo. @param country_list The list of country files found. */ GtkTreeModel* treeview_create_country_list(const GPtrArray *country_list) { #ifdef DEBUG printf("treeview_create_country_list\n"); #endif gint i; guint j; GtkTreeStore *ls = gtk_tree_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING); gchar buf[SMALL]; gchar **dir_split_up; // This will keep the iterators for each level of the TreeStore GPtrArray *iterators; iterators = g_ptr_array_new (); gboolean create_new_line; // This variable will be used to lookup gchar* previous_element; gchar* current_country; gchar* buf2; for(i=0;ilen;i++) { // We get countries as /<...>/ // We then try to build a tree using "/ or \" as a separator // The list is already sorted, so we don't need to verify current_country = g_strdup((gchar*)g_ptr_array_index(country_list, i)); if (g_str_has_prefix(current_country,G_DIR_SEPARATOR_S)) { // Strip leading directory delimiter buf2 = g_strdup((gchar*)current_country); sprintf(current_country, "%.*s", (gint)strlen(current_country) - 1, &buf2[1]); g_free(buf2); } dir_split_up = g_strsplit_set (current_country, G_DIR_SEPARATOR_S, -1); // We only go up to the before last column. We don't want to show the // file itself for (j=0; jlenlen;i++) { gtk_list_store_append(ls, &iter); if(g_str_has_prefix(g_array_index(help_list.list, Option, i).name, "string_contrib_title")) { sprintf(buf, "\n%s", const_app("string_help_window_title_attribute"), g_array_index(help_list.list, Option, i).string_value); gtk_list_store_set(ls, &iter, 0, buf, -1); } else if(g_str_has_prefix(g_array_index(help_list.list, Option, i).name, "string_contrib_")) { strcpy(buf, g_array_index(help_list.list, Option, i).string_value); gtk_list_store_set(ls, &iter, 0, buf, -1); } } gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(ls)); g_object_unref(ls); g_free(help_file); free_option_list(&help_list, FALSE); } GtkTreeModel* treeview_create_league_list(void) { #ifdef DEBUG printf("treeview_create_league_list\n"); #endif gint i; GtkListStore *ls = gtk_list_store_new(1, G_TYPE_STRING); GtkTreeIter iter; gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Current league"), -1); for(i=0;ilen;i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, lig(i).name, -1); } return GTK_TREE_MODEL(ls); } /** Show the league list in the combo box in the startup window. */ void treeview_show_leagues_combo(void) { #ifdef DEBUG printf("treeview_show_leagues_combo\n"); #endif GtkTreeModel *model = treeview_create_league_list(); GtkComboBox *combo_leagues = GTK_COMBO_BOX(lookup_widget(window.startup, "combobox_start_league")); GtkCellRenderer *renderer = NULL; gtk_combo_box_set_model(combo_leagues, model); g_object_unref(model); gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo_leagues)); renderer = treeview_helper_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_leagues), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_leagues), renderer, "text", 0, NULL); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_leagues), 0); } GtkTreeModel* treeview_create_language_list(void) { #ifdef DEBUG printf("treeview_create_language_list\n"); #endif gint i; GtkListStore *ls = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING); GtkTreeIter iter; GPtrArray *names = misc_separate_strings(const_str("string_language_names")); GPtrArray *symbols = misc_separate_strings(const_str("string_language_symbols")); gtk_list_store_append(ls, &iter); /* Language is system-set (not user chosen). */ gtk_list_store_set(ls, &iter, 0, NULL, 1, _("System"), -1); for(i=0;ilen;i++) { gtk_list_store_append(ls, &iter); treeview_helper_insert_icon((GtkTreeModel*)ls, &iter, 0, (gchar*)g_ptr_array_index(symbols, i)); gtk_list_store_set(ls, &iter, 1, (gchar*)g_ptr_array_index(names, i), -1); } free_gchar_array(&names); free_gchar_array(&symbols); return GTK_TREE_MODEL(ls); } /** Show the list of available languages. */ void treeview_show_language_combo(void) { #ifdef DEBUG printf("treeview_show_language_combo\n"); #endif GtkTreeModel *model = treeview_create_language_list(); GtkComboBox *combo_languages = GTK_COMBO_BOX(lookup_widget(window.options, "combobox_languages")); GtkCellRenderer *renderer = NULL; gint idx = language_get_current_index(); gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo_languages)); renderer = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_languages), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_languages), renderer, "pixbuf", 0, NULL); renderer = treeview_helper_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_languages), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_languages), renderer, "text", 1, NULL); gtk_combo_box_set_model(combo_languages, model); g_object_unref(model); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_languages), idx + 1); } GtkTreeModel* treeview_create_training_hotel_list(void) { #ifdef DEBUG printf("treeview_create_training_hotel_list\n"); #endif GtkListStore *ls = gtk_list_store_new(1, G_TYPE_STRING); GtkTreeIter iter; gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Good Hotel"), -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("First-Class Hotel"), -1); gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, _("Premium Hotel"), -1); return GTK_TREE_MODEL(ls); } /** Show the list of training camp hotels. */ void treeview_show_training_hotels_combo(void) { #ifdef DEBUG printf("treeview_show_training_hotels_combo\n"); #endif GtkTreeModel *model = treeview_create_training_hotel_list(); GtkComboBox *combo_hotel = GTK_COMBO_BOX(lookup_widget(window.options, "combobox_hotel")); GtkCellRenderer *renderer = NULL; gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo_hotel)); renderer = treeview_helper_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_hotel), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_hotel), renderer, "text", 0, NULL); gtk_combo_box_set_model(combo_hotel, model); g_object_unref(model); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_hotel), opt_user_int("int_opt_user_training_camp_hotel") - 1); } GtkTreeModel* treeview_create_sponsors(const GArray *sponsors) { #ifdef DEBUG printf("treeview_create_sponsors\n"); #endif gint i; GtkListStore *ls = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT); GtkTreeIter iter; for(i=0;ilen;i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, g_array_index(sponsors, UserSponsor, i).name->str, 1, g_array_index(sponsors, UserSponsor, i).contract / 4, 2, g_array_index(sponsors, UserSponsor, i).benefit, -1); } for(i=1;i<3;i++) gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(ls), i, treeview_helper_int_compare, GINT_TO_POINTER(i), NULL); return GTK_TREE_MODEL(ls); } void treeview_set_up_sponsors(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_set_up_sponsors\n"); #endif gint i; GtkTreeViewColumn *col; GtkCellRenderer *renderer; gchar *titles[3] = {_("Company"), _("Contract length\n(Months)"), _("Money / week")}; gtk_tree_selection_set_mode(gtk_tree_view_get_selection(treeview), GTK_SELECTION_BROWSE); gtk_tree_view_set_rules_hint(treeview, TRUE); gtk_tree_view_set_headers_visible(treeview, TRUE); for(i=0;i<3;i++) { col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, titles[i]); gtk_tree_view_append_column(treeview, col); renderer = treeview_helper_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_add_attribute(col, renderer, "markup", i); if(i > 0) { g_object_set(renderer, "xalign", 0.5, NULL); gtk_tree_view_column_set_sort_column_id(col, i); } } } /** Show a list of sponsor offers. */ void treeview_show_sponsors(const GArray *sponsors) { #ifdef DEBUG printf("treeview_show_sponsors\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.sponsors, "treeview_sponsors")); GtkTreeModel *model = treeview_create_sponsors(sponsors); GtkTreePath *path = gtk_tree_path_new_from_string("0"); treeview_helper_clear(treeview); treeview_set_up_sponsors(treeview); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(model)); gtk_tree_selection_select_path(gtk_tree_view_get_selection(treeview), path); g_object_unref(model); gtk_tree_path_free(path); } bygfoot-2.3.2/src/live_game.h0000644000175000017500000000566311225071373015046 0ustar eliaselias/* live_game.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LIVE_GAME_H #define LIVE_GAME_H #include "bygfoot.h" #include "live_game_struct.h" void live_game_calculate_fixture(Fixture *fix, LiveGame *live_game); void live_game_initialize(Fixture *fix, LiveGame *live_game); gboolean query_live_game_event_is_break(gint minute, gint time); gboolean query_live_game_penalties_over(void); gint live_game_get_break(void); gint live_game_get_time(const LiveGameUnit *unit); gint live_game_get_minute(void); gint live_game_get_minutes_remaining(const LiveGameUnit *unit); void live_game_create_unit(void); void live_game_fill_new_unit(LiveGameUnit *new); void live_game_create_start_unit(void); void live_game_evaluate_unit(LiveGameUnit *unit); void live_game_event_foul(void); void live_game_event_lost_possession(void); void live_game_event_injury(gint team, gint player, gboolean create_new); void live_game_event_stadium(void); void live_game_event_scoring_chance(void); void live_game_event_penalty(); void live_game_event_general(gboolean create_new); void live_game_event_general_get_players(void); void live_game_event_free_kick(void); void live_game_event_send_off(gint team, gint player, gboolean second_yellow); void live_game_event_duel(void); gboolean query_live_game_second_yellow(gint team, gint player); void live_game_reset(LiveGame *live_game, Fixture *fix, gboolean free_variable); gint live_game_unit_get_minute(const LiveGameUnit *unit); gint live_game_get_area(const LiveGameUnit *unit); gfloat live_game_pit_teams(const LiveGameUnit *unit, gfloat exponent); void live_game_injury_get_player(void); void live_game_resume(void); void live_game_event_substitution(gint team_number, gint sub_in, gint sub_out); void live_game_event_team_change(gint team_number, gint event_type); void live_game_finish_unit(void); LiveGameUnit* live_game_unit_before(const LiveGameUnit* unit, gint gap); gint live_game_event_get_verbosity(gint event_type); void live_game_unit_result_to_buf(const LiveGameUnit *unit, gchar *buf, gboolean swap); gint live_game_penalties_taken(void); #endif bygfoot-2.3.2/src/misc2_callbacks.c0000644000175000017500000004672411225071373016130 0ustar eliaselias/* misc2_callbacks.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "callbacks.h" #include "callback_func.h" #include "debug.h" #include "finance.h" #include "free.h" #include "game_gui.h" #include "league.h" #include "job.h" #include "load_save.h" #include "main.h" #include "misc2_callbacks.h" #include "misc2_callback_func.h" #include "misc2_interface.h" #include "player.h" #include "support.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "treeview2.h" #include "treeview_helper.h" #include "user.h" #include "window.h" void on_button_offer_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_offer_ok_clicked\n"); #endif gboolean changed = TRUE; gchar *team_name = g_strdup(current_user.tm->name); if(stat2 == STATUS_JOB_EXCHANGE_SHOW_TEAM) changed = misc2_callback_evaluate_job_application((Job*)statp, ¤t_user); else user_change_team(¤t_user, (Team*)statp); if(changed) { if(stat2 == STATUS_JOB_OFFER_SUCCESS || stat2 == STATUS_JOB_EXCHANGE_SHOW_TEAM) user_history_add(¤t_user, USER_HISTORY_JOB_OFFER_ACCEPTED, team_name, current_user.tm->name, league_cup_get_name_string(current_user.tm->clid), NULL); stat0 = STATUS_MAIN; game_gui_show_main(); } g_free(team_name); window_destroy(&window.job_offer); setsav0; } void on_button_offer_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_offer_cancel_clicked\n"); #endif if(stat2 != STATUS_JOB_OFFER_SUCCESS && stat2 != STATUS_JOB_EXCHANGE_SHOW_TEAM) { if(users->len == 1) main_exit_program(EXIT_USER_FIRED, NULL); else { user_remove(cur_user, TRUE); cur_user = 0; } } window_destroy(&window.job_offer); if(stat0 != STATUS_SHOW_JOB_EXCHANGE) { stat0 = STATUS_MAIN; game_gui_show_main(); } } gboolean on_button_warning_clicked (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_button_warning_clicked\n"); #endif window_destroy(&window.warning); if(stat4 == STATUS_SHOW_EVENT) user_event_show_next(); return FALSE; } void on_button_digits_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_digits_ok_clicked\n"); #endif GtkSpinButton *spinbutton1 = GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton1")), *spinbutton2 = GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton2")); gint values[2] = {gtk_spin_button_get_value_as_int(spinbutton1), gtk_spin_button_get_value_as_int(spinbutton2)}; gboolean destroy_window = TRUE; switch(stat1) { case STATUS_GET_LOAN: finance_get_loan(values[0]); on_menu_show_finances_activate(NULL, NULL); break; case STATUS_PAY_LOAN: finance_pay_loan(¤t_user, values[0]); on_menu_show_finances_activate(NULL, NULL); if(current_user.debt != 0 && current_user.alr_start_week != 0) window_show_yesno(_("Adjust repayment schedule?")); break; case STATUS_SHOW_TRANSFER_LIST: if(transfer_add_offer(stat2, current_user.tm, values[0], values[1])) game_gui_print_message(_("Your offer has been updated.")); else game_gui_print_message(_("Your offer will be considered next week.")); break; case STATUS_CUSTOM_STRUCTURE: destroy_window = misc2_callback_change_structure(values[1]); if(destroy_window && stat0 == STATUS_LIVE_GAME_PAUSE) gtk_widget_set_sensitive(window.main, TRUE); break; case STATUS_SET_YA_PERCENTAGE: current_user.youth_academy.percentage = values[1]; break; case STATUS_PLACE_BET: if(!bet_place(stat2, stat3, values[0])) destroy_window = FALSE; break; } if(destroy_window) window_destroy(&window.digits); game_gui_set_main_window_header(); setsav0; } void on_button_digits_alr_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_digits_alr_clicked\n"); #endif on_button_digits_ok_clicked(NULL, NULL); on_automatic_loan_repayment_activate(NULL, NULL); } void on_button_digits_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_digits_cancel_clicked\n"); #endif window_destroy(&window.digits); } gboolean on_window_yesno_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_yesno_delete_event\n"); #endif on_button_yesno_no_clicked(NULL, NULL); if(stat4 == STATUS_SHOW_EVENT) user_event_show_next(); return FALSE; } void on_button_yesno_yes_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_yesno_yes_clicked\n"); #endif window_destroy(&window.yesno); setsav0; switch(stat1) { default: debug_print_message("on_button_yesno_yes_clicked: unknown status %d\n", stat1); break; case STATUS_PAY_LOAN: on_automatic_loan_repayment_activate(NULL, NULL); break; case STATUS_FIRE_PLAYER: player_remove_from_team(current_user.tm, stat2); current_user.money -= stat3; current_user.money_out[1][MON_OUT_COMPENSATIONS] -= stat3; treeview_show_user_player_list(); game_gui_set_main_window_header(); break; case STATUS_USER_MANAGEMENT: user_remove(stat2, TRUE); treeview_show_users( GTK_TREE_VIEW(lookup_widget(window.user_management, "treeview_user_management_users"))); treeview_show_team_list( GTK_TREE_VIEW(lookup_widget(window.user_management, "treeview_user_management_teams")), FALSE, FALSE); break; case STATUS_QUERY_UNFIT: load_save_autosave(); callback_show_next_live_game(); break; case STATUS_QUERY_QUIT: main_exit_program(EXIT_OK, NULL); break; case STATUS_QUERY_USER_NO_TURN: load_save_autosave(); callback_show_next_live_game(); break; case STATUS_QUERY_KICK_YOUTH: free_player(&g_array_index(current_user.youth_academy.players, Player, selected_row)); g_array_remove_index(current_user.youth_academy.players, selected_row); on_menu_show_youth_academy_activate(NULL, NULL); selected_row = -1; break; } if(stat4 == STATUS_SHOW_EVENT) user_event_show_next(); } void on_button_yesno_no_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_yesno_no_clicked\n"); #endif window_destroy(&window.yesno); if(stat4 == STATUS_SHOW_EVENT) user_event_show_next(); } void on_button_contract_offer_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_contract_offer_clicked\n"); #endif misc2_callback_contract_offer(); } void on_button_contract_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_contract_cancel_clicked\n"); #endif window_destroy(&window.contract); } gboolean on_window_contract_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_contract_delete_event\n"); #endif if(GTK_WIDGET_IS_SENSITIVE(lookup_widget(window.contract, "button_contract_cancel"))) window_destroy(&window.contract); return TRUE; } void on_entry_user_management_activate (GtkEntry *entry, gpointer user_data) { #ifdef DEBUG printf("on_entry_user_management_activate\n"); #endif on_button_user_management_add_clicked(NULL, NULL); } void on_button_user_management_add_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_user_management_add_clicked\n"); #endif misc2_callback_add_user(); } void on_button_user_management_close_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_user_management_close_clicked\n"); #endif window_destroy(&window.user_management); on_button_back_to_main_clicked(NULL, NULL); } gboolean on_treeview_user_management_users_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_treeview_user_management_users_button_press_event\n"); #endif gchar buf[SMALL]; gint idx = -1; if(!treeview_helper_select_row(GTK_TREE_VIEW(widget), event)) return TRUE; idx = treeview_helper_get_index(GTK_TREE_VIEW(widget), 0) - 1; if(users->len == 1) { game_gui_show_warning(_("You can't play Bygfoot without users!")); return TRUE; } stat2 = idx; sprintf(buf, _("Remove user %s from the game?"), usr(idx).name); window_show_yesno(buf); return FALSE; } void on_treeview_user_management_teams_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { #ifdef DEBUG printf("on_treeview_user_management_teams_row_activated\n"); #endif on_button_user_management_add_clicked(NULL, NULL); } gboolean on_window_debug_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_debug_delete_event\n"); #endif on_button_debug_close_activate(NULL, NULL); return FALSE; } void on_button_debug_apply_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_debug_apply_clicked\n"); #endif GtkEntry *entry_debug = GTK_ENTRY(lookup_widget(window.wdebug, "entry_debug")); const gchar *entry_text = gtk_entry_get_text(entry_debug); debug_action(entry_text); gtk_entry_set_text(entry_debug, ""); } void on_button_debug_close_activate (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_debug_close_activate\n"); #endif window_destroy(&window.wdebug); } void on_entry_debug_activate (GtkEntry *entry, gpointer user_data) { #ifdef DEBUG printf("on_entry_debug_activate\n"); #endif on_button_debug_apply_clicked(NULL, NULL); } gboolean on_window_job_offer_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_job_offer_delete_event\n"); #endif on_button_offer_cancel_clicked(NULL, NULL); return FALSE; } gboolean on_window_digits_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_digits_delete_event\n"); #endif on_button_digits_cancel_clicked(NULL, NULL); return FALSE; } gboolean on_window_user_management_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_user_management_delete_event\n"); #endif on_button_user_management_close_clicked(NULL, NULL); return FALSE; } gboolean on_window_help_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_help_delete_event\n"); #endif on_button_help_close_clicked(NULL, NULL); return FALSE; } void on_button_help_close_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_help_close_clicked\n"); #endif window_destroy(&window.help); } void on_spinbutton1_activate (GtkEntry *entry, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton1_activate\n"); #endif gtk_spin_button_update(GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton1"))); on_button_digits_ok_clicked(NULL, NULL); } void on_spinbutton2_activate (GtkEntry *entry, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton2_activate\n"); #endif gtk_spin_button_update(GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton2"))); on_button_digits_ok_clicked(NULL, NULL); } gboolean on_window_transfer_dialog_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_transfer_dialog_delete_event\n"); #endif on_button_transfer_later_clicked(NULL, NULL); return FALSE; } void on_button_transfer_yes_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_transfer_yes_clicked\n"); #endif if(stat1 == STATUS_TRANSFER_OFFER_USER) misc2_callback_transfer_user_player(); else if(STATUS_TRANSFER_OFFER_CPU) misc2_callback_transfer_cpu_player(); window_destroy(&window.transfer_dialog); } void on_button_transfer_no_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_transfer_no_clicked\n"); #endif gint len = 1; transoff(stat2, 0).status = TRANSFER_OFFER_REJECTED; if(transoff(stat2, 0).tm == current_user.tm) { g_array_remove_index(trans(stat2).offers, 0); len = 0; } if(trans(stat2).offers->len > len) transfer_offers_notify(&trans(stat2), FALSE); treeview_show_user_player_list(); game_gui_set_main_window_header(); on_button_transfers_clicked(NULL, NULL); window_destroy(&window.transfer_dialog); } void on_button_transfer_later_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_transfer_later_clicked\n"); #endif window_destroy(&window.transfer_dialog); } gboolean on_window_mmatches_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_mmatches_delete_event\n"); #endif on_button_mm_reload_close_clicked(NULL, NULL); return TRUE; } gboolean on_treeview_mmatches_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_treeview_mmatches_button_press_event\n"); #endif GtkTreePath *path = NULL; GtkTreeViewColumn *col = NULL; gint col_num = -1, mmidx = -1; if(!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), event->x, event->y, &path, &col, NULL, NULL)) return TRUE; col_num = treeview_helper_get_col_number_column(col); mmidx = gtk_tree_path_get_indices(path)[0]; gtk_tree_path_free(path); if(col_num == -1 || mmidx == -1) { debug_print_message("on_treeview_mmatches_button_press_event: column or row not valid\n"); return TRUE; } misc2_callback_mmatches_button_press(widget, mmidx, col_num); return TRUE; } void on_button_mm_save_close_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_mm_save_close_clicked\n"); #endif const gchar *filename = gtk_entry_get_text(GTK_ENTRY(lookup_widget(window.mmatches, "entry_mm_file"))); user_mm_set_filename(filename, NULL); user_mm_save_file(current_user.mmatches_file, current_user.mmatches); window_destroy(&window.mmatches); } void on_button_mm_add_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_mm_add_clicked\n"); #endif if(current_user.live_game.units->len == 0) { game_gui_show_warning(_("No match stored.")); return; } user_mm_add_last_match(FALSE, FALSE); treeview2_show_mmatches(); } void on_button_mm_file_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_mm_file_clicked\n"); #endif stat5 = STATUS_SELECT_MM_FILE_LOAD; window_show_file_sel(); } void on_button_mm_reload_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_mm_reload_clicked\n"); #endif GtkWidget *treeview = lookup_widget(window.mmatches, "treeview_mmatches"); const gchar *filename = gtk_entry_get_text(GTK_ENTRY(lookup_widget(window.mmatches, "entry_mm_file"))); gtk_widget_hide(treeview); user_mm_load_file(filename, NULL); treeview2_show_mmatches(); gtk_widget_show(treeview); } void on_button_mm_reload_close_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_mm_reload_close_clicked\n"); #endif on_button_mm_reload_clicked(NULL, NULL); on_button_mm_save_close_clicked(NULL, NULL); } void on_button_mm_import_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_mm_import_clicked\n"); #endif stat5 = STATUS_SELECT_MM_FILE_IMPORT; window_show_file_sel(); } bygfoot-2.3.2/src/transfer_struct.h0000644000175000017500000000354711225071373016345 0ustar eliaselias/* transfer_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TRANSFER_STRUCT_H #define TRANSFER_STRUCT_H #include "bygfoot.h" #include "player_struct.h" #include "team_struct.h" /** Structure representing a player on the transfer list. */ typedef struct { /** Team of the player. */ Team *tm; /** Id of player in the team. */ gint id; /** Time until player gets removed from the list. */ gint time; /** Estimated fees and wages for different scout qualities. */ gint fee[QUALITY_END], wage[QUALITY_END]; /** Offers for the player. */ GArray *offers; } Transfer; typedef struct { /** The team that makes the offer. */ Team *tm; /** Transfer fee and wage offer. */ gint fee, wage; /** Whether the offer got accepted or rejected etc. */ gint status; } TransferOffer; enum TransferOfferStatus { TRANSFER_OFFER_NOT_CONSIDERED = 0, TRANSFER_OFFER_ACCEPTED, TRANSFER_OFFER_REJECTED, TRANSFER_OFFER_REJECTED2, TRANSFER_OFFER_END }; #endif bygfoot-2.3.2/src/cup.c0000644000175000017500000011455511225071373013701 0ustar eliaselias/* cup.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "free.h" #include "fixture.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "table.h" #include "team.h" #include "variables.h" #include "xml_league.h" /** Create and return a new cup with default values. @return The new cup. @see #Cup */ Cup cup_new(gboolean new_id) { #ifdef DEBUG printf("cup_new\n"); #endif Cup new; new.name = NULL; new.short_name = NULL; new.symbol = NULL; new.sid = NULL; new.id = (new_id) ? cup_id_new : -1; new.group = -1; new.add_week = 0; new.last_week = -1; new.week_gap = 1; new.yellow_red = 1000; new.talent_diff = 0; new.rounds = g_array_new(FALSE, FALSE, sizeof(CupRound)); new.teams = g_ptr_array_new(); new.team_names = g_ptr_array_new(); new.fixtures = g_array_new(FALSE, FALSE, sizeof(Fixture)); new.week_breaks = g_array_new(FALSE, FALSE, sizeof(WeekBreak)); new.skip_weeks_with = g_ptr_array_new(); new.bye = g_ptr_array_new(); new.properties = g_ptr_array_new(); new.next_fixture_update_week = -1; new.next_fixture_update_week_round = -1; return new; } /** Return a CupChooseTeam with default values. */ CupChooseTeam cup_choose_team_new(void) { #ifdef DEBUG printf("cup_choose_team_new\n"); #endif #ifdef DEBUG printf("cup_choose_team_new\n"); #endif CupChooseTeam new; new.sid = NULL; new.number_of_teams = -1; new.start_idx = new.end_idx = -1; new.randomly = FALSE; new.generate = FALSE; new.skip_group_check = FALSE; new.from_table = 0; new.preload = TRUE; return new; } /** Return a CupRound with default values. */ CupRound cup_round_new(void) { #ifdef DEBUG printf("cup_round_new\n"); #endif CupRound new; new.name = NULL; new.new_teams = 0; new.byes = -1; new.home_away = TRUE; new.replay = 0; new.neutral = FALSE; new.randomise_teams = TRUE; new.delay = 0; new.round_robin_number_of_groups = 0; new.round_robin_number_of_advance = 0; new.round_robin_number_of_best_advance = 0; new.round_robins = 2; new.rr_breaks = g_array_new(FALSE, FALSE, sizeof(gint)); new.two_match_weeks[0] = g_array_new(FALSE, FALSE, sizeof(gint)); new.two_match_weeks[1] = g_array_new(FALSE, FALSE, sizeof(gint)); new.two_match_week = FALSE; new.tables = g_array_new(FALSE, FALSE, sizeof(Table)); new.choose_teams = g_array_new(FALSE, FALSE, sizeof(CupChooseTeam)); new.teams = g_array_new(FALSE, FALSE, sizeof(Team)); new.waits = g_array_new(FALSE, FALSE, sizeof(CupRoundWait)); new.team_ptrs = g_ptr_array_new(); return new; } /** Reset some arrays at the beginning of a new season. */ void cup_reset(Cup *cup) { #ifdef DEBUG printf("cup_reset\n"); #endif gint i; free_gchar_array(&cup->team_names); cup->team_names = g_ptr_array_new(); if(cup->teams->len > 0) { g_ptr_array_free(cup->teams, TRUE); cup->teams = g_ptr_array_new(); } g_array_free(cup->fixtures, TRUE); cup->fixtures = g_array_new(FALSE, FALSE, sizeof(Fixture)); free_g_ptr_array(&cup->bye); for(i=0;irounds->len;i++) { if(g_array_index(cup->rounds, CupRound, i).tables->len > 0) { free_tables(&g_array_index(cup->rounds, CupRound, i).tables); g_array_index(cup->rounds, CupRound, i).tables = g_array_new(FALSE, FALSE, sizeof(Table)); } if(g_array_index(cup->rounds, CupRound, i).teams->len > 0) free_teams_array(&g_array_index(cup->rounds, CupRound, i).teams, TRUE); g_ptr_array_free(g_array_index(cup->rounds, CupRound, i).team_ptrs, TRUE); g_array_index(cup->rounds, CupRound, i).team_ptrs = g_ptr_array_new(); } } /** Find out whether a choose_team definition refers to a league in the country. If so, no teams get loaded for that choose_team. */ gboolean query_cup_choose_team_is_league(const gchar *sid) { #ifdef DEBUG printf("query_cup_choose_team_is_league\n"); #endif gint i; for(i=0;ilen;i++) if(strcmp(lig(i).sid, sid) == 0) return TRUE; return FALSE; } /** Write the cup or league of the chooseteam into the appropriate pointer and return TRUE; return FALSE if no cup/league is found. */ void cup_get_choose_team_league_cup(const CupChooseTeam *ct, const League **league, const Cup **cup) { #ifdef DEBUG printf("cup_get_choose_team_league_cup\n"); #endif gint i, idx; gchar trash[SMALL]; gchar prefix[SMALL]; *league = NULL; *cup = NULL; sscanf(ct->sid, "%[^0-9]%d", trash, &idx); if(g_str_has_prefix(ct->sid, "LEAGUE") && idx >=0 && idx <= ligs->len) { *league = &lig(idx - 1); *cup = NULL; } else if(g_str_has_prefix(ct->sid, "CUP") && idx >=0 && idx <= cps->len) { *cup = &cp(idx - 1); *league = NULL; } else { if(g_str_has_suffix(ct->sid, "*")) g_utf8_strncpy(prefix, ct->sid, g_utf8_strlen(ct->sid, -1) - 1); else strcpy(prefix, "NONAME"); for(i=0;ilen;i++) { if(strcmp(lig(i).sid, ct->sid) == 0 || g_str_has_prefix(lig(i).sid, prefix)) { *league = &lig(i); *cup = NULL; break; } } for(i=0;ilen;i++) { if(strcmp(cp(i).sid, ct->sid) == 0 || g_str_has_prefix(cp(i).sid, prefix)) { *cup = &cp(i); *league = NULL; break; } } } if(*league == NULL && *cup == NULL) main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_get_choose_team_league_cup: no league nor cup found for chooseteam %s", ct->sid); if(debug > 100) { if(*league == NULL) printf("cup_get_choose_team_league_cup: sid %s cup %s\n", ct->sid, (*cup)->name); else printf("cup_get_choose_team_league_cup: sid %s league %s\n", ct->sid, (*league)->name); } } /** Load the pointers to the teams participating in the cup round. If necessary, teams are generated and stored in the teams array of the cup round. */ void cup_get_team_pointers(Cup *cup, gint round, GPtrArray *teams_sorted, gboolean preload) { #ifdef DEBUG printf("cup_get_team_pointers\n"); #endif gint i, existing_teams; CupRound *cup_round = &g_array_index(cup->rounds, CupRound, round); GPtrArray *teams = cup_round->team_ptrs; if(debug > 60) g_print("cup_get_team_pointers %s round %d\n", cup->name, round); existing_teams = cup_round->teams->len; for(i=0;ichoose_teams->len;i++) if(g_array_index(cup_round->choose_teams, CupChooseTeam, i).preload == preload) { if(g_array_index(cup_round->choose_teams, CupChooseTeam, i).generate) cup_load_choose_team_generate( cup, cup_round, &g_array_index(cup_round->choose_teams, CupChooseTeam, i)); else cup_load_choose_team( cup, teams, teams_sorted, &g_array_index(cup_round->choose_teams, CupChooseTeam, i)); } if(cup_round->teams->len - existing_teams > 0) while(teams->len + cup_round->teams->len - existing_teams > cup_round->new_teams) { free_team(&g_array_index(cup_round->teams, Team, cup_round->teams->len - 1)); g_array_remove_index(cup_round->teams, cup_round->teams->len - 1); } for(i=existing_teams;iteams->len;i++) { team_generate_players_stadium(&g_array_index(cup_round->teams, Team, i), 0); g_ptr_array_add(cup->teams, &g_array_index(cup_round->teams, Team, i)); g_ptr_array_add(teams, &g_array_index(cup_round->teams, Team, i)); } if(debug > 70) for(i=0;ilen;i++) g_print("cup_get_team_pointers: %s round %d team %d %s (clid %d)\n", cup->name, round, i, ((Team*)g_ptr_array_index(teams, i))->name, ((Team*)g_ptr_array_index(teams, i))->clid); } /** Get the pointers to the teams (already generated, in one of the leagues or cups) specified in the chooseteam. Add them to the 'teams' pointer array. */ void cup_load_choose_team(Cup *cup, GPtrArray *teams, GPtrArray *teams_sorted, const CupChooseTeam *ct) { #ifdef DEBUG printf("cup_load_choose_team\n"); #endif gint i; gint debug_num = teams->len; const League *league = NULL; const Cup *cup_temp = NULL; if(debug > 60) g_print("cup_load_choose_team: %s, %s, teams %d to %d, random: %d \n", cup->name, ct->sid, ct->start_idx, ct->end_idx, ct->randomly); cup_get_choose_team_league_cup(ct, &league, &cup_temp); if(cup_temp == NULL) cup_load_choose_team_from_league(cup, league, teams, ct); else cup_load_choose_team_from_cup(cup, cup_temp, teams, teams_sorted, ct); if(debug > 80) for(i=debug_num;ilen;i++) g_print("cup_load_choose_team: %d %s \n", i, ((Team*)g_ptr_array_index(teams, i))->name); } void cup_load_choose_team_from_cup(Cup *cup, const Cup *cup_temp, GPtrArray *teams, GPtrArray *teams_sorted, const CupChooseTeam *ct) { #ifdef DEBUG printf("cup_load_choose_team_from_cup\n"); #endif gint i; gint start, end; gint number_of_teams; GPtrArray *cup_teams_sorted; number_of_teams = 0; cup_teams_sorted = NULL; if(season == 1 && week == 1 && cup->add_week == 0) { if(lig(0).teams->len < ct->number_of_teams) main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_load_choose_team_from_cup: not enough teams in league 0 for chooseteam %s (%d; required: %d) in cup %s\n", ct->sid, lig(0).teams->len, ct->number_of_teams, cup->name); gint permutation[lig(0).teams->len]; math_generate_permutation(permutation, 0, lig(0).teams->len - 1); for(i = ct->start_idx - 1; i <= ct->end_idx - 1; i++) { if(ct->skip_group_check || !query_team_is_in_cups( &g_array_index(lig(0).teams, Team, permutation[i - ct->start_idx + 1]), cup->group)) { g_ptr_array_add(teams, &g_array_index(lig(0).teams, Team, permutation[i - ct->start_idx + 1])); g_ptr_array_add(cup->team_names, g_strdup(g_array_index(lig(0).teams, Team, permutation[i - ct->start_idx + 1]).name)); number_of_teams++; } if(number_of_teams == ct->number_of_teams) break; } if(number_of_teams != ct->number_of_teams) main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_load_choose_team_from_cup (2): not enough teams found in league 0 for chooseteam %s (%d; required: %d) in cup %s (group %d)\n", ct->sid, number_of_teams, ct->number_of_teams, cup->name, cup->group); } else { /* Self-referential cup or no? */ cup_teams_sorted = (cup == cup_temp) ? teams_sorted : cup_get_teams_sorted(cup_temp); if(ct->number_of_teams == -1) { start = 0; end = cup_teams_sorted->len; } else { start = ct->start_idx - 1; end = ct->end_idx; } for(i = start; i < end; i++) { if(ct->skip_group_check || !query_team_is_in_cups( (Team*)g_ptr_array_index(cup_teams_sorted, i), cup->group)) { g_ptr_array_add(teams, g_ptr_array_index(cup_teams_sorted, i)); g_ptr_array_add(cup->team_names, g_strdup(((Team*)g_ptr_array_index(cup_teams_sorted, i))->name)); number_of_teams++; if(number_of_teams == ct->number_of_teams) break; } } if(cup != cup_temp) g_ptr_array_free(cup_teams_sorted, TRUE); if(ct->number_of_teams != -1 && number_of_teams != ct->number_of_teams) main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_load_choose_team_from_cup (3): not enough teams (that don't participate in international cups yet) found in chooseteam %s for cup %s (%d specified, %d found) cup group %d.\n ", ct->sid, cup->name, ct->number_of_teams, number_of_teams, cup->group); } } void cup_load_choose_team_from_league(Cup *cup, const League *league, GPtrArray *teams, const CupChooseTeam *ct) { #ifdef DEBUG printf("cup_load_choose_team_from_league\n"); #endif gint start, end; gint number_of_teams; gint j; Table *table; number_of_teams = 0; if(league->tables->len == 0) table = &g_array_index(league->tables, Table, 0); else table = &g_array_index(league->tables, Table, ct->from_table); if(ct->number_of_teams == -1) { for(j=0;jelements->len;j++) { g_ptr_array_add( teams, team_of_id( g_array_index(table->elements, TableElement, j).team_id)); g_ptr_array_add( cup->team_names, g_strdup(team_of_id(g_array_index(table->elements, TableElement, j).team_id)->name)); } } else { start = ct->start_idx - 1; end = ct->end_idx - start; gint order[end]; for(j=0;jrandomly) math_generate_permutation(order, start, start + end - 1); for(j = 0; j < end; j++) { if(debug > 80) g_print("j %d order %d team %s isinint %d numteams %d\n", j, order[j], team_of_id(g_array_index(table->elements, TableElement, order[j]).team_id)->name, query_team_is_in_cups( team_of_id(g_array_index(table->elements, TableElement, order[j]).team_id), cup->group), number_of_teams); if(ct->skip_group_check || !query_team_is_in_cups( team_of_id(g_array_index(table->elements, TableElement, order[j]).team_id), cup->group)) { g_ptr_array_add(teams, team_of_id(g_array_index(table->elements, TableElement, order[j]).team_id)); g_ptr_array_add( cup->team_names, g_strdup(team_of_id(g_array_index(table->elements, TableElement, order[j]).team_id)->name)); number_of_teams++; if(number_of_teams == ct->number_of_teams) break; } } } if(ct->number_of_teams != -1 && number_of_teams != ct->number_of_teams) main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_load_choose_team_from_league (1): not enough teams (that don't participate in international cups yet) found in chooseteam %s for cup %s (%d specified, %d found) cup group %d.\n ", ct->sid, cup->name, ct->number_of_teams, number_of_teams, cup->group); } /** Load the teams specified in the chooseteam from a non-country league. */ void cup_load_choose_team_generate(Cup *cup, CupRound *cup_round, const CupChooseTeam *ct) { #ifdef DEBUG printf("cup_load_choose_team_generate\n"); #endif gint j, k; gint number_of_teams, end_idx = -1; GArray *teams_local = NULL; GArray *leagues = NULL; GPtrArray *sids = NULL; if(debug > 60) g_print("cup_load_choose_team_generate: %s, %s \n", cup->name, ct->sid); leagues = g_array_new(FALSE, FALSE, sizeof(League)); teams_local = g_array_new(FALSE, FALSE, sizeof(Team)); sids = misc_randomise_g_pointer_array(misc_separate_strings(ct->sid)); for(j=0;jlen;j++) { if(!query_cup_choose_team_is_league((gchar*)g_ptr_array_index(sids, j))) { xml_league_read((gchar*)g_ptr_array_index(sids, j), leagues); for(k=0; k < g_array_index(leagues, League, leagues->len - 1).teams->len; k++) { if(query_league_cup_has_property(cup->id, "league_talents")) { g_array_index( g_array_index(leagues, League, leagues->len - 1).teams, Team, k).average_talent = g_array_index(leagues, League, leagues->len - 1).average_talent; } g_array_append_val(teams_local, g_array_index( g_array_index(leagues, League, leagues->len - 1).teams, Team, k)); } free_g_array(&g_array_index(leagues, League, leagues->len - 1).teams); free_league(&g_array_index(leagues, League, leagues->len - 1)); } } g_array_free(leagues, TRUE); free_gchar_array(&sids); /** No teams found. */ if(teams_local->len == 0) { free_teams_array(&teams_local, FALSE); return; } gint permutation[teams_local->len]; for(j=0;jlen;j++) permutation[j] = j; if(ct->randomly && teams_local->len > 0) { if(ct->start_idx == -1) math_generate_permutation(permutation, 0, teams_local->len - 1); else math_generate_permutation(permutation, ct->start_idx - 1, ct->end_idx - 1); } number_of_teams = 0; if(ct->start_idx == -1) end_idx = teams_local->len; else end_idx = ct->end_idx - ct->start_idx + 1; if(teams_local->len < end_idx) { free_teams_array(&teams_local, FALSE); main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_load_choose_team_generate: not enough teams (%d) in chooseteam %s in cup %s (%d are specified) \n", teams_local->len, ct->sid, cup->name, end_idx); } for(j = 0; j < end_idx; j++) { if(ct->skip_group_check || !query_team_is_in_cups(&g_array_index(teams_local, Team, permutation[j]), cup->group)) { g_array_append_val(cup_round->teams, g_array_index(teams_local, Team, permutation[j])); g_array_index(cup_round->teams, Team, cup_round->teams->len - 1).clid = cup->id; g_ptr_array_add(cup->team_names, g_strdup(g_array_index(cup_round->teams, Team, cup_round->teams->len - 1).name)); number_of_teams++; } if(number_of_teams == ct->number_of_teams) break; } if(((ct->number_of_teams != -1 && number_of_teams != ct->number_of_teams) || (ct->number_of_teams == -1 && number_of_teams != teams_local->len)) && teams_local->len > 0) main_exit_program(EXIT_CHOOSE_TEAM_ERROR, "cup_load_choose_team_generate: not enough teams (that don't participate in international cups yet) found in chooseteam %s for cup %s (%d specified, %d found).\n ", ct->sid, cup->name, ct->number_of_teams, number_of_teams); for(j=teams_local->len - 1; j>=0;j--) if(query_team_is_in_cup(&g_array_index(teams_local, Team, j), cup)) g_array_remove_index(teams_local, j); free_teams_array(&teams_local, FALSE); } /** Return a pointer array of teams ordered corresponding to their success in the cup. A bit tricky because we have to fetch the team pointers corresponding to their name because the team pointers in the fixtures are partially invalid because of promotion relegation. */ GPtrArray* cup_get_teams_sorted(const Cup *cup) { #ifdef DEBUG printf("cup_get_teams_sorted\n"); #endif gint i, j; GPtrArray *teams = g_ptr_array_new(); GArray *team_ids = g_array_new(FALSE, FALSE, sizeof(gint)); for(i=0;ifixtures->len;i++) for(j=0;j<2;j++) if(!query_misc_integer_is_in_g_array( g_array_index(cup->fixtures, Fixture, i).team_ids[j], team_ids)) { g_array_append_val(team_ids, g_array_index(cup->fixtures, Fixture, i).team_ids[j]); g_ptr_array_add(teams, team_of_id(g_array_index(cup->fixtures, Fixture, i).team_ids[j])); } g_ptr_array_sort_with_data(teams, cup_compare_success, (gpointer)cup); g_array_free(team_ids, TRUE); return teams; } /** Compare two teams in a pointer array taking into account their success in a cup. */ gint cup_compare_success(gconstpointer a, gconstpointer b, gpointer data) { #ifdef DEBUG printf("cup_compare_success\n"); #endif const Cup *cup = (const Cup*)data; const CupRound *cupround = NULL; const GArray *fixtures = cup->fixtures; const Team *team1 = *(const Team**)a; const Team *team2 = *(const Team**)b; gint round_reached1 = cup_get_round_reached(team1, fixtures), round_reached2 = cup_get_round_reached(team2, fixtures); gint return_value = 0; if(team1 == team2) return_value = 0; else if(round_reached1 < round_reached2) return_value = 1; else if(round_reached1 > round_reached2) return_value = -1; else { cupround = &g_array_index(cup->rounds, CupRound, round_reached1); if(cupround->tables->len > 0) return_value = cup_compare_success_tables(team1, team2, cup, round_reached1); else return_value = cup_compare_success_knockout(team1, team2, cup->fixtures); } return return_value; } /** Compare two teams that reached the same knockout round. */ gint cup_compare_success_knockout(const Team *tm1, const Team *tm2, const GArray *fixtures) { #ifdef DEBUG printf("cup_compare_success_knockout\n"); #endif gint i; gint winner1 = -1, winner2 = -1; gint return_value = 0; for(i=fixtures->len - 1; i>=0; i--) { if(winner1 == -1 && query_fixture_team_involved((&g_array_index(fixtures, Fixture, i)), tm1->id)) winner1 = GPOINTER_TO_INT( fixture_winner_of(&g_array_index(fixtures, Fixture, i), TRUE)); if(winner2 == -1 && query_fixture_team_involved((&g_array_index(fixtures, Fixture, i)), tm2->id)) winner2 = GPOINTER_TO_INT( fixture_winner_of(&g_array_index(fixtures, Fixture, i), TRUE)); if(winner1 != -1 && winner2 != -1) break; } if(winner1 == tm1->id && winner2 != tm2->id) return_value = -1; else if(winner1 != tm1->id && winner2 == tm2->id) return_value = 1; return return_value; } /** Compare two teams in cup tables. */ gint cup_compare_success_tables(const Team *tm1, const Team *tm2, const Cup *cup, gint round) { #ifdef DEBUG printf("cup_compare_success_tables\n"); #endif gint i, j; gint return_value = 0; const CupRound *cupround = &g_array_index(cup->rounds, CupRound, round); const TableElement *elem1 = NULL, *elem2 = NULL; if(team_get_cup_rank(tm1, cupround, TRUE) > team_get_cup_rank(tm2, cupround, TRUE)) return_value = 1; else if(team_get_cup_rank(tm1, cupround, TRUE) < team_get_cup_rank(tm2, cupround, TRUE)) return_value = -1; else { for(i=0;itables->len;i++) for(j=0;jtables, Table, i).elements->len;j++) if(g_array_index(g_array_index(cupround->tables, Table, i).elements, TableElement, j).team_id == tm1->id) elem1 = &g_array_index(g_array_index(cupround->tables, Table, i).elements, TableElement, j); else if(g_array_index(g_array_index(cupround->tables, Table, i).elements, TableElement, j).team_id == tm2->id) elem2 = &g_array_index(g_array_index(cupround->tables, Table, i).elements, TableElement, j); return_value = table_element_compare_func(elem1, elem2, GINT_TO_POINTER(cup->id)); } return return_value; } /** Return the cup round that the team reached in the cup. @param fixtures The fixtures array of the cup. */ gint cup_get_round_reached(const Team *tm, const GArray *fixtures) { #ifdef DEBUG printf("cup_get_round_reached\n"); #endif gint round = -1; gint i; for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).team_ids[0] == tm->id || g_array_index(fixtures, Fixture, i).team_ids[1] == tm->id) round = MAX(round, g_array_index(fixtures, Fixture, i).round); return round; } /** Calculate the week number the first matchday of the given cup round takes place. @param cup The cup we examine. @param cup_round The index of the cup round in the cup.rounds array. @return A week number. */ gint cup_get_first_week_of_cup_round(Cup *cup, gint cup_round, gboolean with_delay) { #ifdef DEBUG printf("cup_get_first_week_of_cup_round\n"); #endif gint week_number; if(cup_round == cup->rounds->len - 1) week_number = cup->last_week - (cup_get_matchdays_in_cup_round(cup, cup_round) - 1) * cup->week_gap; else week_number = cup_get_first_week_of_cup_round(cup, cup_round + 1, FALSE) - cup_get_matchdays_in_cup_round(cup, cup_round) * cup->week_gap; if(with_delay) week_number += g_array_index(cup->rounds, CupRound, cup_round).delay; if(week_number <= 0) { debug_print_message("cup_get_first_week_of_cup_round: First week of cup %s, cup round %d is not positive (%d). Please correct the cup definition file!!!\n", cup->name, cup_round, week_number); if(cup->week_gap > 1) { cup->week_gap--; debug_print_message("Lowering week gap to %d and trying again.\n", cup->week_gap); } else { cup->last_week++; debug_print_message("Increasing last week to %d and trying again.\n", cup->last_week); } return cup_get_first_week_of_cup_round(cup, cup_round, with_delay); } return week_number; } /** Calculate the last week of a cup if we only know the first week. */ gint cup_get_last_week_from_first(const Cup *cup, gint first_week) { #ifdef DEBUG printf("cup_get_last_week_from_first\n"); #endif gint i; gint matchdays = 0; for(i=0;irounds->len;i++) matchdays += cup_get_matchdays_in_cup_round(cup, i); return first_week + (matchdays - 1) * cup->week_gap; } /** Return the number of matchdays for a given cup round. @param cup The cup we examine. @param cup_round The index of the cup round. @return The number of matchdays, mostly 1 or 2. */ gint cup_get_matchdays_in_cup_round(const Cup *cup, gint round) { #ifdef DEBUG printf("cup_get_matchdays_in_cup_round\n"); #endif gint i; const CupRound *cup_round = &g_array_index(cup->rounds, CupRound, round); gint number_of_teams = -1; gint number_of_matchdays = -1; gint diff; if(cup_round->round_robin_number_of_groups > 0) { number_of_teams = cup_round_get_number_of_teams(cup, round); number_of_teams += cup_round->round_robin_number_of_groups - 1; number_of_teams /= cup_round->round_robin_number_of_groups; /* Now, number_of_teams = number of teams in largest group */ if (number_of_teams % 2 == 0) number_of_matchdays = number_of_teams - 1; else number_of_matchdays = number_of_teams; number_of_matchdays *= cup_round->round_robins; for(i=0;itwo_match_weeks[0]->len;i++) { diff = g_array_index(cup_round->two_match_weeks[1], gint, i) - g_array_index(cup_round->two_match_weeks[0], gint, i); number_of_matchdays -= ((diff + diff % 2) / 2); } } else if(cup_round->home_away) number_of_matchdays = 2 - cup_round->two_match_week; else number_of_matchdays = 1; return number_of_matchdays; } /** Return the number of teams playing in the given cup round. @param cup The cup we examine. @param cup_round The index of the cup round. @return The number teams in the round. */ gint cup_round_get_number_of_teams(const Cup *cup, gint round) { #ifdef DEBUG printf("cup_round_get_number_of_teams\n"); #endif const CupRound *cup_round = &g_array_index(cup->rounds, CupRound, round); gint number_of_teams = 0; if(round == 0) number_of_teams = cup_round_get_new_teams(cup_round); else if(g_array_index(cup->rounds, CupRound, round - 1).round_robin_number_of_groups > 0) { number_of_teams = (g_array_index(cup->rounds, CupRound, round - 1).round_robin_number_of_groups * g_array_index(cup->rounds, CupRound, round - 1).round_robin_number_of_advance) + g_array_index(cup->rounds, CupRound, round - 1).round_robin_number_of_best_advance + cup_round_get_new_teams(cup_round) + cup_round_get_byes(cup, round - 1); } else number_of_teams = cup_round_get_number_of_teams(cup, round - 1) / 2 + cup_round_get_new_teams(cup_round) + cup_round_get_byes(cup, round - 1); return number_of_teams; } /** Get the number of byes in the given cup round. */ gint cup_round_get_byes(const Cup *cup, gint round) { #ifdef DEBUG printf("cup_round_get_byes\n"); #endif const CupRound *cup_round = &g_array_index(cup->rounds, CupRound, round); gint number_of_byes = 0, new_teams = 0; if(cup_round->byes != -1) number_of_byes = cup_round->byes; else { if(round == 0) new_teams = cup_round_get_new_teams(cup_round); else new_teams = cup_round_get_number_of_teams(cup, round); number_of_byes = (cup_round->round_robin_number_of_groups == 0) ? math_get_bye_len(new_teams) : 0; /* if(cup_round->round_robin_number_of_groups == 0) */ /* number_of_byes = math_get_bye_len(new_teams); */ /* else */ /* { */ /* while(new_teams % cup_round->round_robin_number_of_groups != 0) */ /* { */ /* new_teams--; */ /* number_of_byes++; */ /* } */ /* } */ } return number_of_byes; } /** Return the number of new teams that come into the cup in the given cup round. */ gint cup_round_get_new_teams(const CupRound *cup_round) { #ifdef DEBUG printf("cup_round_get_new_teams\n"); #endif gint i, new_teams = 0; const Cup *cup_temp = NULL; const League *league = NULL; GPtrArray *teams_sorted = NULL; if(cup_round->new_teams != 0) new_teams = cup_round->new_teams; else { for(i=0;ichoose_teams->len;i++) { if(g_array_index(cup_round->choose_teams, CupChooseTeam, i). number_of_teams != -1) new_teams += g_array_index(cup_round->choose_teams, CupChooseTeam, i). number_of_teams; else { cup_get_choose_team_league_cup( &g_array_index(cup_round->choose_teams, CupChooseTeam, i), &league, &cup_temp); if(cup_temp == NULL) new_teams += league->teams->len; else { teams_sorted = cup_get_teams_sorted(cup_temp); new_teams += teams_sorted->len; g_ptr_array_free(teams_sorted, TRUE); } } } } return new_teams; } /** Return the cup pointer belonging to the id. @param clid The id we look for. @return The cup pointer or NULL if failed. */ Cup* cup_from_clid(gint clid) { #ifdef DEBUG printf("cup_from_clid\n"); #endif gint i; for(i=0;ilen;i++) if(cp(i).id == clid) return &cp(i); main_exit_program(EXIT_POINTER_NOT_FOUND, "cup_from_clid: didn't find cup with id %d\n", clid); return NULL; } /** Find the cup with the given sid. */ Cup* cup_from_sid(const gchar *sid) { #ifdef DEBUG printf("cup_from_sid\n"); #endif gint i; for(i=0;ilen;i++) if(strcmp(cp(i).sid, sid) == 0) return &cp(i); main_exit_program(EXIT_POINTER_NOT_FOUND, "cup_from_sid: didn't find cup with sid %s \n", sid); return NULL; } /** Return a standard cup round name. */ void cup_get_round_name(const Cup *cup, gint round, gchar *buf) { #ifdef DEBUG printf("cup_get_round_name\n"); #endif const CupRound *cup_round = &g_array_index(cup->rounds, CupRound, round); if(cup_round->round_robin_number_of_groups > 0) { strcpy(buf, _("Round robin")); return; } switch(cup->rounds->len - round) { default: /* A cup stage, e.g. Last 32 when there are only 32 teams left. */ sprintf(buf, _("Last %d"), (gint)rint(powf(2, cup->rounds->len - round))); break; case 1: strcpy(buf, _("Final")); break; case 2: strcpy(buf, _("Semi-final")); break; case 3: strcpy(buf, _("Quarter-final")); break; } } /** Find out whether the cup contains tables that can be displayed. Returns -1 if false and the number of the cup round with tables otherwise. */ gint cup_has_tables(gint clid) { #ifdef DEBUG printf("cup_has_tables\n"); #endif const Cup *cup = cup_from_clid(clid); gint i; for(i=cup->rounds->len - 1; i>=0; i--) if(g_array_index(cup->rounds, CupRound, i).tables->len > 0) return i; return -1; } /** Return the team that won the cup. */ Team* cup_get_winner(const Cup *cup) { #ifdef DEBUG printf("cup_get_winner\n"); #endif GPtrArray *teams_sorted = cup_get_teams_sorted(cup); Team *tm = (Team*)g_ptr_array_index(teams_sorted, 0); g_ptr_array_free(teams_sorted, TRUE); return tm; } /** Find out whether a cup with add_week 1000 should begin now. */ gboolean query_cup_begins(const Cup *cup) { #ifdef DEBUG printf("query_cup_begins\n"); #endif gint i, j; const League *league = NULL; const Cup *cup_temp = NULL; const CupRound *cup_round = NULL; for(j=0;jrounds->len;j++) { cup_round = &g_array_index(cup->rounds, CupRound, j); for(i=0;ichoose_teams->len;i++) if(!g_array_index(cup_round->choose_teams,CupChooseTeam, i).generate) { cup_get_choose_team_league_cup( &g_array_index(cup_round->choose_teams, CupChooseTeam, i), &league, &cup_temp); if((cup_temp == NULL && query_league_active(league) && g_array_index(league->fixtures, Fixture, league->fixtures->len - 1).attendance == -1) || (league == NULL && ((cup_temp->fixtures->len > 0 && g_array_index(cup_temp->fixtures, Fixture, cup_temp->fixtures->len - 1).attendance == -1) || cup_temp->fixtures->len == 0))) return FALSE; } } return TRUE; } /** Return the number of international cups in the country. */ gboolean query_cup_transfer(void) { #ifdef DEBUG printf("query_cup_transfer\n"); #endif gint i; for(i=0;ilen;i++) if(acp(i)->teams->len > 0) return TRUE; return FALSE; } /** Find out whether the cup has a highlight property and return the highlight colour. */ gchar* cup_get_highlight_colour(const Cup *cup) { #ifdef DEBUG printf("cup_get_highlight_colour\n"); #endif #ifdef DEBUG printf("cup_get_highlight_colour\n"); #endif gint i; gchar buf[SMALL]; for(i=0;iproperties->len;i++) if(g_str_has_prefix((gchar*)g_ptr_array_index(cup->properties, i), "highlight")) { sprintf(buf, "string_cup_%s", (gchar*)g_ptr_array_index(cup->properties, i)); return const_app(buf); } return NULL; } /** Check the cup fixtures for suspicious entries. */ gboolean cup_check_fixtures(const Cup *cup) { #ifdef DEBUG printf("cup_check_fixtures\n"); #endif gint i; for(i = 0; i < cup->fixtures->len; i++) { if(g_array_index(cup->fixtures, Fixture, i).teams[0] == g_array_index(cup->fixtures, Fixture, i).teams[1]) { if(!query_league_cup_has_property(cup->id, "silent_on_fixture_error")) debug_print_message("cup_check_fixture: bad fixture found in cup %s; cup will be disabled\n", cup->name); return FALSE; } } return TRUE; } /** Check whether we have to wait for other cups before we can write fixtures for the cup round. */ gboolean cup_round_check_waits(const CupRound *cup_round) { gint i, j, k; gchar prefix[SMALL]; for(i = 0; i < cup_round->waits->len; i++) { if(g_str_has_suffix(g_array_index(cup_round->waits, CupRoundWait, i).cup_sid, "*")) g_utf8_strncpy(prefix, g_array_index(cup_round->waits, CupRoundWait, i).cup_sid, g_utf8_strlen(g_array_index(cup_round->waits, CupRoundWait, i).cup_sid, -1) - 1); else strcpy(prefix, "NONAME"); for(j = 0; j < acps->len; j++) { if(strcmp(acp(j)->sid, g_array_index(cup_round->waits, CupRoundWait, i).cup_sid) == 0 || g_str_has_prefix(acp(j)->sid, prefix)) { /* Cup round we're waiting for isn't even reached. */ if(g_array_index(acp(j)->fixtures, Fixture, acp(j)->fixtures->len - 1).round < g_array_index(cup_round->waits, CupRoundWait, i).cup_round) return TRUE; for(k = acp(j)->fixtures->len - 1; k >= 0; k--) { /* Cup round we've been waiting for is finished, we're not waiting anymore. */ if(g_array_index(acp(j)->fixtures, Fixture, k).round > g_array_index(cup_round->waits, CupRoundWait, i).cup_round) break; /* Still waiting for matches to be calculated. */ if(g_array_index(acp(j)->fixtures, Fixture, k).round == g_array_index(cup_round->waits, CupRoundWait, i).cup_round && g_array_index(acp(j)->fixtures, Fixture, k).attendance == -1) return TRUE; } break; } } } return FALSE; } /** Find out whether the cup chooses teams from itself (e.g. the defending champion from last season). */ gboolean query_cup_self_referential(const Cup *cup) { gint i, j; for(i = 0; i < cup->rounds->len; i++) for(j = 0; j < g_array_index(cup->rounds, CupRound, i).choose_teams->len; j++) if(strcmp(g_array_index(g_array_index(cup->rounds, CupRound, i).choose_teams, CupChooseTeam, j).sid, cup->sid) == 0) return TRUE; return FALSE; } /** Find out if the cup is part of the array of cups that are displayed in the game. */ gboolean query_cup_hidden(const Cup *cup) { gint i; for(i = 0; i < acps->len; i++) if(acp(i) == cup) return FALSE; return TRUE; } bygfoot-2.3.2/src/lg_commentary.c0000644000175000017500000005653311225071373015753 0ustar eliaselias/* lg_commentary.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "cup.h" #include "file.h" #include "fixture.h" #include "free.h" #include "language.h" #include "league.h" #include "lg_commentary.h" #include "live_game.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "team.h" #include "variables.h" #include "xml_lg_commentary.h" /** The replacement strings for the live game commentary tokens. */ GPtrArray *token_rep[2]; /** Whether there was a commentary repetition rejection. */ gboolean repetition; /** Generate commentary for the live game event in the unit. @param live_game The live game being calculated. @param unit The live game unit we generate the commentary for. @param event_type The event type we generate the commentary for (needed when commentary is being tested). */ void lg_commentary_generate(const LiveGame *live_game, LiveGameUnit *unit, const gchar *event_name, gint ev_type) { #ifdef DEBUG printf("lg_commentary_generate\n"); #endif gint i, event_type = -1; gint commentary_idx = -1; gchar buf[SMALL]; GArray *commentaries = NULL; if(unit != NULL) event_type = unit->event.type; else event_type = (event_name == NULL) ? ev_type : xml_lg_commentary_event_name_to_int(event_name); if(event_type == -1) return; if(live_game != NULL) { lg_commentary_set_basic_tokens(unit, live_game->fix); lg_commentary_set_team_tokens(unit, live_game->fix); lg_commentary_set_player_tokens(unit, live_game->fix); lg_commentary_set_stats_tokens(&live_game->stats, token_rep); } if(event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_DEFEND || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_BALANCED || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ATTACK || event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_ATTACK) commentaries = lg_commentary[LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND]; else if(event_type == LIVE_GAME_EVENT_BOOST_CHANGE_ANTI || event_type == LIVE_GAME_EVENT_BOOST_CHANGE_OFF || event_type == LIVE_GAME_EVENT_BOOST_CHANGE_ON) commentaries = lg_commentary[LIVE_GAME_EVENT_BOOST_CHANGE_ANTI]; else commentaries = lg_commentary[event_type]; commentary_idx = lg_commentary_select(commentaries, buf); if(commentary_idx == -1) debug_print_message("lg_commentary_generate: didn't find fitting commentary for unit type %d \n", event_type); if(live_game != NULL) { unit->event.commentary = g_strdup(buf); unit->event.commentary_id = (commentary_idx == -1) ? -1 : g_array_index(commentaries, LGCommentary, commentary_idx).id; for(i=0;ilen;i++) if(i != option_int("string_token_team_home", &tokens) && i != option_int("string_token_team_away", &tokens) && i != option_int("string_token_attendance", &tokens) && i != option_int("string_token_cup_round_name", &tokens) && i != option_int("string_token_league_cup_name", &tokens) && i != option_int("string_token_yellow_limit", &tokens) && i != option_int("string_token_team_layer0", &tokens) && i != option_int("string_token_team_layer1", &tokens)) misc_token_remove(token_rep, i); } else g_print("%s: \"%s\"\n", event_name, buf); } /** Select a commentary from the array depending on the tokens available and write the text into the buffer. */ gint lg_commentary_select(const GArray *commentaries, gchar *buf) { #ifdef DEBUG printf("lg_commentary_select\n"); #endif gint i, order[commentaries->len]; lg_commentary_get_order(commentaries, order); repetition = FALSE; for(i=0;ilen;i++) if(lg_commentary_check_commentary(&g_array_index(commentaries, LGCommentary, order[i]), buf)) break; if(i == commentaries->len) { repetition = TRUE; for(i=0;ilen;i++) if(lg_commentary_check_commentary(&g_array_index(commentaries, LGCommentary, order[i]), buf)) break; } if(i == commentaries->len) { strcpy(buf, "FIXME!"); return -1; } return order[i]; } /** Check whether the commentary conditions are fulfilled and whether we can replace all tokens in the commentary. */ gboolean lg_commentary_check_commentary(const LGCommentary *commentary, gchar *dest) { #ifdef DEBUG printf("lg_commentary_check_commentary\n"); #endif if(strlen(commentary->text) == 0 || (commentary->condition != NULL && !misc_parse_condition(commentary->condition, token_rep)) || (repetition == FALSE && query_lg_commentary_is_repetition(commentary->id))) return FALSE; return misc_string_replace_all_tokens(token_rep, commentary->text, dest); } /** Check whether a commentary with given id has been used in the last few commentaries. Return TRUE if so and FALSE otherwise. */ gboolean query_lg_commentary_is_repetition(gint id) { #ifdef DEBUG printf("query_lg_commentary_is_repetition\n"); #endif const GArray *units = ((LiveGame*)statp)->units; gint units_min = units->len - const_int("int_lg_commentary_check_backwards") - 1; gint i, min = MAX(units_min, 0); for(i=units->len - 2; i>= min; i--) if(g_array_index(units, LiveGameUnit, i).event.commentary_id == id) return TRUE; return FALSE; } /** Write a random order of indices into the integer array (only depending on the priority values of the commentaries). I don't like this implementation of ordering the commentaries according to their priority :-P can't think of a better one, though. */ void lg_commentary_get_order(const GArray *commentaries, gint *order) { #ifdef DEBUG printf("lg_commentary_get_order\n"); #endif gint i, j, order_idx = 0; gint priority_sum = 0, bounds[commentaries->len + 1]; bounds[0] = 0; for(i=0;ilen;i++) { priority_sum += g_array_index(commentaries, LGCommentary, i).priority; bounds[i + 1] = priority_sum; order[i] = -1; } gint permutation[priority_sum]; math_generate_permutation(permutation, 1, priority_sum); for(i=0;ilen) break; for(j=0;jlen;j++) if(bounds[j] < permutation[i] && permutation[i] <= bounds[j + 1]) { if(!query_integer_is_in_array(j, order, commentaries->len)) { order[order_idx] = j; order_idx++; } break; } } } /** Fill the stats tokens. */ void lg_commentary_set_stats_tokens(const LiveGameStats *stats, GPtrArray **token_arrays) { #ifdef DEBUG printf("lg_commentary_set_stats_tokens\n"); #endif misc_token_add(token_arrays, option_int("string_token_stat_shots0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_SHOTS])); misc_token_add(token_arrays, option_int("string_token_stat_shot_per0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_SHOT_PERCENTAGE])); misc_token_add(token_arrays, option_int("string_token_stat_poss0", &tokens), misc_int_to_char((gint)rint(100 * ((gfloat)stats->values[0][LIVE_GAME_STAT_VALUE_POSSESSION] / ((gfloat)stats->values[0][LIVE_GAME_STAT_VALUE_POSSESSION] + (gfloat)stats->values[1][LIVE_GAME_STAT_VALUE_POSSESSION]))))); misc_token_add(token_arrays, option_int("string_token_stat_pen0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_PENALTIES])); misc_token_add(token_arrays, option_int("string_token_stat_fouls0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_FOULS])); misc_token_add(token_arrays, option_int("string_token_stat_yellows0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_CARDS])); misc_token_add(token_arrays, option_int("string_token_stat_reds0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_REDS])); misc_token_add(token_arrays, option_int("string_token_stat_injs0", &tokens), misc_int_to_char(stats->values[0][LIVE_GAME_STAT_VALUE_INJURIES])); misc_token_add(token_arrays, option_int("string_token_stat_shots1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_SHOTS])); misc_token_add(token_arrays, option_int("string_token_stat_shot_per1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_SHOT_PERCENTAGE])); misc_token_add(token_arrays, option_int("string_token_stat_poss1", &tokens), misc_int_to_char((gint)rint(100 * ((gfloat)stats->values[1][LIVE_GAME_STAT_VALUE_POSSESSION] / ((gfloat)stats->values[0][LIVE_GAME_STAT_VALUE_POSSESSION] + (gfloat)stats->values[1][LIVE_GAME_STAT_VALUE_POSSESSION]))))); misc_token_add(token_arrays, option_int("string_token_stat_pen1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_PENALTIES])); misc_token_add(token_arrays, option_int("string_token_stat_fouls1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_FOULS])); misc_token_add(token_arrays, option_int("string_token_stat_yellows1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_CARDS])); misc_token_add(token_arrays, option_int("string_token_stat_reds1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_REDS])); misc_token_add(token_arrays, option_int("string_token_stat_injs1", &tokens), misc_int_to_char(stats->values[1][LIVE_GAME_STAT_VALUE_INJURIES])); } /** Fill the tokens that contain general information. */ void lg_commentary_set_basic_tokens(const LiveGameUnit *unit, const Fixture *fix) { #ifdef DEBUG printf("lg_commentary_set_basic_tokens\n"); #endif gchar buf[SMALL]; gint tmp_int = 1, current_min = live_game_unit_get_minute(unit); gint avskill0 = (gint)rint(team_get_average_skill(fix->teams[0], TRUE)), avskill1 = (gint)rint(team_get_average_skill(fix->teams[1], TRUE)); sprintf(buf, "%d : %d", unit->result[0], unit->result[1]); misc_token_add(token_rep, option_int("string_token_result", &tokens), g_strdup(buf)); misc_token_add(token_rep, option_int("string_token_time", &tokens), misc_int_to_char(unit->time)); misc_token_add(token_rep, option_int("string_token_minute", &tokens), misc_int_to_char(current_min)); tmp_int = live_game_get_minutes_remaining(unit); if(tmp_int > 0) misc_token_add(token_rep, option_int("string_token_minute_remaining", &tokens), misc_int_to_char(tmp_int)); if(query_fixture_is_draw(fix)) tmp_int = 120 - current_min; else tmp_int = 90 - current_min; if(tmp_int > 0) misc_token_add(token_rep, option_int("string_token_minute_total", &tokens), misc_int_to_char(tmp_int)); misc_token_add(token_rep, option_int("string_token_goals0", &tokens), misc_int_to_char(unit->result[0])); misc_token_add(token_rep, option_int("string_token_goals1", &tokens), misc_int_to_char(unit->result[1])); misc_token_add(token_rep, option_int("string_token_goal_diff", &tokens), misc_int_to_char(ABS(unit->result[0] - unit->result[1]))); misc_token_add(token_rep, option_int("string_token_extra", &tokens), lg_commentary_get_extra_data(unit, fix)); misc_token_add(token_rep, option_int("string_token_possession", &tokens), misc_int_to_char(unit->possession)); misc_token_add(token_rep, option_int("string_token_no_possession", &tokens), misc_int_to_char(!unit->possession)); misc_token_add(token_rep, option_int("string_token_team_avskill0", &tokens), misc_int_to_char(avskill0)); misc_token_add(token_rep, option_int("string_token_team_avskill1", &tokens), misc_int_to_char(avskill1)); misc_token_add(token_rep, option_int("string_token_team_avskilldiff", &tokens), misc_int_to_char(ABS(avskill0 - avskill1))); } /** Set the tokens containing team data. */ void lg_commentary_set_team_tokens(const LiveGameUnit *unit, const Fixture *fix) { #ifdef DEBUG printf("lg_commentary_set_team_tokens\n"); #endif if(unit->result[0] != unit->result[1]) { misc_token_add(token_rep, option_int("string_token_team_losing", &tokens), g_strdup(fix->teams[(unit->result[0] > unit->result[1])]->name)); misc_token_add(token_rep, option_int("string_token_team_winning", &tokens), g_strdup(fix->teams[(unit->result[0] < unit->result[1])]->name)); misc_token_add(token_rep, option_int("string_token_team_losingn", &tokens), misc_int_to_char((unit->result[0] > unit->result[1]))); misc_token_add(token_rep, option_int("string_token_team_winningn", &tokens), misc_int_to_char((unit->result[0] < unit->result[1]))); } if(unit->event.team != -1) misc_token_add(token_rep, option_int("string_token_team", &tokens), misc_int_to_char(unit->event.team)); } /** Set the player tokens. */ void lg_commentary_set_player_tokens(const LiveGameUnit *unit, const Fixture *fix) { #ifdef DEBUG printf("lg_commentary_set_player_tokens\n"); #endif Player *pl1 = NULL, *pl2 = NULL; if(unit->event.type == LIVE_GAME_EVENT_GENERAL || unit->event.type == LIVE_GAME_EVENT_SCORING_CHANCE || unit->event.type == LIVE_GAME_EVENT_HEADER || unit->event.type == LIVE_GAME_EVENT_PENALTY || unit->event.type == LIVE_GAME_EVENT_FREE_KICK) { pl1 = player_of_id_team(fix->teams[unit->possession], unit->event.player); if(unit->event.player2 != -1) pl2 = player_of_id_team(fix->teams[unit->possession], unit->event.player2); } else if(unit->event.type == LIVE_GAME_EVENT_SEND_OFF || unit->event.type == LIVE_GAME_EVENT_INJURY || unit->event.type == LIVE_GAME_EVENT_TEMP_INJURY || unit->event.type == LIVE_GAME_EVENT_SUBSTITUTION) { pl1 = player_of_id_team(fix->teams[unit->event.team], unit->event.player); if(unit->event.player2 != -1) pl2 = player_of_id_team(fix->teams[unit->event.team], unit->event.player2); } else if(unit->event.type == LIVE_GAME_EVENT_LOST_POSSESSION || unit->event.type == LIVE_GAME_EVENT_GOAL || unit->event.type == LIVE_GAME_EVENT_MISS || unit->event.type == LIVE_GAME_EVENT_SAVE || unit->event.type == LIVE_GAME_EVENT_POST || unit->event.type == LIVE_GAME_EVENT_CROSS_BAR) { pl1 = player_of_id_team(fix->teams[unit->possession], unit->event.player); pl2 = player_of_id_team(fix->teams[!unit->possession], unit->event.player2); } else if(unit->event.type == LIVE_GAME_EVENT_OWN_GOAL) pl1 = player_of_id_team(fix->teams[!unit->possession], unit->event.player); else if(unit->event.type == LIVE_GAME_EVENT_FOUL || unit->event.type == LIVE_GAME_EVENT_FOUL_RED || unit->event.type == LIVE_GAME_EVENT_FOUL_RED_INJURY || unit->event.type == LIVE_GAME_EVENT_FOUL_YELLOW) { pl1 = player_of_id_team(fix->teams[!unit->event.team], unit->event.player); pl2 = player_of_id_team(fix->teams[unit->event.team], unit->event.player2); } if(pl1 != NULL) { misc_token_add(token_rep, option_int("string_token_player0", &tokens), player_get_last_name(pl1->name)); misc_token_add(token_rep, option_int("string_token_player_goals0", &tokens), misc_int_to_char(player_games_goals_get( pl1, fix->clid, PLAYER_VALUE_GOALS))); misc_token_add(token_rep, option_int("string_token_player_goals_all0", &tokens), misc_int_to_char(player_all_games_goals(pl1, PLAYER_VALUE_GOALS))); } if(pl2 != NULL) { misc_token_add(token_rep, option_int("string_token_player1", &tokens), player_get_last_name(pl2->name)); misc_token_add(token_rep, option_int("string_token_player_goals1", &tokens), misc_int_to_char(player_games_goals_get(pl2, fix->clid, PLAYER_VALUE_GOALS))); misc_token_add(token_rep, option_int("string_token_player_goals_all1", &tokens), misc_int_to_char(player_all_games_goals(pl2, PLAYER_VALUE_GOALS))); misc_token_add(token_rep, option_int("string_token_player_yellows", &tokens), misc_int_to_char(player_card_get(pl2, fix->clid, PLAYER_VALUE_CARD_YELLOW))); } } /** Return some extra data depending on the unit type. */ gchar* lg_commentary_get_extra_data(const LiveGameUnit *unit, const Fixture *fix) { #ifdef DEBUG printf("lg_commentary_get_extra_data\n"); #endif #ifdef DEBUG printf("lg_commentary_get_extra_data\n"); #endif gchar buf[SMALL]; switch(unit->event.type) { default: return NULL; break; case LIVE_GAME_EVENT_STRUCTURE_CHANGE: sprintf(buf, "%d", fix->teams[unit->event.team]->structure); break; case LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND: strcpy(buf, _("ALL OUT DEFEND")); break; case LIVE_GAME_EVENT_STYLE_CHANGE_DEFEND: strcpy(buf, _("DEFEND")); break; case LIVE_GAME_EVENT_STYLE_CHANGE_BALANCED: strcpy(buf, _("BALANCED")); break; case LIVE_GAME_EVENT_STYLE_CHANGE_ATTACK: strcpy(buf, _("ATTACK")); break; case LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_ATTACK: strcpy(buf, _("ALL OUT ATTACK")); break; case LIVE_GAME_EVENT_BOOST_CHANGE_ANTI: strcpy(buf, _("ANTI")); break; case LIVE_GAME_EVENT_BOOST_CHANGE_OFF: strcpy(buf, _("OFF")); break; case LIVE_GAME_EVENT_BOOST_CHANGE_ON: strcpy(buf, _("ON")); break; } return g_strdup(buf); } /** Allocate memory for the token array and fill some tokens at the beginning of the live game that don't change later. */ void lg_commentary_initialize(const Fixture *fix) { #ifdef DEBUG printf("lg_commentary_initialize\n"); #endif gchar buf[SMALL]; token_rep[0] = g_ptr_array_new(); token_rep[1] = g_ptr_array_new(); misc_token_add(token_rep, option_int("string_token_team_home", &tokens), g_strdup(fix->teams[0]->name)); misc_token_add(token_rep, option_int("string_token_team_away", &tokens), g_strdup(fix->teams[1]->name)); if(fix->teams[0]->clid < ID_CUP_START) misc_token_add(token_rep, option_int("string_token_team_layer0", &tokens), misc_int_to_char(league_from_clid(fix->teams[0]->clid)->layer)); if(fix->teams[1]->clid < ID_CUP_START) misc_token_add(token_rep, option_int("string_token_team_layer1", &tokens), misc_int_to_char(league_from_clid(fix->teams[1]->clid)->layer)); if(fix->teams[0]->clid < ID_CUP_START && fix->teams[1]->clid < ID_CUP_START) misc_token_add(token_rep, option_int("string_token_team_layerdiff", &tokens), misc_int_to_char(league_from_clid(fix->teams[0]->clid)->layer - league_from_clid(fix->teams[1]->clid)->layer)); misc_token_add(token_rep, option_int("string_token_league_cup_name", &tokens), g_strdup(league_cup_get_name_string(fix->clid))); if(fix->clid >= ID_CUP_START) { cup_get_round_name(cup_from_clid(fix->clid), fix->round, buf); misc_token_add(token_rep, option_int("string_token_cup_round_name", &tokens), g_strdup(buf)); } misc_print_grouped_int(fix->attendance, buf); misc_token_add(token_rep, option_int("string_token_attendance", &tokens), g_strdup(buf)); misc_token_add(token_rep, option_int("string_token_yellow_limit", &tokens), misc_int_to_char(league_cup_get_yellow_red(fix->clid))); } /** Free the memory occupied by the tokens array and the permanent tokens. */ void lg_commentary_free_tokens(void) { #ifdef DEBUG printf("lg_commentary_free_tokens\n"); #endif gint i; for(i=token_rep[0]->len - 1;i >= 0; i--) { g_free(g_ptr_array_index(token_rep[0], i)); g_free(g_ptr_array_index(token_rep[1], i)); } g_ptr_array_free(token_rep[0], TRUE); g_ptr_array_free(token_rep[1], TRUE); } /** Load the appropriate commentary file by evaluating the language option. */ void lg_commentary_load_commentary_file_from_option(void) { #ifdef DEBUG printf("lg_commentary_load_commentary_file_from_option\n"); #endif gchar buf[SMALL], commentary_file[SMALL]; language_get_code(buf); sprintf(commentary_file, "lg_commentary_%s.xml", buf); lg_commentary_load_commentary_file(commentary_file, FALSE); } /** Load the commentary file given. Abort if not found and abort=TRUE, load default english file otherwise. */ void lg_commentary_load_commentary_file(const gchar *commentary_file, gboolean abort) { #ifdef DEBUG printf("lg_commentary_load_commentary_file\n"); #endif gchar *file_name = NULL; if(g_file_test(commentary_file, G_FILE_TEST_EXISTS)) { xml_lg_commentary_read(commentary_file); return; } file_name = file_find_support_file(commentary_file, FALSE); if(file_name != NULL) { xml_lg_commentary_read(file_name); g_free(file_name); } else { if(abort) main_exit_program(EXIT_FILE_NOT_FOUND, "lg_commentary_load_commentary_file: file %s not found \n", file_name); else lg_commentary_load_commentary_file("lg_commentary_en.xml", TRUE); } } /** Load a file with tokens for commentary testing purposes. */ void lg_commentary_test_load_token_file(const gchar *token_file) { #ifdef DEBUG printf("lg_commentary_test_load_token_file\n"); #endif gchar token_name[SMALL], token_value[SMALL]; FILE *fil = NULL; file_my_fopen(token_file, "r", &fil, TRUE); token_rep[0] = g_ptr_array_new(); token_rep[1] = g_ptr_array_new(); while(file_get_next_opt_line(fil, token_name, token_value)) { g_ptr_array_add(token_rep[0], (gpointer)g_strdup(token_name)); g_ptr_array_add(token_rep[1], (gpointer)g_strdup(token_value)); } } /** Test a live game commentary file. @param commentary_file the commentary file to test. @param token_file the file containing the token values to use. @param event_name the event to test (or 'all' to test all events). @param number_of_passes how many commentaries to generate. */ void lg_commentary_test(const gchar *commentary_file, const gchar* token_file, const gchar *event_name, gint number_of_passes) { #ifdef DEBUG printf("lg_commentary_test\n"); #endif gint i, j; LiveGame dummy; lg_commentary_load_commentary_file(commentary_file, TRUE); lg_commentary_test_load_token_file(token_file); dummy.units = g_array_new(FALSE, FALSE, sizeof(gint)); statp = (gpointer)&dummy; if(event_name == NULL) for(i=0;i #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "variables.h" /** Print the contents of a GError (if it was set). If abort_program is TRUE, we free the memory and exit the game. @param error The GError we check. @param abort_program Whether or not we continue or exit the program. */ void misc_print_error(GError **error, gboolean abort_program) { #ifdef DEBUG printf("misc_print_error\n"); #endif if(*error == NULL) return; debug_print_message("error message: %s\n", (*error)->message); g_error_free(*error); *error = NULL; if(abort_program) main_exit_program(EXIT_PRINT_ERROR, NULL); } /** Swap two integers. @param first The first integer. @param second The second integer. */ void misc_swap_int(gint *first, gint *second) { #ifdef DEBUG printf("misc_swap_int\n"); #endif gint swap = *first; *first = *second; *second = swap; } /** Swap two pointers. @param first The first pointer. @param second The second pointer. */ void misc_swap_gpointer(gpointer *first, gpointer *second) { #ifdef DEBUG printf("\n"); #endif #ifdef DEBUG printf("misc_swap_gpointer\n"); #endif gpointer swap = *first; *first = *second; *second = swap; } /** Transform a string containing white spaces into an array of strings without white spaces. @param string The string containing white spaces. @return A GPtrArray containing all the strings without white spaces that were part of the original string. This array must be freed with free_gchar_array(). */ GPtrArray* misc_separate_strings(gchar *string) { gint i, cnt = 0, start = 0; gchar buf[BIG]; GPtrArray *string_array = g_ptr_array_new(); for(i=0;i 0) g_ptr_array_add(string_array, (gpointer)g_strdup(buf)); } } return string_array; } /** Write a pointer array randomly into another one and free the original array. @param array The array to randomise. @return A new pointer array containing the items in random order. */ GPtrArray* misc_randomise_g_pointer_array(GPtrArray *array) { #ifdef DEBUG printf("misc_randomise_g_pointer_array\n"); #endif GPtrArray *new = g_ptr_array_new(); gint order[array->len]; gint i; math_generate_permutation(order, 0, array->len - 1); for(i=0;ilen;i++) g_ptr_array_add(new, g_ptr_array_index(array, order[i])); g_ptr_array_free(array, TRUE); return new; } /** Return a freshly allocated copy of the array. */ GPtrArray* misc_copy_ptr_array(const GPtrArray *array) { #ifdef DEBUG printf("misc_copy_ptr_array\n"); #endif gint i; GPtrArray *copy = NULL; if(array != NULL) copy = g_ptr_array_new(); else return NULL; for(i=0;ilen;i++) g_ptr_array_add(copy, g_ptr_array_index(array, i)); return copy; } /** Print a thousands-grouped output of 'number' into 'buf', like 2 234 345 instead of 2234345. @param number The number to print. @buf The buffer to hold the number. */ void misc_print_grouped_int(gint number, gchar *buf) { #ifdef DEBUG printf("misc_print_grouped_int\n"); #endif gint i; gchar buf2[SMALL]; gint length = 0; gfloat copy = (gfloat)(abs(number)); gint number2 = abs(number); strcpy(buf, ""); while(copy >= 1) { copy /= 10; length++; } if(length > 9) { sprintf(buf2, "%d", number); strcat(buf, buf2); return; } for(i = length; i > 0; i--) { sprintf(buf2, "%d", math_get_place(number2, i)); strcat(buf, buf2); if(i % 3 == 1) strcat(buf, " "); } if(number < 0) { sprintf(buf2, "- "); strcat(buf2, buf); sprintf(buf, "%s", buf2); } else if(number == 0) strcat(buf, "0"); } /** Check whether 'item' is in array 'array' between 'min' and 'max'. @param array The integer list. @param max The upper delimitor (exclusive). @param item The item we look for. */ gboolean query_integer_is_in_array(gint item, gint *array, gint max) { #ifdef DEBUG printf("query_integer_is_in_array\n"); #endif gint i; for(i=0;ilen;i++) if(item == g_array_index(array, gint, i)) return TRUE; return FALSE; } /** Compare two integers. */ gint misc_int_compare(gint first, gint second) { #ifdef DEBUG printf("misc_int_compare\n"); #endif if(first > second) return -1; else if(first < second) return 1; return 0; } /** Compare two floats. */ gint misc_float_compare(gfloat first, gfloat second) { #ifdef DEBUG printf("misc_float_compare\n"); #endif if(first > second) return -1; else if(first < second) return 1; return 0; } const gchar* misc_strip_definitions_root(gchar *directory) { gchar **vector; GList *list = root_definitions_directories; gchar *buf; while (list!=NULL) { if (g_str_has_prefix(directory, (gchar*)list->data)) { vector = g_strsplit(directory, (gchar*)list->data,-1); buf = g_strdup((gchar*)vector[g_strv_length(vector)-1]); g_strfreev(vector); return buf; } list = list->next; } return ""; } /** Check whether the string starts with a string in the string array. */ gboolean query_misc_string_starts_with(const gchar *string, GList *list) { while (list!=NULL) { return g_str_has_prefix(string, (gchar*)list->data); list = list->next; } return FALSE; } /** Check whether the string is in the string array. */ gboolean query_misc_string_in_array(const gchar *string, const GPtrArray *array) { gint i; for(i=0;ilen;i++) if(strcmp(string, (gchar*)g_ptr_array_index(array, i)) == 0) return TRUE; return FALSE; } /** Get a float representation of someone's age based on his birth year and month. */ gfloat misc_get_age_from_birth(gint birth_year, gint birth_month) { #ifdef DEBUG printf("misc_get_age_from_birth\n"); #endif GDate *current_date = g_date_new(); GDate *birth_date = g_date_new(); g_date_set_time(current_date, time(NULL)); g_date_set_dmy(birth_date, 15, birth_month, birth_year); return (gfloat)g_date_days_between(birth_date, current_date) / 365.25; } /* skip spaces */ const gchar* misc_skip_spaces(const gchar* s) { while (g_ascii_isspace(*s)) s++; return s; } /* read number, skip all leading and trailing spaces */ const gchar* misc_parse_value(const gchar *s, gint *value) { s = misc_skip_spaces(s); *value = 0; while (g_ascii_isdigit(*s)) { *value = *value * 10 + (*s - '0'); s++; } return s; } /* parse numeric expression (supports + and -) */ const gchar* misc_parse_expression(const gchar *s, gint *result) { gint value = 0, loop = 1; s = misc_parse_value(s, &value); *result = value; while (loop) { s = misc_skip_spaces(s); switch(*s) { case '+': s = misc_parse_value(s+1, &value); *result += value; break; case '-': s = misc_parse_value(s+1, &value); *result -= value; break; default: loop = 0; } } return s; } /* parse comparison (supports '<', '>' and '=') */ const gchar* misc_parse_comparison(const gchar *s, gint *result) { gint value = 0; s = misc_parse_expression(s, result); s = misc_skip_spaces(s); switch(*s) { case '<': if (*(s+1) == '=') { s = misc_parse_expression(s+2, &value); *result = *result <= value; } else { s = misc_parse_expression(s+1, &value); *result = *result < value; } break; case 'L': if (*(s+1) == 'E') { s = misc_parse_expression(s+2, &value); *result = *result <= value; } else { s = misc_parse_expression(s+1, &value); *result = *result < value; } break; case '=': s = misc_parse_expression(s+1, &value); *result = *result == value; break; case '>': if (*(s+1) == '=') { s = misc_parse_expression(s+2, &value); *result = *result >= value; } else { s = misc_parse_expression(s+1, &value); *result = *result > value; } break; case 'G': if (*(s+1) == 'E') { s = misc_parse_expression(s+2, &value); *result = *result >= value; } else { s = misc_parse_expression(s+1, &value); *result = *result > value; } break; case '!': if(*(s + 1) == '=') { s = misc_parse_expression(s+2, &value); *result = *result != value; } break; } return s; } const gchar* misc_parse_and(const gchar *s, gint *result) { gint value = 0; s = misc_parse_comparison(s, result); s = misc_skip_spaces(s); while (*s == 'a' && *(s+1) == 'n' && *(s+2) == 'd') { s = misc_parse_comparison(s + 3, &value); *result = *result && value; s = misc_skip_spaces(s); } return s; } const gchar* misc_parse(const gchar *s, gint *result) { gint value = 0; s = misc_parse_and(s, result); s = misc_skip_spaces(s); while (*s == 'o' && *(s+1) == 'r') { s = misc_parse_and(s + 2, &value); *result = *result || value; s = misc_skip_spaces(s); } return s; } /** Free the string if it's non-NULL and assign the contents to it. */ void misc_string_assign(gchar **string, const gchar *contents) { #ifdef DEBUG printf("misc_string_assign\n"); #endif if(contents == NULL) return; if(*string != NULL) g_free(*string); *string = g_strdup(contents); } /** Choose one of strings separated with '|' */ void misc_string_choose_random(gchar *string) { gint count = 1; gchar **array; array = g_strsplit(string, "|", -1); count = g_strv_length(array); count = math_rndi(0, count - 1); strcpy(string, array[count]); } /** Replace a token in a string by another string. The replacement should NOT CONTAIN THE TOKEN otherwise we end up in an infinite loop. */ void misc_string_replace_token(gchar *string, const gchar *token, const gchar *replacement) { gchar buf[SMALL], buf2[SMALL]; gchar *occurrence = NULL; occurrence = g_strrstr(string, token); if(occurrence == NULL || strlen(string) < strlen(token)) return; while(occurrence != NULL) { strncpy(buf, string, strlen(string) - strlen(occurrence)); buf[strlen(string) - strlen(occurrence)] = '\0'; strcpy(buf2, occurrence + strlen(token)); sprintf(string, "%s%s%s", buf, replacement, buf2); occurrence = g_strrstr(string, token); } } /** Replace simple arithmetic expressions like "1 + 2" and comparisons like "3 < 4" with the appropriate result. */ void misc_string_replace_expressions(gchar *string) { gint i, j, last_idx = 0; gint value = -1; gchar buf[SMALL], buf2[SMALL]; gchar *occurrence = NULL, *occurrence2 = NULL; if(debug > 200) g_print("misc_string_replace_expressions: #%s#\n", string); while(g_strrstr(string, "[") != NULL) { strcpy(buf, string); strcpy(string, ""); occurrence = g_strrstr(buf, "["); i = strlen(buf) - strlen(occurrence); strncpy(buf2, buf, i); buf2[i] = '\0'; strcat(string, buf2); occurrence2 = g_strstr_len(occurrence, strlen(occurrence), "]"); if(occurrence2 == NULL) { debug_print_message("misc_string_replace_expressions: no matching ] found."); return; } j = strlen(buf) - strlen(occurrence2); strncpy(buf2, buf + i + 1, j - i - 1); buf2[j - i - 1] = '\0'; if (g_strrstr(buf2, "|")) misc_string_choose_random(buf2); else { if(g_strrstr(buf2, "<") || g_strrstr(buf2, ">") || g_strrstr(buf2, "=") || g_strrstr(buf2, " G ") || g_strrstr(buf2, " L ") || g_strrstr(buf2, " GE ") || g_strrstr(buf2, " LE ")) misc_parse(buf2, &value); else misc_parse_expression(buf2, &value); sprintf(buf2, "%d", value); } strcat(string, buf2); value = -1; last_idx = j + 1; if(last_idx < strlen(buf)) { strncpy(buf2, buf + last_idx, strlen(buf) - last_idx); buf2[strlen(buf) - last_idx] = '\0'; strcat(string, buf2); } } } /** Try to replace all special tokens in the string and write the result to dest. @param string The string containing tokens. @param token_rep The arrays with the tokens and replacements. @return TRUE if we could replace all tokens and the commentary condition was fulfilled, FALSE otherwise. */ void misc_string_replace_tokens(gchar *string, GPtrArray **token_rep) { gint i; for(i=0;ilen;i++) if(g_strrstr(string, (gchar*)g_ptr_array_index(token_rep[0], i))) misc_string_replace_token(string, (gchar*)g_ptr_array_index(token_rep[0], i), (gchar*)g_ptr_array_index(token_rep[1], i)); } /** Replace the portion 'paren' plus parentheses in the string. */ void misc_string_replace_parenthesised(gchar *string, const gchar *paren, const gchar *replacement) { gchar buf[SMALL]; sprintf(buf, "(%s)", paren); misc_string_replace_token(string, buf, replacement); } /** Find the innermost parenthesised portion of the string and write it into the dest string. */ void misc_string_get_parenthesised(const gchar *string, gchar *dest) { const gchar *openpar = g_strrstr(string, "("); const gchar *closepar = g_strstr_len(string, strlen(string), ")"); gint len = strlen(openpar) - strlen(closepar) - 1; strncpy(dest, openpar + 1, len); dest[len] = '\0'; } /** Find out whether the conditions in the string are fulfilled. */ gboolean misc_parse_condition(const gchar *condition, GPtrArray **token_rep) { gboolean return_value = FALSE; gchar buf[SMALL], buf2[SMALL]; strcpy(buf, condition); while(g_strrstr(buf, "(")) { misc_string_get_parenthesised(buf, buf2); if(misc_parse_condition(buf2, token_rep)) misc_string_replace_parenthesised(buf, buf2, "1 = 1"); else misc_string_replace_parenthesised(buf, buf2, "1 = 2"); } do { strcpy(buf2, buf); misc_string_replace_tokens(buf, token_rep); misc_string_replace_expressions(buf); } while(strcmp(buf2, buf) != 0); if(g_strrstr(buf, "_") != NULL) return FALSE; misc_parse(buf, &return_value); return return_value; } /** Add a replacement rule to the token array. The string should be in allocated as it will get freed later. */ void misc_token_add(GPtrArray **token_rep, gint token_idx, gchar *replacement) { g_ptr_array_add(token_rep[0], (gpointer)g_strdup(g_array_index(tokens.list, Option, token_idx).string_value)); g_ptr_array_add(token_rep[1], (gpointer)replacement); } /** Add a 0 or 1 as a token to the token array. */ void misc_token_add_bool(GPtrArray **token_rep, gint token_idx, gboolean value) { g_ptr_array_add(token_rep[0], (gpointer)g_strdup(g_array_index(tokens.list, Option, token_idx).string_value)); g_ptr_array_add(token_rep[1], misc_int_to_char(value)); } /** Remove the replacement rule given by the index. */ void misc_token_remove(GPtrArray **token_rep, gint idx) { gint i; for(i=token_rep[0]->len - 1; i >= 0; i--) if(strcmp((gchar*)g_ptr_array_index(token_rep[0], i), g_array_index(tokens.list, Option, idx).string_value) == 0) { g_free(g_ptr_array_index(token_rep[0], i)); g_free(g_ptr_array_index(token_rep[1], i)); g_ptr_array_remove_index_fast(token_rep[0], i); g_ptr_array_remove_index_fast(token_rep[1], i); } } /** Try to replace all tokens in the given text and write the result into the dest variable. */ gboolean misc_string_replace_all_tokens(GPtrArray **token_rep, const gchar *text_tokens, gchar *dest) { gchar buf[SMALL]; strcpy(dest, text_tokens); do { strcpy(buf, dest); misc_string_replace_tokens(dest, token_rep); misc_string_replace_expressions(dest); } while(strcmp(buf, dest) != 0); return (g_strrstr(dest, "_") == NULL); } /* Alphabetic compare function. */ gint misc_alphabetic_compare(gconstpointer a, gconstpointer b) { const gchar *string[2] = {(const gchar*)a, (const gchar*)b}; gchar alphabet[26] = {'a','b','c','d','e','f','g', 'h','i','j','k','l','m','n', 'o','p','q','r','s','t','u', 'v','w','x','y','z'}; gint len[2] = {strlen(string[0]), strlen(string[1])}; gint maxlen = MIN(len[0], len[1]); gint letter[2]; gint i, j, k; for(i = 0; i < maxlen; i++) { for(k = 0; k < 2; k++) { letter[k] = 0; for(j = 0; j < 26; j++) if(string[k][i] == alphabet[j]) { letter[k] = j; break; } } if(letter[0] < letter[1]) return -1; else if(letter[0] > letter[1]) return 1; } if(len[0] != len[1]) return 1 - 2 * (len[0] < len[1]); return 0; } bygfoot-2.3.2/src/finance.c0000644000175000017500000003751411225071373014514 0ustar eliaselias/* finance.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "finance.h" #include "fixture.h" #include "game_gui.h" #include "league.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "team.h" #include "user.h" /** Weekly update of finances. */ void finance_update_user_weekly(User *user) { #ifdef DEBUG printf("finance_update_user_weekly\n"); #endif gint i; Team *tm = user->tm; Team *new_team = NULL; gfloat physio_factor[4] = {const_float("float_finance_physio_factor1"), const_float("float_finance_physio_factor2"), const_float("float_finance_physio_factor3"), const_float("float_finance_physio_factor4")}; gfloat scout_factor[4] = {const_float("float_finance_scout_factor1"), const_float("float_finance_scout_factor2"), const_float("float_finance_scout_factor3"), const_float("float_finance_scout_factor4")}; gfloat yc_factor[4] = {const_float("float_finance_yc_factor1"), const_float("float_finance_yc_factor2"), const_float("float_finance_yc_factor3"), const_float("float_finance_yc_factor4")}; if(user->money > G_MAXINT - 50000000) { user_event_add(user, EVENT_TYPE_CHARITY, -1, -1, NULL, NULL); user->money = (user->money - user->money % 2) / 2; } if(week % 2 == 1) { for(i=0;imoney_out[0][i] = user->money_out[1][i]; user->money_out[1][i] = 0; } for(i=0;imoney_in[0][i] = user->money_in[1][i]; user->money_in[1][i] = 0; } } user->money += user->sponsor.benefit; user->money_in[1][MON_IN_SPONSOR] += user->sponsor.benefit; user->sponsor.contract = MAX(user->sponsor.contract - 1, 0); user->money -= (gint)rint((gfloat)user->sponsor.benefit * (gfloat)user->youth_academy.percentage / 100); user->money_out[1][MON_OUT_YA] -= (gint)rint((gfloat)user->sponsor.benefit * (gfloat)user->youth_academy.percentage / 100); if(user->counters[COUNT_USER_NEW_SPONSOR] > 1) user->counters[COUNT_USER_NEW_SPONSOR]--; else if(user->sponsor.contract == 4 && math_rnd(0, 1) < ((1 - const_float("float_sponsor_continue_prob")) / (2 * (gfloat)const_int("int_user_success_offer_limit")) * user->counters[COUNT_USER_SUCCESS]) + (1 - (1 - const_float("float_sponsor_continue_prob")) / 2)) user->counters[COUNT_USER_NEW_SPONSOR] = -1; else if(user->sponsor.contract == 0) user->counters[COUNT_USER_NEW_SPONSOR] = 1; if(query_team_plays(tm, week - 1, 1)) for(i=0;iplayers->len;i++) { user->money_out[1][MON_OUT_WAGE] -= g_array_index(tm->players, Player, i).wage; user->money -= g_array_index(tm->players, Player, i).wage; if(player_of_idx_team(tm, i)->health > 0) { user->money -= (gint)(finance_wage_unit(tm) * physio_factor[user->physio % 10]); user->money_out[1][MON_OUT_PHYSIO] -= (gint)(finance_wage_unit(tm) * physio_factor[user->physio % 10]); } } user->money_out[1][MON_OUT_SCOUT] -= (gint)(finance_wage_unit(tm) * scout_factor[user->scout % 10]); user->money -= (gint)(finance_wage_unit(tm) * scout_factor[user->scout % 10]); if(user->youth_academy.players->len > 0) { user->money_out[1][MON_OUT_YC] -= (gint)(finance_wage_unit(tm) * yc_factor[user->youth_academy.coach % 10]); user->money -= (gint)(finance_wage_unit(tm) * yc_factor[user->youth_academy.coach % 10]); } user->debt = (gint)rint((gfloat)user->debt * (1 + user->debt_interest)); if(user->alr_start_week != 0 && week >= user->alr_start_week) { finance_pay_loan(user, user->alr_weekly_installment); if(user->debt == 0) { user->alr_start_week = user->alr_weekly_installment = 0; } } if(user->money < -finance_team_drawing_credit_loan(user->tm, FALSE) && user->counters[COUNT_USER_POSITIVE] == -1 && debug < 50) { user->counters[COUNT_USER_OVERDRAWN]++; if(user->counters[COUNT_USER_OVERDRAWN] <= const_int("int_finance_overdraw_limit")) { user_event_add(user, EVENT_TYPE_OVERDRAW, user->counters[COUNT_USER_OVERDRAWN], -1, NULL, NULL); user->counters[COUNT_USER_POSITIVE] = const_int("int_finance_overdraw_positive"); } } else if(user->counters[COUNT_USER_POSITIVE] > -1) user->counters[COUNT_USER_POSITIVE]--; if(user->counters[COUNT_USER_LOAN] > -1) user->counters[COUNT_USER_LOAN]--; if(user->counters[COUNT_USER_LOAN] == 0 && debug < 50) user_event_add(user, EVENT_TYPE_WARNING, -1, -1, NULL, _("You have to pay back your loan this week.")); if(user->counters[COUNT_USER_POSITIVE] == 0 && debug < 50) user_event_add(user, EVENT_TYPE_WARNING, -1, -1, NULL, _("Your bank account has to be above your drawing credit limit next week.")); if(((user->counters[COUNT_USER_LOAN] == -1 && user->debt != 0) || (user->counters[COUNT_USER_POSITIVE] == -1 && user->money < -finance_team_drawing_credit_loan(user->tm, FALSE))) && debug < 50) { new_team = team_get_new(tm, TRUE); user_event_add(user, EVENT_TYPE_FIRE_FINANCE, -1, -1, new_team, NULL); } } /** Return a base value for team finances. Scout wages etc. depend on this value. */ gfloat finance_wage_unit(const Team *tm) { #ifdef DEBUG printf("finance_wage_unit\n"); #endif gint i; gfloat sum = 0; for(i=0;iplayers->len;i++) sum += player_of_idx_team(tm, i)->wage; return sum / (gfloat)tm->players->len; } /** Calculate the drawing credit or maximum loan of a team based on player values and stadium data. */ gint finance_team_drawing_credit_loan(const Team *tm, gboolean loan) { #ifdef DEBUG printf("finance_team_drawing_credit_loan\n"); #endif gint i; gfloat sum = 0; for(i=0;iplayers->len;i++) sum += player_of_idx_team(tm, i)->value; sum = (sum * const_float("float_finance_credit_player_value_weight")) + ((gfloat)tm->stadium.capacity * powf(tm->stadium.safety, const_float("float_finance_credit_stadium_safety_exponent")) * const_float("float_finance_credit_stadium_weight")); sum *= (loan) ? const_float("float_finance_credit_factor_loan") : const_float("float_finance_credit_factor_drawing"); return (gint)rint(sum); } /** Contract a loan for the current user. @param value The amount of money. */ void finance_get_loan(gint value) { #ifdef DEBUG printf("finance_get_loan\n"); #endif gfloat debt_old = current_user.debt; gfloat debt_new = -value; current_user.money += value; current_user.debt -= value; if(current_user.counters[COUNT_USER_LOAN] == -1) { current_user.counters[COUNT_USER_LOAN] = const_int("int_finance_payback_weeks"); current_user.debt_interest = current_interest; } else { /** Calculate new interest in a way that the user can't take unfair advantage of new market interest. */ if(current_interest != current_user.debt_interest) { current_user.debt_interest = powf((debt_old * powf(1 + current_user.debt_interest, (gfloat)current_user.counters[COUNT_USER_LOAN]) + debt_new * powf(1 + current_interest, (gfloat)current_user.counters[COUNT_USER_LOAN])) / (gfloat)current_user.debt, 1 / (gfloat)current_user.counters[COUNT_USER_LOAN]) - 1; } } game_gui_print_message(_("You have %d weeks to pay back your loan."), current_user.counters[COUNT_USER_LOAN]); } /** Pay back some loan for the specified user. @param value The amount of money paid back. */ void finance_pay_loan(User *user, gint value) { #ifdef DEBUG printf("finance_pay_loan\n"); #endif gint add = (gint)rint((gfloat)value / (gfloat)(-user->debt) * (gfloat)const_int("int_finance_payback_weeks")); if(value > -user->debt) value = -user->debt; user->money -= value; user->debt += value; if(user->debt == 0) { user->counters[COUNT_USER_LOAN] = -1; user->alr_start_week = 0; user->alr_weekly_installment = 0; game_gui_print_message(_("You are free from debt.")); } else { user->counters[COUNT_USER_LOAN] = MIN(user->counters[COUNT_USER_LOAN] + add, const_int("int_finance_payback_weeks")); game_gui_print_message(_("You have %d weeks to pay back the rest of your loan."), user->counters[COUNT_USER_LOAN]); } } /** Return the cost of a stadium improvement. @param value The improvement value, either number of new seats or safety increase. @param capacity Whether seats are built or capacity increased. */ gint finance_get_stadium_improvement_cost(gfloat value, gboolean capacity) { #ifdef DEBUG printf("finance_get_stadium_improvement_cost\n"); #endif gfloat return_value; if(capacity) { return_value = finance_wage_unit(current_user.tm) * (value / (gfloat)const_int("int_stadium_improvement_base_seats"))* const_float("float_stadium_improvement_wage_unit_factor_seats"); if(value - (gfloat)const_int("int_stadium_improvement_base_seats") >= const_int("int_stadium_improvement_max_discount_seats")) return_value *= (1 - const_float("float_stadium_improvement_max_discount")); else return_value *= (1 - const_float("float_stadium_improvement_max_discount") * ((value - (gfloat)const_int("int_stadium_improvement_base_seats")) / (gfloat)const_int("int_stadium_improvement_max_discount_seats"))); } else { return_value = finance_wage_unit(current_user.tm) * (value / const_float("float_stadium_improvement_base_safety"))* const_float("float_stadium_improvement_wage_unit_factor_safety"); if(value - const_float("float_stadium_improvement_base_safety") >= const_float("float_stadium_improvement_max_discount_safety")) return_value *= (1 - const_float("float_stadium_improvement_max_discount")); else return_value *= (1 - const_float("float_stadium_improvement_max_discount") * ((value - const_float("float_stadium_improvement_base_safety")) / const_float("float_stadium_improvement_max_discount_safety"))); } return (gint)rint(return_value); } /** Return the expected duration of a stadium improvement. @param value The improvement value, either number of new seats or safety increase. @param capacity Whether seats are built or capacity increased. */ gint finance_get_stadium_improvement_duration(gfloat value, gboolean capacity) { #ifdef DEBUG printf("finance_get_stadium_improvement_duration\n"); #endif gint return_value; if(capacity) return_value = (gint)((value - 1) / (gfloat)const_int("int_stadium_improvement_base_seats")) + 1; else return_value = (gint)(((gint)rint(value * 100) - 1) / (gint)rint(const_float("float_stadium_improvement_base_safety") * 100)) + 1; return return_value; } /** Update the user's accounts depending on match type and attendance. @fix The fixture being examined. */ void finance_assign_game_money(const Fixture *fix) { #ifdef DEBUG printf("finance_assign_game_money\n"); #endif gint i; gint user_idx[2] = {team_is_user(fix->teams[0]), team_is_user(fix->teams[1])}; gfloat journey_factor = (fix->clid < ID_CUP_START || (fix->clid >= ID_CUP_START && query_league_cup_has_property(fix->clid, "national"))) ? const_float("float_game_finance_journey_factor_national") : const_float("float_game_finance_journey_factor_international"); gint ticket_income[2] = {0, 0}; if (fix->clid >= ID_CUP_START && ! g_array_index(cup_from_clid(fix->clid)->rounds, CupRound, fix->round).home_away) { ticket_income[0] = ticket_income[1] = fix->attendance * fix->teams[0]->stadium.ticket_price / 2; } else ticket_income[0] = fix->attendance * fix->teams[0]->stadium.ticket_price; for(i = 0; i < 2; i++) { if(user_idx[i] != -1) { usr(user_idx[i]).money += ticket_income[i]; usr(user_idx[i]).money_in[1][MON_IN_TICKET] += ticket_income[i]; usr(user_idx[i]).money -= (gint)rint((gfloat)ticket_income[i] * (gfloat)usr(user_idx[i]).youth_academy.percentage / 100); usr(user_idx[i]).money_out[1][MON_OUT_YA] -= (gint)rint((gfloat)ticket_income[i] * (gfloat)usr(user_idx[i]).youth_academy.percentage / 100); if(i == 0 && debug < 50) { fix->teams[0]->stadium.safety -= math_rnd(const_float("float_game_stadium_safety_deterioration_lower"), const_float("float_game_stadium_safety_deterioration_upper")); fix->teams[0]->stadium.safety = CLAMP(fix->teams[0]->stadium.safety, 0, 1); } if(i == 1 || !fix->home_advantage) { usr(user_idx[i]).money_out[1][MON_OUT_JOURNEY] -= (gint)(finance_wage_unit(fix->teams[i]) * journey_factor); usr(user_idx[i]).money -= (gint)(finance_wage_unit(fix->teams[i]) * journey_factor); } } } } /** Change the current interest on the market (random walk with three possibilities). */ void finance_update_current_interest(void) { #ifdef DEBUG printf("finance_update_current_interest\n"); #endif current_interest += math_rndi(-1, 1) * const_float("float_finance_interest_step"); if(current_interest < const_float("float_finance_interest_lower")) current_interest = const_float("float_finance_interest_lower"); else if(current_interest > const_float("float_finance_interest_upper")) current_interest = const_float("float_finance_interest_upper"); } /** Calculate the weekly installment for an automatic loan repayment depending on the start week. */ gint finance_calculate_alr_weekly_installment(gint start_week) { #ifdef DEBUG printf("finance_calculate_alr_weekly_installment\n"); #endif gfloat debt_end; gfloat interest_factor; gfloat max_start_week; gfloat installment; gint weekly_installment; max_start_week = MIN(week + current_user.counters[COUNT_USER_LOAN], fixture_get_last_scheduled_week()); debt_end = current_user.debt * powf(1 + current_user.debt_interest, max_start_week - 1); interest_factor = (powf(1 + current_user.debt_interest, (gfloat)(max_start_week - start_week + 1)) - 1) / current_user.debt_interest; installment = -debt_end / interest_factor; weekly_installment = (gint)rint(installment); return (weekly_installment > installment) ? weekly_installment : weekly_installment + 1; } /** Calculate the start week for an automatic loan repayment depending on the weekly installment. */ gint finance_calculate_alr_start_week(gint weekly_installment) { #ifdef DEBUG printf("finance_calculate_alr_start_week\n"); #endif gint upper; gint start_week; gint installment; upper = MIN(week + current_user.counters[COUNT_USER_LOAN], fixture_get_last_scheduled_week()); for(start_week = week + 1; start_week <= upper; start_week++) { installment = finance_calculate_alr_weekly_installment(start_week); if(installment > weekly_installment) return start_week - 1; else if(installment == weekly_installment) return start_week; } return start_week; } bygfoot-2.3.2/src/xml_country.c0000644000175000017500000002005711225071373015466 0ustar eliaselias/* xml_country.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "misc.h" #include "option.h" #include "variables.h" #include "xml_cup.h" #include "xml_country.h" #include "xml_league.h" #include "xml.h" /** * The tags used in the XML files defining countries. */ #define TAG_COUNTRY "country" #define TAG_RATING "rating" #define TAG_SUPERNATIONAL "supernational" #define TAG_LEAGUES "leagues" #define TAG_LEAGUE "league" #define TAG_CUPS "cups" #define TAG_CUP "cup" /** * Enum with the states used in the XML parser functions. */ enum XmlCountryStates { STATE_COUNTRY = 0, STATE_NAME, STATE_RATING, STATE_SYMBOL, STATE_SID, STATE_SUPERNATIONAL, STATE_LEAGUES, STATE_LEAGUE, STATE_CUPS, STATE_CUP, STATE_END }; /** * The state variable used in the XML parsing functions. */ gint state; Country *cntry; /** * The function called by the parser when an opening tag is read. * The state variable is changed in this function and * sometimes memory allocated for the information that's going to be read. * @see The GLib manual (Simple XML parser). */ void xml_country_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_country_read_start_element\n"); #endif if(strcmp(element_name, TAG_DEF_NAME) == 0) state = STATE_NAME; else if(strcmp(element_name, TAG_RATING) == 0) state = STATE_RATING; else if(strcmp(element_name, TAG_DEF_SYMBOL) == 0) state = STATE_SYMBOL; else if(strcmp(element_name, TAG_DEF_SID) == 0) state = STATE_SID; else if(strcmp(element_name, TAG_SUPERNATIONAL) == 0) state = STATE_SUPERNATIONAL; else if(strcmp(element_name, TAG_LEAGUES) == 0) { state = STATE_LEAGUES; if(cntry->leagues == NULL) cntry->leagues = g_array_new(FALSE, FALSE, sizeof(League)); } else if(strcmp(element_name, TAG_LEAGUE) == 0) state = STATE_LEAGUE; else if(strcmp(element_name, TAG_CUPS) == 0) { state = STATE_CUPS; if(cntry->cups == NULL) cntry->cups = g_array_new(FALSE, FALSE, sizeof(Cup)); } else if(strcmp(element_name, TAG_CUP) == 0) state = STATE_CUP; else if(strcmp(element_name, TAG_COUNTRY) != 0) debug_print_message("xml_country_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_country_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_country_read_end_element\n"); #endif if(strcmp(element_name, TAG_DEF_NAME) == 0 || strcmp(element_name, TAG_RATING) == 0 || strcmp(element_name, TAG_DEF_SYMBOL) == 0 || strcmp(element_name, TAG_DEF_SID) == 0 || strcmp(element_name, TAG_SUPERNATIONAL) == 0 || strcmp(element_name, TAG_LEAGUES) == 0 || strcmp(element_name, TAG_CUPS) == 0) state = STATE_COUNTRY; else if(strcmp(element_name, TAG_LEAGUE) == 0) state = STATE_LEAGUES; else if(strcmp(element_name, TAG_CUP) == 0) state = STATE_CUPS; else if(strcmp(element_name, TAG_COUNTRY) != 0) debug_print_message("xml_country_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_country_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_country_read_text\n"); #endif gchar buf[text_len + 1]; gint int_value; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); if(state == STATE_NAME) misc_string_assign(&cntry->name, buf); else if(state == STATE_RATING) cntry->rating = int_value; else if(state == STATE_SYMBOL) misc_string_assign(&cntry->symbol, buf); else if(state == STATE_SID) misc_string_assign(&cntry->sid, buf); else if(state == STATE_SUPERNATIONAL && cntry == &country) { sett_set_int("int_opt_disable_finances", 1); sett_set_int("int_opt_disable_transfers", 1); sett_set_int("int_opt_disable_stadium", 1); sett_set_int("int_opt_disable_contracts", 1); sett_set_int("int_opt_disable_boost_on", 1); sett_set_int("int_opt_disable_ya", 1); sett_set_int("int_opt_disable_training_camp", 1);//***ML*** } else if(state == STATE_LEAGUE) xml_league_read(buf, cntry->leagues); else if(state == STATE_CUP) xml_cup_read(buf, cntry->cups); } /** Function reading an XML file specifying a country. @param country_name name of the xml file (e.g. 'country_england.xml') to be read. Full path is not necessary, if the file is located in one of the suppport directories; neither are the prefix 'country_' or the suffix '.xml'. @param cntry The country variable to write. */ void xml_country_read(const gchar *country_name, Country *cntry_arg) { #ifdef DEBUG printf("xml_country_read\n"); #endif gchar *file_name = file_find_support_file(country_name, FALSE); GMarkupParser parser = {xml_country_read_start_element, xml_country_read_end_element, xml_country_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; gchar buf[SMALL]; gint i; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(file_name == NULL) { sprintf(buf, "country_%s.xml", country_name); file_name = file_find_support_file(buf, TRUE); } if(!g_file_get_contents(file_name, &file_contents, &length, &error)) { debug_print_message("xml_country_read: error reading file %s\n", file_name); misc_print_error(&error, TRUE); return; } cntry = (cntry_arg == NULL) ? &country : cntry_arg; state = STATE_COUNTRY; strcpy(buf, file_name); g_free(file_name); free_country(cntry, TRUE); if(cntry_arg == NULL) { sett_set_int("int_opt_disable_finances", 0); sett_set_int("int_opt_disable_transfers", 0); sett_set_int("int_opt_disable_stadium", 0); sett_set_int("int_opt_disable_contracts", 0); sett_set_int("int_opt_disable_boost_on", 0); sett_set_int("int_opt_disable_ya", 0); sett_set_int("int_opt_disable_training_camp", 0); //***ML*** } if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { g_critical("xml_country_read: error parsing file %s\n", buf); misc_print_error(&error, TRUE); } for(i=0;ileagues->len;i++) if(g_array_index(cntry->leagues, League, i).layer == -1) g_array_index(cntry->leagues, League, i).layer = i + 1; } bygfoot-2.3.2/src/interface.h0000644000175000017500000000025611225071373015047 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_main_window (void); GtkWidget* create_menu_player (void); GtkWidget* create_menu_youth (void); bygfoot-2.3.2/src/callback_func.c0000644000175000017500000006137711225071373015664 0ustar eliaselias/* callback_func.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callback_func.h" #include "callbacks.h" #include "cup.h" #include "finance.h" #include "fixture.h" #include "game_gui.h" #include "gui.h" #include "league.h" #include "live_game.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "start_end.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "treeview_helper.h" #include "user.h" #include "window.h" #include "bet.h" /** Show the users' live games. */ void callback_show_next_live_game(void) { #ifdef DEBUG printf("callback_show_next_live_game\n"); #endif gint i, j; for(i=0;ilen;i++) { usr(i).counters[COUNT_USER_TOOK_TURN] = 0; // Store the player order before the live match this process is // repeated so check first if it hasn't been done yet if (usr(i).default_team->len==0 && option_int("int_opt_user_store_restore_default_team", &usr(i).options)) { store_default_team(&usr(i)); } } counters[COUNT_NEWS_SHOWN] = counters[COUNT_NEW_NEWS] = 0; for(i=0;ilen;i++) for(j=0;jlen;j++) if(g_array_index(lig(i).fixtures, Fixture, j).week_number == week && g_array_index(lig(i).fixtures, Fixture, j).week_round_number == week_round && fixture_user_team_involved(&g_array_index(lig(i).fixtures, Fixture, j)) != -1 && g_array_index(lig(i).fixtures, Fixture, j).attendance == -1 && option_int("int_opt_user_show_live_game", &usr(fixture_user_team_involved(&g_array_index(lig(i).fixtures, Fixture, j))). options)) { live_game_calculate_fixture(&g_array_index(lig(i).fixtures, Fixture, j), &usr(fixture_user_team_involved(&g_array_index(lig(i).fixtures, Fixture, j))).live_game); return; } for(i=0;ilen;i++) for(j=0;jfixtures->len;j++) if(g_array_index(acp(i)->fixtures, Fixture, j).week_number == week && g_array_index(acp(i)->fixtures, Fixture, j).week_round_number == week_round && fixture_user_team_involved(&g_array_index(acp(i)->fixtures, Fixture, j)) != -1 && g_array_index(acp(i)->fixtures, Fixture, j).attendance == -1 && option_int("int_opt_user_show_live_game", &usr(fixture_user_team_involved(&g_array_index(acp(i)->fixtures, Fixture, j))). options)) { live_game_calculate_fixture(&g_array_index(acp(i)->fixtures, Fixture, j), &usr(fixture_user_team_involved(&g_array_index(acp(i)->fixtures, Fixture, j))).live_game); return; } window_destroy(&window.live); /* Restore the player_order as it was before the match */ for(i=0;ilen;i++) { if (usr(i).default_team->len!=0 && option_int("int_opt_user_store_restore_default_team", &usr(i).options)) { restore_default_team(&usr(i)); } } treeview_show_user_player_list(); /* no more user games to show: end round. */ end_week_round(); setsav0; } /** Handle either a left click or a return button press on the player list. @param idx The player number. */ void callback_player_activate(gint idx) { #ifdef DEBUG printf("callback_player_activate\n"); #endif if(stat0 == STATUS_SHOW_TRANSFER_LIST) { selected_row = -1; transfer_add_remove_user_player(player_of_idx_team(current_user.tm, idx)); } else if(stat0 == STATUS_SHOW_YA) { selected_row = idx; on_menu_move_to_youth_academy_activate(NULL, NULL); } else if(gtk_notebook_get_current_page( GTK_NOTEBOOK(lookup_widget(window.main, "notebook_player"))) == 1) { selected_row = idx; return; } else { if(selected_row == -1) { selected_row = idx; return; } player_swap(current_user.tm, selected_row, current_user.tm, idx); if(opt_user_int("int_opt_user_swap_adapts") == 1 && current_user.tm->structure != team_find_appropriate_structure(current_user.tm)) { team_change_structure(current_user.tm, team_find_appropriate_structure(current_user.tm)); team_rearrange(current_user.tm); } game_gui_write_av_skills(NULL); selected_row = -1; treeview_show_user_player_list(); if(stat0 == STATUS_MAIN) treeview_show_next_opponent(); } } /** Handle a click on the player list. @param idx The player number. @param event The type of button click. */ void callback_player_clicked(gint idx, GdkEventButton *event) { #ifdef DEBUG printf("callback_player_clicked\n"); #endif /* Only accept single-clicks right now. */ if(event->type != GDK_BUTTON_PRESS) return; if(event->button == 1) callback_player_activate(idx); else if(event->button == 3) { selected_row = idx; window_show_menu_player((GdkEvent*)event); } setsav0; } /** Show the last match of the current user. @param start Whether we start the replay from the beginning or continue it. */ void callback_show_last_match(gboolean start, LiveGame *lg) { #ifdef DEBUG printf("callback_show_last_match\n"); #endif gint i; stat4 = -1; if(start) { stat2 = cur_user; statp = lg; window_create(WINDOW_LIVE); gui_set_sensitive_lg_meters(FALSE); treeview_show_game_stats( GTK_TREE_VIEW(lookup_widget(window.live, "treeview_stats")), lg); } else { gtk_widget_set_sensitive(lookup_widget(window.live, "button_pause"), TRUE); gtk_widget_set_sensitive(lookup_widget(window.live, "button_resume"), FALSE); } for(i=stat3;iunits->len;i++) { game_gui_live_game_show_unit(&g_array_index(lg->units, LiveGameUnit, i)); if(stat4 == STATUS_SHOW_LAST_MATCH_PAUSE || stat4 == STATUS_SHOW_LAST_MATCH_ABORT) { stat3 = i + 1; break; } } if(stat4 == STATUS_SHOW_LAST_MATCH_PAUSE) { gtk_widget_set_sensitive(lookup_widget(window.live, "button_pause"), FALSE); gtk_widget_set_sensitive(lookup_widget(window.live, "button_resume"), TRUE); } else if(stat4 == STATUS_SHOW_LAST_MATCH_ABORT) { window_destroy(&window.live); stat1 = stat2 = stat3 = stat4 = -1; } else stat3 = -1; } /** Show the last match stats of the current user. */ void callback_show_last_match_stats(void) { #ifdef DEBUG printf("callback_show_last_match_stats\n"); #endif current_user.live_game.fix = fixture_from_id(current_user.live_game.fix_id, TRUE); treeview_show_game_stats(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")), ¤t_user.live_game); } /** Show fixtures by week and round (as opposed to competition-wise). @param type Whether to show current, next or previous weeks. */ void callback_show_fixtures_week(gint type) { #ifdef DEBUG printf("callback_show_fixtures_week\n"); #endif switch(type) { default: debug_print_message("callback_show_fixtures_week: unknown type %d \n", type); return; break; case SHOW_CURRENT: if(week == 1 && week_round == 1) { stat1 = week; stat2 = week_round; } else if(week_round == 1) { stat1 = week - 1; stat2 = fixture_get_last_week_round(week - 1); } else { stat1 = week; stat2 = week_round - 1; } break; case SHOW_NEXT: fixture_get_next_week(&stat1, &stat2); break; case SHOW_PREVIOUS: fixture_get_previous_week(&stat1, &stat2); break; } treeview_show_fixtures_week(stat1, stat2); } /** Show some fixtures. @param type An integer telling us which league/cup and which week and round to show. */ void callback_show_fixtures(gint type) { #ifdef DEBUG printf("callback_show_fixtures\n"); #endif const Fixture *fix = fixture_get(type, stat1, stat2, stat3, current_user.tm); treeview_show_fixtures(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")), fix->clid, fix->week_number, fix->week_round_number); stat1 = fix->clid; stat2 = fix->week_number; stat3 = fix->week_round_number; } /** Show tables. @type Integer telling us whether to show the current user's tables or those of the previous/next league/cup. */ void callback_show_tables(gint type) { #ifdef DEBUG printf("callback_show_tables\n"); #endif gint clid = -1; if(type == SHOW_CURRENT) clid = stat1; else if(type == SHOW_NEXT_LEAGUE) clid = league_cup_get_next_clid(stat1, FALSE); else if(type == SHOW_PREVIOUS_LEAGUE) clid = league_cup_get_previous_clid(stat1, FALSE); else { debug_print_message("callback_show_tables: unknown type %d \n", type); return; } while((clid < ID_CUP_START && !query_league_active(league_from_clid(clid))) || (clid >= ID_CUP_START && cup_has_tables(clid) == -1)) { if(type == SHOW_PREVIOUS_LEAGUE) clid = league_cup_get_previous_clid(clid, FALSE); else clid = league_cup_get_next_clid(clid, FALSE); } stat1 = clid; treeview_show_table(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")), clid); } /** Open the digits window to get a loan. */ void callback_get_loan(void) { #ifdef DEBUG printf("callback_get_loan\n"); #endif gchar buf[SMALL], buf2[SMALL]; gint max_loan = finance_team_drawing_credit_loan(current_user.tm, TRUE) + current_user.debt; if(max_loan <= 0) { game_gui_print_message(_("The bank doesn't grant you more money.")); return; } stat1 = STATUS_GET_LOAN; misc_print_grouped_int(max_loan, buf2); sprintf(buf, _("You can take out at most %s."), buf2); window_show_digits(buf, _("Loan"), max_loan, NULL, 0, TRUE); } /** Open the digits window to pay back a loan. */ void callback_pay_loan(void) { #ifdef DEBUG printf("callback_pay_loan\n"); #endif gchar buf[SMALL], buf2[SMALL]; gint max_payback = MIN(BUDGET(cur_user), -current_user.debt); if(current_user.debt == 0) { game_gui_print_message(_("You are not indebted.")); return; } if(max_payback <= 0) { game_gui_print_message(_("You don't have enough money to pay back.")); return; } stat1 = STATUS_PAY_LOAN; misc_print_grouped_int(max_payback, buf2); sprintf(buf, _("You can pay back at most %s"), buf2); window_show_digits(buf, _("Payback"), max_payback, NULL, 0, FALSE); } /** Manage a click on a player of the current team on the transfer list. @param button The mouse button number. @param idx The index of the selected player in the transfer list. */ void callback_transfer_list_user(gint button, gint idx) { #ifdef DEBUG printf("callback_transfer_list_user\n"); #endif gchar buf[SMALL], buf2[SMALL], buf3[SMALL]; if(button == 3 || (button == 1 && trans(idx).offers->len == 0)) { transfer_remove_player(idx); on_button_transfers_clicked(NULL, NULL); setsav0; } else if(button == 1) { if(trans(idx).offers->len > 0 && transoff(idx, 0).status != TRANSFER_OFFER_ACCEPTED) game_gui_print_message(_("There are some offers for the player which you rejected or will see next week.")); else { misc_print_grouped_int(transoff(idx, 0).fee, buf2); misc_print_grouped_int(ABS(transoff(idx, 0).fee - player_of_id_team(current_user.tm, trans(idx).id)->value), buf3); if(transoff(idx, 0).fee - player_of_id_team(current_user.tm, trans(idx).id)->value > 0) strcat(buf3, _(" more")); else strcat(buf3, _(" less")); sprintf(buf, _("%s would like to buy %s. They offer %s for him, which is %s than the player's value. Do you accept?"), transoff(idx, 0).tm->name, player_of_id_team(current_user.tm, trans(idx).id)->name, buf2, buf3); stat1 = STATUS_TRANSFER_OFFER_USER; stat2 = idx; window_show_transfer_dialog(buf); } } } /** Handle a click on a cpu player for which the offer got accepted. */ void callback_transfer_list_cpu(gint button, gint idx) { #ifdef DEBUG printf("callback_transfer_list_cpu\n"); #endif gchar buf[SMALL], buf2[SMALL], buf3[SMALL]; if(button == 2) return; if(button == 3) { g_array_remove_index(trans(idx).offers, 0); if(trans(idx).offers->len > 0) transfer_offers_notify(&trans(idx), FALSE); game_gui_print_message(_("Your offer has been removed.")); on_button_transfers_clicked(NULL, NULL); return; } if(current_user.tm->players->len == const_int("int_team_max_players")) { game_gui_show_warning(_("Your roster is already full. You can't buy more players.")); return; } misc_print_grouped_int(transoff(idx, 0).fee, buf2); misc_print_grouped_int(transoff(idx, 0).wage, buf3); sprintf(buf, _("You offered a transfer fee of %s and a wage of %s for %s. The owners and the player are satisfied with your offer. Do you still want to buy the player?"), buf2, buf3, player_of_id_team(trans(idx).tm, trans(idx).id)->name); stat1 = STATUS_TRANSFER_OFFER_CPU; stat2 = idx; window_show_transfer_dialog(buf); } /** Handle a click on the transfer list. @param button The mouse button number. @param idx The index of the selected player in the transfer list. */ void callback_transfer_list_clicked(gint button, gint idx) { #ifdef DEBUG printf("callback_transfer_list_clicked\n"); #endif gchar buf[SMALL]; Transfer *tr = &trans(idx); gint old_fee, old_wage = -1; if(tr->tm == current_user.tm) { callback_transfer_list_user(button, idx); return; } else if(tr->offers->len > 0 && transoff(idx, 0).status == TRANSFER_OFFER_ACCEPTED) { if(transoff(idx, 0).tm == current_user.tm) { if(team_is_user(tr->tm) != -1) { game_gui_print_message(_("User %s didn't consider your offer yet."), user_from_team(tr->tm)->name); } else callback_transfer_list_cpu(button, idx); } else game_gui_print_message(_("The player is locked (the team owners are considering an offer currently).")); return; } if(week >= transfer_get_deadline()) { game_gui_print_message(_("The transfer deadline is over.")); return; } stat1 = STATUS_SHOW_TRANSFER_LIST; stat2 = idx; if(tr->offers->len > 0) transfer_get_previous_offer(tr, current_user.tm, &old_fee, &old_wage); if(old_wage == -1) { sprintf(buf, _("You are making an offer for %s. Your scout's recommendations for fee and wage are preset."), player_of_id_team(tr->tm, tr->id)->name); window_show_digits(buf, _("Fee"), tr->fee[current_user.scout % 10], _("Wage"), tr->wage[current_user.scout % 10], FALSE); } else { sprintf(buf, _("You are making an offer for %s again. Your previous values for fee and wage are preset."), player_of_id_team(tr->tm, tr->id)->name); window_show_digits(buf, _("Fee"), old_fee, _("Wage"), old_wage, FALSE); } } /** Show the contract window for the player with the specified index. */ void callback_offer_new_contract(gint idx) { #ifdef DEBUG printf("callback_offer_new_contract\n"); #endif gint i; gchar buf[SMALL]; Player *pl = player_of_idx_team(current_user.tm, idx); gfloat scout_dev = math_rnd(-const_float("float_transfer_scout_deviance_wage"), const_float("float_transfer_scout_deviance_wage")) * (current_user.scout % 10 + 1); GtkSpinButton *spinbuttons[4]; if(pl->contract >= 2) { game_gui_show_warning(_("You can't offer a new contract if the old one is still above 2 years.")); return; } else if(pl->offers == const_int("int_contract_max_offers")) { game_gui_show_warning(_("The player won't negotiate with you anymore.")); return; } else if(query_player_star_balks(pl, current_user.tm, FALSE)) { pl->offers = const_int("int_contract_max_offers"); game_gui_show_warning(_("The player feels he doesn't have a future in your star-studded team. He refuses to negotiate.")); return; } stat1 = player_assign_wage(pl); statp = (gpointer)pl; if(pl->age < pl->peak_age) stat1 = MAX(stat1, pl->wage); else stat1 = MIN(stat1, pl->wage); window_create(WINDOW_CONTRACT); sprintf(buf, _("You are negotiating with %s about a new contract. Pay attention to what you're doing; if you don't come to terms with him within %d offers, he's going to leave your team after his current contract expires (unless you sell him). You may only abort BEFORE making the first offer.\nYour scout's recommendations are preset:"), pl->name, const_int("int_contract_max_offers")); gtk_label_set_text(GTK_LABEL(lookup_widget(window.contract, "label_contract")), buf); for(i=0;i<4;i++) { sprintf(buf, "spinbutton_contract%d", i + 1); spinbuttons[i] = GTK_SPIN_BUTTON(lookup_widget(window.contract, buf)); gtk_spin_button_set_value(spinbuttons[i], rint((gfloat)stat1 * (1 + (i * const_float("float_contract_scale_factor") * powf(-1, (pl->age > pl->peak_age)))) * (1 + scout_dev))); } setsav0; } /** Show the player list of a team in the browse-teams mode. */ void callback_show_team(gint type) { #ifdef DEBUG printf("callback_show_team\n"); #endif GtkTreeView *treeview_right = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); const Team *tm; const GArray *teams = NULL; const GPtrArray *teamsp = NULL; gint len = -1; if(type == SHOW_CURRENT) { tm = (const Team*)treeview_helper_get_pointer(treeview_right, 2); stat1 = team_get_index(tm); stat2 = tm->clid; } else { if(type == SHOW_NEXT_LEAGUE) { stat2 = league_cup_get_next_clid(stat2, TRUE); while(stat2 >= ID_CUP_START && cup_from_clid(stat2)->teams->len == 0) stat2 = league_cup_get_next_clid(stat2, TRUE); } else if(type == SHOW_PREVIOUS_LEAGUE) { stat2 = league_cup_get_previous_clid(stat2, TRUE); while(stat2 >= ID_CUP_START && cup_from_clid(stat2)->teams->len == 0) stat2 = league_cup_get_previous_clid(stat2, TRUE); } if(stat2 < ID_CUP_START) { teams = (GArray*)league_cup_get_teams(stat2); len = teams->len; } else { teamsp = (GPtrArray*)league_cup_get_teams(stat2); len = teamsp->len; } if(type == SHOW_NEXT) stat1 = (stat1 == len - 1) ? 0 : stat1 + 1; else if(type == SHOW_PREVIOUS) stat1 = (stat1 == 0) ? len - 1 : stat1 - 1; else stat1 = 0; if(stat2 < ID_CUP_START) tm = &g_array_index(teams, Team, stat1); else tm = (Team*)g_ptr_array_index(teamsp, stat1); } stat0 = STATUS_BROWSE_TEAMS; if(tm != current_user.tm) { treeview_show_player_list_team(treeview_right, tm, current_user.scout % 10); game_gui_write_av_skills(tm); } else callback_show_team((type == SHOW_PREVIOUS) ? SHOW_PREVIOUS : SHOW_NEXT); } /** Show a sortable list of all players in a league or cup. */ void callback_show_player_list(gint type) { #ifdef DEBUG printf("callback_show_player_list\n"); #endif stat0 = STATUS_SHOW_PLAYER_LIST; switch(type) { default: debug_print_message("callback_show_player_list: unknown type %d \n", type); return; break; case SHOW_CURRENT: stat1 = current_user.tm->clid; break; case SHOW_NEXT_LEAGUE: stat1 = league_cup_get_next_clid(stat1, TRUE); while(stat1 >= ID_CUP_START && cup_from_clid(stat1)->teams->len == 0) stat1 = league_cup_get_next_clid(stat1, TRUE); break; case SHOW_PREVIOUS_LEAGUE: stat1 = league_cup_get_previous_clid(stat1, TRUE); while(stat1 >= ID_CUP_START && cup_from_clid(stat1)->teams->len == 0) stat1 = league_cup_get_previous_clid(stat1, TRUE); break; } treeview_show_all_players(stat1); } /** Fire a player. */ void callback_fire_player(gint idx) { #ifdef DEBUG printf("callback_fire_player\n"); #endif gchar buf[SMALL], buf2[SMALL]; Player *pl = player_of_idx_team(current_user.tm, idx); stat1 = STATUS_FIRE_PLAYER; stat2 = idx; stat3 = (gint)rint(pl->wage * const_float("float_player_fire_wage_factor") * pl->contract); misc_print_grouped_int(stat3, buf2); sprintf(buf, _("You want to fire %s. Since his contract expires in %.1f years, he demands a compensation of %s. Do you accept?"), pl->name, pl->contract, buf2); window_show_yesno(buf); } /** Show a page with the information in the league stats structure. */ void callback_show_league_stats(gint type) { #ifdef DEBUG printf("callback_show_league_stats\n"); #endif switch(type) { default: debug_print_message("callback_show_league_stats: unknown type %d \n", type); return; break; case SHOW_CURRENT: stat1 = current_user.tm->clid; while(stat1 >= ID_CUP_START || !query_league_active(league_from_clid(stat1))) stat1 = league_cup_get_next_clid(stat1, FALSE); break; case SHOW_NEXT_LEAGUE: stat1 = league_cup_get_next_clid(stat1, FALSE); while(stat1 >= ID_CUP_START) stat1 = league_cup_get_next_clid(stat1, FALSE); break; case SHOW_PREVIOUS_LEAGUE: stat1 = league_cup_get_previous_clid(stat1, FALSE); while(stat1 >= ID_CUP_START) stat1 = league_cup_get_previous_clid(stat1, FALSE); break; } treeview_show_league_stats(stat1); } /** Show the appropriate season history page in the right treeview. */ void callback_show_season_history(gint type) { #ifdef DEBUG printf("callback_show_season_history\n"); #endif const SeasonStat *stat = NULL; gint len = season_stats->len; switch(type) { default: debug_print_message("callback_show_season_history: unknown type %d \n", type); return; break; case SHOW_CURRENT: stat1 = -1; stat2 = len - 1; break; case SHOW_NEXT_LEAGUE: stat = &g_array_index(season_stats, SeasonStat, stat2); if(stat1 == -1) stat1 = 0; else if(stat1 == stat->league_stats->len - 1) stat1 = -1; else stat1++; break; case SHOW_PREVIOUS_LEAGUE: stat = &g_array_index(season_stats, SeasonStat, stat2); if(stat1 == -1) stat1 = stat->league_stats->len - 1; else if(stat1 == 0) stat1 = -1; else stat1--; break; case SHOW_NEXT: stat2 = (stat2 + 1) % len; break; case SHOW_PREVIOUS: stat2 = (stat2 == 0) ? len - 1 : stat2 - 1; break; } treeview_show_season_history(stat1, stat2); } /** Show the player list of the next opponent. */ void callback_show_next_opponent(void) { #ifdef DEBUG printf("callback_show_next_opponent\n"); #endif const Fixture *fix = team_get_fixture(current_user.tm, FALSE); const Team *opp = (fix == NULL) ? NULL : fix->teams[fix->teams[0] == current_user.tm]; GtkTreeView *treeview_right = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); if(opp == NULL) return; stat0 = STATUS_BROWSE_TEAMS; stat1 = team_get_index(opp); stat2 = opp->clid; treeview_show_player_list_team(treeview_right, opp, current_user.scout % 10); } /** Show the player list after the user clicked on a player in the browse players mode. */ void callback_show_player_team(void) { #ifdef DEBUG printf("callback_show_player_team\n"); #endif GtkTreeView *treeview_right = GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")); const Player *pl = (const Player*)treeview_helper_get_pointer(treeview_right, 2); stat0 = STATUS_BROWSE_TEAMS; stat1 = team_get_index(pl->team); stat2 = pl->team->clid; treeview_show_player_list_team(treeview_right, pl->team, current_user.scout % 10); } /** Show the youth players of the current user. */ void callback_show_youth_academy(void) { #ifdef DEBUG printf("callback_show_youth_academy\n"); #endif gint i; PlayerListAttribute attributes; for(i=0;i 1, the team's lucky, if < 1, it's unlucky. Only used for users' teams. */ gfloat luck; Stadium stadium; /** Array of players. */ GArray *players; } Team; #endif bygfoot-2.3.2/src/xml_loadsave_newspaper.c0000644000175000017500000002011011225071373017633 0ustar eliaselias/* xml_loadsave_newspaper.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "misc.h" #include "xml.h" #include "xml_loadsave_newspaper.h" #include "variables.h" enum { TAG_NEWS_PAPER = TAG_START_NEWS_PAPER, TAG_NEWS_PAPER_NAME, TAG_NEWS_PAPER_ARTICLE, TAG_NEWS_PAPER_ARTICLE_ID, TAG_NEWS_PAPER_ARTICLE_WEEK, TAG_NEWS_PAPER_ARTICLE_WEEK_ROUND, TAG_NEWS_PAPER_ARTICLE_TITLE_ID, TAG_NEWS_PAPER_ARTICLE_SUBTITLE_ID, TAG_NEWS_PAPER_ARTICLE_TITLE_SMALL, TAG_NEWS_PAPER_ARTICLE_TITLE, TAG_NEWS_PAPER_ARTICLE_SUBTITLE, TAG_NEWS_PAPER_ARTICLE_USER_IDX, TAG_NEWS_PAPER_ARTICLE_CLID, TAG_NEWS_PAPER_ARTICLE_CUP_ROUND, TAG_END }; gint state; NewsPaperArticle new_article; void xml_loadsave_newspaper_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_newspaper_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_NEWS_PAPER;i\n", TAG_NEWS_PAPER); for(i=0;ilen;i++) { fprintf(fil, "%s<_%d>\n", I0, TAG_NEWS_PAPER_ARTICLE); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).id, TAG_NEWS_PAPER_ARTICLE_ID, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).week_number, TAG_NEWS_PAPER_ARTICLE_WEEK, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).week_round_number, TAG_NEWS_PAPER_ARTICLE_WEEK_ROUND, I1); xml_write_string(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).title_small, TAG_NEWS_PAPER_ARTICLE_TITLE_SMALL, I1); xml_write_string(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).title, TAG_NEWS_PAPER_ARTICLE_TITLE, I1); xml_write_string(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).subtitle, TAG_NEWS_PAPER_ARTICLE_SUBTITLE, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).title_id, TAG_NEWS_PAPER_ARTICLE_TITLE_ID, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).subtitle_id, TAG_NEWS_PAPER_ARTICLE_SUBTITLE_ID, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).user_idx, TAG_NEWS_PAPER_ARTICLE_USER_IDX, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).clid, TAG_NEWS_PAPER_ARTICLE_CLID, I1); xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).cup_round, TAG_NEWS_PAPER_ARTICLE_CUP_ROUND, I1); fprintf(fil, "%s\n", I0, TAG_NEWS_PAPER_ARTICLE); } fprintf(fil, "\n", TAG_NEWS_PAPER); fclose(fil); } bygfoot-2.3.2/src/option_struct.h0000644000175000017500000000237511225071373016027 0ustar eliaselias/* option_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef OPTION_STRUCT_H #define OPTION_STRUCT_H /** A struct representing an option or a constant. */ typedef struct { gchar *name, *string_value; gint value; } Option; /** An array of name-value pairs with an associated keyed data list for quick access. */ typedef struct { GArray *list; GData *datalist; } OptionList; #endif bygfoot-2.3.2/src/name.h0000644000175000017500000000324111225071373014024 0ustar eliaselias/* name.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef NAME_H #define NAME_H #include "bygfoot.h" #include "name_struct.h" #include "maths.h" #define nli(i) g_array_index(name_lists, NameList, i) #define name_get_random_first_name(namelist) (gchar*)g_ptr_array_index(namelist->first_names, math_rndi(0, namelist->first_names->len - 1)) #define name_get_random_last_name(namelist) (gchar*)g_ptr_array_index(namelist->last_names, math_rndi(0, namelist->last_names->len - 1)) /** Get a name from a randomly picked name list. */ #define name_get_from_random_list() name_get_from_list(&nli(math_rndi(0, name_lists->len - 1))) void name_shorten_list(NameList *namelist); gchar* name_get(const gchar *names_file); gchar* name_get_from_list(const NameList *namelist); NameList* name_get_list_from_sid(const gchar *sid); #endif bygfoot-2.3.2/src/options_interface.h0000644000175000017500000000022111225071373016612 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window_options (void); GtkWidget* create_window_constants (void); bygfoot-2.3.2/src/enums.h0000644000175000017500000000775711225071373014253 0ustar eliaselias/* enums.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef ENUMS_H #define ENUMS_H /** Some counters. */ enum Counters { COUNT_AUTOSAVE = 0, COUNT_AUTOSAVE_FILE, COUNT_TEAM_ID, COUNT_PLAYER_ID, COUNT_CUP_ID, COUNT_LEAGUE_ID, COUNT_FIX_ID, COUNT_LG_COMM_ID, COUNT_NEWS_TITLE_ID, COUNT_NEWS_SUBTITLE_ID, COUNT_NEWS_ARTICLE_ID, COUNT_SHOW_DEBUG, COUNT_HINT_NUMBER, COUNT_NEWS_SHOWN, COUNT_NEW_NEWS, COUNT_END }; /** Scout and physio qualities. */ enum Quality { QUALITY_BEST = 0, QUALITY_GOOD, QUALITY_AVERAGE, QUALITY_BAD, QUALITY_END }; /** Indices for the #finances variable. */ enum FinanceValue { FIN_PRIZE = 0, /**< Prize money at the end of the season. */ FIN_DEBTS, /**< User's debts. */ FIN_MONEY, /**< User's money. */ FIN_TICKETS, /**< Ticket income (weekly). */ FIN_JOURNEY, /**< Journey costs (weekly). */ FIN_WAGES, /**< Wages (weekly). */ FIN_SCOUT, /**< Scout wage (weekly). */ FIN_PHYSIO, /**< Physio wage (weekly). */ FIN_TRANSFERS_IN, /**< Transfer fees income (weekly). */ FIN_TRANSFERS_OUT, /**< Transfer fees spent (weekly). */ FIN_STADIUM, /**< Stadium improvement (weekly). */ FIN_STAD_BILLS, /**< Bills for riots or fire or so (weekly). */ FIN_END }; /** Enum used to determine what kind of fixtures or tables to show (e.g. when an arrow is clicked on). */ enum ShowType { SHOW_TEAM = 0, SHOW_CURRENT, SHOW_NEXT, SHOW_PREVIOUS, SHOW_NEXT_LEAGUE, SHOW_PREVIOUS_LEAGUE, SHOW_END }; /** Possible values for a status variable. */ enum Status0Value { STATUS_NONE = 0, STATUS_MAIN, STATUS_SHOW_LIVE_GAME, STATUS_LIVE_GAME_PAUSE, STATUS_LIVE_GAME_CHANGE, STATUS_SHOW_TEAM_LIST, STATUS_SHOW_PLAYER_INFO, STATUS_BROWSE_TEAMS, STATUS_TEAM_SELECTION, STATUS_SHOW_LAST_MATCH, STATUS_SHOW_LAST_MATCH_PAUSE, STATUS_SHOW_LAST_MATCH_ABORT, STATUS_SHOW_LAST_MATCH_STATS, STATUS_SHOW_FIXTURES, STATUS_SHOW_FIXTURES_WEEK, STATUS_SHOW_TABLES, STATUS_SHOW_FINANCES, STATUS_SHOW_TRANSFER_LIST, STATUS_SHOW_USER_HISTORY, STATUS_GET_LOAN, STATUS_PAY_LOAN, STATUS_SHOW_EVENT, STATUS_JOB_OFFER_SUCCESS, STATUS_JOB_OFFER_FIRE_FINANCE, STATUS_JOB_OFFER_FIRE_FAILURE, STATUS_TRANSFER_OFFER_USER, STATUS_TRANSFER_OFFER_CPU, STATUS_CUSTOM_STRUCTURE, STATUS_SHOW_LEAGUE_RESULTS, STATUS_SHOW_SEASON_RESULTS, STATUS_SHOW_LEAGUE_STATS, STATUS_SHOW_SEASON_HISTORY, STATUS_SHOW_PLAYER_LIST, STATUS_FIRE_PLAYER, STATUS_USER_MANAGEMENT, STATUS_SHOW_PREVIEW, STATUS_SAVE_GAME, STATUS_LOAD_GAME, STATUS_LOAD_GAME_SPLASH, STATUS_QUERY_UNFIT, STATUS_QUERY_QUIT, STATUS_QUERY_USER_NO_TURN, STATUS_GENERATE_TEAMS, STATUS_SPONSOR_CONTINUE, STATUS_SHOW_YA, STATUS_SET_YA_PERCENTAGE, STATUS_QUERY_KICK_YOUTH, STATUS_SELECT_MM_FILE_LOAD, STATUS_SELECT_MM_FILE_ADD, STATUS_SELECT_MM_FILE_IMPORT, STATUS_SELECT_MM_FILE_EXPORT, STATUS_PLACE_BET, STATUS_SHOW_JOB_EXCHANGE, STATUS_JOB_EXCHANGE_SHOW_TEAM, STATUS_SPLASH, STATUS_END }; #endif bygfoot-2.3.2/src/table.h0000644000175000017500000000272411225071373014200 0ustar eliaselias/* table.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TABLE_H #define TABLE_H #include "bygfoot.h" #include "fixture_struct.h" #include "table_struct.h" Table table_new(void); TableElement table_element_new(Team *team, gint old_rank); void table_update(const Fixture *fix); void table_update_get_elements(TableElement **elements, const Fixture *fix, gboolean non_cumulative); gint table_element_compare_func(gconstpointer a, gconstpointer b, gpointer clid_round); gboolean query_tables_in_country(void); Table table_copy(const Table *table); void table_refresh_team_pointers(Table *table); #endif bygfoot-2.3.2/src/option_gui.c0000644000175000017500000005656111225071373015270 0ustar eliaselias/* option_gui.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "file.h" #include "game_gui.h" #include "language.h" #include "option.h" #include "option_gui.h" #include "misc.h" #include "support.h" #include "training.h" #include "treeview.h" #include "user.h" #include "variables.h" /** An enumeration for all the options that are boolean, e.g. whether or not quit requires confirmation. */ enum BooleanOptions { BOOL_OPT_CONF_QUIT = 0, BOOL_OPT_SAVE_OVERWRITE, BOOL_OPT_MAXIMIZE, BOOL_OPT_PREFER_MESS, BOOL_OPT_PROGRESSBAR_PICS, BOOL_OPT_SKIP, BOOL_OPT_AUTOSAVE, BOOL_OPT_AUTO_STORE_RESTORE_DEFAULT_TEAM, BOOL_OPT_SHOW_LIVE, BOOL_OPT_SHOW_TENDENCY, BOOL_OPT_PAUSE_INJURY, BOOL_OPT_PAUSE_RED, BOOL_OPT_PAUSE_BREAK, BOOL_OPT_AUTO_SUB, BOOL_OPT_CONF_UNFIT, BOOL_OPT_CONF_YOUTH, BOOL_OPT_SHOW_JOB, BOOL_OPT_SWAP, BOOL_OPT_SHOW_OVERALL, BOOL_OPT_SHOW_ALL_LEAGUES, BOOL_OPT_BET_SHOW_ALL_LEAGUES, BOOL_OPT_BET_SHOW_CUPS, BOOL_OPT_BET_SHOW_MY_RECENT, BOOL_OPT_NEWS_USER, BOOL_OPT_NEWS_CUP, BOOL_OPT_NEWS_LEAGUE, BOOL_OPT_NEWS_RECENT, BOOL_OPT_PL1_ATT_NAME, BOOL_OPT_PL1_ATT_CPOS, BOOL_OPT_PL1_ATT_POS, BOOL_OPT_PL1_ATT_CSKILL, BOOL_OPT_PL1_ATT_SKILL, BOOL_OPT_PL1_ATT_FITNESS, BOOL_OPT_PL1_ATT_GAMES, BOOL_OPT_PL1_ATT_SHOTS, BOOL_OPT_PL1_ATT_GOALS, BOOL_OPT_PL1_ATT_STATUS, BOOL_OPT_PL1_ATT_CARDS, BOOL_OPT_PL1_ATT_AGE, BOOL_OPT_PL1_ATT_ETAL, BOOL_OPT_PL1_ATT_VALUE, BOOL_OPT_PL1_ATT_WAGE, BOOL_OPT_PL1_ATT_CONTRACT, BOOL_OPT_PL1_ATT_TEAM, BOOL_OPT_PL1_ATT_LEAGUE, BOOL_OPT_PL2_ATT_NAME, BOOL_OPT_PL2_ATT_CPOS, BOOL_OPT_PL2_ATT_POS, BOOL_OPT_PL2_ATT_CSKILL, BOOL_OPT_PL2_ATT_SKILL, BOOL_OPT_PL2_ATT_FITNESS, BOOL_OPT_PL2_ATT_GAMES, BOOL_OPT_PL2_ATT_SHOTS, BOOL_OPT_PL2_ATT_GOALS, BOOL_OPT_PL2_ATT_STATUS, BOOL_OPT_PL2_ATT_CARDS, BOOL_OPT_PL2_ATT_AGE, BOOL_OPT_PL2_ATT_ETAL, BOOL_OPT_PL2_ATT_VALUE, BOOL_OPT_PL2_ATT_WAGE, BOOL_OPT_PL2_ATT_CONTRACT, BOOL_OPT_PL2_ATT_TEAM, BOOL_OPT_PL2_ATT_LEAGUE, BOOL_OPT_END }; /** Write the pointers to the options and the corresponding widgets. */ void option_gui_write_bool_widgets(gint **bool_options, GtkToggleButton **bool_widgets) { #ifdef DEBUG printf("option_gui_write_bool_widgets\n"); #endif bool_widgets[BOOL_OPT_CONF_QUIT] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_conf_quit")); bool_options[BOOL_OPT_CONF_QUIT] = opt_intp("int_opt_confirm_quit"); bool_widgets[BOOL_OPT_CONF_UNFIT] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_conf_unfit")); bool_options[BOOL_OPT_CONF_UNFIT] = opt_intp("int_opt_confirm_unfit"); bool_widgets[BOOL_OPT_SAVE_OVERWRITE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_save_overwrite")); bool_options[BOOL_OPT_SAVE_OVERWRITE] = opt_intp("int_opt_save_will_overwrite"); bool_widgets[BOOL_OPT_AUTO_STORE_RESTORE_DEFAULT_TEAM] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_store_restore_default_team")); bool_options[BOOL_OPT_AUTO_STORE_RESTORE_DEFAULT_TEAM] = opt_user_intp("int_opt_user_store_restore_default_team"); bool_widgets[BOOL_OPT_MAXIMIZE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_maximize")); bool_options[BOOL_OPT_MAXIMIZE] = opt_intp("int_opt_maximize_main_window"); bool_widgets[BOOL_OPT_PREFER_MESS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pref_mess")); bool_options[BOOL_OPT_PREFER_MESS] = opt_intp("int_opt_prefer_messages"); bool_widgets[BOOL_OPT_PROGRESSBAR_PICS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_progress_pics")); bool_options[BOOL_OPT_PROGRESSBAR_PICS] = opt_intp("int_opt_progressbar_pics"); bool_widgets[BOOL_OPT_SKIP] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_skip")); bool_options[BOOL_OPT_SKIP] = opt_intp("int_opt_skip"); bool_widgets[BOOL_OPT_AUTOSAVE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_autosave")); bool_options[BOOL_OPT_AUTOSAVE] = opt_intp("int_opt_autosave"); bool_widgets[BOOL_OPT_SHOW_LIVE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_live")); bool_options[BOOL_OPT_SHOW_LIVE] = opt_user_intp("int_opt_user_show_live_game"); bool_widgets[BOOL_OPT_SHOW_TENDENCY] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_tendency")); bool_options[BOOL_OPT_SHOW_TENDENCY] = opt_user_intp("int_opt_user_show_tendency_bar"); bool_widgets[BOOL_OPT_PAUSE_INJURY] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pause_injury")); bool_options[BOOL_OPT_PAUSE_INJURY] = opt_user_intp("int_opt_user_pause_injury"); bool_widgets[BOOL_OPT_PAUSE_RED] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pause_red")); bool_options[BOOL_OPT_PAUSE_RED] = opt_user_intp("int_opt_user_pause_red"); bool_widgets[BOOL_OPT_PAUSE_BREAK] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pause_break")); bool_options[BOOL_OPT_PAUSE_BREAK] = opt_user_intp("int_opt_user_pause_break"); bool_widgets[BOOL_OPT_AUTO_SUB] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_auto_sub")); bool_options[BOOL_OPT_AUTO_SUB] = opt_user_intp("int_opt_user_auto_sub"); bool_widgets[BOOL_OPT_CONF_YOUTH] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_conf_youth")); bool_options[BOOL_OPT_CONF_YOUTH] = opt_user_intp("int_opt_user_confirm_youth"); bool_widgets[BOOL_OPT_SHOW_JOB] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_job")); bool_options[BOOL_OPT_SHOW_JOB] = opt_user_intp("int_opt_user_show_job_offers"); bool_widgets[BOOL_OPT_SWAP] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_swap_adapts")); bool_options[BOOL_OPT_SWAP] = opt_user_intp("int_opt_user_swap_adapts"); bool_widgets[BOOL_OPT_SHOW_OVERALL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_overall")); bool_options[BOOL_OPT_SHOW_OVERALL] = opt_user_intp("int_opt_user_show_overall"); bool_widgets[BOOL_OPT_SHOW_ALL_LEAGUES] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_all_leagues")); bool_options[BOOL_OPT_SHOW_ALL_LEAGUES] = opt_user_intp("int_opt_user_show_all_leagues"); bool_widgets[BOOL_OPT_BET_SHOW_ALL_LEAGUES] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_bet_show_all_leagues")); bool_options[BOOL_OPT_BET_SHOW_ALL_LEAGUES] = opt_user_intp("int_opt_user_bet_show_all_leagues"); bool_widgets[BOOL_OPT_BET_SHOW_CUPS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_bet_show_cups")); bool_options[BOOL_OPT_BET_SHOW_CUPS] = opt_user_intp("int_opt_user_bet_show_cups"); bool_widgets[BOOL_OPT_BET_SHOW_MY_RECENT] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_bet_show_only_recent")); bool_options[BOOL_OPT_BET_SHOW_MY_RECENT] = opt_user_intp("int_opt_user_bet_show_my_recent"); bool_widgets[BOOL_OPT_NEWS_USER] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_user")); bool_options[BOOL_OPT_NEWS_USER] = opt_intp("int_opt_news_create_user"); bool_widgets[BOOL_OPT_NEWS_CUP] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_cup")); bool_options[BOOL_OPT_NEWS_CUP] = opt_intp("int_opt_news_create_cup"); bool_widgets[BOOL_OPT_NEWS_LEAGUE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_league")); bool_options[BOOL_OPT_NEWS_LEAGUE] = opt_intp("int_opt_news_create_league"); bool_widgets[BOOL_OPT_NEWS_RECENT] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_recent")); bool_options[BOOL_OPT_NEWS_RECENT] = opt_intp("int_opt_news_show_recent"); bool_widgets[BOOL_OPT_PL1_ATT_NAME] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton1")); bool_options[BOOL_OPT_PL1_ATT_NAME] = opt_user_intp("int_opt_user_pl1_att_name"); bool_widgets[BOOL_OPT_PL1_ATT_CPOS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton2")); bool_options[BOOL_OPT_PL1_ATT_CPOS] = opt_user_intp("int_opt_user_pl1_att_cpos"); bool_widgets[BOOL_OPT_PL1_ATT_POS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton3")); bool_options[BOOL_OPT_PL1_ATT_POS] = opt_user_intp("int_opt_user_pl1_att_pos"); bool_widgets[BOOL_OPT_PL1_ATT_CSKILL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton4")); bool_options[BOOL_OPT_PL1_ATT_CSKILL] = opt_user_intp("int_opt_user_pl1_att_cskill"); bool_widgets[BOOL_OPT_PL1_ATT_SKILL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton5")); bool_options[BOOL_OPT_PL1_ATT_SKILL] = opt_user_intp("int_opt_user_pl1_att_skill"); bool_widgets[BOOL_OPT_PL1_ATT_FITNESS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton6")); bool_options[BOOL_OPT_PL1_ATT_FITNESS] = opt_user_intp("int_opt_user_pl1_att_fitness"); bool_widgets[BOOL_OPT_PL1_ATT_GAMES] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton7")); bool_options[BOOL_OPT_PL1_ATT_GAMES] = opt_user_intp("int_opt_user_pl1_att_games"); bool_widgets[BOOL_OPT_PL1_ATT_SHOTS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton8")); bool_options[BOOL_OPT_PL1_ATT_SHOTS] = opt_user_intp("int_opt_user_pl1_att_shots"); bool_widgets[BOOL_OPT_PL1_ATT_GOALS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton9")); bool_options[BOOL_OPT_PL1_ATT_GOALS] = opt_user_intp("int_opt_user_pl1_att_goals"); bool_widgets[BOOL_OPT_PL1_ATT_STATUS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton10")); bool_options[BOOL_OPT_PL1_ATT_STATUS] = opt_user_intp("int_opt_user_pl1_att_status"); bool_widgets[BOOL_OPT_PL1_ATT_CARDS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton11")); bool_options[BOOL_OPT_PL1_ATT_CARDS] = opt_user_intp("int_opt_user_pl1_att_cards"); bool_widgets[BOOL_OPT_PL1_ATT_AGE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton12")); bool_options[BOOL_OPT_PL1_ATT_AGE] = opt_user_intp("int_opt_user_pl1_att_age"); bool_widgets[BOOL_OPT_PL1_ATT_ETAL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton13")); bool_options[BOOL_OPT_PL1_ATT_ETAL] = opt_user_intp("int_opt_user_pl1_att_etal"); bool_widgets[BOOL_OPT_PL1_ATT_VALUE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton14")); bool_options[BOOL_OPT_PL1_ATT_VALUE] = opt_user_intp("int_opt_user_pl1_att_value"); bool_widgets[BOOL_OPT_PL1_ATT_WAGE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton15")); bool_options[BOOL_OPT_PL1_ATT_WAGE] = opt_user_intp("int_opt_user_pl1_att_wage"); bool_widgets[BOOL_OPT_PL1_ATT_CONTRACT] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton16")); bool_options[BOOL_OPT_PL1_ATT_CONTRACT] = opt_user_intp("int_opt_user_pl1_att_contract"); bool_widgets[BOOL_OPT_PL1_ATT_TEAM] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton17")); bool_options[BOOL_OPT_PL1_ATT_TEAM] = opt_user_intp("int_opt_user_pl1_att_team"); bool_widgets[BOOL_OPT_PL1_ATT_LEAGUE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton18")); bool_options[BOOL_OPT_PL1_ATT_LEAGUE] = opt_user_intp("int_opt_user_pl1_att_league_cup"); bool_widgets[BOOL_OPT_PL2_ATT_NAME] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton19")); bool_options[BOOL_OPT_PL2_ATT_NAME] = opt_user_intp("int_opt_user_pl2_att_name"); bool_widgets[BOOL_OPT_PL2_ATT_CPOS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton20")); bool_options[BOOL_OPT_PL2_ATT_CPOS] = opt_user_intp("int_opt_user_pl2_att_cpos"); bool_widgets[BOOL_OPT_PL2_ATT_POS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton21")); bool_options[BOOL_OPT_PL2_ATT_POS] = opt_user_intp("int_opt_user_pl2_att_pos"); bool_widgets[BOOL_OPT_PL2_ATT_CSKILL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton22")); bool_options[BOOL_OPT_PL2_ATT_CSKILL] = opt_user_intp("int_opt_user_pl2_att_cskill"); bool_widgets[BOOL_OPT_PL2_ATT_SKILL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton23")); bool_options[BOOL_OPT_PL2_ATT_SKILL] = opt_user_intp("int_opt_user_pl2_att_skill"); bool_widgets[BOOL_OPT_PL2_ATT_FITNESS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton24")); bool_options[BOOL_OPT_PL2_ATT_FITNESS] = opt_user_intp("int_opt_user_pl2_att_fitness"); bool_widgets[BOOL_OPT_PL2_ATT_GAMES] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton25")); bool_options[BOOL_OPT_PL2_ATT_GAMES] = opt_user_intp("int_opt_user_pl2_att_games"); bool_widgets[BOOL_OPT_PL2_ATT_SHOTS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton26")); bool_options[BOOL_OPT_PL2_ATT_SHOTS] = opt_user_intp("int_opt_user_pl2_att_shots"); bool_widgets[BOOL_OPT_PL2_ATT_GOALS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton27")); bool_options[BOOL_OPT_PL2_ATT_GOALS] = opt_user_intp("int_opt_user_pl2_att_goals"); bool_widgets[BOOL_OPT_PL2_ATT_STATUS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton28")); bool_options[BOOL_OPT_PL2_ATT_STATUS] = opt_user_intp("int_opt_user_pl2_att_status"); bool_widgets[BOOL_OPT_PL2_ATT_CARDS] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton29")); bool_options[BOOL_OPT_PL2_ATT_CARDS] = opt_user_intp("int_opt_user_pl2_att_cards"); bool_widgets[BOOL_OPT_PL2_ATT_AGE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton30")); bool_options[BOOL_OPT_PL2_ATT_AGE] = opt_user_intp("int_opt_user_pl2_att_age"); bool_widgets[BOOL_OPT_PL2_ATT_ETAL] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton31")); bool_options[BOOL_OPT_PL2_ATT_ETAL] = opt_user_intp("int_opt_user_pl2_att_etal"); bool_widgets[BOOL_OPT_PL2_ATT_VALUE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton32")); bool_options[BOOL_OPT_PL2_ATT_VALUE] = opt_user_intp("int_opt_user_pl2_att_value"); bool_widgets[BOOL_OPT_PL2_ATT_WAGE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton33")); bool_options[BOOL_OPT_PL2_ATT_WAGE] = opt_user_intp("int_opt_user_pl2_att_wage"); bool_widgets[BOOL_OPT_PL2_ATT_CONTRACT] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton34")); bool_options[BOOL_OPT_PL2_ATT_CONTRACT] = opt_user_intp("int_opt_user_pl2_att_contract"); bool_widgets[BOOL_OPT_PL2_ATT_TEAM] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton35")); bool_options[BOOL_OPT_PL2_ATT_TEAM] = opt_user_intp("int_opt_user_pl2_att_team"); bool_widgets[BOOL_OPT_PL2_ATT_LEAGUE] = GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton36")); bool_options[BOOL_OPT_PL2_ATT_LEAGUE] = opt_user_intp("int_opt_user_pl2_att_league_cup"); } /** Enumeration for the spinbutton widgets and options. */ enum SpinOptions { SPIN_OPT_AUTOSAVE = 0, SPIN_OPT_AUTOSAVE_FILES, SPIN_OPT_PRECISION, SPIN_OPT_REFRESH, SPIN_OPT_LIVE_SPEED, SPIN_OPT_LIVE_VERBOSITY, SPIN_OPT_CONTRACT, SPIN_OPT_BET_WAGER, SPIN_OPT_TRAINING_CAMP_RECREATION, SPIN_OPT_END }; /** Write the pointers to the options and the corresponding widgets. */ void option_gui_write_spin_widgets(gint **spin_options, GtkSpinButton **spin_widgets) { #ifdef DEBUG printf("option_gui_write_spin_widgets\n"); #endif gint tmp = 0; spin_widgets[SPIN_OPT_AUTOSAVE] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_autosave")); spin_options[SPIN_OPT_AUTOSAVE] = opt_intp("int_opt_autosave_interval"); spin_widgets[SPIN_OPT_AUTOSAVE_FILES] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_autosave_files")); spin_options[SPIN_OPT_AUTOSAVE_FILES] = opt_intp("int_opt_autosave_files"); spin_widgets[SPIN_OPT_PRECISION] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_precision")); spin_options[SPIN_OPT_PRECISION] = opt_intp("int_opt_player_precision"); spin_widgets[SPIN_OPT_REFRESH] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_refresh")); spin_options[SPIN_OPT_REFRESH] = opt_intp("int_opt_live_game_player_list_refresh"); spin_widgets[SPIN_OPT_LIVE_SPEED] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_live_speed")); spin_options[SPIN_OPT_LIVE_SPEED] = opt_user_intp("int_opt_user_live_game_speed"); spin_widgets[SPIN_OPT_TRAINING_CAMP_RECREATION] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_recreation")); spin_options[SPIN_OPT_TRAINING_CAMP_RECREATION] = opt_user_intp("int_opt_user_training_camp_recreation"); /** Note the spinbutton value so that it doesn't get lost when setting the range. */ tmp = gtk_spin_button_get_value_as_int(spin_widgets[SPIN_OPT_LIVE_SPEED]); gtk_spin_button_set_range( spin_widgets[SPIN_OPT_LIVE_SPEED], 0, -rint((gfloat)(const_int("int_game_gui_live_game_speed_max") - 10) / (gfloat)(const_int("int_game_gui_live_game_speed_grad")))); gtk_spin_button_set_value(spin_widgets[SPIN_OPT_LIVE_SPEED], (gdouble)tmp); spin_widgets[SPIN_OPT_LIVE_VERBOSITY] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_live_verbosity")); spin_options[SPIN_OPT_LIVE_VERBOSITY] = opt_user_intp("int_opt_user_live_game_verbosity"); spin_widgets[SPIN_OPT_CONTRACT] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_contract")); spin_options[SPIN_OPT_CONTRACT] = opt_user_intp("int_opt_user_contract_limit"); spin_widgets[SPIN_OPT_BET_WAGER] = GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_bet_wager")); spin_options[SPIN_OPT_BET_WAGER] = opt_user_intp("int_opt_user_bet_default_wager"); tmp = gtk_spin_button_get_value_as_int(spin_widgets[SPIN_OPT_BET_WAGER]); gtk_spin_button_set_range( spin_widgets[SPIN_OPT_BET_WAGER], 1, (gdouble)const_int("int_bet_wager_max")); gtk_spin_button_set_value(spin_widgets[SPIN_OPT_BET_WAGER], (gdouble)tmp); } /** Text entries. */ enum EntryOptions { ENTRY_OPT_CONSTANTS = 0, ENTRY_OPT_FONT_NAME, ENTRY_OPT_END }; /** Write the pointers to the options and the corresponding widgets. */ void option_gui_write_entry_widgets(gchar ***entry_options, GtkEntry **entry_widgets) { #ifdef DEBUG printf("option_gui_write_entry_widgets\n"); #endif entry_widgets[ENTRY_OPT_CONSTANTS] = GTK_ENTRY(lookup_widget(window.options, "entry_constants_file")); entry_options[ENTRY_OPT_CONSTANTS] = opt_strp("string_opt_constants_file"); entry_widgets[ENTRY_OPT_FONT_NAME] = GTK_ENTRY(lookup_widget(window.options, "entry_font_name")); entry_options[ENTRY_OPT_FONT_NAME] = opt_strp("string_opt_font_name"); } /** Write the widget states in the options window according to the option values. */ void option_gui_set_up_window(void) { #ifdef DEBUG printf("option_gui_set_up_window\n"); #endif gint i; gchar buf[SMALL]; GtkToggleButton *bool_widgets[BOOL_OPT_END]; gint *bool_options[BOOL_OPT_END]; GtkSpinButton *spin_widgets[SPIN_OPT_END]; gint *spin_options[SPIN_OPT_END]; GtkEntry *entry_widgets[ENTRY_OPT_END]; gchar **entry_options[ENTRY_OPT_END]; GtkToggleButton *news_popup_buttons[3] = {GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_no")), GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_user")), GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_always"))}; treeview_show_language_combo(); treeview_show_training_hotels_combo(); option_gui_write_bool_widgets(bool_options, bool_widgets); option_gui_write_spin_widgets(spin_options, spin_widgets); option_gui_write_entry_widgets(entry_options, entry_widgets); for(i=0;ilen;i++) { sprintf(buf, "%s%s%s___user_%02d_options", dirname, G_DIR_SEPARATOR_S, basename, i); file_load_opt_file(buf, &usr(i).options, FALSE); sprintf(buf, "%s%s%s___user_%02d_live_game.xml", dirname, G_DIR_SEPARATOR_S, basename, i); xml_loadsave_live_game_read(buf, &usr(i).live_game); } } void xml_load_league(const gchar *dirname, const gchar *basename) { #ifdef DEBUG printf("xml_load_league\n"); #endif gchar buf[SMALL], team_file[SMALL]; League new = league_new(FALSE); gchar *prefix = g_strndup(basename, strlen(basename) - 4); g_array_append_val(ligs, new); sprintf(buf, "%s%s%s", dirname, G_DIR_SEPARATOR_S, basename); sprintf(team_file, "%s%s%s_teams.xml", dirname, G_DIR_SEPARATOR_S, prefix); xml_loadsave_league_read(buf, team_file, &lig(ligs->len - 1)); sprintf(buf, _("Loading league: %s"), lig(ligs->len - 1).name); gui_show_progress(gui_get_progress_bar_fraction(), buf, PIC_TYPE_LOAD); if(debug > 80) g_print("%s\n", buf); sprintf(buf, "%s%s%s_fixtures.xml", dirname, G_DIR_SEPARATOR_S, prefix); xml_loadsave_fixtures_read(buf, lig(ligs->len - 1).fixtures); sprintf(buf, "%s%s%s_stat.xml", dirname, G_DIR_SEPARATOR_S, prefix); xml_loadsave_league_stat_read(buf, &lig(ligs->len - 1).stats); g_free(prefix); } void xml_load_cup(Cup *cup, const gchar *dirname, const gchar *basename) { #ifdef DEBUG printf("xml_load_cup\n"); #endif gchar buf[SMALL]; gchar *prefix = g_strndup(basename, strlen(basename) - 4); sprintf(buf, "%s%s%s", dirname, G_DIR_SEPARATOR_S, basename); xml_loadsave_cup_read(buf, cup); sprintf(buf, _("Loading cup: %s"), cup->name); gui_show_progress(gui_get_progress_bar_fraction(), buf, PIC_TYPE_LOAD); if(debug > 80) g_print("%s\n", buf); sprintf(buf, "%s%s%s_fixtures.xml", dirname, G_DIR_SEPARATOR_S, prefix); xml_loadsave_fixtures_read(buf, cup->fixtures); g_free(prefix); } void xml_load_transfers(const gchar *dirname, const gchar *basename) { #ifdef DEBUG printf("xml_load_transfers\n"); #endif gchar buf[SMALL]; sprintf(buf, "%s%s%s___transfer_list.xml", dirname, G_DIR_SEPARATOR_S, basename); free_g_array(&transfer_list); transfer_list = g_array_new(FALSE, FALSE, sizeof(Transfer)); xml_loadsave_transfers_read(buf); } void xml_write_string(FILE *fil, const gchar *string, gint tag, const gchar* indent) { #ifdef DEBUG printf("xml_write_string\n"); #endif if(string == NULL) return; fprintf(fil, "%s<_%d>%s\n", indent, tag, string, tag); } bygfoot-2.3.2/src/news.h0000644000175000017500000000413511225071373014063 0ustar eliaselias/* news.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef NEWS_H #define NEWS_H #include "bygfoot.h" #include "news_struct.h" void news_free_tokens(void); void news_set_match_tokens(const LiveGame *live_game); void news_generate_match(const LiveGame *live_game); void news_select(const GArray *news_array, gchar *title, gchar *subtitle, gint *article_id, gint *title_id, gint *subtitle_id); gint news_get_title(const GArray *titles, gchar *title, gint *order, gboolean is_title, gboolean ignore_repetition, gint to_check); gboolean news_check_article_for_repetition(gint id); gboolean news_check_title_for_repetition(gint id, gboolean is_title, gint to_check); void news_load_news_file_from_option(void); void news_load_news_file(const gchar *news_file, gboolean abort); void news_titles_get_order(const GArray *titles, gint *order); gboolean news_check_match_relevant(const LiveGame *live_game); void news_set_scorer_tokens(const LiveGameStats *stats); void news_set_league_cup_tokens(const Fixture *fix); void news_set_fixture_tokens(const Fixture *fix); void news_set_rank_tokens(const Fixture *fix); void news_articles_get_order(const GArray *articles, gint *order); void news_set_streak_tokens(const Fixture *fix); #endif bygfoot-2.3.2/src/xml_news.h0000644000175000017500000000341111225071373014737 0ustar eliaselias/* xml_news.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_NEWS_H #define XML_NEWS_H #include "bygfoot.h" void xml_news_read(const gchar *news_file); void xml_news_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_news_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_news_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); gint xml_news_article_type_to_int(const gchar *type_string); #endif bygfoot-2.3.2/src/window.c0000644000175000017500000011033611225071373014412 0ustar eliaselias/* window.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "debug.h" #include "file.h" #include "finance.h" #include "fixture.h" #include "free.h" #include "game_gui.h" #include "gui.h" #include "interface.h" #include "language.h" #include "league.h" #include "live_game.h" #include "load_save.h" #include "main.h" #include "maths.h" #include "misc.h" #include "misc_callback_func.h" #include "misc_interface.h" #include "misc2_interface.h" #include "misc3_interface.h" #include "option.h" #include "option_gui.h" #include "options_interface.h" #include "support.h" #include "training.h" #include "training_interface.h" #include "transfer.h" #include "treeview.h" #include "treeview2.h" #include "treeview_helper.h" #include "user.h" #include "window.h" /** Show the splash screen window. */ void window_show_splash(void) { #ifdef DEBUG printf("window_show_splash\n"); #endif window_create(WINDOW_SPLASH); treeview_show_contributors( GTK_TREE_VIEW(lookup_widget(window.splash, "treeview_splash_contributors"))); window_load_hint_number(); window_splash_show_hint(); } /** Show the hint determined by the hint counter in the splash window. */ void window_splash_show_hint(void) { #ifdef DEBUG printf("window_splash_show_hint\n"); #endif gchar buf[SMALL]; gtk_label_set_text( GTK_LABEL(lookup_widget(window.splash, "label_splash_hint")), g_array_index(hints.list, Option, counters[COUNT_HINT_NUMBER]).string_value); sprintf(buf, "(%d/%d)", counters[COUNT_HINT_NUMBER] + 1, hints.list->len); gtk_label_set_text( GTK_LABEL(lookup_widget(window.splash, "label_splash_hintcounter")), buf); } /** Load the index of the hint to show in the splash screen. */ void window_load_hint_number(void) { #ifdef DEBUG printf("window_load_hint_number\n"); #endif gchar filename[SMALL]; gchar dir[SMALL]; FILE *fil; file_get_bygfoot_dir(dir); sprintf(filename, "%s%shint_num", dir, G_DIR_SEPARATOR_S); fil = fopen(filename, "r"); if(fil == NULL) { counters[COUNT_HINT_NUMBER] = 0; return; } fscanf(fil, "%d", &counters[COUNT_HINT_NUMBER]); fclose(fil); if(counters[COUNT_HINT_NUMBER] < 0 || counters[COUNT_HINT_NUMBER] >= hints.list->len) { debug_print_message("Hint counter out of bounds: %d (bounds 0 and %d).\n", counters[COUNT_HINT_NUMBER], hints.list->len - 1); counters[COUNT_HINT_NUMBER] = 0; } } /** Save the index of the current hint. */ void window_save_hint_number(void) { #ifdef DEBUG printf("window_save_hint_number\n"); #endif gchar filename[SMALL]; gchar dir[SMALL]; FILE *fil; file_get_bygfoot_dir(dir); sprintf(filename, "%s%shint_num", dir, G_DIR_SEPARATOR_S); fil = fopen(filename, "w"); if(fil == NULL) return; fprintf(fil, "%d", counters[COUNT_HINT_NUMBER]); fclose(fil); } /** Show the window with the progress bar, sometimes with a nice picture. */ void window_show_progress(gint pictype) { #ifdef DEBUG printf("window_show_progress\n"); #endif GPtrArray *pics = NULL; const gchar *picdir = NULL; gchar buf[SMALL]; gchar *buf2 = NULL; GtkImage *image = NULL; if(sett_int("int_opt_goto_mode")) return; window_create(WINDOW_PROGRESS); if(pictype == PIC_TYPE_NONE || !opt_int("int_opt_progressbar_pics")) return; image = GTK_IMAGE(lookup_widget(window.progress, "image_match")); switch(pictype) { default: debug_print_message("window_show_progress: unknown picture type %d", pictype); break; case PIC_TYPE_SAVE: gtk_image_set_from_stock(image, GTK_STOCK_FLOPPY, GTK_ICON_SIZE_DIALOG); break; case PIC_TYPE_LOAD: gtk_image_set_from_stock(image, GTK_STOCK_OPEN, GTK_ICON_SIZE_DIALOG); break; case PIC_TYPE_MATCHPIC: if(debug_egg_forwards_boost_style()) { buf2 = file_find_support_file("soccerbabes.jpg", FALSE); if(buf2 != NULL) { gtk_image_set_from_file(image, buf2); g_free(buf2); } } if(buf2 == NULL) { picdir = file_get_first_support_dir_suffix("pics"); if(picdir == NULL) return; pics = file_dir_get_contents(picdir, "match", ""); if(pics->len != 0) { sprintf(buf, "%s%s%s", picdir, G_DIR_SEPARATOR_S, (gchar*)g_ptr_array_index(pics, math_rndi(0, pics->len - 1))); gtk_image_set_from_file(image, buf); } free_gchar_array(&pics); } break; } } /** Show the betting window. */ void window_show_bets(void) { #ifdef DEBUG printf("window_show_bets\n"); #endif window_create(WINDOW_BETS); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(lookup_widget(window.bets, "checkbutton_bet_all_leagues")), opt_user_int("int_opt_user_bet_show_all_leagues")); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(lookup_widget(window.bets, "checkbutton_bet_cups")), opt_user_int("int_opt_user_bet_show_cups")); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(lookup_widget(window.bets, "checkbutton_bet_user_recent")), opt_user_int("int_opt_user_bet_show_my_recent")); treeview2_show_bets(); } /** Show the help/about window. @param page Which notebook page to display. */ void window_show_help(gint page) { #ifdef DEBUG printf("window_show_help\n"); #endif gchar buf[SMALL]; window_create(WINDOW_HELP); sprintf(buf, "Bygfoot Football Manager %s\n(c) %s GyÅ‘zÅ‘ Both (gyboth@bygfoot.com)\nhttp://bygfoot.sourceforge.net", const_app("string_help_window_program_name_attribute"), VERS, YEAR); gtk_label_set_markup(GTK_LABEL(lookup_widget(window.help, "label_about")), buf); treeview_show_contributors( GTK_TREE_VIEW(lookup_widget(window.help, "treeview_contributors"))); game_gui_set_help_labels(); gtk_notebook_set_current_page(GTK_NOTEBOOK(lookup_widget(window.help, "notebook1")), page); } static void is_capital_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gboolean sensitive; sensitive = !gtk_tree_model_iter_has_child (tree_model, iter); g_object_set (cell, "sensitive", sensitive, NULL); } /** Show the country selection window. All files with prefix 'country_' from $HOME/.bygfoot/definitions are appended to a combo box. */ void window_show_startup(void) { #ifdef DEBUG printf("window_show_startup\n"); #endif GtkWidget *window_startup = window_create(WINDOW_STARTUP); GtkWidget *combo_country = lookup_widget(window_startup, "combo_country"); GPtrArray *country_files = NULL; GtkTreeModel *model = NULL; GtkCellRenderer *renderer = NULL; gchar *last_country = file_load_text_from_saves("last_country"); country_files = file_get_country_files(); if(country_files->len == 0) main_exit_program(EXIT_NO_COUNTRY_FILES, "Didn't find any country definition files in the support directories."); gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo_country)); renderer = gtk_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_country), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_country), renderer, "pixbuf", 0, NULL); renderer = treeview_helper_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_country), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_country), renderer, "text", 1, NULL); language_pick_country(country_files); model = treeview_create_country_list(country_files); gtk_combo_box_set_model(GTK_COMBO_BOX(combo_country), model); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo_country), renderer, is_capital_sensitive, NULL, NULL); g_object_unref(model); if(country.sid != NULL) misc_callback_show_team_list(combo_country, country.sid); else if(last_country != NULL) misc_callback_show_team_list(combo_country, last_country); else misc_callback_show_team_list(combo_country, (const gchar*)g_ptr_array_index(country_files, country_files->len - 1)); if(last_country != NULL) g_free(last_country); //gtk_combo_box_set_active(GTK_COMBO_BOX(combo_country), country_index); free_gchar_array(&country_files); } /** Show the file selection window. */ void window_show_file_sel(void) { #ifdef DEBUG printf("window_show_file_sel\n"); #endif gchar buf[SMALL]; const gchar *home = g_get_home_dir(); gchar *filename = NULL; GtkFileFilter *filter; gboolean mm_file_exists = FALSE; window_create(WINDOW_FILE_CHOOSER); if(stat5 != STATUS_LOAD_GAME && stat5 != STATUS_LOAD_GAME_SPLASH) gtk_file_chooser_set_action(GTK_FILE_CHOOSER(window.file_chooser), GTK_FILE_CHOOSER_ACTION_SAVE); else gtk_file_chooser_set_action(GTK_FILE_CHOOSER(window.file_chooser), GTK_FILE_CHOOSER_ACTION_OPEN); filter = gtk_file_filter_new(); if(stat5 == STATUS_SAVE_GAME || stat5 == STATUS_LOAD_GAME || stat5 == STATUS_LOAD_GAME_SPLASH) { gtk_file_filter_set_name(filter, _("Bygfoot Save Files")); gtk_file_filter_add_pattern(filter, "*.zip"); gtk_file_filter_add_pattern(filter, "last_save"); } else { gtk_file_filter_set_name(filter, _("Bygfoot Memorable Matches")); gtk_file_filter_add_pattern(filter, "*.bmm.zip"); } gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(window.file_chooser), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name(filter, _("All Files")); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(window.file_chooser), filter); if((stat5 == STATUS_SAVE_GAME || stat5 == STATUS_LOAD_GAME || stat5 == STATUS_LOAD_GAME_SPLASH) && save_file != NULL) gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(window.file_chooser), save_file); else if(users->len > 0 && current_user.mmatches_file != NULL) gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(window.file_chooser), current_user.mmatches_file); else { if(os_is_unix) sprintf(buf, "%s%s%s%ssaves", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S); else { gchar *pwd = g_get_current_dir(); sprintf(buf, "%s%ssaves", pwd, G_DIR_SEPARATOR_S); g_free(pwd); } gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER(window.file_chooser), buf); } if(gtk_dialog_run(GTK_DIALOG(window.file_chooser)) == GTK_RESPONSE_OK) { filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(window.file_chooser)); if(stat5 == STATUS_LOAD_GAME) load_save_load_game(filename, FALSE); else if(stat5 == STATUS_LOAD_GAME_SPLASH) misc_callback_startup_load(filename); else if(stat5 == STATUS_SAVE_GAME) load_save_save_game(filename); else if(stat5 == STATUS_SELECT_MM_FILE_LOAD) { mm_file_exists = g_file_test(filename, G_FILE_TEST_EXISTS); if((mm_file_exists && g_str_has_suffix(filename, ".bmm.zip")) || !mm_file_exists) { if(mm_file_exists) user_mm_load_file(filename, NULL); else user_mm_set_filename(filename, NULL); window_show_mmatches(); } else game_gui_show_warning(_("Not a valid Bygfoot Memorable Matches filename.")); } else if(stat5 == STATUS_SELECT_MM_FILE_ADD) { user_mm_set_filename(filename, NULL); mm_file_exists = g_file_test(current_user.mmatches_file, G_FILE_TEST_EXISTS); user_mm_add_last_match(mm_file_exists, TRUE); } else if(stat5 == STATUS_SELECT_MM_FILE_IMPORT) { user_mm_import_file(filename); window_show_mmatches(); } else if(stat5 == STATUS_SELECT_MM_FILE_EXPORT) user_mm_export_file(filename); if(stat5 == STATUS_LOAD_GAME || stat5 == STATUS_LOAD_GAME_SPLASH) { cur_user = 0; on_button_back_to_main_clicked(NULL, NULL); setsav1; } g_free(filename); } window_destroy(&window.file_chooser); } /** Show window with memorable matches list. */ void window_show_mmatches(void) { #ifdef DEBUG printf("window_show_mmatches\n"); #endif if(window.mmatches == NULL) window_create(WINDOW_MMATCHES); treeview2_show_mmatches(); gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.mmatches, "entry_mm_file")), current_user.mmatches_file); } /** Show the options window. */ void window_show_options(void) { #ifdef DEBUG printf("window_show_options\n"); #endif window_create(WINDOW_OPTIONS); option_gui_set_up_window(); } /** Show the player list context menu, triggered by 'event'. */ void window_show_menu_player(GdkEvent *event) { #ifdef DEBUG printf("window_show_menu_player\n"); #endif if(window.menu_player != NULL) window_destroy(&window.menu_player); window.menu_player = create_menu_player(); gtk_menu_popup(GTK_MENU(window.menu_player), NULL, NULL, NULL, NULL, ((GdkEventButton*)event)->button, gdk_event_get_time(event)); } /** Show the youth academy context menu, triggered by 'event'. */ void window_show_menu_youth(GdkEvent *event) { #ifdef DEBUG printf("window_show_menu_youth\n"); #endif if(window.menu_youth != NULL) window_destroy(&window.menu_youth); window.menu_youth = create_menu_youth(); gtk_menu_popup(GTK_MENU(window.menu_youth), NULL, NULL, NULL, NULL, ((GdkEventButton*)event)->button, gdk_event_get_time(event)); } /** Show the digits window with the labels and values set according to the arguments. */ void window_show_digits(const gchar *text_main, const gchar* text1, gint value1, const gchar* text2, gint value2, gboolean show_alr) { #ifdef DEBUG printf("window_show_digits\n"); #endif GtkLabel *label_main, *label_1, *label_2; GtkSpinButton *spinbutton1, *spinbutton2; window_create(WINDOW_DIGITS); label_main = GTK_LABEL(lookup_widget(window.digits, "label_main")); label_1 = GTK_LABEL(lookup_widget(window.digits, "label_1")); label_2 = GTK_LABEL(lookup_widget(window.digits, "label_2")); spinbutton1 = GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton1")); spinbutton2 = GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton2")); if(stat1 == STATUS_GET_LOAN || stat1 == STATUS_PAY_LOAN) gtk_spin_button_set_range(spinbutton1, (gdouble)1, (gdouble)value1); else if(stat1 == STATUS_SET_YA_PERCENTAGE) gtk_spin_button_set_range(spinbutton2, (gdouble)0, (gdouble)const_int("int_youth_academy_max_percentage")); gtk_spin_button_set_value(spinbutton1, (gdouble)value1); gtk_spin_button_set_value(spinbutton2, (gdouble)value2); gtk_label_set_text(label_main, text_main); if(text1 != NULL) gtk_label_set_text(label_1, text1); else gtk_widget_hide(GTK_WIDGET(label_1)->parent); if(text2 != NULL) gtk_label_set_text(label_2, text2); else gtk_widget_hide(GTK_WIDGET(label_2)->parent); if(show_alr) gtk_widget_show(lookup_widget(window.digits, "button_digits_alr")); } /** Show the stadium window for the current user. */ void window_show_stadium(void) { #ifdef DEBUG printf("window_show_stadium\n"); #endif gchar buf[SMALL]; const Team *tm = current_user.tm; GtkLabel *label_capacity, *label_stadium_status, *label_average_attendance, *label_name; GtkProgressBar *progressbar_safety, *progressbar_average_attendance; gfloat average_attendance_perc = 0; GtkSpinButton *spin_ticket_price; window_create(WINDOW_STADIUM); label_capacity = GTK_LABEL(lookup_widget(window.stadium, "label_capacity")); label_stadium_status = GTK_LABEL(lookup_widget(window.stadium, "label_stadium_status")); label_average_attendance = GTK_LABEL(lookup_widget(window.stadium, "label_average_attendance")); label_name = GTK_LABEL(lookup_widget(window.stadium, "label_stadium_name")); spin_ticket_price = GTK_SPIN_BUTTON(lookup_widget(window.stadium, "spin_ticket_price")); gtk_spin_button_set_value(spin_ticket_price, tm->stadium.ticket_price); /* Set the lower bound to constant_ticket_price-(1/constant_ticket_attendance) +1 So that we can't divide by 0 or negative numbers*/ gfloat lower_bound = const_int("int_team_stadium_ticket_price")-(1/const_float("float_team_stadium_price_attendance_factor"))+1; gtk_spin_button_set_range(spin_ticket_price, lower_bound, 100); progressbar_safety = GTK_PROGRESS_BAR(lookup_widget(window.stadium, "progressbar_safety")); progressbar_average_attendance = GTK_PROGRESS_BAR(lookup_widget(window.stadium, "progressbar_average_attendance")); gui_label_set_text_from_int(label_capacity, tm->stadium.capacity, FALSE); gui_label_set_text_from_int(label_average_attendance, tm->stadium.average_attendance, FALSE); if(tm->stadium.name != NULL) gtk_label_set_text(label_name, tm->stadium.name); else gtk_widget_hide(GTK_WIDGET(label_name)); if(tm->stadium.games > 0) average_attendance_perc = (gfloat)(tm->stadium.average_attendance * tm->stadium.games) / (gfloat)tm->stadium.possible_attendance; gtk_progress_bar_set_fraction(progressbar_safety, tm->stadium.safety); gtk_progress_bar_set_fraction(progressbar_average_attendance, average_attendance_perc); sprintf(buf, "%d%%", (gint)rint(tm->stadium.safety * 100)); gtk_progress_bar_set_text(progressbar_safety, buf); sprintf(buf, "%d%%", (gint)rint(average_attendance_perc * 100)); gtk_progress_bar_set_text(progressbar_average_attendance, buf); if(current_user.counters[COUNT_USER_STADIUM_CAPACITY] + current_user.counters[COUNT_USER_STADIUM_SAFETY] != 0) { sprintf(buf, _("Improvement in progress.\n%d seats and %d%% safety still to be done.\nExpected finish: %d weeks."), current_user.counters[COUNT_USER_STADIUM_CAPACITY], current_user.counters[COUNT_USER_STADIUM_SAFETY], MAX(finance_get_stadium_improvement_duration( (gfloat)current_user.counters[COUNT_USER_STADIUM_CAPACITY], TRUE), finance_get_stadium_improvement_duration( (gfloat)current_user.counters[COUNT_USER_STADIUM_SAFETY] / 100, FALSE))); gtk_label_set_text(label_stadium_status, buf); } else gtk_label_set_text(label_stadium_status, _("No improvements currently in progress.")); } gboolean window_show(gpointer window) { #ifdef DEBUG printf("window_show\n"); #endif gtk_widget_show((GtkWidget*)window); return FALSE; } /** Show the window where the user can select between yes and no. @param text The text shown in the window. */ void window_show_yesno(const gchar *text) { #ifdef DEBUG printf("window_show_yesno\n"); #endif window_create(WINDOW_YESNO); gtk_label_set_text(GTK_LABEL(lookup_widget(window.yesno, "label_yesno")), text); } /** Show the transfer dialog (yes/no/later). @param text The text to put into the label. */ void window_show_transfer_dialog(const gchar *text) { #ifdef DEBUG printf("window_show_transfer_dialog\n"); #endif window_create(WINDOW_TRANSFER_DIALOG); gtk_label_set_text(GTK_LABEL(lookup_widget(window.transfer_dialog, "label_transfer_dialog")), text); } /** Set up the spinbuttons and boost/style images in the live window. */ void window_live_set_up(void) { #ifdef DEBUG printf("window_live_set_up\n"); #endif GtkSpinButton *sb_speed = GTK_SPIN_BUTTON(lookup_widget(window.live, "spinbutton_speed")); gfloat user_option = (gfloat)option_int("int_opt_user_live_game_speed", &usr(stat2).options); gtk_spin_button_set_range( sb_speed, 0, -rint((gfloat)(const_int("int_game_gui_live_game_speed_max") - 10) / (gfloat)(const_int("int_game_gui_live_game_speed_grad")))); gtk_spin_button_set_value(sb_speed, user_option); gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(window.live, "spinbutton_verbosity")), (gfloat)option_int("int_opt_user_live_game_verbosity", &usr(stat2).options)); game_gui_write_meters(usr(stat2).tm); } /** Save main window size and position into a file.*/ void window_main_save_geometry(void) { #ifdef DEBUG printf("window_main_save_geometry\n"); #endif gchar filename[SMALL]; gchar dir[SMALL]; FILE *fil = NULL; gint width, height, pos_x, pos_y, paned_pos; file_get_bygfoot_dir(dir); sprintf(filename, "%s%swindow_settings", dir, G_DIR_SEPARATOR_S); if(window.main != NULL && file_my_fopen(filename, "w", &fil, FALSE)) { gtk_window_get_size(GTK_WINDOW(window.main), &width, &height); gtk_window_get_position(GTK_WINDOW(window.main), &pos_x, &pos_y); paned_pos = gtk_paned_get_position( GTK_PANED(lookup_widget(window.main, "hpaned2"))); fprintf(fil, "int_window_settings_width\t%d\n", width); fprintf(fil, "int_window_settings_height\t%d\n", height); fprintf(fil, "int_window_settings_pos_x\t%d\n", pos_x); fprintf(fil, "int_window_settings_pos_y\t%d\n", pos_y); fprintf(fil, "int_window_settings_paned_pos\t%d\n", paned_pos); fclose(fil); } } /** Set the main window geometry according to the file settings. */ void window_main_load_geometry(void) { #ifdef DEBUG printf("window_main_load_geometry\n"); #endif gchar filename[SMALL]; gchar dir[SMALL]; OptionList optionlist; file_get_bygfoot_dir(dir); sprintf(filename, "%s%swindow_settings", dir, G_DIR_SEPARATOR_S); if(g_file_test(filename, G_FILE_TEST_EXISTS)) { optionlist.list = NULL; optionlist.datalist = NULL; file_load_opt_file(filename, &optionlist, FALSE); gtk_window_resize(GTK_WINDOW(window.main), option_int("int_window_settings_width", &optionlist), option_int("int_window_settings_height", &optionlist)); gtk_window_move(GTK_WINDOW(window.main), option_int("int_window_settings_pos_x", &optionlist), option_int("int_window_settings_pos_y", &optionlist)); gtk_paned_set_position(GTK_PANED(lookup_widget(window.main, "hpaned2")), option_int("int_window_settings_paned_pos", &optionlist)); free_option_list(&optionlist, FALSE); } } /** Create and show a window. Which one depends on the argument. @param window_type An integer telling us which window to create. @param count_popups Whether this window adds to the popup counter that determines when the main window gets (in)sensitive. @return The pointer to the new window. @see #Windows */ GtkWidget* window_create(gint window_type) { gchar buf[SMALL]; GtkWidget *wind = NULL; sprintf(buf, "Bygfoot Football Manager %s", VERS); switch(window_type) { default: main_exit_program(EXIT_INT_NOT_FOUND, "window_create: unknown window type %d\n", window_type); break; case WINDOW_MAIN: if(window.main == NULL) { window.main = create_main_window(); wind = window.main; window_main_load_geometry(); window.paned_pos = gtk_paned_get_position( GTK_PANED(lookup_widget(window.main, "hpaned2"))); game_gui_print_message(_("Welcome to Bygfoot %s"), VERS); sprintf(buf, "Bygfoot Football Manager %s", VERS); } else wind = window.main; if(opt_int("int_opt_maximize_main_window")) gtk_window_maximize(GTK_WINDOW(wind)); break; case WINDOW_STARTUP: if(window.startup != NULL) debug_print_message("window_create: called on already existing window\n"); else window.startup = create_window_startup(); wind = window.startup; break; case WINDOW_LIVE: if(window.live != NULL) debug_print_message("window_create: called on already existing window\n"); else window.live = create_window_live(); if(((LiveGame*)statp)->fix != NULL) strcpy(buf, league_cup_get_name_string(((LiveGame*)statp)->fix->clid)); wind = window.live; window_live_set_up(); break; case WINDOW_WARNING: if(window.warning != NULL) debug_print_message("window_create: called on already existing window\n"); else window.warning = create_window_warning(); wind = window.warning; strcpy(buf, _("Erm...")); break; case WINDOW_PROGRESS: if(window.progress != NULL) debug_print_message("window_create: called on already existing window\n"); else window.progress = create_window_progress(); wind = window.progress; strcpy(buf, ""); break; case WINDOW_DIGITS: if(window.digits != NULL) debug_print_message("window_create: called on already existing window\n"); else window.digits = create_window_digits(); wind = window.digits; strcpy(buf, _("Numbers...")); break; case WINDOW_STADIUM: if(window.stadium != NULL) debug_print_message("window_create: called on already existing window\n"); else window.stadium = create_window_stadium(); wind = window.stadium; strcpy(buf, _("Your stadium")); break; case WINDOW_JOB_OFFER: if(window.job_offer != NULL) debug_print_message("window_create: called on already existing window\n"); else window.job_offer = create_window_job_offer(); wind = window.job_offer; strcpy(buf, _("Job offer")); break; case WINDOW_YESNO: if(window.yesno != NULL) debug_print_message("window_create: called on already existing window\n"); else window.yesno = create_window_yesno(); wind = window.yesno; strcpy(buf, "???"); break; case WINDOW_OPTIONS: if(window.options != NULL) debug_print_message("window_create: called on already existing window\n"); else window.options = create_window_options(); wind = window.options; strcpy(buf, _("Options")); break; case WINDOW_FONT_SEL: if(window.font_sel != NULL) debug_print_message("window_create: called on already existing window\n"); else window.font_sel = create_window_font_sel(); wind = window.font_sel; strcpy(buf, _("Select font")); break; case WINDOW_FILE_CHOOSER: if(window.file_chooser != NULL) debug_print_message("window_create: called on already existing window\n"); else window.file_chooser = create_window_file_chooser(); wind = window.file_chooser; break; case WINDOW_CONTRACT: if(window.contract != NULL) debug_print_message("window_create: called on already existing window\n"); else window.contract = create_window_contract(); wind = window.contract; strcpy(buf, _("Contract offer")); break; case WINDOW_USER_MANAGEMENT: if(window.user_management != NULL) debug_print_message("window_create: called on already existing window\n"); else window.user_management = create_window_user_management(); wind = window.user_management; strcpy(buf, _("User management")); break; case WINDOW_DEBUG: if(window.wdebug != NULL) debug_print_message("window_create: called on already existing window\n"); else window.wdebug = create_window_debug(); wind = window.wdebug; strcpy(buf, "Bygfoot debug window"); break; case WINDOW_HELP: if(window.help != NULL) debug_print_message("window_create: called on already existing window\n"); else window.help = create_window_help(); wind = window.help; break; case WINDOW_TRANSFER_DIALOG: if(window.transfer_dialog != NULL) debug_print_message("window_create: called on already existing window\n"); else window.transfer_dialog = create_window_transfer_dialog(); wind = window.transfer_dialog; strcpy(buf, _("Transfer offer")); break; case WINDOW_SPONSORS: if(window.sponsors != NULL) debug_print_message("window_create: called on already existing window\n"); else window.sponsors = create_window_sponsors(); wind = window.sponsors; strcpy(buf, _("Sponsorship offers")); break; case WINDOW_MMATCHES: if(window.mmatches != NULL) debug_print_message("window_create: called on already existing window\n"); else window.mmatches = create_window_mmatches(); wind = window.mmatches; strcpy(buf, _("Memorable matches")); break; case WINDOW_BETS: if(window.bets != NULL) debug_print_message("window_create: called on already existing window\n"); else window.bets = create_window_bets(); wind = window.bets; strcpy(buf, _("Betting")); break; case WINDOW_SPLASH: if(window.splash != NULL) debug_print_message("window_create: called on already existing window\n"); else window.splash = create_window_splash(); wind = window.splash; break; case WINDOW_TRAINING_CAMP: if(window.training_camp != NULL) debug_print_message("window_create: called on already existing window\n"); else window.training_camp = create_window_training_camp(); wind = window.training_camp; strcpy(buf, _("Training camp")); break; case WINDOW_ALR: if(window.alr != NULL) debug_print_message("window_create: called on already existing window\n"); else window.alr = create_window_alr(); wind = window.alr; strcpy(buf, _("Automatic loan repayment")); break; case WINDOW_NEWS: if(window.news != NULL) debug_print_message("window_create: called on already existing window\n"); else window.news = create_window_news(); wind = window.news; strcpy(buf, _("Bygfoot News")); break; case WINDOW_CONSTANTS: if(window.constants != NULL) debug_print_message("window_create: called on already existing window\n"); else window.constants = create_window_constants(); wind = window.constants; strcpy(buf, _("Bygfoot constants")); break; } if(window_type != WINDOW_FILE_CHOOSER) gtk_window_set_title(GTK_WINDOW(wind), buf); if(window_type != WINDOW_PROGRESS && window_type != WINDOW_SPLASH) g_timeout_add(20, (GSourceFunc)window_show, (gpointer)wind); else gtk_widget_show(wind); return wind; } /** Destroy a window widget and set the popups and main window sensitivity correctly. @param window The window we destroy. @param count_popups Whether this window adds to the popup counter that determines when the main window gets (in)sensitive. */ void window_destroy(GtkWidget **wind) { #ifdef DEBUG printf("window_destroy\n"); #endif if(*wind == NULL) return; if(*wind == window.splash) { counters[COUNT_HINT_NUMBER] = (counters[COUNT_HINT_NUMBER] + 1) % hints.list->len; window_save_hint_number(); } gtk_widget_destroy(*wind); *wind = NULL; } /* Show the training camp window for the current user. */ void window_show_training_camp(void) { #ifdef DEBUG printf("window_show_training_camp\n"); #endif GtkEntry *tfCosts; GtkWidget *rb_camp1; GtkWidget *rb_camp2; GtkWidget *rb_camp3; GtkLabel *l_costs; GtkLabel *l_recreation; GtkLabel *l_training; GtkLabel *l_camp_points; GtkHScale *hs_recreation; GtkHScale *hs_training; GtkHScale *hs_camp_points; gchar buf[SMALL]; window_create(WINDOW_TRAINING_CAMP); // Initialize entry costs misc_print_grouped_int( math_round_integer(finance_wage_unit(current_user.tm) * const_float("float_training_camp_factor1"), -2), buf); tfCosts = GTK_ENTRY(lookup_widget(window.training_camp, "tf_costs")); gtk_entry_set_text (tfCosts, buf); // Initialize radio group camp rb_camp1 = GTK_WIDGET(lookup_widget(window.training_camp, "rb_camp1")); rb_camp2 = GTK_WIDGET(lookup_widget(window.training_camp, "rb_camp2")); rb_camp3 = GTK_WIDGET(lookup_widget(window.training_camp, "rb_camp3")); if(opt_user_int("int_opt_user_training_camp_hotel") == TRAINING_CAMP_HOTEL_GOOD) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_camp1), TRUE); else if(opt_user_int("int_opt_user_training_camp_hotel") == TRAINING_CAMP_HOTEL_FIRST) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_camp2), TRUE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_camp3), TRUE); //Initialize labels l_costs = GTK_LABEL(lookup_widget(window.training_camp, "l_costs")); l_recreation = GTK_LABEL(lookup_widget(window.training_camp, "l_recreation")); l_training = GTK_LABEL(lookup_widget(window.training_camp, "l_training")); l_camp_points = GTK_LABEL(lookup_widget(window.training_camp, "l_camp_points")); gtk_misc_set_alignment (GTK_MISC(l_costs), 0.0, 0.5); gtk_misc_set_alignment (GTK_MISC(l_recreation), 0.0, 0.5); gtk_misc_set_alignment (GTK_MISC(l_training), 0.0, 0.5); gtk_misc_set_alignment (GTK_MISC(l_camp_points), 0.0, 0.5); //Initialize hScales hs_recreation = GTK_HSCALE(lookup_widget(window.training_camp, "hs_recreation")); hs_training = GTK_HSCALE(lookup_widget(window.training_camp, "hs_training")); hs_camp_points = GTK_HSCALE(lookup_widget(window.training_camp, "hs_camp_points")); gtk_range_set_range (GTK_RANGE(hs_recreation), CAMP_SCALE_MIN, CAMP_SCALE_MAX); gtk_range_set_range (GTK_RANGE(hs_training), CAMP_SCALE_MIN, CAMP_SCALE_MAX); gtk_range_set_range (GTK_RANGE(hs_camp_points), CAMP_SCALE_MIN, CAMP_SCALE_MAX); gtk_range_set_value (GTK_RANGE(hs_recreation), opt_user_int("int_opt_user_training_camp_recreation")); gtk_range_set_value (GTK_RANGE(hs_training), CAMP_SCALE_MAX - opt_user_int("int_opt_user_training_camp_recreation")); gtk_range_set_value (GTK_RANGE(hs_camp_points), CAMP_SCALE_MIN); gtk_scale_set_digits (GTK_SCALE(hs_recreation), 0); gtk_scale_set_digits (GTK_SCALE(hs_training), 0); gtk_scale_set_digits (GTK_SCALE(hs_camp_points), 0); gtk_widget_set_sensitive (GTK_WIDGET(hs_recreation), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(hs_training), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(hs_camp_points), FALSE); GdkColor color; //gtk_widget_modify_fg(GTK_WIDGET(hs_recreation), GTK_STATE_INSENSITIVE , NULL); //gtk_widget_modify_fg(GTK_WIDGET(hs_training), GTK_STATE_INSENSITIVE , NULL); //gtk_widget_modify_fg(GTK_WIDGET(hs_camp_points), GTK_STATE_INSENSITIVE , NULL); //gtk_widget_modify_bg(GTK_WIDGET(hs_recreation), GTK_STATE_NORMAL, NULL); gdk_color_parse("black", &color); gtk_widget_modify_fg(GTK_WIDGET(hs_recreation), GTK_STATE_INSENSITIVE , &color); gtk_widget_modify_fg(GTK_WIDGET(hs_training), GTK_STATE_INSENSITIVE , &color); gtk_widget_modify_fg(GTK_WIDGET(hs_camp_points), GTK_STATE_INSENSITIVE , &color); gtk_widget_modify_bg(GTK_WIDGET(hs_recreation), GTK_STATE_NORMAL, &color); gtk_widget_modify_bg(GTK_WIDGET(hs_training), GTK_STATE_NORMAL, &color); gtk_widget_modify_bg(GTK_WIDGET(hs_camp_points), GTK_STATE_NORMAL, &color); } /** Create and set up the debt repayment window. */ void window_show_alr(void) { #ifdef DEBUG printf("window_show_alr\n"); #endif gchar weekly_installment[SMALL], debt[SMALL]; window_create(WINDOW_ALR); misc_print_grouped_int(current_user.alr_weekly_installment, weekly_installment); misc_print_grouped_int(-current_user.debt, debt); gui_label_set_text_from_int(GTK_LABEL(lookup_widget(window.alr, "label_current_start_week")), current_user.alr_start_week, FALSE); gtk_label_set_text(GTK_LABEL(lookup_widget(window.alr, "label_current_weekly_installment")), weekly_installment); gtk_label_set_text(GTK_LABEL(lookup_widget(window.alr, "label_alr_debt")), debt); gtk_spin_button_set_range(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week")), week + 1, MIN(week + current_user.counters[COUNT_USER_LOAN], fixture_get_last_scheduled_week())); gtk_spin_button_set_range(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment")), 0, -current_user.debt * powf(1 + current_user.debt_interest, const_int("int_finance_payback_weeks")) + 1); } /** Show the window where the user can edit constants determining gameplay behaviour. */ void window_show_constants(void) { window_create(WINDOW_CONSTANTS); treeview2_show_constants(); } bygfoot-2.3.2/src/xml_loadsave_users.c0000644000175000017500000004060011225071373016776 0ustar eliaselias/* xml_loadsave_users.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet_struct.h" #include "file.h" #include "fixture.h" #include "misc.h" #include "team.h" #include "user.h" #include "variables.h" #include "xml.h" #include "xml_loadsave_live_game.h" #include "xml_loadsave_players.h" #include "xml_loadsave_users.h" enum { TAG_USERS = TAG_START_USERS, TAG_USER, TAG_USER_COUNTER, TAG_USER_MONEY, TAG_USER_DEBT, TAG_USER_DEBT_INTEREST, TAG_USER_ALR_START_WEEK, TAG_USER_ALR_WEEKLY_INSTALLMENT, TAG_USER_MONEY_INS, TAG_USER_MONEY_IN, TAG_USER_MONEY_OUTS, TAG_USER_MONEY_OUT, TAG_USER_SCOUT, TAG_USER_PHYSIO, TAG_USER_HISTORY, TAG_USER_HISTORY_SEASON, TAG_USER_HISTORY_WEEK, TAG_USER_HISTORY_TYPE, TAG_USER_HISTORY_TEAM_NAME, TAG_USER_HISTORY_STRING, TAG_USER_EVENT, TAG_USER_EVENT_TYPE, TAG_USER_EVENT_VALUE1, TAG_USER_EVENT_VALUE2, TAG_USER_EVENT_VALUE_STRING, TAG_USER_SPONSOR_NAME, TAG_USER_SPONSOR_CONTRACT, TAG_USER_SPONSOR_BENEFIT, TAG_USER_YA_COACH, TAG_USER_YA_PERCENTAGE, TAG_USER_YA_AV_COACH, TAG_USER_YA_AV_PERCENTAGE, TAG_USER_YA_COUNTER, TAG_USER_BET0, TAG_USER_BET1, TAG_USER_BET_WAGER, TAG_USER_BET_OUTCOME, TAG_USER_BET_FIX_ID, TAG_USER_YA_PREFERENCE, TAG_END }; gint state, idx_mon_in, idx_mon_out, idx, idx_bet, idx_cnt; User new_user; UserHistory new_history; Event new_event; BetUser new_bet; void xml_loadsave_users_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_users_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_USERS;i= TAG_START_PLAYERS && tag <= TAG_END_PLAYERS) { state = TAG_START_PLAYERS; valid_tag = TRUE; if(tag == TAG_START_PLAYERS) new_user.youth_academy.players = g_array_new(FALSE, FALSE, sizeof(Player)); xml_loadsave_players_start_element(tag, new_user.tm); } else if(tag == TAG_USER_HISTORY) { idx = 0; new_history.team_name = new_history.string[0] = new_history.string[1] = new_history.string[2] = NULL; } else if(tag == TAG_USER_EVENT) new_event.value_string = NULL; else if(tag == TAG_USER_MONEY_OUTS || tag == TAG_USER_MONEY_INS) idx = 0; else if(tag == TAG_USER_BET0 || tag == TAG_USER_BET1) idx_bet = (tag == TAG_USER_BET1); if(!valid_tag) debug_print_message("xml_loadsave_users_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_users_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_users_end_element\n"); #endif gint tag = xml_get_tag_from_name(element_name); if(tag == TAG_USER) { state = TAG_USERS; g_array_append_val(users, new_user); } else if(tag == TAG_USER_COUNTER || tag == TAG_USER_MONEY || tag == TAG_USER_DEBT || tag == TAG_USER_DEBT_INTEREST || tag == TAG_USER_ALR_START_WEEK || tag == TAG_USER_ALR_WEEKLY_INSTALLMENT || tag == TAG_USER_MONEY_INS || tag == TAG_USER_MONEY_OUTS || tag == TAG_USER_SCOUT || tag == TAG_USER_PHYSIO || tag == TAG_USER_SPONSOR_NAME || tag == TAG_USER_SPONSOR_CONTRACT || tag == TAG_USER_SPONSOR_BENEFIT || tag == TAG_NAME || tag == TAG_TEAM_ID || tag == TAG_USER_HISTORY || tag == TAG_USER_EVENT || tag == TAG_USER_YA_COACH || tag == TAG_USER_YA_PERCENTAGE || tag == TAG_USER_YA_AV_COACH || tag == TAG_USER_YA_AV_PERCENTAGE || tag == TAG_USER_YA_PREFERENCE || tag == TAG_USER_YA_COUNTER || tag == TAG_USER_BET0 || tag == TAG_USER_BET1) { state = TAG_USER; if(tag == TAG_USER_COUNTER) idx_cnt++; else if(tag == TAG_USER_MONEY_OUTS) idx_mon_out++; else if(tag == TAG_USER_MONEY_INS) idx_mon_in++; else if(tag == TAG_USER_HISTORY) g_array_append_val(new_user.history, new_history); else if(tag == TAG_USER_EVENT) g_array_append_val(new_user.events, new_event); else if(tag == TAG_USER_BET0 || tag == TAG_USER_BET1) g_array_append_val(new_user.bets[idx_bet], new_bet); } else if(tag == TAG_USER_MONEY_OUT) { state = TAG_USER_MONEY_OUTS; idx++; } else if(tag == TAG_USER_MONEY_IN) { state = TAG_USER_MONEY_INS; idx++; } else if(tag == TAG_USER_HISTORY_SEASON || tag == TAG_USER_HISTORY_WEEK || tag == TAG_USER_HISTORY_TYPE || tag == TAG_USER_HISTORY_TEAM_NAME || tag == TAG_USER_HISTORY_STRING) { state = TAG_USER_HISTORY; if(tag == TAG_USER_HISTORY_STRING) idx++; } else if(tag == TAG_USER_EVENT_TYPE || tag == TAG_USER_EVENT_VALUE1 || tag == TAG_USER_EVENT_VALUE2 || tag == TAG_USER_EVENT_VALUE_STRING) state = TAG_USER_EVENT; else if(tag == TAG_USER_BET_FIX_ID || tag == TAG_USER_BET_WAGER || tag == TAG_USER_BET_OUTCOME) state = (idx_bet == 0) ? TAG_USER_BET0 : TAG_USER_BET1; else if(tag >= TAG_START_PLAYERS && tag <= TAG_END_PLAYERS) { xml_loadsave_players_end_element(tag, new_user.youth_academy.players); if(tag == TAG_START_PLAYERS) state = TAG_USER; } else if(tag != TAG_USERS) debug_print_message("xml_loadsave_users_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_users_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_users_text\n"); #endif gchar buf[SMALL]; gint int_value = -1; gfloat float_value = -1; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = (gfloat)g_ascii_strtod(text, NULL) / 10000; if(state == TAG_NAME) misc_string_assign(&new_user.name, buf); else if(state == TAG_TEAM_ID) { new_user.tm = team_of_id(int_value); new_user.team_id = int_value; new_user.youth_academy.tm = new_user.tm; } else if(state == TAG_USER_MONEY) new_user.money = int_value; else if(state == TAG_USER_DEBT) new_user.debt = int_value; else if(state == TAG_USER_DEBT_INTEREST) new_user.debt_interest = float_value; else if(state == TAG_USER_ALR_START_WEEK) new_user.alr_start_week = int_value; else if(state == TAG_USER_ALR_WEEKLY_INSTALLMENT) new_user.alr_weekly_installment = int_value; else if(state == TAG_USER_SCOUT) new_user.scout = int_value; else if(state == TAG_USER_PHYSIO) new_user.physio = int_value; else if(state == TAG_USER_SPONSOR_NAME) { misc_string_replace_token(buf, "AND", "&"); g_string_printf(new_user.sponsor.name, buf, NULL); } else if(state == TAG_USER_SPONSOR_CONTRACT) new_user.sponsor.contract = int_value; else if(state == TAG_USER_SPONSOR_BENEFIT) new_user.sponsor.benefit = int_value; else if(state == TAG_USER_COUNTER) new_user.counters[idx_cnt] = int_value; else if(state == TAG_USER_MONEY_IN) new_user.money_in[idx_mon_in][idx] = int_value; else if(state == TAG_USER_MONEY_OUT) new_user.money_out[idx_mon_out][idx] = int_value; else if(state == TAG_USER_HISTORY_SEASON) new_history.season = int_value; else if(state == TAG_USER_HISTORY_WEEK) new_history.week = int_value; else if(state == TAG_USER_HISTORY_TYPE) new_history.type = int_value; else if(state == TAG_USER_HISTORY_TEAM_NAME) new_history.team_name = g_strdup(buf); else if(state == TAG_USER_HISTORY_STRING) new_history.string[idx] = (strlen(buf) == 0) ? NULL : g_strdup(buf); else if(state == TAG_USER_EVENT_TYPE) new_event.type = int_value; else if(state == TAG_USER_EVENT_VALUE1) new_event.value1 = int_value; else if(state == TAG_USER_EVENT_VALUE2) new_event.value2 = int_value; else if(state == TAG_USER_EVENT_VALUE_STRING) new_event.value_string = g_strdup(buf); else if(state == TAG_USER_YA_COACH) new_user.youth_academy.coach = int_value; else if(state == TAG_USER_YA_PERCENTAGE) new_user.youth_academy.percentage = int_value; else if(state == TAG_USER_YA_AV_COACH) new_user.youth_academy.av_coach = float_value; else if(state == TAG_USER_YA_AV_PERCENTAGE) new_user.youth_academy.av_percentage = float_value; else if(state == TAG_USER_YA_COUNTER) new_user.youth_academy.counter_youth = float_value; else if(state == TAG_USER_YA_PREFERENCE) new_user.youth_academy.pos_pref = int_value; else if(state == TAG_USER_BET_WAGER) new_bet.wager = int_value; else if(state == TAG_USER_BET_OUTCOME) new_bet.outcome = int_value; else if(state == TAG_USER_BET_FIX_ID) new_bet.fix_id = int_value; else if(state >= TAG_START_PLAYERS && state <= TAG_END_PLAYERS) xml_loadsave_players_text(buf); } void xml_loadsave_users_read(const gchar *dirname, const gchar *basename) { #ifdef DEBUG printf("xml_loadsave_users_read\n"); #endif GMarkupParser parser = {xml_loadsave_users_start_element, xml_loadsave_users_end_element, xml_loadsave_users_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; gchar file[SMALL]; sprintf(file, "%s%s%s___users.xml", dirname, G_DIR_SEPARATOR_S, basename); context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(file, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_users_read: error reading file %s\n", file); misc_print_error(&error, TRUE); } if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_users_read: error parsing file %s\n", file); misc_print_error(&error, TRUE); } } void xml_loadsave_users_write(const gchar *prefix) { #ifdef DEBUG printf("xml_loadsave_users_write\n"); #endif gint i, j, k; gchar buf[SMALL]; FILE *fil = NULL; for(i=0;ilen;i++) { sprintf(buf, "%s___user_%02d_options", prefix, i); file_save_opt_file(buf, &usr(i).options); sprintf(buf, "%s___user_%02d_live_game.xml", prefix, i); xml_loadsave_live_game_write(buf, &usr(i).live_game); } sprintf(buf, "%s___users.xml", prefix); file_my_fopen(buf, "w", &fil, TRUE); fprintf(fil, "<_%d>\n", TAG_USERS); for(i=0;ilen;i++) { fprintf(fil, "<_%d>\n", TAG_USER); xml_write_string(fil, usr(i).name, TAG_NAME, I1); xml_write_int(fil, usr(i).team_id, TAG_TEAM_ID, I1); xml_write_int(fil, usr(i).money, TAG_USER_MONEY, I1); xml_write_int(fil, usr(i).debt, TAG_USER_DEBT, I1); xml_write_float(fil, usr(i).debt_interest, TAG_USER_DEBT_INTEREST, I1); xml_write_int(fil, usr(i).alr_start_week, TAG_USER_ALR_START_WEEK, I1); xml_write_int(fil, usr(i).alr_weekly_installment, TAG_USER_ALR_WEEKLY_INSTALLMENT, I1); xml_write_int(fil, usr(i).scout, TAG_USER_SCOUT, I1); xml_write_int(fil, usr(i).physio, TAG_USER_PHYSIO, I1); strcpy(buf, usr(i).sponsor.name->str); misc_string_replace_token(buf, "&", "AND"); xml_write_string(fil, buf, TAG_USER_SPONSOR_NAME, I1); xml_write_int(fil, usr(i).sponsor.contract, TAG_USER_SPONSOR_CONTRACT, I1); xml_write_int(fil, usr(i).sponsor.benefit, TAG_USER_SPONSOR_BENEFIT, I1); xml_user_write_history(fil, usr(i).history); xml_user_write_events(fil, usr(i).events); xml_user_write_bets(fil, usr(i).bets); for(j=0;j\n", I1, TAG_USER_MONEY_INS); for(k=0;k\n", I1, TAG_USER_MONEY_INS); } for(j=0;j<2;j++) { fprintf(fil, "%s<_%d>\n", I1, TAG_USER_MONEY_OUTS); for(k=0;k\n", I1, TAG_USER_MONEY_OUTS); } xml_write_int(fil, usr(i).youth_academy.coach, TAG_USER_YA_COACH, I1); xml_write_int(fil, usr(i).youth_academy.percentage, TAG_USER_YA_PERCENTAGE, I1); xml_write_float(fil, usr(i).youth_academy.av_coach, TAG_USER_YA_AV_COACH, I1); xml_write_float(fil, usr(i).youth_academy.av_percentage, TAG_USER_YA_AV_PERCENTAGE, I1); xml_write_float(fil, usr(i).youth_academy.counter_youth, TAG_USER_YA_COUNTER, I1); xml_write_int(fil, usr(i).youth_academy.pos_pref, TAG_USER_YA_PREFERENCE, I1); xml_loadsave_players_write(fil, usr(i).youth_academy.players); fprintf(fil, "\n", TAG_USER); } fprintf(fil, "\n", TAG_USERS); fclose(fil); } /** Write the history of a user into the file. */ void xml_user_write_history(FILE *fil, const GArray *history) { #ifdef DEBUG printf("xml_user_write_history\n"); #endif gint i, j; for(i=0;ilen;i++) { fprintf(fil, "%s<_%d>\n", I1, TAG_USER_HISTORY); xml_write_int(fil, g_array_index(history, UserHistory, i).season, TAG_USER_HISTORY_SEASON, I2); xml_write_int(fil, g_array_index(history, UserHistory, i).week, TAG_USER_HISTORY_WEEK, I2); xml_write_int(fil, g_array_index(history, UserHistory, i).type, TAG_USER_HISTORY_TYPE, I2); xml_write_string(fil, g_array_index(history, UserHistory, i).team_name, TAG_USER_HISTORY_TEAM_NAME, I2); for(j=0;j<3;j++) if(g_array_index(history, UserHistory, i).string[j] != NULL) xml_write_string(fil, g_array_index(history, UserHistory, i).string[j], TAG_USER_HISTORY_STRING, I2); else xml_write_string(fil, "", TAG_USER_HISTORY_STRING, I2); fprintf(fil, "%s\n", I1, TAG_USER_HISTORY); } } /** Write the events of a user into the file. */ void xml_user_write_events(FILE *fil, const GArray *events) { #ifdef DEBUG printf("xml_user_write_events\n"); #endif gint i; for(i=0;ilen;i++) { fprintf(fil, "%s<_%d>\n", I1, TAG_USER_EVENT); xml_write_int(fil, g_array_index(events, Event, i).type, TAG_USER_EVENT_TYPE, I2); xml_write_int(fil, g_array_index(events, Event, i).value1, TAG_USER_EVENT_VALUE1, I2); xml_write_int(fil, g_array_index(events, Event, i).value2, TAG_USER_EVENT_VALUE2, I2); xml_write_string(fil, g_array_index(events, Event, i).value_string, TAG_USER_EVENT_VALUE_STRING, I2); fprintf(fil, "%s\n", I1, TAG_USER_EVENT); } } /** Write the bets of a user into the file. */ void xml_user_write_bets(FILE *fil, GArray **bets) { #ifdef DEBUG printf("xml_user_write_bets\n"); #endif gint i, j; for(i=0;i<2;i++) for(j=0;jlen;j++) { fprintf(fil, "%s<_%d>\n", I1, (i == 0) ? TAG_USER_BET0 : TAG_USER_BET1); xml_write_int(fil, g_array_index(bets[i], BetUser, j).wager, TAG_USER_BET_WAGER, I2); xml_write_int(fil, g_array_index(bets[i], BetUser, j).outcome, TAG_USER_BET_OUTCOME, I2); xml_write_int(fil, g_array_index(bets[i], BetUser, j).fix_id, TAG_USER_BET_FIX_ID, I2); fprintf(fil, "%s\n", I1, (i == 0) ? TAG_USER_BET0 : TAG_USER_BET1); } } bygfoot-2.3.2/src/xml_loadsave_transfers.c0000644000175000017500000001600211225071373017643 0ustar eliaselias/* xml_loadsave_transfers.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "misc.h" #include "team.h" #include "transfer.h" #include "xml.h" #include "xml_loadsave_transfers.h" enum { TAG_TRANSFERS = TAG_START_TRANSFERS, TAG_TRANSFER, TAG_TRANSFER_PLAYER_ID, TAG_TRANSFER_TIME, TAG_TRANSFER_FEE, TAG_TRANSFER_WAGE, TAG_TRANSFER_OFFER, TAG_TRANSFER_OFFER_TEAM_ID, TAG_TRANSFER_OFFER_FEE, TAG_TRANSFER_OFFER_WAGE, TAG_TRANSFER_OFFER_STATUS, TAG_END }; gint state, feeidx, wageidx; Transfer new_transfer; TransferOffer new_offer; void xml_loadsave_transfers_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_transfers_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_TRANSFERS;i\n", TAG_TRANSFERS); for(i=0;ilen;i++) { fprintf(fil, "<_%d>\n", TAG_TRANSFER); xml_write_int(fil, trans(i).tm->id, TAG_TEAM_ID, I1); xml_write_int(fil, trans(i).id, TAG_TRANSFER_PLAYER_ID, I1); xml_write_int(fil, trans(i).time, TAG_TRANSFER_TIME, I1); for(j=0;jlen;j++) { fprintf(fil, "%s<_%d>\n", I1, TAG_TRANSFER_OFFER); xml_write_int(fil, transoff(i, j).tm->id, TAG_TRANSFER_OFFER_TEAM_ID, I2); xml_write_int(fil, transoff(i, j).wage, TAG_TRANSFER_OFFER_WAGE, I2); xml_write_int(fil, transoff(i, j).status, TAG_TRANSFER_OFFER_STATUS, I2); xml_write_int(fil, transoff(i, j).fee, TAG_TRANSFER_OFFER_FEE, I2); fprintf(fil, "\n", TAG_TRANSFER_OFFER); } fprintf(fil, "%s\n", I1, TAG_TRANSFER); } fprintf(fil, "\n", TAG_TRANSFERS); fclose(fil); } bygfoot-2.3.2/src/misc2_callback_func.h0000644000175000017500000000261711225071373016756 0ustar eliaselias/* misc2_callback_func.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MISC2_CALLBACK_FUNC_H #define MISC2_CALLBACK_FUNC_H #include "bygfoot.h" void misc2_callback_transfer_cpu_player(void); void misc2_callback_transfer_user_player(void); gboolean misc2_callback_change_structure(gint structure); void misc2_callback_contract_offer(void); void misc2_callback_add_user(void); void misc2_callback_mmatches_button_press(GtkWidget *widget, gint row_num, gint col_num); gboolean misc2_callback_evaluate_job_application(Job *job, User *user); #endif bygfoot-2.3.2/src/name_struct.h0000644000175000017500000000236311225071373015434 0ustar eliaselias/* name_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef NAME_STRUCT_H #define NAME_STRUCT_H #include "bygfoot.h" /** A list of first names and last names from a file. */ typedef struct { /** The file id (the part between 'player_names_' and '.xml'). */ gchar *sid; /** Arrays of strings holding the names. */ GPtrArray *first_names, *last_names; } NameList; #endif bygfoot-2.3.2/src/job.h0000644000175000017500000000317311225071373013662 0ustar eliaselias/* job.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef JOB_H #define JOB_H #include "bygfoot.h" #include "job_struct.h" #include "league_struct.h" #include "team_struct.h" #include "user_struct.h" void job_update(void); void job_add_new_international(gint num_of_new); gint job_country_is_in_list(const gchar *country_file, const Country *countries, gint len); void job_add_new_national(void); gint job_team_is_on_list(gint team_id); Team* job_get_team(const Job *job); gboolean query_job_application_successful(const Job *job, const User *user); void job_remove(Job *job, gboolean free_tm); void job_pick_team_from_country(const Country *cntry, Team **tm, League **league); gint job_team_is_in_cup(const gchar *team_name); void job_change_country(Job *job); #endif bygfoot-2.3.2/src/gettext_macros.h0000644000175000017500000000317411225071373016141 0ustar eliaselias/* gettext_macros.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /** * Standard gettext macros. */ #ifndef G_OS_UNIX #define ENABLE_NLS #endif #ifdef ENABLE_NLS # ifndef G_OS_UNIX # define PACKAGE "bygfoot" # define GETTEXT_PACKAGE "bygfoot" # define PACKAGE_LOCALE_DIR "./locale" # endif # include # undef _ # define _(String) dgettext (PACKAGE, String) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else # define textdomain(String) (String) # define gettext(String) (String) # define dgettext(Domain,Message) (Message) # define dcgettext(Domain,Message,Type) (Message) # define bindtextdomain(Domain,Directory) (Domain) # define _(String) (String) # define N_(String) (String) #endif bygfoot-2.3.2/src/misc3_interface.h0000644000175000017500000000032611225071373016143 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window_bets (void); GtkWidget* create_window_splash (void); GtkWidget* create_window_alr (void); GtkWidget* create_window_news (void); bygfoot-2.3.2/src/lg_commentary.h0000644000175000017500000000450411225071373015747 0ustar eliaselias/* lg_commentary.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LG_COMMENTARY_H #define LG_COMMENTARY_H #include "bygfoot.h" #include "fixture_struct.h" #include "lg_commentary_struct.h" #include "live_game_struct.h" void lg_commentary_free_tokens(void); void lg_commentary_initialize(const Fixture *fix); gboolean lg_commentary_check_commentary(const LGCommentary *commentary, gchar *dest); gboolean query_lg_commentary_is_repetition(gint id); void lg_commentary_get_order(const GArray *commentaries, gint *order); void lg_commentary_set_basic_tokens(const LiveGameUnit *unit, const Fixture *fix);; void lg_commentary_set_player_tokens(const LiveGameUnit *unit, const Fixture *fix); void lg_commentary_set_team_tokens(const LiveGameUnit *unit, const Fixture *fix); void lg_commentary_set_stats_tokens(const LiveGameStats *stats, GPtrArray **token_arrays); void lg_commentary_generate(const LiveGame *live_game, LiveGameUnit *unit, const gchar *event_name, gint ev_type); gchar* lg_commentary_get_extra_data(const LiveGameUnit *unit, const Fixture *fix); void lg_commentary_load_commentary_file_from_option(void); void lg_commentary_load_commentary_file(const gchar *commentary_file, gboolean abort); void lg_commentary_test_load_token_file(const gchar *token_file); void lg_commentary_test(const gchar *commentary_file, const gchar* token_file, const gchar *event_name, gint number_of_passes); gint lg_commentary_select(const GArray *commentaries, gchar *buf); #endif bygfoot-2.3.2/src/bet.c0000644000175000017500000001676011225071373013663 0ustar eliaselias/* bet.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "finance.h" #include "fixture.h" #include "game_gui.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "support.h" #include "treeview2.h" #include "user.h" /** Round a betting odd to a multiple of 0.05. */ gfloat bet_round_odd(gfloat odd) { #ifdef DEBUG printf("bet_round_odd\n"); #endif gint local_odd = (gint)rint(odd * 100); if(local_odd % 5 == 0) return odd; if(local_odd % 5 >= 3) return (gfloat)(local_odd + (5 - local_odd % 5)) / 100; return (gfloat)(local_odd - local_odd % 5) / 100; } /** Find the bet containing the fixture. */ BetMatch* bet_from_fixture(gint fix_id) { #ifdef DEBUG printf("bet_from_fixture\n"); #endif gint i, j; for(i=1;i>=0;i--) for(j=0;jlen;j++) if(g_array_index(bets[i], BetMatch, j).fix_id == fix_id) return &g_array_index(bets[i], BetMatch, j); main_exit_program(EXIT_BET_ERROR, "bet_from_fixture: bet going with fixture %d not found", fix_id); return NULL; } /** Manage the bets made by the users. */ void bet_update_user_bets(void) { #ifdef DEBUG printf("bet_update_user_bets\n"); #endif gint i, j, outcome; const BetMatch *bet = NULL; const Fixture *fix = NULL; for(i=0;ilen;i++) { g_array_free(usr(i).bets[0], TRUE); usr(i).bets[0] = g_array_new(FALSE, FALSE, sizeof(BetUser)); for(j=0;jlen;j++) { bet = bet_from_fixture(g_array_index(usr(i).bets[1], BetUser, j).fix_id); fix = fixture_from_id(g_array_index(usr(i).bets[1], BetUser, j).fix_id, TRUE); if(fix->result[0][0] < fix->result[1][0]) outcome = 2; else outcome = (fix->result[0][0] == fix->result[1][0]); if(outcome == g_array_index(usr(i).bets[1], BetUser, j).outcome) { usr(i).money += (gint)rint((gfloat)g_array_index(usr(i).bets[1], BetUser, j).wager * bet->odds[outcome]); usr(i).money_in[1][MON_IN_BETS] += (gint)rint((gfloat)g_array_index(usr(i).bets[1], BetUser, j).wager * bet->odds[outcome]); g_array_index(usr(i).bets[1], BetUser, j).wager = (gint)rint((gfloat)g_array_index(usr(i).bets[1], BetUser, j).wager * bet->odds[outcome]); } else { usr(i).money -= g_array_index(usr(i).bets[1], BetUser, j).wager; usr(i).money_out[1][MON_OUT_BETS] -= g_array_index(usr(i).bets[1], BetUser, j).wager; g_array_index(usr(i).bets[1], BetUser, j).wager *= -1; } g_array_append_val(usr(i).bets[0], g_array_index(usr(i).bets[1], BetUser, j)); } g_array_free(usr(i).bets[1], TRUE); usr(i).bets[1] = g_array_new(FALSE, FALSE, sizeof(BetUser)); } } /** Calculate the odds for the bet. */ void bet_get_odds(BetMatch *bet) { #ifdef DEBUG printf("bet_get_odds\n"); #endif const Fixture *fix = fixture_from_id(bet->fix_id, TRUE); gfloat home_advantage = (fix->home_advantage) ? (const_float("float_game_home_advantage_lower") + const_float("float_game_home_advantage_upper")) / 2 : 0; gfloat av_skill[2] = {0, 0}, skilldiff; gint i, j, better_idx; for(i=0;i<2;i++) { for(j=0;j<11;j++) av_skill[i] += player_get_game_skill(player_of_idx_team(fix->teams[i], j), FALSE, TRUE); av_skill[i] /= 11; } av_skill[0] *= (1 + home_advantage); skilldiff = ABS(av_skill[0] - av_skill[1]); better_idx = 2 * (av_skill[0] < av_skill[1]); bet->odds[better_idx] = 0.33 + skilldiff * const_float("float_bet_better_factor"); bet->odds[2 - better_idx] = 0.33 + skilldiff * const_float("float_bet_worse_factor"); for(i=0;i<2;i++) bet->odds[i * 2] = CLAMP(bet->odds[i * 2], const_float("float_bet_lower_limit"), 1 - const_float("float_bet_lower_limit")); bet->odds[1] = (1 - bet->odds[0] - bet->odds[2]); bet->odds[1] = CLAMP(bet->odds[1], const_float("float_bet_lower_limit"), 1 - const_float("float_bet_lower_limit")); for(i=0;i<3;i++) bet->odds[i] = bet_round_odd((1 / bet->odds[i]) * (1 - const_float("float_bet_commission_decrease"))); } /** Write the bets for the current week round. */ void bet_update(void) { #ifdef DEBUG printf("bet_update\n"); #endif gint i; GPtrArray *fixtures = fixture_get_week_list(week, week_round); BetMatch new_bet; bet_update_user_bets(); g_array_free(bets[0], TRUE); bets[0] = g_array_new(FALSE, FALSE, sizeof(BetMatch)); for(i=0;ilen;i++) g_array_append_val(bets[0], g_array_index(bets[1], BetMatch, i)); g_array_free(bets[1], TRUE); bets[1] = g_array_new(FALSE, FALSE, sizeof(BetMatch)); for(i=0;ilen;i++) if(fixture_user_team_involved((Fixture*)g_ptr_array_index(fixtures, i)) == -1) { new_bet.fix_id = ((Fixture*)g_ptr_array_index(fixtures, i))->id; bet_get_odds(&new_bet); g_array_append_val(bets[1], new_bet); } g_ptr_array_free(fixtures, TRUE); } /** Return the user bet if the user betted on the bet or NULL. */ BetUser* bet_is_user(const BetMatch *bet) { #ifdef DEBUG printf("bet_is_user\n"); #endif gint i, j; for(i=1;i>=0;i--) for(j=0;jlen;j++) if(bet->fix_id == g_array_index(current_user.bets[i], BetUser, j).fix_id) return &g_array_index(current_user.bets[i], BetUser, j); return NULL; } /** Place a new bet. @return TRUE on success, FALSE otherwise. */ gboolean bet_place(gint fix_id, gint outcome, gint wager) { #ifdef DEBUG printf("bet_place\n"); #endif gint max_wager = (gint)rint(finance_wage_unit(current_user.tm) * const_float("float_bet_wager_limit_factor")); BetUser new_bet; gchar buf[SMALL]; if(wager <= 0) return TRUE; if(wager > BUDGET(cur_user)) { game_gui_show_warning(_("You don't have the money.")); return FALSE; } if(wager > max_wager) { misc_print_grouped_int(max_wager, buf); game_gui_show_warning(_("The betting office doesn't allow you to wager more than %s."), buf); gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton1")), (gdouble)max_wager); return FALSE; } new_bet.fix_id = fix_id; new_bet.outcome = outcome; new_bet.wager = wager; g_array_append_val(current_user.bets[1], new_bet); if(window.bets != NULL) treeview2_show_bets(); return TRUE; } /** Remove the bet on the given fixture. */ void bet_remove(gint fix_id) { #ifdef DEBUG printf("bet_remove\n"); #endif gint i; for(i=0;ilen;i++) if(g_array_index(current_user.bets[1], BetUser, i).fix_id == fix_id) { g_array_remove_index(current_user.bets[1], i); return; } } bygfoot-2.3.2/src/league_table_callbacks.c0000644000175000017500000000124011225071373017504 0ustar eliaselias#ifdef HAVE_CONFIG_H # include #endif #include #include "league_table_callbacks.h" #include "league_table_interface.h" #include "support.h" gboolean on_window_league_table_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_league_table_delete_event\n"); #endif return FALSE; } void on_lt_b_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_lt_b_ok_clicked\n"); #endif } bygfoot-2.3.2/src/xml_loadsave_season_stats.h0000644000175000017500000000355211225071373020355 0ustar eliaselias/* xml_loadsave_season_stats.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_SEASON_STATS_H #define XML_LOADSAVE_SEASON_STATS_H #include "bygfoot.h" void xml_loadsave_season_stats_write(const gchar *filename); void xml_loadsave_season_stats_read(const gchar *dirname, const gchar *prefix); void xml_loadsave_season_stats_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_season_stats_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_season_stats_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); #endif bygfoot-2.3.2/src/strategy.h0000644000175000017500000000457111225071373014755 0ustar eliaselias/* strategy.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef STRATEGY_H #define STRATEGY_H #include "bygfoot.h" #include "player_struct.h" #include "strategy_struct.h" #include "team_struct.h" #include "variables.h" void strategy_update_team_pre_match(Team *tm); gint strategy_compare_players(gconstpointer a, gconstpointer b, gpointer user_data); gchar* strategy_get_random(void); Strategy* strategy_from_sid(const gchar *sid); gboolean query_strategy_formation_possible(const GPtrArray *players, const StrategyPrematch *prematch, gint formation); void strategy_update_lineup(Team *tm, const GPtrArray *players, const StrategyPrematch *prematch, gint formation); void strategy_repair_player(Player *pl); void strategy_repair_players(GPtrArray *players, const StrategyPrematch *prematch); void strategy_set_tokens(const Team *tm, const Fixture *fix); void strategy_free_tokens(void); void strategy_apply_prematch(Team *tm, const StrategyPrematch *prematch); void strategy_live_game_set_tokens(const LiveGame *match, gint team_idx); void strategy_live_game_check(LiveGame *match, gint team_idx); void strategy_live_game_apply_action(LiveGame *match, gint team_idx, const StrategyMatchAction *action); gint strategy_compare_players_sub(gconstpointer a, gconstpointer b, gpointer user_data); gint strategy_get_sub(const Team *tm, gint position, gint property, gboolean sub_in); gint strategy_compare_positions(gconstpointer a, gconstpointer b, gpointer user_data); #endif bygfoot-2.3.2/src/xml_cup.c0000644000175000017500000004674411225071373014565 0ustar eliaselias/* xml_cup.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "file.h" #include "league.h" #include "main.h" #include "misc.h" #include "option.h" #include "variables.h" #include "xml_cup.h" #include "xml.h" /** * The tags used in the XML files defining cups. */ #define TAG_CUP "cup" #define TAG_GROUP "group" #define TAG_LAST_WEEK "last_week" #define TAG_ADD_WEEK "add_week" #define TAG_TALENT_DIFF "talent_diff" #define TAG_CUP_ROUNDS "cup_rounds" #define TAG_CUP_ROUND "cup_round" #define TAG_CUP_ROUND_NAME "round_name" #define TAG_CUP_ROUND_NEW_TEAMS "new_teams" #define TAG_CUP_ROUND_BYES "byes" #define TAG_CUP_ROUND_HOME_AWAY "home_away" #define TAG_CUP_ROUND_REPLAY "replay" #define TAG_CUP_ROUND_NEUTRAL "neutral" #define TAG_CUP_ROUND_DELAY "delay" #define TAG_CUP_ROUND_RANDOMISE_TEAMS "randomise_teams" #define TAG_CUP_ROUND_NUMBER_OF_GROUPS "number_of_groups" #define TAG_CUP_ROUND_NUMBER_OF_ADVANCE "number_of_advance" #define TAG_CUP_ROUND_NUMBER_OF_BEST_ADVANCE "number_of_best_advance" #define TAG_CUP_ROUND_ROUND_ROBINS "round_robins" #define TAG_CUP_ROUND_BREAK "break" #define TAG_CUP_ROUND_WAIT "wait_for_cup" #define TAG_CUP_ROUND_TWO_MATCH_WEEK_START "two_match_week_start" #define TAG_CUP_ROUND_TWO_MATCH_WEEK_END "two_match_week_end" #define TAG_CUP_ROUND_TWO_MATCH_WEEK "two_match_week" #define TAG_CHOOSE_TEAMS "choose_teams" #define TAG_CHOOSE_TEAM "choose_team" #define TAG_CHOOSE_TEAM_SID "choose_team_sid" #define TAG_CHOOSE_TEAM_NUMBER_OF_TEAMS "number_of_teams" #define TAG_CHOOSE_TEAM_START_IDX "start_idx" #define TAG_CHOOSE_TEAM_END_IDX "end_idx" #define TAG_CHOOSE_TEAM_RANDOMLY "randomly" #define TAG_CHOOSE_TEAM_GENERATE "generate" #define TAG_CHOOSE_TEAM_SKIP_GROUP_CHECK "skip_group_check" #define TAG_CHOOSE_TEAM_FROM_TABLE "from_table" #define TAG_CHOOSE_TEAM_PRELOAD "preload" #define ATT_NAME_CUP_ROUND_WAIT_ROUND "round" /** * Enum with the states used in the XML parser functions. */ enum XmlCupStates { STATE_CUP = 0, STATE_NAME, STATE_SHORT_NAME, STATE_SYMBOL, STATE_SID, STATE_GROUP, STATE_PROPERTY, STATE_LAST_WEEK, STATE_ADD_WEEK, STATE_WEEK_GAP, STATE_WEEK_BREAK, STATE_SKIP_WEEKS_WITH, STATE_YELLOW_RED, STATE_TALENT_DIFF, STATE_CUP_ROUNDS, STATE_CUP_ROUND, STATE_CUP_ROUND_NAME, STATE_CUP_ROUND_NEW_TEAMS, STATE_CUP_ROUND_BYES, STATE_CUP_ROUND_HOME_AWAY, STATE_CUP_ROUND_REPLAY, STATE_CUP_ROUND_NEUTRAL, STATE_CUP_ROUND_DELAY, STATE_CUP_ROUND_RANDOMISE_TEAMS, STATE_CUP_ROUND_NUMBER_OF_GROUPS, STATE_CUP_ROUND_NUMBER_OF_ADVANCE, STATE_CUP_ROUND_NUMBER_OF_BEST_ADVANCE, STATE_CUP_ROUND_ROUND_ROBINS, STATE_CUP_ROUND_BREAK, STATE_CUP_ROUND_WAIT, STATE_CUP_ROUND_TWO_MATCH_WEEK_START, STATE_CUP_ROUND_TWO_MATCH_WEEK_END, STATE_CUP_ROUND_TWO_MATCH_WEEK, STATE_CHOOSE_TEAMS, STATE_CHOOSE_TEAM, STATE_CHOOSE_TEAM_SID, STATE_CHOOSE_TEAM_NUMBER_OF_TEAMS, STATE_CHOOSE_TEAM_START_IDX, STATE_CHOOSE_TEAM_END_IDX, STATE_CHOOSE_TEAM_RANDOMLY, STATE_CHOOSE_TEAM_GENERATE, STATE_CHOOSE_TEAM_SKIP_GROUP_CHECK, STATE_CHOOSE_TEAM_FROM_TABLE, STATE_CHOOSE_TEAM_PRELOAD, STATE_END }; /** * The state variable used in the XML parsing functions. */ gint state; /** The variable we will fill and append to an array. */ Cup new_cup; CupRound new_round; CupChooseTeam new_choose_team; WeekBreak new_week_break; CupRoundWait new_wait; /** * The function called by the parser when an opening tag is read. * The state variable is changed in this function and * sometimes memory allocated for the information that's going to be read. * @see The GLib manual (Simple XML parser). */ void xml_cup_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_cup_read_start_element\n"); #endif if(strcmp(element_name, TAG_CUP) == 0) { new_cup = cup_new(FALSE); state = STATE_CUP; } else if(strcmp(element_name, TAG_DEF_NAME) == 0) state = STATE_NAME; else if(strcmp(element_name, TAG_DEF_SHORT_NAME) == 0) state = STATE_SHORT_NAME; else if(strcmp(element_name, TAG_DEF_SYMBOL) == 0) state = STATE_SYMBOL; else if(strcmp(element_name, TAG_DEF_SID) == 0) state = STATE_SID; else if(strcmp(element_name, TAG_GROUP) == 0) state = STATE_GROUP; else if(strcmp(element_name, TAG_LAST_WEEK) == 0) state = STATE_LAST_WEEK; else if(strcmp(element_name, TAG_DEF_PROPERTY) == 0) state = STATE_PROPERTY; else if(strcmp(element_name, TAG_ADD_WEEK) == 0) state = STATE_ADD_WEEK; else if(strcmp(element_name, TAG_DEF_WEEK_GAP) == 0) state = STATE_WEEK_GAP; else if(strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0) { state = STATE_WEEK_BREAK; if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_DEF_NAME_WEEK_BREAK_LENGTH) == 0) new_week_break.length = (gint)g_ascii_strtod(attribute_values[0], NULL); else new_week_break.length = -1000; } else if(strcmp(element_name, TAG_DEF_SKIP_WEEKS_WITH) == 0) state = STATE_SKIP_WEEKS_WITH; else if(strcmp(element_name, TAG_DEF_YELLOW_RED) == 0) state = STATE_YELLOW_RED; else if(strcmp(element_name, TAG_TALENT_DIFF) == 0) state = STATE_TALENT_DIFF; else if(strcmp(element_name, TAG_CUP_ROUNDS) == 0) state = STATE_CUP_ROUNDS; else if(strcmp(element_name, TAG_CUP_ROUND) == 0) { new_round = cup_round_new(); state = STATE_CUP_ROUND; } else if(strcmp(element_name, TAG_CUP_ROUND_NAME) == 0) state = STATE_CUP_ROUND_NAME; else if(strcmp(element_name, TAG_CUP_ROUND_NEW_TEAMS) == 0) state = STATE_CUP_ROUND_NEW_TEAMS; else if(strcmp(element_name, TAG_CUP_ROUND_BYES) == 0) state = STATE_CUP_ROUND_BYES; else if(strcmp(element_name, TAG_CUP_ROUND_HOME_AWAY) == 0) state = STATE_CUP_ROUND_HOME_AWAY; else if(strcmp(element_name, TAG_CUP_ROUND_REPLAY) == 0) state = STATE_CUP_ROUND_REPLAY; else if(strcmp(element_name, TAG_CUP_ROUND_NEUTRAL) == 0) state = STATE_CUP_ROUND_NEUTRAL; else if(strcmp(element_name, TAG_CUP_ROUND_DELAY) == 0) state = STATE_CUP_ROUND_DELAY; else if(strcmp(element_name, TAG_CUP_ROUND_RANDOMISE_TEAMS) == 0) state = STATE_CUP_ROUND_RANDOMISE_TEAMS; else if(strcmp(element_name, TAG_CUP_ROUND_NUMBER_OF_GROUPS) == 0) state = STATE_CUP_ROUND_NUMBER_OF_GROUPS; else if(strcmp(element_name, TAG_CUP_ROUND_NUMBER_OF_ADVANCE) == 0) state = STATE_CUP_ROUND_NUMBER_OF_ADVANCE; else if(strcmp(element_name, TAG_CUP_ROUND_NUMBER_OF_BEST_ADVANCE) == 0) state = STATE_CUP_ROUND_NUMBER_OF_BEST_ADVANCE; else if(strcmp(element_name, TAG_CUP_ROUND_ROUND_ROBINS) == 0) state = STATE_CUP_ROUND_ROUND_ROBINS; else if(strcmp(element_name, TAG_CUP_ROUND_BREAK) == 0) state = STATE_CUP_ROUND_BREAK; else if(strcmp(element_name, TAG_CUP_ROUND_WAIT) == 0) { state = STATE_CUP_ROUND_WAIT; if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_NAME_CUP_ROUND_WAIT_ROUND) == 0) new_wait.cup_round = (gint)g_ascii_strtod(attribute_values[0], NULL) - 1; else { new_wait.cup_round = -1; debug_print_message("xml_cup_read_start_element: No round number specified for cup round wait in cup %s\n", new_cup.name); } } else if(strcmp(element_name, TAG_CUP_ROUND_TWO_MATCH_WEEK_START) == 0) state = STATE_CUP_ROUND_TWO_MATCH_WEEK_START; else if(strcmp(element_name, TAG_CUP_ROUND_TWO_MATCH_WEEK_END) == 0) state = STATE_CUP_ROUND_TWO_MATCH_WEEK_END; else if(strcmp(element_name, TAG_CUP_ROUND_TWO_MATCH_WEEK) == 0) state = STATE_CUP_ROUND_TWO_MATCH_WEEK; else if(strcmp(element_name, TAG_CHOOSE_TEAMS) == 0) state = STATE_CHOOSE_TEAMS; else if(strcmp(element_name, TAG_CHOOSE_TEAM) == 0) { new_choose_team = cup_choose_team_new(); state = STATE_CHOOSE_TEAM; } else if(strcmp(element_name, TAG_CHOOSE_TEAM_SID) == 0) state = STATE_CHOOSE_TEAM_SID; else if(strcmp(element_name, TAG_CHOOSE_TEAM_NUMBER_OF_TEAMS) == 0) state = STATE_CHOOSE_TEAM_NUMBER_OF_TEAMS; else if(strcmp(element_name, TAG_CHOOSE_TEAM_START_IDX) == 0) state = STATE_CHOOSE_TEAM_START_IDX; else if(strcmp(element_name, TAG_CHOOSE_TEAM_END_IDX) == 0) state = STATE_CHOOSE_TEAM_END_IDX; else if(strcmp(element_name, TAG_CHOOSE_TEAM_RANDOMLY) == 0) state = STATE_CHOOSE_TEAM_RANDOMLY; else if(strcmp(element_name, TAG_CHOOSE_TEAM_GENERATE) == 0) state = STATE_CHOOSE_TEAM_GENERATE; else if(strcmp(element_name, TAG_CHOOSE_TEAM_SKIP_GROUP_CHECK) == 0) state = STATE_CHOOSE_TEAM_SKIP_GROUP_CHECK; else if(strcmp(element_name, TAG_CHOOSE_TEAM_FROM_TABLE) == 0) state = STATE_CHOOSE_TEAM_FROM_TABLE; else if(strcmp(element_name, TAG_CHOOSE_TEAM_PRELOAD) == 0) state = STATE_CHOOSE_TEAM_PRELOAD; else debug_print_message("xml_cup_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_cup_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_cup_read_end_element\n"); #endif if(strcmp(element_name, TAG_DEF_NAME) == 0 || strcmp(element_name, TAG_DEF_SHORT_NAME) == 0 || strcmp(element_name, TAG_DEF_SYMBOL) == 0 || strcmp(element_name, TAG_DEF_SID) == 0 || strcmp(element_name, TAG_GROUP) == 0 || strcmp(element_name, TAG_LAST_WEEK) == 0 || strcmp(element_name, TAG_DEF_PROPERTY) == 0 || strcmp(element_name, TAG_ADD_WEEK) == 0 || strcmp(element_name, TAG_DEF_WEEK_GAP) == 0 || strcmp(element_name, TAG_DEF_SKIP_WEEKS_WITH) == 0 || strcmp(element_name, TAG_DEF_YELLOW_RED) == 0 || strcmp(element_name, TAG_TALENT_DIFF) == 0 || strcmp(element_name, TAG_CUP_ROUNDS) == 0) state = STATE_CUP; else if(strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0) { state = STATE_CUP; g_array_append_val(new_cup.week_breaks, new_week_break); } else if(strcmp(element_name, TAG_CUP_ROUND) == 0) { state = STATE_CUP_ROUNDS; if(new_round.home_away == 0) new_round.round_robins = 1; league_cup_adjust_rr_breaks(new_round.rr_breaks, new_round.round_robins, new_cup.week_gap); g_array_append_val(new_cup.rounds, new_round); } else if(strcmp(element_name, TAG_CUP_ROUND_HOME_AWAY) == 0 || strcmp(element_name, TAG_CUP_ROUND_REPLAY) == 0 || strcmp(element_name, TAG_CUP_ROUND_NEUTRAL) == 0 || strcmp(element_name, TAG_CUP_ROUND_DELAY) == 0 || strcmp(element_name, TAG_CUP_ROUND_RANDOMISE_TEAMS) == 0 || strcmp(element_name, TAG_CUP_ROUND_NUMBER_OF_GROUPS) == 0 || strcmp(element_name, TAG_CUP_ROUND_NUMBER_OF_ADVANCE) == 0 || strcmp(element_name, TAG_CUP_ROUND_NUMBER_OF_BEST_ADVANCE) == 0 || strcmp(element_name, TAG_CUP_ROUND_ROUND_ROBINS) == 0 || strcmp(element_name, TAG_CUP_ROUND_BREAK) == 0 || strcmp(element_name, TAG_CUP_ROUND_WAIT) == 0 || strcmp(element_name, TAG_CUP_ROUND_TWO_MATCH_WEEK_START) == 0 || strcmp(element_name, TAG_CUP_ROUND_TWO_MATCH_WEEK_END) == 0 || strcmp(element_name, TAG_CUP_ROUND_TWO_MATCH_WEEK) == 0 || strcmp(element_name, TAG_CUP_ROUND_NEW_TEAMS) == 0 || strcmp(element_name, TAG_CUP_ROUND_NAME) == 0 || strcmp(element_name, TAG_CUP_ROUND_BYES) == 0 || strcmp(element_name, TAG_CHOOSE_TEAMS) == 0) { state = STATE_CUP_ROUND; if(strcmp(element_name, TAG_CUP_ROUND_WAIT) == 0) g_array_append_val(new_round.waits, new_wait); } else if(strcmp(element_name, TAG_CHOOSE_TEAM) == 0) { state = STATE_CHOOSE_TEAMS; g_array_append_val(new_round.choose_teams, new_choose_team); } else if(strcmp(element_name, TAG_CHOOSE_TEAM_SID) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_NUMBER_OF_TEAMS) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_START_IDX) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_END_IDX) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_RANDOMLY) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_SKIP_GROUP_CHECK) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_FROM_TABLE) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_PRELOAD) == 0 || strcmp(element_name, TAG_CHOOSE_TEAM_GENERATE) == 0) state = STATE_CHOOSE_TEAM; else if(strcmp(element_name, TAG_CUP) != 0) debug_print_message("xml_cup_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_cup_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_cup_read_text\n"); #endif gchar buf[text_len + 1]; gint int_value; gfloat float_value; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = (gfloat)g_ascii_strtod(buf, NULL); if(state == STATE_NAME) misc_string_assign(&new_cup.name, buf); else if(state == STATE_SHORT_NAME) misc_string_assign(&new_cup.short_name, buf); else if(state == STATE_SYMBOL) misc_string_assign(&new_cup.symbol, buf); else if(state == STATE_SID) misc_string_assign(&new_cup.sid, buf); else if(state == STATE_GROUP) new_cup.group = int_value; else if(state == STATE_LAST_WEEK) new_cup.last_week = int_value; else if(state == STATE_PROPERTY) g_ptr_array_add(new_cup.properties, g_strdup(buf)); else if(state == STATE_ADD_WEEK) new_cup.add_week = int_value; else if(state == STATE_WEEK_GAP) new_cup.week_gap = int_value; else if(state == STATE_WEEK_BREAK) new_week_break.week_number = int_value; else if(state == STATE_SKIP_WEEKS_WITH) g_ptr_array_add(new_cup.skip_weeks_with, g_strdup(buf)); else if(state == STATE_YELLOW_RED) new_cup.yellow_red = int_value; else if(state == STATE_TALENT_DIFF) new_cup.talent_diff = (float_value / 10000); else if(state == STATE_CUP_ROUND_NAME) new_round.name = g_strdup(buf); else if(state == STATE_CUP_ROUND_NEW_TEAMS) new_round.new_teams = int_value; else if(state == STATE_CUP_ROUND_BYES) new_round.byes = int_value; else if(state == STATE_CUP_ROUND_HOME_AWAY) new_round.home_away = int_value; else if(state == STATE_CUP_ROUND_REPLAY) new_round.replay = int_value; else if(state == STATE_CUP_ROUND_NEUTRAL) new_round.neutral = int_value; else if(state == STATE_CUP_ROUND_DELAY) new_round.delay = int_value; else if(state == STATE_CUP_ROUND_RANDOMISE_TEAMS) new_round.randomise_teams = int_value; else if(state == STATE_CUP_ROUND_NUMBER_OF_GROUPS) new_round.round_robin_number_of_groups = int_value; else if(state == STATE_CUP_ROUND_NUMBER_OF_ADVANCE) new_round.round_robin_number_of_advance = int_value; else if(state == STATE_CUP_ROUND_NUMBER_OF_BEST_ADVANCE) new_round.round_robin_number_of_best_advance = int_value; else if(state == STATE_CUP_ROUND_ROUND_ROBINS) new_round.round_robins = int_value; else if(state == STATE_CUP_ROUND_BREAK) league_cup_fill_rr_breaks(new_round.rr_breaks, buf); else if(state == STATE_CUP_ROUND_WAIT) new_wait.cup_sid = g_strdup(buf); else if(state == STATE_CUP_ROUND_TWO_MATCH_WEEK_START) g_array_append_val(new_round.two_match_weeks[0], int_value); else if(state == STATE_CUP_ROUND_TWO_MATCH_WEEK_END) g_array_append_val(new_round.two_match_weeks[1], int_value); else if(state == STATE_CUP_ROUND_TWO_MATCH_WEEK) new_round.two_match_week = int_value; else if(state == STATE_CHOOSE_TEAM_SID) misc_string_assign(&new_choose_team.sid, buf); else if(state == STATE_CHOOSE_TEAM_NUMBER_OF_TEAMS) new_choose_team.number_of_teams = int_value; else if(state == STATE_CHOOSE_TEAM_START_IDX) new_choose_team.start_idx = int_value; else if(state == STATE_CHOOSE_TEAM_END_IDX) new_choose_team.end_idx = int_value; else if(state == STATE_CHOOSE_TEAM_RANDOMLY) new_choose_team.randomly = int_value; else if(state == STATE_CHOOSE_TEAM_GENERATE) new_choose_team.generate = int_value; else if(state == STATE_CHOOSE_TEAM_SKIP_GROUP_CHECK) new_choose_team.skip_group_check = int_value; else if(state == STATE_CHOOSE_TEAM_FROM_TABLE) new_choose_team.from_table = int_value; else if(state == STATE_CHOOSE_TEAM_PRELOAD) new_choose_team.preload = int_value; } /** * Function reading an XML file specifying a cup. * @param cup_name name of the xml file (e.g. 'cup_england_fa.xml') * to be read. Full path is not necessary, if the file is located in * one of the suppport directories; neither are the prefix 'cup_' * or the suffix '.xml'. * @param cups The array we append the new cup to. */ void xml_cup_read(const gchar *cup_name, GArray *cups) { #ifdef DEBUG printf("xml_cup_read\n"); #endif gchar *file_name = file_find_support_file(cup_name, FALSE); GMarkupParser parser = {xml_cup_read_start_element, xml_cup_read_end_element, xml_cup_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; gchar buf[SMALL]; gint i; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(file_name == NULL) { sprintf(buf, "cup_%s.xml", cup_name); file_name = file_find_support_file(buf, TRUE); } if(!g_file_get_contents(file_name, &file_contents, &length, &error)) { debug_print_message("xml_cup_read: error reading file %s\n", file_name); misc_print_error(&error, FALSE); return; } state = STATE_CUP; strcpy(buf, file_name); g_free(file_name); if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { g_critical("xml_cup_read: error parsing file %s\n", buf); misc_print_error(&error, TRUE); } new_cup.id = cup_id_new; league_cup_adjust_week_breaks(new_cup.week_breaks, new_cup.week_gap); for(i = 0; i < new_cup.rounds->len; i++) if(g_array_index(new_cup.rounds, CupRound, i).name == NULL) { cup_get_round_name(&new_cup, i, buf); g_array_index(new_cup.rounds, CupRound, i).name = g_strdup(buf); } g_array_append_val(cups, new_cup); } bygfoot-2.3.2/src/league_table_callbacks.h0000644000175000017500000000056311225071373017520 0ustar eliaselias#include gboolean on_window_league_table_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_lt_b_ok_clicked (GtkButton *button, gpointer user_data); bygfoot-2.3.2/src/xml_loadsave_table.h0000644000175000017500000000351711225071373016737 0ustar eliaselias/* xml_loadsave_table.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_TABLE_H #define XML_LOADSAVE_TABLE_H #include "bygfoot.h" #include "table_struct.h" void xml_loadsave_table_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_table_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_table_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_table_read(const gchar *filename, Table *table); void xml_loadsave_table_write(const gchar *filename, const Table *table); #endif bygfoot-2.3.2/src/xml_loadsave_live_game.c0000644000175000017500000002733511225071373017577 0ustar eliaselias/* xml_loadsave_live_game.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "file.h" #include "fixture.h" #include "league.h" #include "live_game.h" #include "misc.h" #include "option.h" #include "variables.h" #include "xml.h" #include "xml_loadsave_live_game.h" enum { TAG_LIVE_GAME = TAG_START_LIVE_GAME, TAG_LIVE_GAME_FIX_ID, TAG_LIVE_GAME_TEAM_NAME, TAG_LIVE_GAME_ATTENDANCE, TAG_LIVE_GAME_UNIT, TAG_LIVE_GAME_UNIT_POSSESSION, TAG_LIVE_GAME_UNIT_AREA, TAG_LIVE_GAME_UNIT_MINUTE, TAG_LIVE_GAME_UNIT_TIME, TAG_LIVE_GAME_UNIT_RESULT, TAG_LIVE_GAME_UNIT_EVENT, TAG_LIVE_GAME_UNIT_EVENT_TYPE, TAG_LIVE_GAME_UNIT_EVENT_TEAM, TAG_LIVE_GAME_UNIT_EVENT_PLAYER, TAG_LIVE_GAME_UNIT_EVENT_PLAYER2, TAG_LIVE_GAME_UNIT_EVENT_COMMENTARY, TAG_LIVE_GAME_UNIT_EVENT_VERBOSITY, TAG_LIVE_GAME_STAT, TAG_LIVE_GAME_STAT_POSSESSION, TAG_LIVE_GAME_STAT_VALUES, TAG_LIVE_GAME_STAT_VALUE, TAG_LIVE_GAME_STAT_PLAYERS, TAG_LIVE_GAME_STAT_PLAYER, TAG_LIVE_GAME_STAT_PLAYER_ELEMENT, TAG_END }; gint state, unitidx, statvalidx, statvalidx2, statplidx, statplidx2, team_name_idx; LiveGameUnit new_unit; LiveGame *lgame; void xml_loadsave_live_game_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_live_game_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_LIVE_GAME;iunits, new_unit); else if(tag == TAG_LIVE_GAME_TEAM_NAME) team_name_idx++; } else if(tag == TAG_LIVE_GAME_UNIT_POSSESSION || tag == TAG_LIVE_GAME_UNIT_AREA || tag == TAG_LIVE_GAME_UNIT_MINUTE || tag == TAG_LIVE_GAME_UNIT_TIME || tag == TAG_LIVE_GAME_UNIT_RESULT || tag == TAG_LIVE_GAME_UNIT_EVENT) { state = TAG_LIVE_GAME_UNIT; if(tag == TAG_LIVE_GAME_UNIT_RESULT) unitidx++; } else if(tag == TAG_LIVE_GAME_UNIT_EVENT_TYPE || tag == TAG_LIVE_GAME_UNIT_EVENT_TEAM || tag == TAG_LIVE_GAME_UNIT_EVENT_PLAYER || tag == TAG_LIVE_GAME_UNIT_EVENT_PLAYER2 || tag == TAG_LIVE_GAME_UNIT_EVENT_VERBOSITY || tag == TAG_LIVE_GAME_UNIT_EVENT_COMMENTARY) state = TAG_LIVE_GAME_UNIT_EVENT; else if(tag == TAG_LIVE_GAME_STAT_POSSESSION || tag == TAG_LIVE_GAME_STAT_PLAYERS || tag == TAG_LIVE_GAME_STAT_VALUES) { state = TAG_LIVE_GAME_STAT; if(tag == TAG_LIVE_GAME_STAT_VALUES) statvalidx++; else if(tag == TAG_LIVE_GAME_STAT_PLAYERS) statplidx++; } else if(tag == TAG_LIVE_GAME_STAT_PLAYER) { state = TAG_LIVE_GAME_STAT_PLAYERS; statplidx2++; } else if(tag == TAG_LIVE_GAME_STAT_VALUE) { state = TAG_LIVE_GAME_STAT_VALUES; statvalidx2++; } else if(tag == TAG_LIVE_GAME_STAT_PLAYER_ELEMENT) state = TAG_LIVE_GAME_STAT_PLAYER; else if(tag != TAG_LIVE_GAME) debug_print_message("xml_loadsave_live_game_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_live_game_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_live_game_text\n"); #endif gchar buf[SMALL]; gint int_value = -1; gfloat float_value = -1; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = g_ascii_strtod(buf, NULL) / 10000; if(state == TAG_LIVE_GAME_FIX_ID) { lgame->fix_id = int_value; lgame->fix = fixture_from_id(int_value, FALSE); } else if(state == TAG_LIVE_GAME_TEAM_NAME) misc_string_assign(&lgame->team_names[team_name_idx], buf); else if(state == TAG_LIVE_GAME_ATTENDANCE) lgame->attendance = int_value; else if(state == TAG_LIVE_GAME_UNIT_POSSESSION) new_unit.possession = int_value; else if(state == TAG_LIVE_GAME_UNIT_AREA) new_unit.area = int_value; else if(state == TAG_LIVE_GAME_UNIT_MINUTE) new_unit.minute = int_value; else if(state == TAG_LIVE_GAME_UNIT_TIME) new_unit.time = int_value; else if(state == TAG_LIVE_GAME_UNIT_RESULT) new_unit.result[unitidx] = int_value; else if(state == TAG_LIVE_GAME_UNIT_EVENT_TYPE) new_unit.event.type = int_value; else if(state == TAG_LIVE_GAME_UNIT_EVENT_TEAM) new_unit.event.team = int_value; else if(state == TAG_LIVE_GAME_UNIT_EVENT_PLAYER) new_unit.event.player = int_value; else if(state == TAG_LIVE_GAME_UNIT_EVENT_PLAYER2) new_unit.event.player2 = int_value; else if(state == TAG_LIVE_GAME_UNIT_EVENT_COMMENTARY) new_unit.event.commentary = g_strdup(buf); else if(state == TAG_LIVE_GAME_UNIT_EVENT_VERBOSITY) new_unit.event.verbosity = int_value; else if(state == TAG_LIVE_GAME_STAT_POSSESSION) lgame->stats.possession = float_value; else if(state == TAG_LIVE_GAME_STAT_VALUE) lgame->stats.values[statvalidx][statvalidx2] = int_value; else if(state == TAG_LIVE_GAME_STAT_PLAYER_ELEMENT) g_ptr_array_add(lgame->stats.players[statplidx][statplidx2], g_strdup(buf)); } void xml_loadsave_live_game_read(const gchar *filename, LiveGame *live_game) { #ifdef DEBUG printf("xml_loadsave_live_game_read\n"); #endif GMarkupParser parser = {xml_loadsave_live_game_start_element, xml_loadsave_live_game_end_element, xml_loadsave_live_game_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_live_game_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); } lgame = live_game; lgame->team_names[0] = lgame->team_names[1] = NULL; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_live_game_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } } void xml_loadsave_live_game_write(const gchar *filename, const LiveGame *live_game) { #ifdef DEBUG printf("xml_loadsave_live_game_write\n"); #endif gint i; FILE *fil = NULL; file_my_fopen(filename, "w", &fil, TRUE); fprintf(fil, "<_%d>\n", TAG_LIVE_GAME); if(live_game->fix != NULL) { xml_write_int(fil, live_game->fix->id, TAG_LIVE_GAME_FIX_ID, I0); if(live_game->fix->id > 10000000) debug_print_message( "xml_loadsave_live_game_write: suspicious fix id: %d.", live_game->fix->id); } for(i=0;i<2;i++) xml_write_string(fil, live_game->team_names[i], TAG_LIVE_GAME_TEAM_NAME, I0); xml_write_int(fil, live_game->attendance, TAG_LIVE_GAME_ATTENDANCE, I0); for(i=0;iunits->len;i++) xml_loadsave_live_game_write_unit(fil, &g_array_index(live_game->units, LiveGameUnit, i)); xml_loadsave_live_game_write_stats(fil, &live_game->stats); fprintf(fil, "\n", TAG_LIVE_GAME); fclose(fil); } void xml_loadsave_live_game_write_unit(FILE *fil, const LiveGameUnit *unit) { #ifdef DEBUG printf("xml_loadsave_live_game_write_unit\n"); #endif fprintf(fil, "<_%d>\n", TAG_LIVE_GAME_UNIT); xml_write_int(fil, unit->possession, TAG_LIVE_GAME_UNIT_POSSESSION, I1); xml_write_int(fil, unit->area, TAG_LIVE_GAME_UNIT_AREA, I1); xml_write_int(fil, unit->minute, TAG_LIVE_GAME_UNIT_MINUTE, I1); xml_write_int(fil, unit->time, TAG_LIVE_GAME_UNIT_TIME, I1); xml_write_int(fil, unit->result[0], TAG_LIVE_GAME_UNIT_RESULT, I1); xml_write_int(fil, unit->result[1], TAG_LIVE_GAME_UNIT_RESULT, I1); fprintf(fil, "%s<_%d>\n", I1, TAG_LIVE_GAME_UNIT_EVENT); xml_write_int(fil, unit->event.type, TAG_LIVE_GAME_UNIT_EVENT_TYPE, I2); xml_write_int(fil, unit->event.verbosity, TAG_LIVE_GAME_UNIT_EVENT_VERBOSITY, I2); xml_write_string(fil, unit->event.commentary, TAG_LIVE_GAME_UNIT_EVENT_COMMENTARY, I2); xml_write_int(fil, unit->event.team, TAG_LIVE_GAME_UNIT_EVENT_TEAM, I2); xml_write_int(fil, unit->event.player, TAG_LIVE_GAME_UNIT_EVENT_PLAYER, I2); xml_write_int(fil, unit->event.player2, TAG_LIVE_GAME_UNIT_EVENT_PLAYER2, I2); fprintf(fil, "%s\n", I1, TAG_LIVE_GAME_UNIT_EVENT); fprintf(fil, "\n", TAG_LIVE_GAME_UNIT); } void xml_loadsave_live_game_write_stats(FILE *fil, const LiveGameStats *stats) { #ifdef DEBUG printf("xml_loadsave_live_game_write_stats\n"); #endif gint i, j, k; fprintf(fil, "<_%d>\n", TAG_LIVE_GAME_STAT); xml_write_float(fil, stats->possession, TAG_LIVE_GAME_STAT_POSSESSION, I1); for(i=0;i<2;i++) { fprintf(fil, "%s<_%d>\n", I1, TAG_LIVE_GAME_STAT_VALUES); for(j=0;jvalues[i][j], TAG_LIVE_GAME_STAT_VALUE, I2); fprintf(fil, "%s\n", I1, TAG_LIVE_GAME_STAT_VALUES); } for(i=0;i<2;i++) { fprintf(fil, "%s<_%d>\n", I1, TAG_LIVE_GAME_STAT_PLAYERS); for(j=0;j\n", I1, TAG_LIVE_GAME_STAT_PLAYER); for(k=0;kplayers[i][j]->len;k++) xml_write_string(fil, (gchar*)g_ptr_array_index(stats->players[i][j], k), TAG_LIVE_GAME_STAT_PLAYER_ELEMENT, I2); fprintf(fil, "%s\n", I1, TAG_LIVE_GAME_STAT_PLAYER); } fprintf(fil, "%s\n", I1, TAG_LIVE_GAME_STAT_PLAYERS); } fprintf(fil, "\n", TAG_LIVE_GAME_STAT); } bygfoot-2.3.2/src/misc_interface.c0000644000175000017500000017242311225071373016063 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "misc_callbacks.h" #include "misc_interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window_startup (void) { GtkWidget *window_startup; GtkWidget *vbox2; GtkWidget *vbox34; GtkWidget *label69; GtkWidget *combo_country; GtkWidget *label121; GtkWidget *hpaned1; GtkWidget *scrolledwindow10; GtkWidget *treeview_users; GtkWidget *scrolledwindow1; GtkWidget *treeview_startup; GtkWidget *hseparator11; GtkWidget *label4; GtkWidget *combobox_start_league; GtkWidget *hseparator12; GtkWidget *label75; GtkWidget *hbox54; GtkWidget *entry_player_name; GtkWidget *button_add_player; GtkWidget *alignment19; GtkWidget *hbox55; GtkWidget *image59; GtkWidget *label76; GtkWidget *hseparator13; GtkWidget *hbox74; GtkWidget *radiobutton_team_def_load; GSList *radiobutton_team_def_load_group = NULL; GtkWidget *radiobutton_team_def_names; GtkWidget *radiobutton_team_def_dont; GtkWidget *vseparator2; GtkWidget *checkbutton_randomise_teams; GtkWidget *hseparator16; GtkWidget *hbox3; GtkWidget *team_selection_ok; GtkWidget *alignment18; GtkWidget *hbox53; GtkWidget *image58; GtkWidget *label74; GtkWidget *button_team_selection_back; GtkWidget *alignment24; GtkWidget *hbox77; GtkWidget *image64; GtkWidget *label122; GtkWidget *team_selection_cancel; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_startup = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_startup), 6); gtk_window_set_position (GTK_WINDOW (window_startup), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_startup), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_startup), 550, 600); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (window_startup), vbox2); vbox34 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox34); gtk_box_pack_start (GTK_BOX (vbox2), vbox34, FALSE, TRUE, 0); label69 = gtk_label_new (_("Choose country")); gtk_widget_show (label69); gtk_box_pack_start (GTK_BOX (vbox34), label69, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label69), GTK_JUSTIFY_CENTER); gtk_misc_set_padding (GTK_MISC (label69), 0, 1); combo_country = gtk_combo_box_new_text (); gtk_widget_show (combo_country); gtk_box_pack_start (GTK_BOX (vbox34), combo_country, TRUE, TRUE, 0); label121 = gtk_label_new (_("Choose team")); gtk_widget_show (label121); gtk_box_pack_start (GTK_BOX (vbox2), label121, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label121), 0, 5); hpaned1 = gtk_hpaned_new (); gtk_widget_show (hpaned1); gtk_box_pack_start (GTK_BOX (vbox2), hpaned1, TRUE, TRUE, 0); gtk_paned_set_position (GTK_PANED (hpaned1), 200); scrolledwindow10 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow10); gtk_paned_pack1 (GTK_PANED (hpaned1), scrolledwindow10, FALSE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow10), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow10), GTK_SHADOW_IN); treeview_users = gtk_tree_view_new (); gtk_widget_show (treeview_users); gtk_container_add (GTK_CONTAINER (scrolledwindow10), treeview_users); gtk_tooltips_set_tip (tooltips, treeview_users, _("Click on a user to remove him."), NULL); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_paned_pack2 (GTK_PANED (hpaned1), scrolledwindow1, TRUE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN); treeview_startup = gtk_tree_view_new (); gtk_widget_show (treeview_startup); gtk_container_add (GTK_CONTAINER (scrolledwindow1), treeview_startup); gtk_container_set_border_width (GTK_CONTAINER (treeview_startup), 2); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview_startup), TRUE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (treeview_startup), TRUE); hseparator11 = gtk_hseparator_new (); gtk_widget_show (hseparator11); gtk_box_pack_start (GTK_BOX (vbox2), hseparator11, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator11, 1, 10); label4 = gtk_label_new (_("Choose league to start in")); gtk_widget_show (label4); gtk_box_pack_start (GTK_BOX (vbox2), label4, FALSE, FALSE, 0); combobox_start_league = gtk_combo_box_new_text (); gtk_widget_show (combobox_start_league); gtk_box_pack_start (GTK_BOX (vbox2), combobox_start_league, FALSE, FALSE, 0); hseparator12 = gtk_hseparator_new (); gtk_widget_show (hseparator12); gtk_box_pack_start (GTK_BOX (vbox2), hseparator12, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator12, 1, 5); label75 = gtk_label_new (_("Choose username")); gtk_widget_show (label75); gtk_box_pack_start (GTK_BOX (vbox2), label75, FALSE, FALSE, 0); hbox54 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox54); gtk_box_pack_start (GTK_BOX (vbox2), hbox54, FALSE, TRUE, 0); entry_player_name = gtk_entry_new (); gtk_widget_show (entry_player_name); gtk_box_pack_start (GTK_BOX (hbox54), entry_player_name, TRUE, TRUE, 0); gtk_entry_set_max_length (GTK_ENTRY (entry_player_name), 12); gtk_entry_set_width_chars (GTK_ENTRY (entry_player_name), 12); button_add_player = gtk_button_new (); gtk_widget_show (button_add_player); gtk_box_pack_start (GTK_BOX (vbox2), button_add_player, FALSE, FALSE, 0); gtk_widget_set_sensitive (button_add_player, FALSE); GTK_WIDGET_UNSET_FLAGS (button_add_player, GTK_CAN_FOCUS); alignment19 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment19); gtk_container_add (GTK_CONTAINER (button_add_player), alignment19); hbox55 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox55); gtk_container_add (GTK_CONTAINER (alignment19), hbox55); image59 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image59); gtk_box_pack_start (GTK_BOX (hbox55), image59, FALSE, FALSE, 0); label76 = gtk_label_new_with_mnemonic (_("Add user")); gtk_widget_show (label76); gtk_box_pack_start (GTK_BOX (hbox55), label76, FALSE, FALSE, 0); hseparator13 = gtk_hseparator_new (); gtk_widget_show (hseparator13); gtk_box_pack_start (GTK_BOX (vbox2), hseparator13, FALSE, TRUE, 0); gtk_widget_set_size_request (hseparator13, 1, 10); hbox74 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox74); gtk_box_pack_start (GTK_BOX (vbox2), hbox74, FALSE, FALSE, 0); radiobutton_team_def_load = gtk_radio_button_new_with_mnemonic (NULL, _("Load team definitions")); gtk_widget_show (radiobutton_team_def_load); gtk_box_pack_start (GTK_BOX (hbox74), radiobutton_team_def_load, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, radiobutton_team_def_load, _("Load teams from definition files (note that the official Bygfoot package doesn't contain team definition files, you have to get them from the homepage or via the bygfoot-update script)"), NULL); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_team_def_load), radiobutton_team_def_load_group); radiobutton_team_def_load_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_team_def_load)); radiobutton_team_def_names = gtk_radio_button_new_with_mnemonic (NULL, _("Only names")); gtk_widget_show (radiobutton_team_def_names); gtk_box_pack_start (GTK_BOX (hbox74), radiobutton_team_def_names, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, radiobutton_team_def_names, _("Load only the player names in the definition files"), NULL); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_team_def_names), radiobutton_team_def_load_group); radiobutton_team_def_load_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_team_def_names)); radiobutton_team_def_dont = gtk_radio_button_new_with_mnemonic (NULL, _("Don't load definitions")); gtk_widget_show (radiobutton_team_def_dont); gtk_box_pack_start (GTK_BOX (hbox74), radiobutton_team_def_dont, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, radiobutton_team_def_dont, _("Don't load team definitions at all"), NULL); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_team_def_dont), radiobutton_team_def_load_group); radiobutton_team_def_load_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_team_def_dont)); vseparator2 = gtk_vseparator_new (); gtk_widget_show (vseparator2); gtk_box_pack_start (GTK_BOX (hbox74), vseparator2, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator2, 10, 1); checkbutton_randomise_teams = gtk_check_button_new_with_mnemonic (_("Randomise teams in cups")); gtk_widget_show (checkbutton_randomise_teams); gtk_box_pack_start (GTK_BOX (hbox74), checkbutton_randomise_teams, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_randomise_teams, _("Randomise the order of teams in cups. This only makes sense in supernational definitions like the World Cup where the order of teams is fixed."), NULL); hseparator16 = gtk_hseparator_new (); gtk_widget_show (hseparator16); gtk_box_pack_start (GTK_BOX (vbox2), hseparator16, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator16, 1, 5); hbox3 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox3); gtk_box_pack_start (GTK_BOX (vbox2), hbox3, FALSE, TRUE, 0); team_selection_ok = gtk_button_new (); gtk_widget_show (team_selection_ok); gtk_box_pack_start (GTK_BOX (hbox3), team_selection_ok, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (team_selection_ok), 2); gtk_widget_set_sensitive (team_selection_ok, FALSE); gtk_tooltips_set_tip (tooltips, team_selection_ok, _("Space"), NULL); gtk_widget_add_accelerator (team_selection_ok, "clicked", accel_group, GDK_space, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); alignment18 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment18); gtk_container_add (GTK_CONTAINER (team_selection_ok), alignment18); hbox53 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox53); gtk_container_add (GTK_CONTAINER (alignment18), hbox53); image58 = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image58); gtk_box_pack_start (GTK_BOX (hbox53), image58, FALSE, FALSE, 0); label74 = gtk_label_new_with_mnemonic (_("Start")); gtk_widget_show (label74); gtk_box_pack_start (GTK_BOX (hbox53), label74, FALSE, FALSE, 0); button_team_selection_back = gtk_button_new (); gtk_widget_show (button_team_selection_back); gtk_box_pack_start (GTK_BOX (hbox3), button_team_selection_back, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (button_team_selection_back), 2); gtk_tooltips_set_tip (tooltips, button_team_selection_back, _("Go back to the splash screen"), NULL); alignment24 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment24); gtk_container_add (GTK_CONTAINER (button_team_selection_back), alignment24); hbox77 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox77); gtk_container_add (GTK_CONTAINER (alignment24), hbox77); image64 = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image64); gtk_box_pack_start (GTK_BOX (hbox77), image64, FALSE, FALSE, 0); label122 = gtk_label_new_with_mnemonic (_("Back to splash")); gtk_widget_show (label122); gtk_box_pack_start (GTK_BOX (hbox77), label122, FALSE, FALSE, 0); team_selection_cancel = gtk_button_new_from_stock ("gtk-quit"); gtk_widget_show (team_selection_cancel); gtk_box_pack_start (GTK_BOX (hbox3), team_selection_cancel, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (team_selection_cancel), 2); gtk_tooltips_set_tip (tooltips, team_selection_cancel, _("Esc"), NULL); gtk_widget_add_accelerator (team_selection_cancel, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_startup, "delete_event", G_CALLBACK (on_team_selection_cancel_clicked), NULL); g_signal_connect ((gpointer) combo_country, "changed", G_CALLBACK (on_combo_country_changed), NULL); g_signal_connect ((gpointer) treeview_users, "button_press_event", G_CALLBACK (on_treeview_users_button_press_event), NULL); g_signal_connect ((gpointer) entry_player_name, "activate", G_CALLBACK (on_entry_player_name_activate), NULL); g_signal_connect ((gpointer) button_add_player, "clicked", G_CALLBACK (on_button_add_player_clicked), NULL); g_signal_connect ((gpointer) team_selection_ok, "clicked", G_CALLBACK (on_team_selection_ok_clicked), NULL); g_signal_connect ((gpointer) button_team_selection_back, "clicked", G_CALLBACK (on_button_team_selection_back_clicked), NULL); g_signal_connect ((gpointer) team_selection_cancel, "clicked", G_CALLBACK (on_team_selection_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_startup, window_startup, "window_startup"); GLADE_HOOKUP_OBJECT (window_startup, vbox2, "vbox2"); GLADE_HOOKUP_OBJECT (window_startup, vbox34, "vbox34"); GLADE_HOOKUP_OBJECT (window_startup, label69, "label69"); GLADE_HOOKUP_OBJECT (window_startup, combo_country, "combo_country"); GLADE_HOOKUP_OBJECT (window_startup, label121, "label121"); GLADE_HOOKUP_OBJECT (window_startup, hpaned1, "hpaned1"); GLADE_HOOKUP_OBJECT (window_startup, scrolledwindow10, "scrolledwindow10"); GLADE_HOOKUP_OBJECT (window_startup, treeview_users, "treeview_users"); GLADE_HOOKUP_OBJECT (window_startup, scrolledwindow1, "scrolledwindow1"); GLADE_HOOKUP_OBJECT (window_startup, treeview_startup, "treeview_startup"); GLADE_HOOKUP_OBJECT (window_startup, hseparator11, "hseparator11"); GLADE_HOOKUP_OBJECT (window_startup, label4, "label4"); GLADE_HOOKUP_OBJECT (window_startup, combobox_start_league, "combobox_start_league"); GLADE_HOOKUP_OBJECT (window_startup, hseparator12, "hseparator12"); GLADE_HOOKUP_OBJECT (window_startup, label75, "label75"); GLADE_HOOKUP_OBJECT (window_startup, hbox54, "hbox54"); GLADE_HOOKUP_OBJECT (window_startup, entry_player_name, "entry_player_name"); GLADE_HOOKUP_OBJECT (window_startup, button_add_player, "button_add_player"); GLADE_HOOKUP_OBJECT (window_startup, alignment19, "alignment19"); GLADE_HOOKUP_OBJECT (window_startup, hbox55, "hbox55"); GLADE_HOOKUP_OBJECT (window_startup, image59, "image59"); GLADE_HOOKUP_OBJECT (window_startup, label76, "label76"); GLADE_HOOKUP_OBJECT (window_startup, hseparator13, "hseparator13"); GLADE_HOOKUP_OBJECT (window_startup, hbox74, "hbox74"); GLADE_HOOKUP_OBJECT (window_startup, radiobutton_team_def_load, "radiobutton_team_def_load"); GLADE_HOOKUP_OBJECT (window_startup, radiobutton_team_def_names, "radiobutton_team_def_names"); GLADE_HOOKUP_OBJECT (window_startup, radiobutton_team_def_dont, "radiobutton_team_def_dont"); GLADE_HOOKUP_OBJECT (window_startup, vseparator2, "vseparator2"); GLADE_HOOKUP_OBJECT (window_startup, checkbutton_randomise_teams, "checkbutton_randomise_teams"); GLADE_HOOKUP_OBJECT (window_startup, hseparator16, "hseparator16"); GLADE_HOOKUP_OBJECT (window_startup, hbox3, "hbox3"); GLADE_HOOKUP_OBJECT (window_startup, team_selection_ok, "team_selection_ok"); GLADE_HOOKUP_OBJECT (window_startup, alignment18, "alignment18"); GLADE_HOOKUP_OBJECT (window_startup, hbox53, "hbox53"); GLADE_HOOKUP_OBJECT (window_startup, image58, "image58"); GLADE_HOOKUP_OBJECT (window_startup, label74, "label74"); GLADE_HOOKUP_OBJECT (window_startup, button_team_selection_back, "button_team_selection_back"); GLADE_HOOKUP_OBJECT (window_startup, alignment24, "alignment24"); GLADE_HOOKUP_OBJECT (window_startup, hbox77, "hbox77"); GLADE_HOOKUP_OBJECT (window_startup, image64, "image64"); GLADE_HOOKUP_OBJECT (window_startup, label122, "label122"); GLADE_HOOKUP_OBJECT (window_startup, team_selection_cancel, "team_selection_cancel"); GLADE_HOOKUP_OBJECT_NO_REF (window_startup, tooltips, "tooltips"); gtk_widget_grab_focus (treeview_startup); gtk_window_add_accel_group (GTK_WINDOW (window_startup), accel_group); return window_startup; } GtkWidget* create_window_font_sel (void) { GtkWidget *window_font_sel; GtkWidget *button_font_sel_ok; GtkWidget *button_font_sel_cancel; GtkWidget *button_font_sel_apply; GtkWidget *font_sel; window_font_sel = gtk_font_selection_dialog_new (_("Select font")); gtk_container_set_border_width (GTK_CONTAINER (window_font_sel), 5); gtk_window_set_position (GTK_WINDOW (window_font_sel), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_font_sel), TRUE); gtk_window_set_type_hint (GTK_WINDOW (window_font_sel), GDK_WINDOW_TYPE_HINT_DIALOG); button_font_sel_ok = GTK_FONT_SELECTION_DIALOG (window_font_sel)->ok_button; gtk_widget_show (button_font_sel_ok); GTK_WIDGET_SET_FLAGS (button_font_sel_ok, GTK_CAN_DEFAULT); button_font_sel_cancel = GTK_FONT_SELECTION_DIALOG (window_font_sel)->cancel_button; gtk_widget_show (button_font_sel_cancel); GTK_WIDGET_SET_FLAGS (button_font_sel_cancel, GTK_CAN_DEFAULT); button_font_sel_apply = GTK_FONT_SELECTION_DIALOG (window_font_sel)->apply_button; gtk_widget_show (button_font_sel_apply); GTK_WIDGET_SET_FLAGS (button_font_sel_apply, GTK_CAN_DEFAULT); font_sel = GTK_FONT_SELECTION_DIALOG (window_font_sel)->fontsel; gtk_widget_show (font_sel); gtk_container_set_border_width (GTK_CONTAINER (font_sel), 4); g_signal_connect ((gpointer) window_font_sel, "delete_event", G_CALLBACK (on_button_font_sel_cancel_clicked), NULL); g_signal_connect ((gpointer) button_font_sel_ok, "clicked", G_CALLBACK (on_button_font_sel_ok_clicked), NULL); g_signal_connect ((gpointer) button_font_sel_cancel, "clicked", G_CALLBACK (on_button_font_sel_cancel_clicked), NULL); g_signal_connect ((gpointer) button_font_sel_apply, "clicked", G_CALLBACK (on_button_font_sel_apply_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_font_sel, window_font_sel, "window_font_sel"); GLADE_HOOKUP_OBJECT_NO_REF (window_font_sel, button_font_sel_ok, "button_font_sel_ok"); GLADE_HOOKUP_OBJECT_NO_REF (window_font_sel, button_font_sel_cancel, "button_font_sel_cancel"); GLADE_HOOKUP_OBJECT_NO_REF (window_font_sel, button_font_sel_apply, "button_font_sel_apply"); GLADE_HOOKUP_OBJECT_NO_REF (window_font_sel, font_sel, "font_sel"); return window_font_sel; } GtkWidget* create_window_live (void) { GtkWidget *window_live; GtkWidget *vbox36; GtkWidget *progressbar_live; GtkWidget *hbox50; GtkWidget *vbox38; GtkWidget *hbox57; GtkWidget *eventbox_poss0; GtkWidget *label78; GtkWidget *scrolledwindow8; GtkWidget *treeview_result; GtkWidget *eventbox_poss1; GtkWidget *label79; GtkWidget *hscale_area; GtkWidget *notebook1; GtkWidget *scrolledwindow9; GtkWidget *treeview_commentary; GtkWidget *label80; GtkWidget *scrolledwindow11; GtkWidget *treeview_stats; GtkWidget *label81; GtkWidget *scrolledwindow13; GtkWidget *viewport1; GtkWidget *vbox49; GtkWidget *hbox75; GtkWidget *image_lg_opp_style; GtkWidget *image_lg_opp_boost; GtkWidget *label_lg_formation; GtkWidget *hbox76; GtkWidget *label120; GtkWidget *label_lg_avskill; GtkWidget *treeview_lg_opponent; GtkWidget *label118; GtkWidget *hbox48; GtkWidget *button_pause; GtkWidget *alignment16; GtkWidget *hbox51; GtkWidget *image56; GtkWidget *label72; GtkWidget *button_resume; GtkWidget *alignment17; GtkWidget *hbox52; GtkWidget *image57; GtkWidget *label73; GtkWidget *button_live_close; GtkWidget *table2; GtkObject *spinbutton_speed_adj; GtkWidget *spinbutton_speed; GtkWidget *label112; GtkWidget *label113; GtkObject *spinbutton_verbosity_adj; GtkWidget *spinbutton_verbosity; GtkWidget *vseparator1; GtkWidget *eventbox_lg_boost; GtkWidget *image_lg_boost; GtkWidget *eventbox_lg_style; GtkWidget *image_lg_style; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_live = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_live), 6); gtk_window_set_title (GTK_WINDOW (window_live), _("Live game")); gtk_window_set_position (GTK_WINDOW (window_live), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_live), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_live), 620, 550); vbox36 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox36); gtk_container_add (GTK_CONTAINER (window_live), vbox36); progressbar_live = gtk_progress_bar_new (); gtk_widget_show (progressbar_live); gtk_box_pack_start (GTK_BOX (vbox36), progressbar_live, FALSE, FALSE, 0); hbox50 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox50); gtk_box_pack_start (GTK_BOX (vbox36), hbox50, TRUE, TRUE, 0); vbox38 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox38); gtk_box_pack_start (GTK_BOX (hbox50), vbox38, TRUE, TRUE, 0); hbox57 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox57); gtk_box_pack_start (GTK_BOX (vbox38), hbox57, FALSE, FALSE, 0); eventbox_poss0 = gtk_event_box_new (); gtk_widget_show (eventbox_poss0); gtk_box_pack_start (GTK_BOX (hbox57), eventbox_poss0, FALSE, TRUE, 0); label78 = gtk_label_new (""); gtk_widget_show (label78); gtk_container_add (GTK_CONTAINER (eventbox_poss0), label78); gtk_misc_set_padding (GTK_MISC (label78), 5, 0); scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow8); gtk_box_pack_start (GTK_BOX (hbox57), scrolledwindow8, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_SHADOW_ETCHED_IN); treeview_result = gtk_tree_view_new (); gtk_widget_show (treeview_result); gtk_container_add (GTK_CONTAINER (scrolledwindow8), treeview_result); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview_result), FALSE); eventbox_poss1 = gtk_event_box_new (); gtk_widget_show (eventbox_poss1); gtk_box_pack_start (GTK_BOX (hbox57), eventbox_poss1, FALSE, TRUE, 0); label79 = gtk_label_new (""); gtk_widget_show (label79); gtk_container_add (GTK_CONTAINER (eventbox_poss1), label79); gtk_misc_set_padding (GTK_MISC (label79), 5, 0); hscale_area = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (5, 0, 10, 0, 0, 0))); gtk_widget_show (hscale_area); gtk_box_pack_start (GTK_BOX (vbox38), hscale_area, FALSE, TRUE, 0); gtk_scale_set_draw_value (GTK_SCALE (hscale_area), FALSE); notebook1 = gtk_notebook_new (); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (vbox38), notebook1, TRUE, TRUE, 0); scrolledwindow9 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow9); gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow9); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow9), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow9), GTK_SHADOW_ETCHED_IN); treeview_commentary = gtk_tree_view_new (); gtk_widget_show (treeview_commentary); gtk_container_add (GTK_CONTAINER (scrolledwindow9), treeview_commentary); label80 = gtk_label_new (_("Commentary")); gtk_widget_show (label80); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label80); scrolledwindow11 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow11); gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow11); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow11), GTK_SHADOW_IN); treeview_stats = gtk_tree_view_new (); gtk_widget_show (treeview_stats); gtk_container_add (GTK_CONTAINER (scrolledwindow11), treeview_stats); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview_stats), FALSE); label81 = gtk_label_new (_("Statistics")); gtk_widget_show (label81); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label81); scrolledwindow13 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow13); gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow13); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow13), GTK_SHADOW_IN); viewport1 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport1); gtk_container_add (GTK_CONTAINER (scrolledwindow13), viewport1); vbox49 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox49); gtk_container_add (GTK_CONTAINER (viewport1), vbox49); hbox75 = gtk_hbox_new (FALSE, 10); gtk_widget_show (hbox75); gtk_box_pack_start (GTK_BOX (vbox49), hbox75, FALSE, FALSE, 0); image_lg_opp_style = create_pixmap (window_live, NULL); gtk_widget_show (image_lg_opp_style); gtk_box_pack_start (GTK_BOX (hbox75), image_lg_opp_style, FALSE, FALSE, 0); image_lg_opp_boost = create_pixmap (window_live, NULL); gtk_widget_show (image_lg_opp_boost); gtk_box_pack_start (GTK_BOX (hbox75), image_lg_opp_boost, FALSE, FALSE, 0); label_lg_formation = gtk_label_new (""); gtk_widget_show (label_lg_formation); gtk_box_pack_start (GTK_BOX (hbox75), label_lg_formation, FALSE, FALSE, 0); hbox76 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox76); gtk_box_pack_start (GTK_BOX (hbox75), hbox76, FALSE, FALSE, 0); label120 = gtk_label_new (_("Av. skill: ")); gtk_widget_show (label120); gtk_box_pack_start (GTK_BOX (hbox76), label120, FALSE, FALSE, 0); label_lg_avskill = gtk_label_new (""); gtk_widget_show (label_lg_avskill); gtk_box_pack_start (GTK_BOX (hbox76), label_lg_avskill, FALSE, FALSE, 0); treeview_lg_opponent = gtk_tree_view_new (); gtk_widget_show (treeview_lg_opponent); gtk_box_pack_start (GTK_BOX (vbox49), treeview_lg_opponent, TRUE, TRUE, 0); label118 = gtk_label_new (_("Opponent player list")); gtk_widget_show (label118); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label118); hbox48 = gtk_hbox_new (FALSE, 4); gtk_widget_show (hbox48); gtk_box_pack_start (GTK_BOX (vbox36), hbox48, FALSE, TRUE, 5); button_pause = gtk_button_new (); gtk_widget_show (button_pause); gtk_box_pack_start (GTK_BOX (hbox48), button_pause, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_pause, _("Esc / Return / Space"), NULL); gtk_widget_add_accelerator (button_pause, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); alignment16 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment16); gtk_container_add (GTK_CONTAINER (button_pause), alignment16); hbox51 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox51); gtk_container_add (GTK_CONTAINER (alignment16), hbox51); image56 = gtk_image_new_from_stock ("gtk-no", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image56); gtk_box_pack_start (GTK_BOX (hbox51), image56, FALSE, FALSE, 0); label72 = gtk_label_new_with_mnemonic (_("_Pause")); gtk_widget_show (label72); gtk_box_pack_start (GTK_BOX (hbox51), label72, FALSE, FALSE, 0); button_resume = gtk_button_new (); gtk_widget_show (button_resume); gtk_box_pack_start (GTK_BOX (hbox48), button_resume, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_resume, _("Return / Space"), NULL); alignment17 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment17); gtk_container_add (GTK_CONTAINER (button_resume), alignment17); hbox52 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox52); gtk_container_add (GTK_CONTAINER (alignment17), hbox52); image57 = gtk_image_new_from_stock ("gtk-yes", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image57); gtk_box_pack_start (GTK_BOX (hbox52), image57, FALSE, FALSE, 0); label73 = gtk_label_new_with_mnemonic (_("_Resume")); gtk_widget_show (label73); gtk_box_pack_start (GTK_BOX (hbox52), label73, FALSE, FALSE, 0); button_live_close = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (button_live_close); gtk_box_pack_start (GTK_BOX (hbox48), button_live_close, FALSE, FALSE, 0); gtk_widget_set_sensitive (button_live_close, FALSE); gtk_tooltips_set_tip (tooltips, button_live_close, _("Return / Space"), NULL); table2 = gtk_table_new (2, 2, FALSE); gtk_widget_show (table2); gtk_box_pack_end (GTK_BOX (hbox48), table2, FALSE, TRUE, 0); gtk_table_set_row_spacings (GTK_TABLE (table2), 1); gtk_table_set_col_spacings (GTK_TABLE (table2), 3); spinbutton_speed_adj = gtk_adjustment_new (0, 0, 30, 1, 10, 0); spinbutton_speed = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_speed_adj), 1, 0); gtk_widget_show (spinbutton_speed); gtk_table_attach (GTK_TABLE (table2), spinbutton_speed, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spinbutton_speed, _("Change live game speed. The higher the value the faster the live game."), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_speed), TRUE); label112 = gtk_label_new (_("Speed")); gtk_widget_show (label112); gtk_table_attach (GTK_TABLE (table2), label112, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label112), GTK_JUSTIFY_RIGHT); label113 = gtk_label_new (_("Verbosity")); gtk_widget_show (label113); gtk_table_attach (GTK_TABLE (table2), label113, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); spinbutton_verbosity_adj = gtk_adjustment_new (1, 1, 7, 1, 10, 0); spinbutton_verbosity = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_verbosity_adj), 1, 0); gtk_widget_show (spinbutton_verbosity); gtk_table_attach (GTK_TABLE (table2), spinbutton_verbosity, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spinbutton_verbosity, _("Change commentary verbosity. The higher this value the more events you can see."), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_verbosity), TRUE); vseparator1 = gtk_vseparator_new (); gtk_widget_show (vseparator1); gtk_box_pack_end (GTK_BOX (hbox48), vseparator1, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator1, 10, 1); eventbox_lg_boost = gtk_event_box_new (); gtk_widget_show (eventbox_lg_boost); gtk_box_pack_end (GTK_BOX (hbox48), eventbox_lg_boost, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, eventbox_lg_boost, _("Right click and left click to change boost state"), NULL); image_lg_boost = create_pixmap (window_live, "boost_off.png"); gtk_widget_show (image_lg_boost); gtk_container_add (GTK_CONTAINER (eventbox_lg_boost), image_lg_boost); eventbox_lg_style = gtk_event_box_new (); gtk_widget_show (eventbox_lg_style); gtk_box_pack_end (GTK_BOX (hbox48), eventbox_lg_style, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, eventbox_lg_style, _("Right click and left click to change your playing style"), NULL); image_lg_style = create_pixmap (window_live, "style_bal.png"); gtk_widget_show (image_lg_style); gtk_container_add (GTK_CONTAINER (eventbox_lg_style), image_lg_style); g_signal_connect ((gpointer) window_live, "delete_event", G_CALLBACK (on_live_window_delete_event), NULL); g_signal_connect ((gpointer) button_pause, "clicked", G_CALLBACK (on_button_pause_clicked), NULL); g_signal_connect ((gpointer) button_resume, "clicked", G_CALLBACK (on_button_resume_clicked), NULL); g_signal_connect ((gpointer) button_live_close, "clicked", G_CALLBACK (on_button_live_close_clicked), NULL); g_signal_connect ((gpointer) spinbutton_speed, "value_changed", G_CALLBACK (on_spinbutton_speed_value_changed), NULL); g_signal_connect ((gpointer) spinbutton_speed, "button_press_event", G_CALLBACK (on_spinbutton_speed_button_press_event), NULL); g_signal_connect ((gpointer) spinbutton_verbosity, "value_changed", G_CALLBACK (on_spinbutton_verbosity_value_changed), NULL); g_signal_connect ((gpointer) eventbox_lg_boost, "button_press_event", G_CALLBACK (on_eventbox_lg_boost_button_press_event), NULL); g_signal_connect ((gpointer) eventbox_lg_style, "button_press_event", G_CALLBACK (on_eventbox_lg_style_button_press_event), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_live, window_live, "window_live"); GLADE_HOOKUP_OBJECT (window_live, vbox36, "vbox36"); GLADE_HOOKUP_OBJECT (window_live, progressbar_live, "progressbar_live"); GLADE_HOOKUP_OBJECT (window_live, hbox50, "hbox50"); GLADE_HOOKUP_OBJECT (window_live, vbox38, "vbox38"); GLADE_HOOKUP_OBJECT (window_live, hbox57, "hbox57"); GLADE_HOOKUP_OBJECT (window_live, eventbox_poss0, "eventbox_poss0"); GLADE_HOOKUP_OBJECT (window_live, label78, "label78"); GLADE_HOOKUP_OBJECT (window_live, scrolledwindow8, "scrolledwindow8"); GLADE_HOOKUP_OBJECT (window_live, treeview_result, "treeview_result"); GLADE_HOOKUP_OBJECT (window_live, eventbox_poss1, "eventbox_poss1"); GLADE_HOOKUP_OBJECT (window_live, label79, "label79"); GLADE_HOOKUP_OBJECT (window_live, hscale_area, "hscale_area"); GLADE_HOOKUP_OBJECT (window_live, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (window_live, scrolledwindow9, "scrolledwindow9"); GLADE_HOOKUP_OBJECT (window_live, treeview_commentary, "treeview_commentary"); GLADE_HOOKUP_OBJECT (window_live, label80, "label80"); GLADE_HOOKUP_OBJECT (window_live, scrolledwindow11, "scrolledwindow11"); GLADE_HOOKUP_OBJECT (window_live, treeview_stats, "treeview_stats"); GLADE_HOOKUP_OBJECT (window_live, label81, "label81"); GLADE_HOOKUP_OBJECT (window_live, scrolledwindow13, "scrolledwindow13"); GLADE_HOOKUP_OBJECT (window_live, viewport1, "viewport1"); GLADE_HOOKUP_OBJECT (window_live, vbox49, "vbox49"); GLADE_HOOKUP_OBJECT (window_live, hbox75, "hbox75"); GLADE_HOOKUP_OBJECT (window_live, image_lg_opp_style, "image_lg_opp_style"); GLADE_HOOKUP_OBJECT (window_live, image_lg_opp_boost, "image_lg_opp_boost"); GLADE_HOOKUP_OBJECT (window_live, label_lg_formation, "label_lg_formation"); GLADE_HOOKUP_OBJECT (window_live, hbox76, "hbox76"); GLADE_HOOKUP_OBJECT (window_live, label120, "label120"); GLADE_HOOKUP_OBJECT (window_live, label_lg_avskill, "label_lg_avskill"); GLADE_HOOKUP_OBJECT (window_live, treeview_lg_opponent, "treeview_lg_opponent"); GLADE_HOOKUP_OBJECT (window_live, label118, "label118"); GLADE_HOOKUP_OBJECT (window_live, hbox48, "hbox48"); GLADE_HOOKUP_OBJECT (window_live, button_pause, "button_pause"); GLADE_HOOKUP_OBJECT (window_live, alignment16, "alignment16"); GLADE_HOOKUP_OBJECT (window_live, hbox51, "hbox51"); GLADE_HOOKUP_OBJECT (window_live, image56, "image56"); GLADE_HOOKUP_OBJECT (window_live, label72, "label72"); GLADE_HOOKUP_OBJECT (window_live, button_resume, "button_resume"); GLADE_HOOKUP_OBJECT (window_live, alignment17, "alignment17"); GLADE_HOOKUP_OBJECT (window_live, hbox52, "hbox52"); GLADE_HOOKUP_OBJECT (window_live, image57, "image57"); GLADE_HOOKUP_OBJECT (window_live, label73, "label73"); GLADE_HOOKUP_OBJECT (window_live, button_live_close, "button_live_close"); GLADE_HOOKUP_OBJECT (window_live, table2, "table2"); GLADE_HOOKUP_OBJECT (window_live, spinbutton_speed, "spinbutton_speed"); GLADE_HOOKUP_OBJECT (window_live, label112, "label112"); GLADE_HOOKUP_OBJECT (window_live, label113, "label113"); GLADE_HOOKUP_OBJECT (window_live, spinbutton_verbosity, "spinbutton_verbosity"); GLADE_HOOKUP_OBJECT (window_live, vseparator1, "vseparator1"); GLADE_HOOKUP_OBJECT (window_live, eventbox_lg_boost, "eventbox_lg_boost"); GLADE_HOOKUP_OBJECT (window_live, image_lg_boost, "image_lg_boost"); GLADE_HOOKUP_OBJECT (window_live, eventbox_lg_style, "eventbox_lg_style"); GLADE_HOOKUP_OBJECT (window_live, image_lg_style, "image_lg_style"); GLADE_HOOKUP_OBJECT_NO_REF (window_live, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_live), accel_group); return window_live; } GtkWidget* create_window_stadium (void) { GtkWidget *window_stadium; GtkWidget *vbox39; GtkWidget *label_stadium_name; GtkWidget *table1; GtkWidget *hbox69; GtkWidget *label_capacity; GtkWidget *label102; GtkWidget *label_average_attendance; GtkWidget *progressbar_average_attendance; GtkWidget *label106; GtkWidget *label_stadium_status; GtkWidget *label101; GtkWidget *progressbar_safety; GtkWidget *label103; GtkWidget *label109; GtkWidget *label111; GtkWidget *hseparator17; GtkWidget *table3; GtkObject *spin_ticket_price_adj; GtkWidget *spin_ticket_price; GtkWidget *label124; GtkWidget *label123; GtkWidget *hseparator14; GtkWidget *vbox43; GtkWidget *label90; GtkWidget *hbox61; GtkWidget *vbox44; GtkWidget *label91; GtkObject *spinbutton_capacity_adj; GtkWidget *spinbutton_capacity; GtkWidget *vbox46; GtkWidget *label93; GtkWidget *label_costs_capacity; GtkWidget *label95; GtkWidget *label_duration_capacity; GtkWidget *vbox45; GtkWidget *label92; GtkObject *spinbutton_safety_adj; GtkWidget *spinbutton_safety; GtkWidget *vbox47; GtkWidget *label94; GtkWidget *label_costs_safety; GtkWidget *label96; GtkWidget *label_duration_safety; GtkWidget *hseparator15; GtkWidget *button_stadium_ok; GtkWidget *alignment20; GtkWidget *hbox67; GtkWidget *image60; GtkWidget *label107; GtkWidget *button_stadium_cancel; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_stadium = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_stadium), 5); gtk_window_set_position (GTK_WINDOW (window_stadium), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_stadium), TRUE); vbox39 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox39); gtk_container_add (GTK_CONTAINER (window_stadium), vbox39); label_stadium_name = gtk_label_new (""); gtk_widget_show (label_stadium_name); gtk_box_pack_start (GTK_BOX (vbox39), label_stadium_name, FALSE, FALSE, 0); table1 = gtk_table_new (5, 2, TRUE); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox39), table1, FALSE, FALSE, 0); hbox69 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox69); gtk_table_attach (GTK_TABLE (table1), hbox69, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label_capacity = gtk_label_new (""); gtk_widget_show (label_capacity); gtk_box_pack_start (GTK_BOX (hbox69), label_capacity, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label_capacity), 0, 0.5); label102 = gtk_label_new (_(" seats")); gtk_widget_show (label102); gtk_box_pack_start (GTK_BOX (hbox69), label102, FALSE, FALSE, 0); label_average_attendance = gtk_label_new (""); gtk_widget_show (label_average_attendance); gtk_table_attach (GTK_TABLE (table1), label_average_attendance, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_average_attendance), 0, 0.5); progressbar_average_attendance = gtk_progress_bar_new (); gtk_widget_show (progressbar_average_attendance); gtk_table_attach (GTK_TABLE (table1), progressbar_average_attendance, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label106 = gtk_label_new (_("Status:")); gtk_widget_show (label106); gtk_table_attach (GTK_TABLE (table1), label106, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label106), 0, 0.5); label_stadium_status = gtk_label_new (""); gtk_widget_show (label_stadium_status); gtk_table_attach (GTK_TABLE (table1), label_stadium_status, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_stadium_status), 0, 0.5); label101 = gtk_label_new (_("Current capacity")); gtk_widget_show (label101); gtk_table_attach (GTK_TABLE (table1), label101, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label101), 0, 0.5); progressbar_safety = gtk_progress_bar_new (); gtk_widget_show (progressbar_safety); gtk_table_attach (GTK_TABLE (table1), progressbar_safety, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label103 = gtk_label_new (_("Current safety")); gtk_widget_show (label103); gtk_table_attach (GTK_TABLE (table1), label103, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label103), 0, 0.5); label109 = gtk_label_new (_("Average attendance")); gtk_widget_show (label109); gtk_table_attach (GTK_TABLE (table1), label109, 0, 1, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label109), 0, 0.5); label111 = gtk_label_new (_("Average attendance %")); gtk_widget_show (label111); gtk_table_attach (GTK_TABLE (table1), label111, 0, 1, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label111), 0, 0.5); hseparator17 = gtk_hseparator_new (); gtk_widget_show (hseparator17); gtk_box_pack_start (GTK_BOX (vbox39), hseparator17, FALSE, FALSE, 0); table3 = gtk_table_new (2, 2, TRUE); gtk_widget_show (table3); gtk_box_pack_start (GTK_BOX (vbox39), table3, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table3), 3); gtk_table_set_col_spacings (GTK_TABLE (table3), 3); spin_ticket_price_adj = gtk_adjustment_new (1, 0, 100, 0.10000000149, 10, 0); spin_ticket_price = gtk_spin_button_new (GTK_ADJUSTMENT (spin_ticket_price_adj), 1, 2); gtk_widget_show (spin_ticket_price); gtk_table_attach (GTK_TABLE (table3), spin_ticket_price, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin_ticket_price), TRUE); label124 = gtk_label_new (_("Change ticket price")); gtk_widget_show (label124); gtk_table_attach (GTK_TABLE (table3), label124, 0, 2, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label124), GTK_JUSTIFY_CENTER); gtk_misc_set_alignment (GTK_MISC (label124), 0, 0.5); label123 = gtk_label_new (_("Price per ticket")); gtk_widget_show (label123); gtk_table_attach (GTK_TABLE (table3), label123, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label123), 0, 0); hseparator14 = gtk_hseparator_new (); gtk_widget_show (hseparator14); gtk_box_pack_start (GTK_BOX (vbox39), hseparator14, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator14, 1, 10); vbox43 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox43); gtk_box_pack_start (GTK_BOX (vbox39), vbox43, FALSE, FALSE, 0); label90 = gtk_label_new (_("Increase")); gtk_widget_show (label90); gtk_box_pack_start (GTK_BOX (vbox43), label90, FALSE, FALSE, 0); hbox61 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox61); gtk_box_pack_start (GTK_BOX (vbox43), hbox61, FALSE, FALSE, 0); vbox44 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox44); gtk_box_pack_start (GTK_BOX (hbox61), vbox44, TRUE, TRUE, 0); label91 = gtk_label_new (_("Capacity (seats)")); gtk_widget_show (label91); gtk_box_pack_start (GTK_BOX (vbox44), label91, FALSE, FALSE, 0); spinbutton_capacity_adj = gtk_adjustment_new (0, 0, 10000, 1, 100, 0); spinbutton_capacity = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_capacity_adj), 1, 0); gtk_widget_show (spinbutton_capacity); gtk_box_pack_start (GTK_BOX (vbox44), spinbutton_capacity, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, spinbutton_capacity, _("Right-click to set to 0"), NULL); vbox46 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox46); gtk_box_pack_start (GTK_BOX (vbox44), vbox46, FALSE, FALSE, 0); label93 = gtk_label_new (_("Costs")); gtk_widget_show (label93); gtk_box_pack_start (GTK_BOX (vbox46), label93, FALSE, FALSE, 0); label_costs_capacity = gtk_label_new (_("0")); gtk_widget_show (label_costs_capacity); gtk_box_pack_start (GTK_BOX (vbox46), label_costs_capacity, FALSE, FALSE, 0); label95 = gtk_label_new (_("Expected duration")); gtk_widget_show (label95); gtk_box_pack_start (GTK_BOX (vbox46), label95, FALSE, FALSE, 0); label_duration_capacity = gtk_label_new (_("0")); gtk_widget_show (label_duration_capacity); gtk_box_pack_start (GTK_BOX (vbox46), label_duration_capacity, FALSE, FALSE, 0); vbox45 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox45); gtk_box_pack_start (GTK_BOX (hbox61), vbox45, TRUE, TRUE, 0); label92 = gtk_label_new (_("Safety (%)")); gtk_widget_show (label92); gtk_box_pack_start (GTK_BOX (vbox45), label92, FALSE, FALSE, 0); spinbutton_safety_adj = gtk_adjustment_new (0, 0, 100, 1, 5, 0); spinbutton_safety = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_safety_adj), 1, 0); gtk_widget_show (spinbutton_safety); gtk_box_pack_start (GTK_BOX (vbox45), spinbutton_safety, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, spinbutton_safety, _("Right-click to set to 0"), NULL); vbox47 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox47); gtk_box_pack_start (GTK_BOX (vbox45), vbox47, FALSE, FALSE, 0); label94 = gtk_label_new (_("Costs")); gtk_widget_show (label94); gtk_box_pack_start (GTK_BOX (vbox47), label94, FALSE, FALSE, 0); label_costs_safety = gtk_label_new (_("0")); gtk_widget_show (label_costs_safety); gtk_box_pack_start (GTK_BOX (vbox47), label_costs_safety, FALSE, FALSE, 0); label96 = gtk_label_new (_("Expected duration")); gtk_widget_show (label96); gtk_box_pack_start (GTK_BOX (vbox47), label96, FALSE, FALSE, 0); label_duration_safety = gtk_label_new (_("0")); gtk_widget_show (label_duration_safety); gtk_box_pack_start (GTK_BOX (vbox47), label_duration_safety, FALSE, FALSE, 0); hseparator15 = gtk_hseparator_new (); gtk_widget_show (hseparator15); gtk_box_pack_start (GTK_BOX (vbox39), hseparator15, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator15, 1, 10); button_stadium_ok = gtk_button_new (); gtk_widget_show (button_stadium_ok); gtk_box_pack_start (GTK_BOX (vbox39), button_stadium_ok, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_stadium_ok, _("Return"), NULL); gtk_widget_add_accelerator (button_stadium_ok, "clicked", accel_group, GDK_Return, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); alignment20 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment20); gtk_container_add (GTK_CONTAINER (button_stadium_ok), alignment20); hbox67 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox67); gtk_container_add (GTK_CONTAINER (alignment20), hbox67); image60 = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image60); gtk_box_pack_start (GTK_BOX (hbox67), image60, FALSE, FALSE, 0); label107 = gtk_label_new_with_mnemonic (_("Confirm!")); gtk_widget_show (label107); gtk_box_pack_start (GTK_BOX (hbox67), label107, FALSE, FALSE, 0); button_stadium_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_stadium_cancel); gtk_box_pack_start (GTK_BOX (vbox39), button_stadium_cancel, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_stadium_cancel, _("Esc"), NULL); gtk_widget_add_accelerator (button_stadium_cancel, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_stadium, "delete_event", G_CALLBACK (on_window_stadium_delete_event), NULL); g_signal_connect ((gpointer) spinbutton_capacity, "value_changed", G_CALLBACK (on_spinbutton_capacity_value_changed), NULL); g_signal_connect ((gpointer) spinbutton_capacity, "button_press_event", G_CALLBACK (on_spinbutton_capacity_button_press_event), NULL); g_signal_connect ((gpointer) spinbutton_safety, "value_changed", G_CALLBACK (on_spinbutton_safety_value_changed), NULL); g_signal_connect ((gpointer) spinbutton_safety, "button_press_event", G_CALLBACK (on_spinbutton_capacity_button_press_event), NULL); g_signal_connect ((gpointer) button_stadium_ok, "clicked", G_CALLBACK (on_button_stadium_ok_clicked), NULL); g_signal_connect ((gpointer) button_stadium_cancel, "clicked", G_CALLBACK (on_button_stadium_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_stadium, window_stadium, "window_stadium"); GLADE_HOOKUP_OBJECT (window_stadium, vbox39, "vbox39"); GLADE_HOOKUP_OBJECT (window_stadium, label_stadium_name, "label_stadium_name"); GLADE_HOOKUP_OBJECT (window_stadium, table1, "table1"); GLADE_HOOKUP_OBJECT (window_stadium, hbox69, "hbox69"); GLADE_HOOKUP_OBJECT (window_stadium, label_capacity, "label_capacity"); GLADE_HOOKUP_OBJECT (window_stadium, label102, "label102"); GLADE_HOOKUP_OBJECT (window_stadium, label_average_attendance, "label_average_attendance"); GLADE_HOOKUP_OBJECT (window_stadium, progressbar_average_attendance, "progressbar_average_attendance"); GLADE_HOOKUP_OBJECT (window_stadium, label106, "label106"); GLADE_HOOKUP_OBJECT (window_stadium, label_stadium_status, "label_stadium_status"); GLADE_HOOKUP_OBJECT (window_stadium, label101, "label101"); GLADE_HOOKUP_OBJECT (window_stadium, progressbar_safety, "progressbar_safety"); GLADE_HOOKUP_OBJECT (window_stadium, label103, "label103"); GLADE_HOOKUP_OBJECT (window_stadium, label109, "label109"); GLADE_HOOKUP_OBJECT (window_stadium, label111, "label111"); GLADE_HOOKUP_OBJECT (window_stadium, hseparator17, "hseparator17"); GLADE_HOOKUP_OBJECT (window_stadium, table3, "table3"); GLADE_HOOKUP_OBJECT (window_stadium, spin_ticket_price, "spin_ticket_price"); GLADE_HOOKUP_OBJECT (window_stadium, label124, "label124"); GLADE_HOOKUP_OBJECT (window_stadium, label123, "label123"); GLADE_HOOKUP_OBJECT (window_stadium, hseparator14, "hseparator14"); GLADE_HOOKUP_OBJECT (window_stadium, vbox43, "vbox43"); GLADE_HOOKUP_OBJECT (window_stadium, label90, "label90"); GLADE_HOOKUP_OBJECT (window_stadium, hbox61, "hbox61"); GLADE_HOOKUP_OBJECT (window_stadium, vbox44, "vbox44"); GLADE_HOOKUP_OBJECT (window_stadium, label91, "label91"); GLADE_HOOKUP_OBJECT (window_stadium, spinbutton_capacity, "spinbutton_capacity"); GLADE_HOOKUP_OBJECT (window_stadium, vbox46, "vbox46"); GLADE_HOOKUP_OBJECT (window_stadium, label93, "label93"); GLADE_HOOKUP_OBJECT (window_stadium, label_costs_capacity, "label_costs_capacity"); GLADE_HOOKUP_OBJECT (window_stadium, label95, "label95"); GLADE_HOOKUP_OBJECT (window_stadium, label_duration_capacity, "label_duration_capacity"); GLADE_HOOKUP_OBJECT (window_stadium, vbox45, "vbox45"); GLADE_HOOKUP_OBJECT (window_stadium, label92, "label92"); GLADE_HOOKUP_OBJECT (window_stadium, spinbutton_safety, "spinbutton_safety"); GLADE_HOOKUP_OBJECT (window_stadium, vbox47, "vbox47"); GLADE_HOOKUP_OBJECT (window_stadium, label94, "label94"); GLADE_HOOKUP_OBJECT (window_stadium, label_costs_safety, "label_costs_safety"); GLADE_HOOKUP_OBJECT (window_stadium, label96, "label96"); GLADE_HOOKUP_OBJECT (window_stadium, label_duration_safety, "label_duration_safety"); GLADE_HOOKUP_OBJECT (window_stadium, hseparator15, "hseparator15"); GLADE_HOOKUP_OBJECT (window_stadium, button_stadium_ok, "button_stadium_ok"); GLADE_HOOKUP_OBJECT (window_stadium, alignment20, "alignment20"); GLADE_HOOKUP_OBJECT (window_stadium, hbox67, "hbox67"); GLADE_HOOKUP_OBJECT (window_stadium, image60, "image60"); GLADE_HOOKUP_OBJECT (window_stadium, label107, "label107"); GLADE_HOOKUP_OBJECT (window_stadium, button_stadium_cancel, "button_stadium_cancel"); GLADE_HOOKUP_OBJECT_NO_REF (window_stadium, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_stadium), accel_group); return window_stadium; } GtkWidget* create_window_file_chooser (void) { GtkWidget *window_file_chooser; GtkWidget *dialog_vbox1; GtkWidget *dialog_action_area1; GtkWidget *button1; GtkWidget *button2; window_file_chooser = gtk_file_chooser_dialog_new (_("Choose file"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, NULL,NULL); gtk_container_set_border_width (GTK_CONTAINER (window_file_chooser), 5); g_object_set (window_file_chooser, "show-hidden", TRUE, NULL); gtk_window_set_position (GTK_WINDOW (window_file_chooser), GTK_WIN_POS_CENTER); gtk_window_set_type_hint (GTK_WINDOW (window_file_chooser), GDK_WINDOW_TYPE_HINT_DIALOG); dialog_vbox1 = GTK_DIALOG (window_file_chooser)->vbox; gtk_widget_show (dialog_vbox1); dialog_action_area1 = GTK_DIALOG (window_file_chooser)->action_area; gtk_widget_show (dialog_action_area1); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); button1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button1); gtk_dialog_add_action_widget (GTK_DIALOG (window_file_chooser), button1, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT); button2 = gtk_button_new_from_stock ("gtk-open"); gtk_widget_show (button2); gtk_dialog_add_action_widget (GTK_DIALOG (window_file_chooser), button2, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_file_chooser, window_file_chooser, "window_file_chooser"); GLADE_HOOKUP_OBJECT_NO_REF (window_file_chooser, dialog_vbox1, "dialog_vbox1"); GLADE_HOOKUP_OBJECT_NO_REF (window_file_chooser, dialog_action_area1, "dialog_action_area1"); GLADE_HOOKUP_OBJECT (window_file_chooser, button1, "button1"); GLADE_HOOKUP_OBJECT (window_file_chooser, button2, "button2"); gtk_widget_grab_default (button2); return window_file_chooser; } GtkWidget* create_window_sponsors (void) { GtkWidget *window_sponsors; GtkWidget *vbox48; GtkWidget *label_sponsors; GtkWidget *scrolledwindow12; GtkWidget *treeview_sponsors; GtkWidget *hbox71; GtkWidget *button_sponsors; GtkWidget *alignment23; GtkWidget *hbox73; GtkWidget *image63; GtkWidget *label117; GtkWidget *button_sponsors_wait; GtkWidget *alignment22; GtkWidget *hbox72; GtkWidget *image62; GtkWidget *label116; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); window_sponsors = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_sponsors), 5); gtk_window_set_position (GTK_WINDOW (window_sponsors), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_sponsors), TRUE); gtk_window_set_default_size (GTK_WINDOW (window_sponsors), 450, 350); vbox48 = gtk_vbox_new (FALSE, 3); gtk_widget_show (vbox48); gtk_container_add (GTK_CONTAINER (window_sponsors), vbox48); label_sponsors = gtk_label_new (_("There are a few companies interested in sponsoring your team. Please select one:")); gtk_widget_show (label_sponsors); gtk_box_pack_start (GTK_BOX (vbox48), label_sponsors, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_sponsors), TRUE); scrolledwindow12 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow12); gtk_box_pack_start (GTK_BOX (vbox48), scrolledwindow12, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow12), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow12), GTK_SHADOW_IN); treeview_sponsors = gtk_tree_view_new (); gtk_widget_show (treeview_sponsors); gtk_container_add (GTK_CONTAINER (scrolledwindow12), treeview_sponsors); hbox71 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox71); gtk_box_pack_start (GTK_BOX (vbox48), hbox71, FALSE, FALSE, 0); button_sponsors = gtk_button_new (); gtk_widget_show (button_sponsors); gtk_box_pack_start (GTK_BOX (hbox71), button_sponsors, TRUE, TRUE, 0); alignment23 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment23); gtk_container_add (GTK_CONTAINER (button_sponsors), alignment23); hbox73 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox73); gtk_container_add (GTK_CONTAINER (alignment23), hbox73); image63 = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image63); gtk_box_pack_start (GTK_BOX (hbox73), image63, FALSE, FALSE, 0); label117 = gtk_label_new_with_mnemonic (_("Accept")); gtk_widget_show (label117); gtk_box_pack_start (GTK_BOX (hbox73), label117, FALSE, FALSE, 0); button_sponsors_wait = gtk_button_new (); gtk_widget_show (button_sponsors_wait); gtk_box_pack_start (GTK_BOX (hbox71), button_sponsors_wait, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_sponsors_wait, _("If you don't like any of the sponsors, you can go a few weeks without sponsor and wait for new offers."), NULL); alignment22 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment22); gtk_container_add (GTK_CONTAINER (button_sponsors_wait), alignment22); hbox72 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox72); gtk_container_add (GTK_CONTAINER (alignment22), hbox72); image62 = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image62); gtk_box_pack_start (GTK_BOX (hbox72), image62, FALSE, FALSE, 0); label116 = gtk_label_new_with_mnemonic (_("Reject for now")); gtk_widget_show (label116); gtk_box_pack_start (GTK_BOX (hbox72), label116, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_sponsors, "delete_event", G_CALLBACK (on_window_sponsors_delete_event), NULL); g_signal_connect ((gpointer) treeview_sponsors, "row_activated", G_CALLBACK (on_treeview_sponsors_row_activated), NULL); g_signal_connect ((gpointer) button_sponsors, "clicked", G_CALLBACK (on_button_sponsors_clicked), NULL); g_signal_connect ((gpointer) button_sponsors_wait, "clicked", G_CALLBACK (on_button_sponsors_wait_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_sponsors, window_sponsors, "window_sponsors"); GLADE_HOOKUP_OBJECT (window_sponsors, vbox48, "vbox48"); GLADE_HOOKUP_OBJECT (window_sponsors, label_sponsors, "label_sponsors"); GLADE_HOOKUP_OBJECT (window_sponsors, scrolledwindow12, "scrolledwindow12"); GLADE_HOOKUP_OBJECT (window_sponsors, treeview_sponsors, "treeview_sponsors"); GLADE_HOOKUP_OBJECT (window_sponsors, hbox71, "hbox71"); GLADE_HOOKUP_OBJECT (window_sponsors, button_sponsors, "button_sponsors"); GLADE_HOOKUP_OBJECT (window_sponsors, alignment23, "alignment23"); GLADE_HOOKUP_OBJECT (window_sponsors, hbox73, "hbox73"); GLADE_HOOKUP_OBJECT (window_sponsors, image63, "image63"); GLADE_HOOKUP_OBJECT (window_sponsors, label117, "label117"); GLADE_HOOKUP_OBJECT (window_sponsors, button_sponsors_wait, "button_sponsors_wait"); GLADE_HOOKUP_OBJECT (window_sponsors, alignment22, "alignment22"); GLADE_HOOKUP_OBJECT (window_sponsors, hbox72, "hbox72"); GLADE_HOOKUP_OBJECT (window_sponsors, image62, "image62"); GLADE_HOOKUP_OBJECT (window_sponsors, label116, "label116"); GLADE_HOOKUP_OBJECT_NO_REF (window_sponsors, tooltips, "tooltips"); return window_sponsors; } bygfoot-2.3.2/src/game.c0000644000175000017500000011725311225071373014021 0ustar eliaselias/* game.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "finance.h" #include "fixture.h" #include "game.h" #include "game_gui.h" #include "league.h" #include "live_game.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "table.h" #include "team.h" #include "treeview.h" #include "user.h" #include "variables.h" /** Calculate attacking, defending and goalie values for the two teams of a fixture. @param fix The fixture we calculate. @param team_value The place to store the values. @param home_advantage The home advantage factor. @see #GameTeamValue */ void game_get_values(const Fixture *fix, gfloat team_values[][GAME_TEAM_VALUE_END], gfloat home_advantage) { #ifdef DEBUG printf("game_get_values\n"); #endif gint i, j; Team *tm[2] = {fix->teams[0], fix->teams[1]}; gfloat style_factor; for(i=0;i<2;i++) { for(j=0;jstyle * const_float("float_game_style_factor"); team_values[i][GAME_TEAM_VALUE_GOALIE] = player_get_game_skill(player_of_idx_team(tm[i], 0), FALSE, TRUE) * (1 + home_advantage * (i == 0)); for(j=1;j<11;j++) if(player_of_idx_team(tm[i], j)->cskill > 0) { team_values[i][GAME_TEAM_VALUE_ATTACK] += game_get_player_contribution(player_of_idx_team(tm[i], j), GAME_TEAM_VALUE_ATTACK, TRUE); team_values[i][GAME_TEAM_VALUE_MIDFIELD] += game_get_player_contribution(player_of_idx_team(tm[i], j), GAME_TEAM_VALUE_MIDFIELD, TRUE); team_values[i][GAME_TEAM_VALUE_DEFEND] += game_get_player_contribution(player_of_idx_team(tm[i], j), GAME_TEAM_VALUE_DEFEND, TRUE); } for(j=GAME_TEAM_VALUE_DEFEND;jcpos - 1][type - GAME_TEAM_VALUE_DEFEND]; } /** Return a random attacking or defending player or the player that has to shoot the number_of_penalty'th penalty. @param tm The team we examine. @param player_type Whether we concentrate on attacking or defending players or would like to have a penalty shooting player. @param last_penalty The player that shot the last penalty. @param not_this_one A player to exclude. @param skills Whether to weight with skills, too. @return A player index. */ gint game_get_player(const Team *tm, gint player_type, gint last_penalty, gint not_this_one, gboolean skills) { #ifdef DEBUG printf("game_get_player\n"); #endif gint i, player = not_this_one; gfloat weights[3]; gfloat probs[10]; gfloat rndom; if(player_type == GAME_PLAYER_TYPE_ATTACK) { weights[0] = const_float("float_game_player_weight_attack_def"); weights[1] = const_float("float_game_player_weight_attack_mid"); weights[2] = const_float("float_game_player_weight_attack_fwd"); } else if(player_type == GAME_PLAYER_TYPE_MIDFIELD) { weights[0] = const_float("float_game_player_weight_midfield_def"); weights[1] = const_float("float_game_player_weight_midfield_mid"); weights[2] = const_float("float_game_player_weight_midfield_fwd"); } else if(player_type == GAME_PLAYER_TYPE_DEFEND) { weights[0] = const_float("float_game_player_weight_defend_def"); weights[1] = const_float("float_game_player_weight_defend_mid"); weights[2] = const_float("float_game_player_weight_defend_fwd"); } else if(player_type == GAME_PLAYER_TYPE_PENALTY) return game_get_penalty_taker(tm, last_penalty); else main_exit_program(EXIT_INT_NOT_FOUND, "game_get_player: unknown player type %d\n", player_type); game_get_player_probs(tm->players, probs, weights, skills); if(probs[9] > 0) { while(player == not_this_one) { rndom = math_rnd(0, probs[9]); if(rndom < probs[0]) player = player_of_idx_team(tm, 1)->id; else for(i=1;i<10;i++) if(rndom < probs[i] && rndom > probs[i - 1]) player = player_of_idx_team(tm, i + 1)->id; } } else { debug_print_message("game_get_player: All players injured or banned, apparently.\n"); g_print("%s %s player list:\n", league_cup_get_name_string(tm->clid), tm->name); for(i=0;iplayers->len;i++) { if(i < 10) g_print("prob %.3f ", probs[i]); g_print("%d %20s health %d cskill %.2f\n", i, player_of_idx_team(tm, i)->name, player_of_idx_team(tm, i)->health, player_of_idx_team(tm, i)->cskill); } main_exit_program(EXIT_INT_NOT_FOUND, NULL); return -1; } return player; } /** Write the probabilities for field players being picked (e.g. a random defender, or a player who gets injured) into the float array. Depends on skill mostly. @param players Player array. @param probs Array with probabilities that gets filled. @param weights How to weight the players depending on their position. @param skills Whether to weight with skills, too. */ void game_get_player_probs(GArray *players, gfloat *probs, gfloat *weights, gboolean skills) { #ifdef DEBUG printf("game_get_player_probs\n"); #endif gint i; probs[0] = (skills) ? player_get_game_skill(&g_array_index(players, Player, 1), FALSE, TRUE) * weights[g_array_index(players, Player, 1).cpos - 1] : weights[g_array_index(players, Player, 1).cpos - 1] * (g_array_index(players, Player, 1).cskill != 0); probs[0] *= (1 + (gfloat)g_array_index(players, Player, 1).streak * const_float("float_player_streak_influence_skill")); for(i=1;i<10;i++) { probs[i] = probs[i - 1] + ((skills) ? player_get_game_skill(&g_array_index(players, Player, i + 1), FALSE, TRUE) * weights[g_array_index(players, Player, i + 1).cpos - 1] : weights[g_array_index(players, Player, i + 1).cpos - 1] * (g_array_index(players, Player, i + 1).cskill != 0)); probs[i] *= (1 + (gfloat)g_array_index(players, Player, i + 1).streak * const_float("float_player_streak_influence_skill")); } } /** Return the player who's shooting the following penalty (at penalty shoot-out). @param tm The team that has the penalty. @param last_penalty The player that shot the last penalty. @return A player id. */ gint game_get_penalty_taker(const Team *tm, gint last_penalty) { #ifdef DEBUG printf("game_get_penalty_taker\n"); #endif gint i, return_value = -1; GPtrArray *players = g_ptr_array_new(); for(i=0;i<11;i++) if(player_of_idx_team(tm, i)->cskill != 0) g_ptr_array_add(players, player_of_idx_team(tm, i)); g_ptr_array_sort_with_data(players, (GCompareDataFunc)player_compare_func, GINT_TO_POINTER(PLAYER_COMPARE_ATTRIBUTE_GAME_SKILL)); if(last_penalty == -1 || last_penalty == ((Player*)g_ptr_array_index(players, players->len - 1))->id) return_value = ((Player*)g_ptr_array_index(players, 0))->id; for(i=0;ilen - 1;i++) if(last_penalty == ((Player*)g_ptr_array_index(players, i))->id) { return_value = ((Player*)g_ptr_array_index(players, i + 1))->id; break; } g_ptr_array_free(players, TRUE); return return_value; } /** Do some things that have to be done at the beginning of a game, e.g. calculate attendance etc. @param fix The fixture we examine. */ void game_initialize(Fixture *fix) { #ifdef DEBUG printf("game_initialize\n"); #endif gint i, j; gint user_idx[2] = {team_is_user(fix->teams[0]), team_is_user(fix->teams[1])}; if(fix->home_advantage) game_assign_attendance(fix); else game_assign_attendance_neutral(fix); if(!sett_int("int_opt_disable_finances")) finance_assign_game_money(fix); for(i=0;i<2;i++) { for(j=0;jteams[i]->players->len;j++) { if(j < 11) { if(g_array_index(fix->teams[i]->players, Player, j).cskill > 0) { player_games_goals_set(&g_array_index(fix->teams[i]->players, Player, j), fix->clid, PLAYER_VALUE_GAMES, 1); g_array_index(fix->teams[i]->players, Player, j). career[PLAYER_VALUE_GAMES]++; g_array_index(fix->teams[i]->players, Player, j). participation = TRUE; if(query_player_is_youth((&g_array_index(fix->teams[i]->players, Player, j)))) g_array_index(fix->teams[i]->players, Player, j).lsu += const_float("float_youth_lsu_addition_match"); player_streak_add_to_prob( &g_array_index(fix->teams[i]->players, Player, j), const_float("float_player_streak_add_startup")); } } else player_streak_add_to_prob( &g_array_index(fix->teams[i]->players, Player, j), const_float("float_player_streak_add_no_startup")); } if(user_idx[i] != -1) { usr(user_idx[i]).counters[COUNT_USER_SHOW_RES] = 1; } } } /** Find out how many spectators there were, depending on safety of the stadium etc. @param fix The match we examine. */ void game_assign_attendance(Fixture *fix) { #ifdef DEBUG printf("game_assign_attendance\n"); #endif Team *tm[2] = {fix->teams[0], fix->teams[1]}; gfloat factor = math_rnd(const_float("float_game_stadium_attendance_percentage_lower"), const_float("float_game_stadium_attendance_percentage_upper")) * powf(tm[0]->stadium.safety, const_float("float_game_stadium_attendance_safety_exponent")); gint max_att = MIN((gint)rint((gfloat)league_cup_average_capacity(tm[0]->clid) * const_float("float_game_stadium_attendance_average_exceed_factor") * math_rnd(0.9, 1.1)), tm[0]->stadium.capacity); if(fix->clid < ID_CUP_START && team_get_league_rank(tm[1], fix->clid) < (gint)rint((gfloat)league_from_clid(fix->clid)->teams->len * const_float("float_game_stadium_attendance_rank_percentage"))) factor *= const_float("float_game_stadium_attendance_rank_factor"); if(fix->clid >= ID_CUP_START) { if(cup_from_clid(fix->clid)->rounds->len - fix->round <= const_int("int_game_stadium_attendance_cup_rounds_full_house")) factor = 1; else if(query_league_cup_has_property(fix->clid, "national")) factor *= const_float("float_game_stadium_attendance_cup_national_factor"); else factor *= const_float("float_game_stadium_attendance_cup_international_factor"); } /* calculate the differnce in ticket prices has on attendance */ gfloat delta_price = tm[0]->stadium.ticket_price - const_int("int_team_stadium_ticket_price"); gfloat price_factor = math_gauss_dist(0.92, 1.08) * 1/(1+const_float("float_team_stadium_price_attendance_factor")*delta_price); factor = MIN(factor * price_factor, 1); fix->attendance = MIN(MIN((gint)rint((gfloat)tm[0]->stadium.capacity * factor), max_att * factor), max_att); tm[0]->stadium.average_attendance = (gint)rint((gfloat)(tm[0]->stadium.average_attendance * tm[0]->stadium.games + fix->attendance) / (gfloat)(tm[0]->stadium.games + 1)); tm[0]->stadium.possible_attendance += tm[0]->stadium.capacity; tm[0]->stadium.games++; } /** Assign attendance for a match on neutral ground. */ void game_assign_attendance_neutral(Fixture *fix) { #ifdef DEBUG printf("game_assign_attendance_neutral\n"); #endif const GPtrArray *teamsp = (GPtrArray*)league_cup_get_teams(fix->clid); gfloat av_att = (fix->clid >= ID_CUP_START && query_league_cup_has_property(fix->clid, "international") && teamsp->len > 0) ? (gfloat)league_cup_average_capacity(fix->clid) : (gfloat)league_cup_average_capacity(lig(0).id); fix->attendance = (gint)rint(av_att * math_rnd(const_float("float_game_stadium_attendance_neutral_lower"), const_float("float_game_stadium_attendance_neutral_upper"))); } /** Save the team states in the current live game when a pause occurs. */ void game_save_team_states(void) { #ifdef DEBUG printf("game_save_team_states\n"); #endif gint i, j; const Team *teams[2] = {usr(stat2).live_game.fix->teams[0], usr(stat2).live_game.fix->teams[1]}; for(i=0;i<2;i++) { usr(stat2).live_game.team_state[i].structure = teams[i]->structure; usr(stat2).live_game.team_state[i].style = teams[i]->style; usr(stat2).live_game.team_state[i].boost = teams[i]->boost; for(j=0;j<11;j++) usr(stat2).live_game.team_state[i].player_ids[j] = player_of_idx_team(teams[i], j)->id; } } /** Check whether the number of substitutions during a live game pause isn't too high. @return TRUE if the subs were ok, FALSE else. */ gboolean game_check_live_game_resume_state(void) { #ifdef DEBUG printf("game_check_live_game_resume_state\n"); #endif gint i, j; gint subs[2] = {0, 0}; const Team *teams[2] = {usr(stat2).live_game.fix->teams[0], usr(stat2).live_game.fix->teams[1]}; gboolean return_value = TRUE; for(i=0;i<2;i++) { for(j=0;j<11;j++) if(!query_integer_is_in_array(player_of_idx_team(teams[i], j)->id, usr(stat2).live_game.team_state[i].player_ids, 11)) subs[i]++; if(subs[i] > usr(stat2).live_game.subs_left[i]) { game_reset_players(i); return_value = FALSE; } } return return_value; } /** Undo the player swaps the user made during a live game pause. @param idx The team index in the current live game fixture. */ void game_reset_players(gint idx) { #ifdef DEBUG printf("game_reset_players\n"); #endif gint i; Team *tm = usr(stat2).live_game.fix->teams[idx]; GArray *players = g_array_new(FALSE, FALSE, sizeof(Player)); for(i=0;i<11;i++) g_array_append_val(players, *player_of_id_team(tm, usr(stat2).live_game.team_state[idx].player_ids[i])); for(i=0;iplayers->len;i++) if(!query_integer_is_in_array(player_of_idx_team(tm, i)->id, usr(stat2).live_game.team_state[idx].player_ids, 11)) g_array_append_val(players, *player_of_idx_team(tm, i)); g_array_free(tm->players, TRUE); tm->players = players; team_change_structure(tm, team_find_appropriate_structure(tm)); team_rearrange(tm); treeview_show_user_player_list(); } /** Find pairs of substituted players after a live game pause. */ void game_get_subs(gint team_number, gint *subs_in, gint *subs_out) { #ifdef DEBUG printf("game_get_subs\n"); #endif gint i, cnt = 0; const Team *tm = usr(stat2).live_game.fix->teams[team_number]; gint current_players[11]; for(i=0;i<3;i++) subs_in[i] = subs_out[i] = -1; for(i=0;i<11;i++) { current_players[i] = player_of_idx_team(tm, i)->id; if(!query_integer_is_in_array(player_of_idx_team(tm, i)->id, usr(stat2).live_game.team_state[team_number].player_ids, 11)) { subs_in[cnt] = player_of_idx_team(tm, i)->id; cnt++; } } cnt = 0; for(i=0;i<11;i++) if(!query_integer_is_in_array(usr(stat2).live_game.team_state[team_number].player_ids[i], current_players, 11)) { subs_out[cnt] = usr(stat2).live_game.team_state[team_number].player_ids[i]; cnt++; } } /** Choose an injury for a player and adjust health values. @param pl The player that gets injured. */ void game_player_injury(Player *pl) { #ifdef DEBUG printf("game_player_injury\n"); #endif gint i; gfloat rndom; /* probabilities of different injuries */ gfloat injury_probs[13]={0, const_float("float_player_injury_concussion"), const_float("float_player_injury_pulled_muscle"), const_float("float_player_injury_hamstring"), const_float("float_player_injury_groin"), const_float("float_player_injury_frac_ankle"), const_float("float_player_injury_rib"), const_float("float_player_injury_leg"), const_float("float_player_injury_brok_ankle"), const_float("float_player_injury_arm"), const_float("float_player_injury_shoulder"), const_float("float_player_injury_ligament"), const_float("float_player_injury_career_stop")}; gint duration[12]={ math_gauss_disti(const_int("int_player_injury_duration_concussion") - const_int("int_player_injury_duration_dev_concussion"), const_int("int_player_injury_duration_concussion") + const_int("int_player_injury_duration_dev_concussion")), math_gauss_disti(const_int("int_player_injury_duration_pulled_muscle") - const_int("int_player_injury_duration_dev_pulled_muscle"), const_int("int_player_injury_duration_pulled_muscle") + const_int("int_player_injury_duration_dev_pulled_muscle")), math_gauss_disti(const_int("int_player_injury_duration_hamstring") - const_int("int_player_injury_duration_dev_hamstring"), const_int("int_player_injury_duration_hamstring") + const_int("int_player_injury_duration_dev_hamstring")), math_gauss_disti(const_int("int_player_injury_duration_groin") - const_int("int_player_injury_duration_dev_groin"), const_int("int_player_injury_duration_groin") + const_int("int_player_injury_duration_dev_groin")), math_gauss_disti(const_int("int_player_injury_duration_frac_ankle") - const_int("int_player_injury_duration_dev_frac_ankle"), const_int("int_player_injury_duration_frac_ankle") + const_int("int_player_injury_duration_dev_frac_ankle")), math_gauss_disti(const_int("int_player_injury_duration_rib") - const_int("int_player_injury_duration_dev_rib"), const_int("int_player_injury_duration_rib") + const_int("int_player_injury_duration_dev_rib")), math_gauss_disti(const_int("int_player_injury_duration_leg") - const_int("int_player_injury_duration_dev_leg"), const_int("int_player_injury_duration_leg") + const_int("int_player_injury_duration_dev_leg")), math_gauss_disti(const_int("int_player_injury_duration_brok_ankle") - const_int("int_player_injury_duration_dev_brok_ankle"), const_int("int_player_injury_duration_brok_ankle") + const_int("int_player_injury_duration_dev_brok_ankle")), math_gauss_disti(const_int("int_player_injury_duration_arm") - const_int("int_player_injury_duration_dev_arm"), const_int("int_player_injury_duration_arm") + const_int("int_player_injury_duration_dev_arm")), math_gauss_disti(const_int("int_player_injury_duration_shoulder") - const_int("int_player_injury_duration_dev_shoulder"), const_int("int_player_injury_duration_shoulder") + const_int("int_player_injury_duration_dev_shoulder")), math_gauss_disti(const_int("int_player_injury_duration_ligament") - const_int("int_player_injury_duration_dev_ligament"), const_int("int_player_injury_duration_ligament") + const_int("int_player_injury_duration_dev_ligament")), 50}; for(i=1;i<13;i++) injury_probs[i] += injury_probs[i - 1]; rndom = math_rnd(0, 1); for(i=1;i<13;i++) if(rndom >= injury_probs[i - 1] && rndom < injury_probs[i]) { pl->health = i; pl->recovery = duration[i - 1] + 1; pl->cskill = pl->fitness = 0; } if(pl->health == PLAYER_INJURY_CAREER_STOP && team_is_user(pl->team) != -1) user_event_add(&usr(team_is_user(pl->team)), EVENT_TYPE_PLAYER_CAREER_STOP, pl->id, -1, NULL, NULL); player_streak_add_to_prob( pl, const_float("float_player_streak_add_injury")); if(pl->streak == PLAYER_STREAK_HOT) { pl->streak = PLAYER_STREAK_NONE; player_streak_reset_count(pl); } } /** Calculate the probability of a foul event occurring. */ gfloat game_get_foul_prob(const LiveGame *live_game, const LiveGameUnit *unit) { gfloat prob; gint i; /* Base probability (a linear function of match time). */ prob = const_float("float_live_game_foul_base") + const_float("float_live_game_foul_max_inc") * MIN(1, (gfloat)(unit->minute) / 90); /* Add possible boost influence of the team not in possession. */ prob *= (1 + live_game->fix->teams[!unit->possession]->boost * const_float("float_team_boost_foul_factor")); /* Reduce probability depending on the current cards of the team not in possession, except if their boost is on. */ if(live_game->fix->teams[!unit->possession]->boost != 1) { for(i = 0; i < 11; i++) if(g_array_index(live_game->fix->teams[!unit->possession]->players, Player, i).card_status == PLAYER_CARD_STATUS_YELLOW) prob *= (1 - const_float("float_live_game_foul_prob_reduction_yellow")); else if(g_array_index(live_game->fix->teams[!unit->possession]->players, Player, i).card_status == PLAYER_CARD_STATUS_RED) prob *= (1 - const_float("float_live_game_foul_prob_reduction_red")); } return prob; } /** Return a factor influencing who's fouled whom depending on the states of the team boosts. @param boost1 Boost of the team in possession. @param boost2 Boost of the team not in possession. @return A factor. */ gfloat game_get_foul_possession_factor(gint boost1, gint boost2) { #ifdef DEBUG printf("game_get_foul_possession_factor\n"); #endif if(boost1 == boost2) return 1; if(abs(boost1 - boost2) == 1) return 1 + const_float("float_team_boost_foul_by_possession_factor1") * (1 - 2 * (boost1 < boost2)); return 1 + const_float("float_team_boost_foul_by_possession_factor2") * (1 - 2 * (boost1 < boost2)); } /** Substitute a player during a match. @param tm The team we work on. @param player_number The index of the player. */ gint game_substitute_player(Team *tm, gint player_number) { #ifdef DEBUG printf("game_substitute_player\n"); #endif gint i, substitute = -1; GPtrArray *substitutes = g_ptr_array_new(); gboolean adapt_structure; for(i=11;iplayers->len;i++) if(g_array_index(tm->players, Player, i).cskill > 0) g_ptr_array_add(substitutes, &g_array_index(tm->players, Player, i)); if(substitutes->len == 0) { g_ptr_array_free(substitutes, TRUE); debug_print_message("game_substitute_player: no suitable substitutes found (all injured/banned?)"); return -1; } g_ptr_array_sort_with_data(substitutes, (GCompareDataFunc)player_compare_substitute_func, GINT_TO_POINTER(player_of_idx_team(tm, player_number)->cpos)); adapt_structure = (math_get_place(team_find_appropriate_structure(tm), 1) + math_get_place(team_find_appropriate_structure(tm), 2) + math_get_place(team_find_appropriate_structure(tm), 3) != 10 || (player_of_idx_team(tm, player_number)->cpos != ((Player*)g_ptr_array_index(substitutes, 0))->pos && player_substitution_good_structure(tm->structure, player_of_idx_team(tm, player_number)->cpos, ((Player*)g_ptr_array_index(substitutes, 0))->pos))); substitute = ((Player*)g_ptr_array_index(substitutes, 0))->id; player_swap(tm, player_number, tm, player_id_index(tm, substitute)); g_ptr_array_free(substitutes, TRUE); if(adapt_structure) { team_change_structure(tm, team_find_appropriate_structure(tm)); team_rearrange(tm); } if(team_is_user(tm) == cur_user) { game_gui_write_av_skills(NULL); selected_row = -1; treeview_show_user_player_list(); } return substitute; } /** Find out whether we substitute a player to balance a team after a red card. @param clid The cup/league id of the fixture. @param tm The team. @return A player index or -1 if we don't substitute. */ gint game_find_to_substitute(gint clid, const Team *tm) { #ifdef DEBUG printf("game_find_to_substitute\n"); #endif gint i; gint position_to_substitute = -1; GPtrArray *players = g_ptr_array_new(); gint return_value = -1; gint current_structure = team_find_appropriate_structure(tm); gint num_forw = current_structure % 10, num_mid = math_get_place(current_structure, 2), num_def = math_get_place(current_structure, 3); for(i=0;i<11;i++) if(player_is_banned(player_of_idx_team(tm, i)) <= 0) g_ptr_array_add(players, player_of_idx_team(tm, i)); g_ptr_array_sort_with_data(players, (GCompareDataFunc)player_compare_func, GINT_TO_POINTER(PLAYER_COMPARE_ATTRIBUTE_GAME_SKILL)); if(num_forw > 1 || MAX(num_mid, num_def) <= 2) position_to_substitute = PLAYER_POS_FORWARD; else if(ABS(num_def - num_mid) > 1 || (num_forw == 0 && MAX(num_mid, num_def) > 2)) position_to_substitute = (num_def > num_mid) ? PLAYER_POS_DEFENDER : PLAYER_POS_MIDFIELDER; else return -1; for(i=players->len - 1; i >= 0; i--) if(((Player*)g_ptr_array_index(players, i))->pos == position_to_substitute) { return_value = ((Player*)g_ptr_array_index(players, i))->id; g_ptr_array_free(players, TRUE); return return_value; } g_ptr_array_free(players, TRUE); return -1; } /** Find out how long a player is banned. */ gint game_player_get_ban_duration(void) { #ifdef DEBUG printf("game_player_get_ban_duration\n"); #endif gint i; gfloat rndom; gfloat duration_probs[6] = {0, const_float("float_live_game_ban_1"), const_float("float_live_game_ban_2"), const_float("float_live_game_ban_3"), const_float("float_live_game_ban_4"), const_float("float_live_game_ban_5")}; for(i=1;i<6;i++) duration_probs[i] += duration_probs[i - 1]; rndom = math_rnd(0, 1); for(i=1;i<6;i++) if(duration_probs[i - 1] < rndom && rndom < duration_probs[i]) return i + 1; return -1; } /** Find out whether we make a sub after a send-off. @param clid The id of the fixture. @param tm The team. @param player The player index. @param to_substitute The return location for the index of the player to substitute. @param substitute The return location for the player who comes into the game. */ void game_substitute_player_send_off(gint clid, Team *tm, gint player_number, gint *to_substitute, gint *substitute) { #ifdef DEBUG printf("game_substitute_player_send_off\n"); #endif gint i; gint position = -1; GPtrArray *substitutes = NULL; gint current_structure = team_find_appropriate_structure(tm); gint num_forw = current_structure % 10, num_mid = math_get_place(current_structure, 2), num_def = math_get_place(current_structure, 3); *to_substitute = game_find_to_substitute(clid, tm); if(*to_substitute == -1) return; substitutes = g_ptr_array_new(); for(i=11;iplayers->len;i++) if(g_array_index(tm->players, Player, i).cskill > 0) g_ptr_array_add(substitutes, player_of_idx_team(tm, i)); if(substitutes->len == 0) { g_ptr_array_free(substitutes, TRUE); debug_print_message("game_substitute_player_send_off: no suitable substitutes found (all injured/banned?)"); *to_substitute = -1; return; } if(num_forw == 0 && MAX(num_def, num_mid) > 2) position = PLAYER_POS_FORWARD; else position = (num_def > num_mid) ? PLAYER_POS_MIDFIELDER : PLAYER_POS_DEFENDER; g_ptr_array_sort_with_data(substitutes, (GCompareDataFunc)player_compare_substitute_func, GINT_TO_POINTER(position)); *substitute = ((Player*)g_ptr_array_index(substitutes, 0))->id; player_swap(tm, player_id_index(tm, *to_substitute), tm, player_id_index(tm, *substitute)); g_ptr_array_free(substitutes, TRUE); team_change_structure(tm, team_find_appropriate_structure(tm)); team_rearrange(tm); if(team_is_user(tm) == cur_user) { game_gui_write_av_skills(NULL); selected_row = -1; treeview_show_user_player_list(); } } /** Decrease the players' fitness during a live game. @param fix The match being played. */ void game_decrease_fitness(const Fixture *fix) { #ifdef DEBUG printf("game_decrease_fitness\n"); #endif gint i, j; for(i=0;i<2;i++) { if(debug < 50 || team_is_user(fix->teams[i]) == -1) for(j=0;j<11;j++) if(player_of_idx_team(fix->teams[i], j)->cskill > 0) player_decrease_fitness(player_of_idx_team(fix->teams[i], j)); } } /** Update the live game stats using the live game unit. @param live_game_stats Pointer to the live game. @param live_game_unit The live game unit. */ void game_update_stats(LiveGame *lg, const LiveGameUnit *unit) { #ifdef DEBUG printf("game_update_stats\n"); #endif gint i; LiveGameStats *stats = &lg->stats; if(unit->minute != -1) stats->values[unit->possession][LIVE_GAME_STAT_VALUE_POSSESSION]++; if(unit->event.type == LIVE_GAME_EVENT_SCORING_CHANCE || unit->event.type == LIVE_GAME_EVENT_FREE_KICK || unit->event.type == LIVE_GAME_EVENT_HEADER) stats->values[unit->possession][LIVE_GAME_STAT_VALUE_SHOTS]++; else if(unit->event.type == LIVE_GAME_EVENT_PENALTY) stats->values[unit->possession][LIVE_GAME_STAT_VALUE_PENALTIES]++; else if(unit->event.type == LIVE_GAME_EVENT_INJURY) { stats->values[unit->event.team][LIVE_GAME_STAT_VALUE_INJURIES]++; game_update_stats_player(lg, unit); } else if(unit->event.type == LIVE_GAME_EVENT_FOUL || unit->event.type == LIVE_GAME_EVENT_FOUL_YELLOW || unit->event.type == LIVE_GAME_EVENT_FOUL_RED || unit->event.type == LIVE_GAME_EVENT_FOUL_RED_INJURY) { stats->values[unit->event.team][LIVE_GAME_STAT_VALUE_FOULS]++; if(unit->event.type == LIVE_GAME_EVENT_FOUL_YELLOW) { stats->values[unit->event.team][LIVE_GAME_STAT_VALUE_CARDS]++; game_update_stats_player(lg, unit); } } else if(unit->event.type == LIVE_GAME_EVENT_SEND_OFF) { stats->values[unit->event.team][LIVE_GAME_STAT_VALUE_REDS]++; game_update_stats_player(lg, unit); } else if(unit->event.type == LIVE_GAME_EVENT_GOAL || unit->event.type == LIVE_GAME_EVENT_OWN_GOAL) { if(live_game_unit_before(unit, -1)->event.type != LIVE_GAME_EVENT_PENALTY && unit->event.type != LIVE_GAME_EVENT_OWN_GOAL) stats->values[unit->event.team][LIVE_GAME_STAT_VALUE_GOALS_REGULAR]++; game_update_stats_player(lg, unit); } for(i=0;i<2;i++) stats->values[i][LIVE_GAME_STAT_VALUE_SHOT_PERCENTAGE] = (stats->values[i][LIVE_GAME_STAT_VALUE_SHOTS] > 0) ? (gint)rint(((gfloat)stats->values[i][LIVE_GAME_STAT_VALUE_GOALS_REGULAR] / (gfloat)stats->values[i][LIVE_GAME_STAT_VALUE_SHOTS]) * 100) : 0; } /** Update the player array in the live game stats. @param live_game Pointer to the live game. @param team The team of the player. @param player The player id. @param type The type of the stat. */ void game_update_stats_player(LiveGame *lg, const LiveGameUnit *unit) { #ifdef DEBUG printf("game_update_stats_player\n"); #endif gint i; gchar buf[SMALL], buf2[SMALL]; LiveGameStats *stats = &lg->stats; gint minute = live_game_unit_get_minute(unit), array_index = -1; gboolean own_goal; gint team = unit->event.team, player = unit->event.player, player2 = unit->event.player2; const Team *tm[2] = {lg->fix->teams[0], lg->fix->teams[1]}; GPtrArray *players = NULL; const gchar *player_name; if(unit->event.type == LIVE_GAME_EVENT_GOAL || unit->event.type == LIVE_GAME_EVENT_OWN_GOAL) { own_goal = (unit->event.type == LIVE_GAME_EVENT_OWN_GOAL); array_index = (own_goal) ? !team : team; if(live_game_unit_before(unit, -1)->event.type == LIVE_GAME_EVENT_PENALTY) /* A goal scored with penalty. */ strcpy(buf2, _(" (P)")); else if(live_game_unit_before(unit, -1)->event.type == LIVE_GAME_EVENT_FREE_KICK) /* A goal scored with a free kick. */ strcpy(buf2, _(" (FK)")); else if(unit->event.type == LIVE_GAME_EVENT_OWN_GOAL) /* An own goal */ strcpy(buf2, _(" (OG)")); else strcpy(buf2, ""); player_name = player_of_id_team(tm[team], player)->name; if(!own_goal) g_ptr_array_add(stats->players[array_index][LIVE_GAME_STAT_ARRAY_SCORERS], g_strdup(player_name)); for(i=0;iplayers[array_index][LIVE_GAME_STAT_ARRAY_SCORERS_FOR_DISPLAY]->len;i++) { if(g_str_has_prefix((gchar*)g_ptr_array_index( stats->players[array_index][LIVE_GAME_STAT_ARRAY_SCORERS_FOR_DISPLAY], i), player_name)) { sprintf(buf, "%s %d%s", (gchar*)g_ptr_array_index( stats->players[array_index][LIVE_GAME_STAT_ARRAY_SCORERS_FOR_DISPLAY], i), minute, buf2); misc_string_assign((gchar**)&g_ptr_array_index( stats->players[array_index][LIVE_GAME_STAT_ARRAY_SCORERS_FOR_DISPLAY], i), buf); return; } } sprintf(buf, "%s %d%s", player_name, minute, buf2); g_ptr_array_add(stats->players[array_index][LIVE_GAME_STAT_ARRAY_SCORERS_FOR_DISPLAY], g_strdup(buf)); } else { strcpy(buf, ""); if(unit->event.type == LIVE_GAME_EVENT_INJURY) { sprintf(buf, "%s", player_of_id_team(tm[team], player)->name); players = stats->players[team][LIVE_GAME_STAT_ARRAY_INJURED]; } else if(unit->event.type == LIVE_GAME_EVENT_FOUL_YELLOW) { sprintf(buf, "%s", player_of_id_team(tm[team], player2)->name); players = stats->players[team][LIVE_GAME_STAT_ARRAY_YELLOWS]; } else if(unit->event.type == LIVE_GAME_EVENT_SEND_OFF) { sprintf(buf, "%s", player_of_id_team(tm[team], player)->name); players = stats->players[team][LIVE_GAME_STAT_ARRAY_REDS]; } if(strlen(buf) > 0) g_ptr_array_add(players, strdup(buf)); } } /** Make some team updates after a match. @param fix The match we examine. */ void game_post_match(Fixture *fix) { #ifdef DEBUG printf("game_post_match\n"); #endif gint i; GPtrArray *teams = NULL; Cup *cup = NULL; gchar buf[SMALL], buf2[SMALL]; gint usr_idx; usr_idx = fixture_user_team_involved(fix); if((debug > 100 && usr_idx != -1) || debug > 130) g_print("game_post_match: %s - %s\n", fix->teams[0]->name, fix->teams[1]->name); if(query_fixture_has_tables(fix)) table_update(fix); for(i=0;i<2;i++) team_update_post_match(fix->teams[i], fix); if(fix->clid < ID_CUP_START) return; cup = cup_from_clid(fix->clid); if(fix->round == cup->rounds->len - 1 && fix == &g_array_index(cup->fixtures, Fixture, cup->fixtures->len - 1)) { teams = cup_get_teams_sorted(cup); if(team_is_user((Team*)g_ptr_array_index(teams, 0)) != -1) { user_history_add(&usr(team_is_user((Team*)g_ptr_array_index(teams, 0))), USER_HISTORY_WIN_FINAL, ((Team*)g_ptr_array_index(teams, 0))->name, league_cup_get_name_string(fix->clid), ((Team*)g_ptr_array_index(teams, 1))->name, NULL); user_add_cup_success(&usr(team_is_user((Team*)g_ptr_array_index(teams, 0))), cup, fix->round, USER_HISTORY_WIN_FINAL); } else if(team_is_user((Team*)g_ptr_array_index(teams, 1)) != -1) { user_history_add(&usr(team_is_user((Team*)g_ptr_array_index(teams, 1))), USER_HISTORY_LOSE_FINAL, ((Team*)g_ptr_array_index(teams, 1))->name, league_cup_get_name_string(fix->clid), ((Team*)g_ptr_array_index(teams, 0))->name, NULL); user_add_cup_success(&usr(team_is_user((Team*)g_ptr_array_index(teams, 1))), cup, fix->round, USER_HISTORY_LOSE_FINAL); } g_ptr_array_free(teams, TRUE); } else if(usr_idx != -1) { cup_get_round_name(cup_from_clid(fix->clid), fix->round, buf); sprintf(buf2, "%d", fix->round + 1); user_history_add(&usr(usr_idx), USER_HISTORY_REACH_CUP_ROUND, usr(usr_idx).tm->name, league_cup_get_name_string(fix->clid), buf, buf2); user_add_cup_success(&usr(usr_idx), cup, fix->round, USER_HISTORY_REACH_CUP_ROUND); } } /** Reduce stadium capacity and safety after a stadium event. @param user The user whose stadium we demolish. @param type The event type. */ void game_stadium_event(Stadium *stadium, gint type) { #ifdef DEBUG printf("game_stadium_event\n"); #endif gfloat reduce; gfloat reduce_factor[3][2] = {{const_float("float_game_stadium_safety_reduce_breakdown_lower"), const_float("float_game_stadium_safety_reduce_breakdown_upper")}, {const_float("float_game_stadium_safety_reduce_riots_lower"), const_float("float_game_stadium_safety_reduce_riots_upper")}, {const_float("float_game_stadium_safety_reduce_fire_lower"), const_float("float_game_stadium_safety_reduce_fire_upper")}}; reduce = math_rnd(reduce_factor[type - LIVE_GAME_EVENT_STADIUM_BREAKDOWN][0], reduce_factor[type - LIVE_GAME_EVENT_STADIUM_BREAKDOWN][1]); stadium->safety *= (1 - reduce); stadium->capacity = (gint)rint((gfloat)stadium->capacity * (1 - reduce * const_float("float_game_stadium_capacity_reduce_factor"))); } /** Return the maximum possible values for defence, midfield and attack. Used in the opponent preview. */ void game_get_max_values(gfloat max_values[4]) { #ifdef DEBUG printf("game_get_max_values\n"); #endif gint i, j; Player pl; pl.skill = pl.cskill = const_float("float_player_max_skill"); pl.fitness = 1; pl.streak = 0; max_values[0] = const_float("float_player_max_skill"); for(i=1;i<4;i++) { max_values[i] = 0; for(j=1;j<11;j++) { pl.cpos = player_get_position_from_structure(442, j); max_values[i] += game_get_player_contribution(&pl, i, FALSE); } } } /** Find out whether there's a default penalty shooter in the team. @return A player id or -1. */ gint game_get_default_penalty_shooter(const Team *tm) { #ifdef DEBUG printf("game_get_default_penalty_shooter\n"); #endif gint return_value = -1; if(team_is_user(tm) != -1 && option_int("int_opt_user_penalty_shooter", &usr(team_is_user(tm)).options) != -1 && player_of_id_team(tm, option_int("int_opt_user_penalty_shooter", &usr(team_is_user(tm)).options)) != NULL && player_id_index(tm, option_int("int_opt_user_penalty_shooter", &usr(team_is_user(tm)).options)) < 11 && player_of_id_team(tm, option_int("int_opt_user_penalty_shooter", &usr(team_is_user(tm)).options))->cskill != 0) return_value = option_int("int_opt_user_penalty_shooter", &usr(team_is_user(tm)).options); return return_value; } /** Deduce some money for boost during a match. */ void game_boost_cost(void) { #ifdef DEBUG printf("game_boost_cost\n"); #endif gfloat wage_unit = finance_wage_unit(usr(stat2).tm); gint deduce = (gint)rint(wage_unit * const_float("float_boost_cost_factor")); usr(stat2).money -= deduce; usr(stat2).money_out[1][MON_OUT_BOOST] -= deduce; } bygfoot-2.3.2/src/load_save.c0000644000175000017500000002745711225071373015053 0ustar eliaselias/* load_save.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "callbacks.h" #include "file.h" #include "gui.h" #include "game_gui.h" #include "language.h" #include "load_save.h" #include "misc.h" #include "option.h" #include "support.h" #include "user.h" #include "variables.h" #include "window.h" #include "xml_loadsave_cup.h" #include "xml_loadsave_jobs.h" #include "xml_loadsave_league.h" #include "xml_loadsave_leagues_cups.h" #include "xml_loadsave_misc.h" #include "xml_loadsave_newspaper.h" #include "xml_loadsave_season_stats.h" #include "xml_loadsave_transfers.h" #include "xml_loadsave_users.h" #include "xml.h" #define PROGRESS_MAX 9 /** Save the game to the specified file. */ void load_save_save_game(const gchar *filename) { #ifdef DEBUG printf("load_save_save_game\n"); #endif gchar buf[SMALL]; gchar *prefix = (g_str_has_suffix(filename, const_str("string_fs_save_suffix"))) ? g_strndup(filename, strlen(filename) - strlen(const_str("string_fs_save_suffix"))) : g_strdup(filename); GString *fullname = g_string_new(""); g_string_append(fullname,(g_str_has_suffix(filename, const_str("string_fs_save_suffix"))) ? g_strdup(filename) : g_strdup_printf("%s%s", filename, const_str("string_fs_save_suffix"))); misc_string_assign(&save_file, fullname->str); if(g_file_test(fullname->str, G_FILE_TEST_EXISTS)) /*todo: replace with g_remove*/ file_remove_files(fullname); if(debug > 60) g_print("load_save_save options\n"); gui_show_progress(0, _("Saving options..."), PIC_TYPE_SAVE); sprintf(buf, "%s___options", prefix); file_save_opt_file(buf, &options); sprintf(buf, "%s___settings", prefix); file_save_opt_file(buf, &settings); if(debug > 60) g_print("load_save_save leagues/cups \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Saving leagues and cups..."), PIC_TYPE_SAVE); xml_loadsave_leagues_cups_write(prefix); if(debug > 60) g_print("load_save_save users \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Saving users..."), PIC_TYPE_SAVE); xml_loadsave_users_write(prefix); if(debug > 60) g_print("load_save_save transfers \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Saving transfer list..."), PIC_TYPE_SAVE); xml_loadsave_transfers_write(prefix); if(debug > 60) g_print("load_save_save stats \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Saving season stats..."), PIC_TYPE_SAVE); xml_loadsave_season_stats_write(prefix); if(debug > 60) g_print("load_save_save jobs \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, /* The 'job exchange' is a list of teams looking for a manager. */ _("Saving job exchange..."), PIC_TYPE_SAVE); xml_loadsave_jobs_write(prefix); if(debug > 60) g_print("load_save_save newspaper \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Saving newspaper..."), PIC_TYPE_SAVE); xml_loadsave_newspaper_write(prefix); if(debug > 60) g_print("load_save_save misc \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Saving miscellaneous..."), PIC_TYPE_SAVE); xml_loadsave_misc_write(prefix); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Compressing savegame..."), PIC_TYPE_SAVE); sprintf(buf, "%s___", prefix); file_compress_files(fullname->str, buf); if(debug > 60) g_print("load_save_save done \n"); gui_show_progress(1, _("Done."), PIC_TYPE_SAVE); file_store_text_in_saves("last_save", fullname->str); g_free(prefix); g_string_free(fullname, TRUE); gui_show_progress(-1, "", PIC_TYPE_SAVE); setsav1; } /** Load the game from the specified file. @param create_main_window Whether to create and show the main window. */ gboolean load_save_load_game(const gchar* filename, gboolean create_main_window) { #ifdef DEBUG printf("load_save_load_game\n"); #endif GString *buf = g_string_new(""); gchar *fullname = (g_str_has_suffix(filename, const_str("string_fs_save_suffix"))) ? g_strdup(filename) : g_strdup_printf("%s%s", filename, const_str("string_fs_save_suffix")); gchar *basename = g_path_get_basename(fullname), *dirname = g_path_get_dirname(fullname); gchar *prefix = (g_str_has_suffix(basename, const_str("string_fs_save_suffix"))) ? g_strndup(basename, strlen(basename) - strlen(const_str("string_fs_save_suffix"))) : g_strdup(basename); if(g_str_has_suffix(filename, "last_save")) { g_free(basename); g_free(dirname); g_free(prefix); g_free(fullname); basename = file_load_text_from_saves("last_save"); if(basename != NULL) { load_save_load_game(basename, create_main_window); g_free(basename); return TRUE; } else { game_gui_show_warning(_("Last save file not found.")); return FALSE; } } if(window.main != NULL) gtk_widget_hide(window.main); gui_show_progress(0, _("Uncompressing savegame..."), PIC_TYPE_LOAD); file_decompress(fullname); if(debug > 60) g_print("load_save_load options\n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading options..."), PIC_TYPE_LOAD); g_string_sprintf(buf, "%s%s%s___options", dirname, G_DIR_SEPARATOR_S, prefix); file_load_opt_file(buf->str, &options, FALSE); g_string_sprintf(buf, "%s%s%s___settings", dirname, G_DIR_SEPARATOR_S, prefix); file_load_opt_file(buf->str, &settings, FALSE); language_set(language_get_code_index(opt_str("string_opt_language_code")) + 1); if(debug > 60) g_print("load_save_load leagues \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading leagues and cups..."), PIC_TYPE_LOAD); xml_loadsave_leagues_cups_read(dirname, prefix); if(debug > 60) g_print("load_save_load users \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading users..."), PIC_TYPE_LOAD); xml_load_users(dirname, prefix); if(debug > 60) g_print("load_save_load transfers \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading transfer list..."), PIC_TYPE_LOAD); xml_load_transfers(dirname, prefix); if(debug > 60) g_print("load_save_load stats \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading season stats..."), PIC_TYPE_LOAD); xml_loadsave_season_stats_read(dirname, prefix); if(debug > 60) g_print("load_save_load jobs \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, /* The 'job exchange' is a list of teams looking for a manager. */ _("Loading job exchange..."), PIC_TYPE_LOAD); xml_loadsave_jobs_read(dirname, prefix); if(debug > 60) g_print("load_save_load newspaper \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading newspaper..."), PIC_TYPE_LOAD); xml_loadsave_newspaper_read(dirname, prefix); if(debug > 60) g_print("load_save_load misc \n"); gui_show_progress( ((PROGRESS_MAX * gui_get_progress_bar_fraction()) + 1) / PROGRESS_MAX, _("Loading miscellaneous..."), PIC_TYPE_LOAD); xml_loadsave_misc_read(dirname, prefix); if(debug > 60) g_print("load_save_load done \n"); gui_show_progress(1, _("Done."), PIC_TYPE_LOAD); g_string_sprintf(buf, "%s%s%s___*", dirname, G_DIR_SEPARATOR_S, prefix); file_remove_files(buf); misc_string_assign(&save_file, fullname); file_store_text_in_saves("last_save", fullname); gui_show_progress(-1, "", PIC_TYPE_LOAD); if(create_main_window) { window_create(WINDOW_MAIN); on_button_back_to_main_clicked(NULL, NULL); } else if(window.main != NULL) { gtk_widget_show(window.main); window_main_load_geometry(); } g_string_free(buf, TRUE); g_free(basename); g_free(dirname); g_free(prefix); g_free(fullname); return TRUE; } /** Write an autosave. */ void load_save_autosave(void) { #ifdef DEBUG printf("load_save_autosave\n"); #endif gchar buf[SMALL], name[SMALL]; const gchar *home = g_get_home_dir(); FILE *fil = NULL; if(!opt_int("int_opt_autosave") || !query_user_games_this_week_round()) return; counters[COUNT_AUTOSAVE] = (counters[COUNT_AUTOSAVE] + 1) % opt_int("int_opt_autosave_interval"); if(counters[COUNT_AUTOSAVE] != 0) return; load_save_write_autosave_name(name); if(os_is_unix) sprintf(buf, "%s%s%s%ssaves%s%s_%02d.zip", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S, name, counters[COUNT_AUTOSAVE_FILE]); else { gchar *pwd = g_get_current_dir(); sprintf(buf, "%s%ssaves%s%s_%02d.zip", pwd, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S, name, counters[COUNT_AUTOSAVE_FILE]); g_free(pwd); } if(!file_my_fopen(buf, "w", &fil, FALSE)) return; fclose(fil); load_save_save_game(buf); counters[COUNT_AUTOSAVE_FILE] = (counters[COUNT_AUTOSAVE_FILE] + 1) % opt_int("int_opt_autosave_files"); } /** Write the autosave file name which is put together from the user name, team name etc. into the parameter string. */ void load_save_write_autosave_name(gchar *filename) { gchar teamname[SMALL]; gint i = 0; while(usr(0).tm->name[i] != '\0') { teamname[i] = (isspace(usr(0).tm->name[i]) == 0) ? usr(0).tm->name[i] : '_'; i++; } teamname[i] = '\0'; sprintf(filename, "autosave_%s_%s_%s_S%02d_W%02d", usr(0).name, country.name, teamname, season, week); } /** Try to load a savegame given on the command line. */ gboolean load_game_from_command_line(const gchar *filename) { #ifdef DEBUG printf("load_game_from_command_line\n"); #endif gchar *fullname = NULL, *support_file_name = NULL; if(strcmp(filename, "last_save") == 0) return load_save_load_game(filename, TRUE); fullname = (g_str_has_suffix(filename, const_str("string_fs_save_suffix"))) ? g_strdup(filename) : g_strdup_printf("%s%s", filename, const_str("string_fs_save_suffix")); if(g_file_test(fullname, G_FILE_TEST_EXISTS)) { if(load_save_load_game(fullname, TRUE)) { g_free(fullname); return TRUE; } else return FALSE; } support_file_name = file_find_support_file(fullname, FALSE); if(g_file_test(support_file_name, G_FILE_TEST_EXISTS)) { if(load_save_load_game(support_file_name, TRUE)) { g_free(fullname); g_free(support_file_name); return TRUE; } else return FALSE; } debug_print_message("Could not find file %s.\n", fullname); g_free(fullname); return FALSE; } bygfoot-2.3.2/src/league.h0000644000175000017500000001150011225071373014343 0ustar eliaselias/* league.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LEAGUE_H #define LEAGUE_H #include "bygfoot.h" #include "cup.h" #include "league_struct.h" #include "fixture_struct.h" #define league_cup_get_fixtures(clid) (clid < ID_CUP_START) ? (league_from_clid(clid)->fixtures) : (cup_from_clid(clid)->fixtures) #define league_cup_get_name_string(clid) (clid < ID_CUP_START) ? league_from_clid(clid)->name : cup_from_clid(clid)->name #define league_cup_get_yellow_red(clid) (clid < ID_CUP_START) ? (league_from_clid(clid)->yellow_red) : (cup_from_clid(clid)->yellow_red) #define league_table_cumul(league) (&g_array_index((league)->tables, Table, 0)) #define league_table(league) (&g_array_index((league)->tables, Table, league->tables->len - 1)) #define query_league_has_prom_games(league) (league->prom_rel.prom_games->len > 0) #define query_league_active(league) (!query_league_cup_has_property((league)->id, "inactive")) /** A struct needed when managing promotions and relegations. */ typedef struct { Team tm; /**< The team we move. */ GArray *dest_idcs; /**< Array of possible destination indices. */ gint prom_rel_type; /**< Promotion or relegation */ gboolean dest_assigned; /**< Whether a destination league for the team is already assigned. */ } TeamMove; League league_new(gboolean new_id); PromRelElement prom_rel_element_new(void); PromGames prom_games_new(void); gint league_cup_get_index_from_clid(gint clid); League* league_from_clid(gint clid); gint league_cup_get_next_clid(gint clid, gboolean count_inactive); gint league_cup_get_previous_clid(gint clid, gboolean count_inactive); Fixture* league_cup_get_next_fixture(gint clid, gint week_number, gint week_round_number); Fixture* league_cup_get_previous_fixture(gint clid, gint week_number, gint week_round_number); gint league_cup_average_capacity(gint clid); void league_get_team_movements(League *league, GArray *team_movements); gint league_index_from_sid(const gchar *sid); void league_remove_team_with_id(League *league, gint id); void league_season_start(League *league); gboolean query_league_rank_in_prom_games(const League *league, gint rank); gboolean query_league_prom_games_begin(const League *league); gboolean query_league_matches_in_week(const League *league, gint week_number); void league_get_team_movements_prom_rel(const League *league, GArray *team_movements); void league_get_team_movements_prom_games(const League *league, const PromGames *prom_games, GArray *team_movements, const GPtrArray *prom_games_teams, gboolean up); void league_team_movements_destinations(GArray *team_movements, const gint *league_size); void league_team_movements_prune(GArray *team_movements, const gint *league_size, gint *league_cur_size); void league_team_movements_assign_dest(GArray *team_movements, gint idx, const gint *league_size, gint *league_cur_size); gboolean query_league_team_movements_unassigned_single(const GArray *team_movements); gboolean query_league_team_movements_unassigned(const GArray *team_movements); void league_team_movements_print(const GArray *team_movements, const gint *league_size, const gint *league_cur_size); gint league_team_movements_compare_dest_idcs(gconstpointer a, gconstpointer b, gpointer data); gboolean query_leagues_active_in_country(void); gboolean query_league_cup_matchday_in_two_match_week(GArray **two_match_weeks, gint matchday); void league_check_new_tables(League *league); void league_add_table(League *league); gboolean query_league_cup_has_property(gint clid, const gchar *property); GPtrArray* league_cup_get_teams(gint clid); GPtrArray* league_cup_get_properties(gint clid); void league_cup_adjust_rr_breaks(GArray *rr_breaks, gint round_robins, gint week_gap); void league_cup_fill_rr_breaks(GArray *rr_breaks, const gchar *breaks); void league_cup_adjust_week_breaks(GArray *week_breaks, gint week_gap); gint league_cup_get_week_with_break(gint clid, gint week_number); #endif bygfoot-2.3.2/src/stat.h0000644000175000017500000000257011225071373014063 0ustar eliaselias/* stat.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef STAT_H #define STAT_H #include "bygfoot.h" #include "league_struct.h" #include "stat_struct.h" SeasonStat stat_season_stat_new(gint season_number); LeagueStat stat_league_new(const gchar *league_name, const gchar *league_symbol); GArray* stat_update_league_teams(const GArray *teams, gint compare_type); void stat_update_leagues(void); void stat_update_league_players(League *league); void stat_create_season_stat(void); void stat_show_av_league_goals(void); #endif bygfoot-2.3.2/src/misc_callback_func.c0000644000175000017500000002637211225071373016673 0ustar eliaselias/* misc_callback_func.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "callbacks.h" #include "debug.h" #include "file.h" #include "finance.h" #include "free.h" #include "game.h" #include "game_gui.h" #include "gui.h" #include "load_save.h" #include "main.h" #include "maths.h" #include "misc.h" #include "misc_callback_func.h" #include "option.h" #include "start_end.h" #include "support.h" #include "treeview.h" #include "treeview_helper.h" #include "user.h" #include "variables.h" #include "window.h" #include "xml_country.h" #include "xml_name.h" /* show the teams from the leagues in the country in the startup window */ void misc_callback_show_team_list(GtkWidget *widget, const gchar *country_file) { #ifdef DEBUG printf("misc_callback_show_team_list\n"); #endif GtkWidget *treeview_startup = lookup_widget(widget, "treeview_startup"); xml_country_read(country_file, NULL); treeview_show_team_list(GTK_TREE_VIEW(treeview_startup), FALSE, FALSE); treeview_show_leagues_combo(); gtk_widget_set_sensitive(lookup_widget(widget, "button_add_player"), TRUE); } /** Start a new game after users and teams are selected. */ void misc_callback_start_game(void) { #ifdef DEBUG printf("misc_callback_start_game\n"); #endif gint i; GtkToggleButton *radio_load = GTK_TOGGLE_BUTTON(lookup_widget(window.startup, "radiobutton_team_def_load")); GtkToggleButton *radio_names = GTK_TOGGLE_BUTTON(lookup_widget(window.startup, "radiobutton_team_def_names")); GtkToggleButton *checkbutton_randomise_teams = GTK_TOGGLE_BUTTON(lookup_widget(window.startup, "checkbutton_randomise_teams")); stat0 = STATUS_MAIN; /* option_add(&options, "int_opt_load_defs", 1, NULL); */ /* option_add(&options, "int_opt_randomise_teams", 0, NULL); */ if(gtk_toggle_button_get_active(checkbutton_randomise_teams)) opt_set_int("int_opt_randomise_teams", 1); if(gtk_toggle_button_get_active(radio_load)) opt_set_int("int_opt_load_defs", 1); else if(gtk_toggle_button_get_active(radio_names)) opt_set_int("int_opt_load_defs", 2); else opt_set_int("int_opt_load_defs", 0); start_new_game(); window_destroy(&window.startup); file_store_text_in_saves("last_country", country.sid); if(!opt_int("int_opt_calodds")) { for(i=0;ilen;i++) user_set_up_team_new_game(&usr(i)); window_create(WINDOW_MAIN); game_gui_show_main(); if(statp != NULL) { debug_action((gchar*)statp); g_free(statp); statp = NULL; } } else { free_users(TRUE); debug_calibrate_betting_odds(opt_int("int_opt_calodds_skilldiffmax"), opt_int("int_opt_calodds_matches")); main_exit_program(EXIT_OK, NULL); } } /** Add a user to the users array. */ void misc_callback_add_player(void) { #ifdef DEBUG printf("misc_callback_add_player\n"); #endif GtkTreeView *treeview_users = GTK_TREE_VIEW(lookup_widget(window.startup, "treeview_users")); GtkTreeView *treeview_startup = GTK_TREE_VIEW(lookup_widget(window.startup, "treeview_startup")); GtkEntry *entry_player_name = GTK_ENTRY(lookup_widget(window.startup, "entry_player_name")); GtkComboBox *combo_leagues = GTK_COMBO_BOX(lookup_widget(window.startup, "combobox_start_league")); const gchar *player_name = gtk_entry_get_text(entry_player_name); User new_user = user_new(); Team *tm = (Team*)treeview_helper_get_pointer(treeview_startup, 2); gint start_league = gtk_combo_box_get_active(combo_leagues); if(strlen(player_name) > 0) misc_string_assign(&new_user.name, player_name); gtk_entry_set_text(entry_player_name, ""); new_user.tm = tm; new_user.team_id = tm->id; new_user.scout = (start_league == 0 || tm->clid == lig(start_league - 1).id) ? -1 : start_league - 1; g_array_append_val(users, new_user); treeview_show_users(treeview_users); treeview_show_team_list(treeview_startup, FALSE, FALSE); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_leagues), 0); if(users->len == 1) { gtk_widget_set_sensitive(lookup_widget(window.startup, "team_selection_ok"), TRUE); gtk_widget_set_sensitive(lookup_widget(window.startup, "combo_country"), FALSE); } } /** Remove a user from the users list. @param event The mouse click event on the treeview. */ void misc_callback_remove_user(GdkEventButton *event) { #ifdef DEBUG printf("misc_callback_remove_user\n"); #endif GtkTreeView *treeview_users = GTK_TREE_VIEW(lookup_widget(window.startup, "treeview_users")); GtkTreeView *treeview_startup = GTK_TREE_VIEW(lookup_widget(window.startup, "treeview_startup")); if(!treeview_helper_select_row(treeview_users, event)) return; user_remove(treeview_helper_get_index(treeview_users, 0) - 1, FALSE); treeview_show_users(treeview_users); treeview_show_team_list(treeview_startup, FALSE, FALSE); if(users->len == 0) { gtk_widget_set_sensitive(lookup_widget(window.startup, "team_selection_ok"), FALSE); gtk_widget_set_sensitive(lookup_widget(window.startup, "combo_country"), TRUE); } } /** Stop the live game so that users can make subs etc. */ void misc_callback_pause_live_game(void) { #ifdef DEBUG printf("misc_callback_pause_live_game\n"); #endif GtkWidget *button_resume = lookup_widget(window.live, "button_resume"); if(stat1 == STATUS_SHOW_LAST_MATCH) { stat4 = STATUS_SHOW_LAST_MATCH_PAUSE; return; } if(g_array_index(usr(stat2).live_game.units, LiveGameUnit, usr(stat2).live_game.units->len - 1).event.type == LIVE_GAME_EVENT_END_MATCH) return; gtk_widget_set_sensitive(lookup_widget(window.live, "button_pause"), FALSE); gtk_widget_set_sensitive(button_resume, TRUE); gtk_widget_grab_focus(button_resume); game_gui_set_main_window_sensitivity(TRUE); game_save_team_states(); if(stat2 == cur_user) treeview_show_user_player_list(); stat0 = STATUS_LIVE_GAME_PAUSE; } /** Update the cost and expected duration labels in the stadium window when the user's clicked on the spinbuttons. @param capacity Whether to update the capacity or safety labels. */ void misc_callback_update_stadium_window(gboolean capacity) { #ifdef DEBUG printf("misc_callback_update_stadium_window\n"); #endif GtkLabel *label_costs_capacity = GTK_LABEL(lookup_widget(window.stadium, "label_costs_capacity")), *label_costs_safety = GTK_LABEL(lookup_widget(window.stadium, "label_costs_safety")), *label_duration_capacity = GTK_LABEL(lookup_widget(window.stadium, "label_duration_capacity")), *label_duration_safety = GTK_LABEL(lookup_widget(window.stadium, "label_duration_safety")); GtkSpinButton *spinbutton_capacity = GTK_SPIN_BUTTON(lookup_widget(window.stadium, "spinbutton_capacity")), *spinbutton_safety = GTK_SPIN_BUTTON(lookup_widget(window.stadium, "spinbutton_safety")); gfloat value_capacity = gtk_spin_button_get_value(spinbutton_capacity), value_safety = gtk_spin_button_get_value(spinbutton_safety) / 100; gint cost, duration; if(capacity) { cost = finance_get_stadium_improvement_cost(value_capacity, TRUE); duration = finance_get_stadium_improvement_duration(value_capacity, TRUE); gui_label_set_text_from_int(label_costs_capacity, cost, FALSE); gui_label_set_text_from_int(label_duration_capacity, duration, FALSE); } else { cost = finance_get_stadium_improvement_cost(value_safety, FALSE); duration = finance_get_stadium_improvement_duration(value_safety, FALSE); gui_label_set_text_from_int(label_costs_safety, cost, FALSE); gui_label_set_text_from_int(label_duration_safety, duration, FALSE); } } /** Handle a click on the OK button of the stadium window. */ void misc_callback_improve_stadium(void) { #ifdef DEBUG printf("misc_callback_improve_stadium\n"); #endif GtkSpinButton *spinbutton_capacity = GTK_SPIN_BUTTON(lookup_widget(window.stadium, "spinbutton_capacity")), *spinbutton_safety = GTK_SPIN_BUTTON(lookup_widget(window.stadium, "spinbutton_safety")), *spinbutton_ticket_price = GTK_SPIN_BUTTON(lookup_widget(window.stadium, "spin_ticket_price")); gfloat ticket_price = gtk_spin_button_get_value(spinbutton_ticket_price); gint value_capacity = gtk_spin_button_get_value_as_int(spinbutton_capacity), value_safety = gtk_spin_button_get_value_as_int(spinbutton_safety); gint cost_capacity, cost_safety; if(value_safety + current_user.counters[COUNT_USER_STADIUM_SAFETY] > 101 - current_user.tm->stadium.safety * 100) { game_gui_show_warning(_("Safety improvement too high, reset to highest possible value.")); value_safety = (gint)rint(100 - current_user.tm->stadium.safety * 100) - current_user.counters[COUNT_USER_STADIUM_SAFETY]; } cost_capacity = finance_get_stadium_improvement_cost(value_capacity, TRUE); cost_safety = finance_get_stadium_improvement_cost((gfloat)value_safety / 100, FALSE); if(cost_safety + cost_capacity > BUDGET(cur_user)) { game_gui_show_warning(_("You don't have the money.")); return; } current_user.tm->stadium.ticket_price = ticket_price; current_user.money -= (cost_capacity + cost_safety); current_user.money_out[1][MON_OUT_STADIUM_IMPROVEMENT] -= (cost_safety + cost_capacity); current_user.counters[COUNT_USER_STADIUM_CAPACITY] += value_capacity; current_user.counters[COUNT_USER_STADIUM_SAFETY] += value_safety; window_destroy(&window.stadium); game_gui_set_main_window_header(); setsav0; } /** Load a savegame directly from the startup window. */ void misc_callback_startup_load(const gchar *filename) { #ifdef DEBUG printf("misc_callback_startup_load\n"); #endif gtk_widget_hide(window.splash); if(load_save_load_game(filename, TRUE)) window_destroy(&window.splash); else gtk_widget_show(window.splash); } /** The user has chosen a new sponsor. */ void misc_callback_new_sponsor(void) { #ifdef DEBUG printf("misc_callback_new_sponsor\n"); #endif GtkTreeView *treeview = GTK_TREE_VIEW(lookup_widget(window.sponsors, "treeview_sponsors")); GtkTreeModel *model; GtkTreeIter iter; gchar *name; gint contract, benefit; gtk_tree_selection_get_selected(GTK_TREE_SELECTION(gtk_tree_view_get_selection(treeview)), &model, &iter); gtk_tree_model_get(model, &iter, 0, &name, 1, &contract, 2, &benefit, -1); g_string_printf(current_user.sponsor.name, name, NULL); current_user.sponsor.contract = contract * 4; current_user.sponsor.benefit = benefit; current_user.counters[COUNT_USER_NEW_SPONSOR] = 0; } bygfoot-2.3.2/src/xml.h0000644000175000017500000000640411225071373013710 0ustar eliaselias/* xml.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_H #define XML_H #include "bygfoot.h" #include "maths.h" #include "cup_struct.h" /** Indentations for xml files. */ #define I0 "" #define I1 "\t" #define I2 "\t\t" #define I3 "\t\t\t" #define I4 "\t\t\t\t" #define I5 "\t\t\t\t\t" #define I6 "\t\t\t\t\t\t" #define I7 "\t\t\t\t\t\t\t" #define I8 "\t\t\t\t\t\t\t\t" /** Tags that are used in more than one type of xml file. */ enum XmlTags { TAG_NAME = 0, TAG_SYMBOL, TAG_SID, TAG_SHORT_NAME, TAG_ID, TAG_WEEK_GAP, TAG_WEEK_BREAK, TAG_WEEK_BREAK_LENGTH, TAG_SKIP_WEEKS_WITH, TAG_YELLOW_RED, TAG_TEAM_ID, TAG_NAMES_FILE, TAG_PROPERTY, TAG_ROUND }; #define TAG_DEF_NAME "name" #define TAG_DEF_SHORT_NAME "short_name" #define TAG_DEF_SID "sid" #define TAG_DEF_SYMBOL "symbol" #define TAG_DEF_WEEK_GAP "week_gap" #define TAG_DEF_PROPERTY "property" #define TAG_DEF_YELLOW_RED "yellow_red" #define TAG_DEF_WEEK_BREAK "break_in" #define ATT_DEF_NAME_WEEK_BREAK_LENGTH "length" #define TAG_DEF_SKIP_WEEKS_WITH "skip_weeks_with" /** Starting values for tag enums in the various xml loading source files. */ #define TAG_START_MISC 1000 #define TAG_START_LEAGUE 2000 #define TAG_START_CUP 3000 #define TAG_START_TEAMS 4000 #define TAG_START_FIXTURES 5000 #define TAG_START_TABLE 6000 #define TAG_START_USERS 7000 #define TAG_START_LIVE_GAME 8000 #define TAG_START_PLAYERS 9000 #define TAG_END_PLAYERS 9900 #define TAG_START_LEAGUE_STAT 10000 #define TAG_START_SEASON_STATS 11000 #define TAG_START_LEAGUES_CUPS 12000 #define TAG_START_TRANSFERS 20000 #define TAG_START_JOBS 21000 #define TAG_START_NEWS_PAPER 22000 #define xml_write_g_string(fil, gstring, tag, indent) xml_write_string(fil, (gstring)->str, tag, indent) #define xml_write_int(fil, value, tag, indent) fprintf(fil, "%s<_%d>%d\n", indent, tag, value, tag) #define xml_write_float(fil, value, tag, indent) fprintf(fil, "%s<_%d>%d\n", indent, tag, (gint)rint(value * 10000), tag) #define xml_get_tag_from_name(name) (gint)g_ascii_strtod(name + 1, NULL) void xml_write_string(FILE *fil, const gchar *string, gint tag, const gchar* indent); void xml_load_users(const gchar *dirname, const gchar *basename); void xml_load_league(const gchar *dirname, const gchar *basename); void xml_load_cup(Cup *cup, const gchar *dirname, const gchar *basename); void xml_load_transfers(const gchar *dirname, const gchar *basename); #endif bygfoot-2.3.2/src/treeview_helper.c0000644000175000017500000020311411225071373016271 0ustar eliaselias/* treeview_helper.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "cup.h" #include "file.h" #include "fixture.h" #include "free.h" #include "job.h" #include "league.h" #include "misc.h" #include "option.h" #include "player.h" #include "support.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "treeview2.h" #include "treeview_helper.h" #include "user.h" #include "variables.h" /** Select the row that's been clicked on. */ gboolean treeview_helper_select_row(GtkTreeView *treeview, GdkEventButton *event) { #ifdef DEBUG printf("treeview_helper_select_row\n"); #endif GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); GtkTreePath *path; if(!gtk_tree_view_get_path_at_pos(treeview, event->x, event->y, &path, NULL, NULL, NULL)) return FALSE; gtk_tree_selection_select_path(selection, path); gtk_tree_path_free(path); return TRUE; } /** Return the number in the 'column'th column of the currently selected row of the treeview. @param treeview The treeview argument. @param column The column we'd like to get the contents of. @return The number in the given column of the selected row. */ gint treeview_helper_get_index(GtkTreeView *treeview, gint column) { #ifdef DEBUG printf("treeview_helper_get_index\n"); #endif gint value; GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); GtkTreeModel *model; GtkTreeIter iter; gtk_tree_selection_get_selected(selection, &model, &iter); gtk_tree_model_get(model, &iter, column, &value, -1); return value; } /** Return the pointer in the 'column'th column of the currently selected row of the treeview. @param treeview The treeview argument. @param column The column we'd like to get the content of. @return The pointer in the given column of the selected row. */ gpointer treeview_helper_get_pointer(GtkTreeView *treeview, gint column) { #ifdef DEBUG printf("treeview_helper_get_pointer\n"); #endif gpointer ptr; GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); GtkTreeModel *model; GtkTreeIter iter; gtk_tree_selection_get_selected(selection, &model, &iter); gtk_tree_model_get(model, &iter, column, &ptr, -1); return ptr; } /** * Removes all columns from a GTK treeview. I didn't find a better way * to completely clear a treeview :-/. * @param treeview The pointer to the treeview widget we'd like to clear. */ void treeview_helper_clear(GtkTreeView *treeview) { #ifdef DEBUG printf("treeview_helper_clear\n"); #endif gint i; gint number_of_columns; GtkTreeView *list = (treeview == NULL) ? GTK_TREE_VIEW(lookup_widget(window.main, "player_info")) : treeview; gtk_tree_view_set_model(GTK_TREE_VIEW(list), NULL); number_of_columns = 0; while(gtk_tree_view_get_column(GTK_TREE_VIEW(list), number_of_columns) != NULL) number_of_columns++; for(i = number_of_columns - 1; i >= 0; i--) gtk_tree_view_remove_column( GTK_TREE_VIEW(list), gtk_tree_view_get_column(GTK_TREE_VIEW(list), i)); } /** Return number of given column or -1 if not found or on error. @param col The column pointer. @return The index of the column within the treeview. */ gint treeview_helper_get_col_number_column (GtkTreeViewColumn *col) { #ifdef DEBUG printf("treeview_helper_get_col_number_column\n"); #endif GList *cols; gint num; g_return_val_if_fail ( col != NULL, -1 ); g_return_val_if_fail ( col->tree_view != NULL, -1 ); cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(col->tree_view)); num = g_list_index(cols, (gpointer) col); g_list_free(cols); return num; } /** Return the row index of the iter in the model. Since we only work with flat models (no children), the path is a single number. */ gint treeview_helper_iter_get_row(GtkTreeModel *model, GtkTreeIter *iter) { #ifdef DEBUG printf("treeview_helper_iter_get_row\n"); #endif gchar *path = gtk_tree_model_get_string_from_iter(model, iter); gint row_idx = (gint)g_ascii_strtod(path, NULL); g_free(path); return row_idx; } /** Return a cell renderer with font name set according to the font option. */ GtkCellRenderer* treeview_helper_cell_renderer_text_new(void) { GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); if(strlen(opt_str("string_opt_font_name")) > 0) g_object_set(renderer, "font", opt_str("string_opt_font_name"), NULL); return renderer; } /** Return the filename of the icon going with the LiveGameEvent with type event_type. @param event_type The type of the event. @return A filename specifying a pixmap. */ gchar* treeview_helper_live_game_icon(gint event_type) { #ifdef DEBUG printf("treeview_helper_live_game_icon\n"); #endif #ifdef DEBUG printf("treeview_helper_live_game_icon\n"); #endif if(event_type == LIVE_GAME_EVENT_START_MATCH || event_type == LIVE_GAME_EVENT_END_MATCH || event_type == LIVE_GAME_EVENT_HALF_TIME || event_type == LIVE_GAME_EVENT_EXTRA_TIME || event_type == LIVE_GAME_EVENT_PENALTIES) return const_app("string_live_game_event_start_match_icon"); else if(event_type == LIVE_GAME_EVENT_LOST_POSSESSION) return const_app("string_live_game_event_lost_possession_icon"); else if(event_type == LIVE_GAME_EVENT_PENALTY) return const_app("string_live_game_event_penalty_icon"); else if(event_type == LIVE_GAME_EVENT_SCORING_CHANCE || event_type == LIVE_GAME_EVENT_FREE_KICK) return const_app("string_live_game_event_scoring_chance_icon"); else if(event_type == LIVE_GAME_EVENT_HEADER) return const_app("string_live_game_event_header_icon"); else if(event_type == LIVE_GAME_EVENT_GOAL) return const_app("string_live_game_event_goal_icon"); else if(event_type == LIVE_GAME_EVENT_OWN_GOAL) return const_app("string_live_game_event_own_goal_icon"); else if(event_type == LIVE_GAME_EVENT_POST) return const_app("string_live_game_event_post_icon"); else if(event_type == LIVE_GAME_EVENT_CROSS_BAR) return const_app("string_live_game_event_cross_bar_icon"); else if(event_type == LIVE_GAME_EVENT_SAVE) return const_app("string_live_game_event_save_icon"); else if(event_type == LIVE_GAME_EVENT_MISS) return const_app("string_live_game_event_miss_icon"); else if(event_type == LIVE_GAME_EVENT_FOUL) return const_app("string_live_game_event_foul_icon"); else if(event_type == LIVE_GAME_EVENT_FOUL_YELLOW) return const_app("string_live_game_event_foul_yellow_icon"); else if(event_type == LIVE_GAME_EVENT_SEND_OFF || event_type == LIVE_GAME_EVENT_FOUL_RED || event_type == LIVE_GAME_EVENT_FOUL_RED_INJURY) return const_app("string_live_game_event_send_off_icon"); else if(event_type == LIVE_GAME_EVENT_INJURY) return const_app("string_live_game_event_injury_icon"); else if(event_type == LIVE_GAME_EVENT_TEMP_INJURY) return const_app("string_live_game_event_temp_injury_icon"); else if(event_type == LIVE_GAME_EVENT_STADIUM_BREAKDOWN) return const_app("string_live_game_event_stadium_breakdown_icon"); else if(event_type == LIVE_GAME_EVENT_STADIUM_FIRE) return const_app("string_live_game_event_stadium_fire_icon"); else if(event_type == LIVE_GAME_EVENT_STADIUM_RIOTS) return const_app("string_live_game_event_stadium_riots_icon"); else if(event_type == LIVE_GAME_EVENT_SUBSTITUTION) return const_app("string_live_game_event_substitution_icon"); else if(event_type == LIVE_GAME_EVENT_STRUCTURE_CHANGE) return const_app("string_live_game_event_structure_change_icon"); else if(event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND) return const_app("string_game_gui_style_all_out_defend_icon"); else if(event_type == LIVE_GAME_EVENT_STYLE_CHANGE_DEFEND) return const_app("string_game_gui_style_defend_icon"); else if(event_type == LIVE_GAME_EVENT_STYLE_CHANGE_BALANCED) return const_app("string_game_gui_style_balanced_icon"); else if(event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ATTACK) return const_app("string_game_gui_style_attack_icon"); else if(event_type == LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_ATTACK) return const_app("string_game_gui_style_all_out_attack_icon"); else if(event_type == LIVE_GAME_EVENT_BOOST_CHANGE_ANTI) return const_app("string_game_gui_boost_anti_icon"); else if(event_type == LIVE_GAME_EVENT_BOOST_CHANGE_OFF) return const_app("string_game_gui_boost_off_icon"); else if(event_type == LIVE_GAME_EVENT_BOOST_CHANGE_ON) return const_app("string_game_gui_boost_on_icon"); else return ""; } /** Return the appropriate symbol name from the constants for the user history type. */ gchar* treeview_helper_get_user_history_icon(gint history_type) { #ifdef DEBUG printf("treeview_helper_get_user_history_icon\n"); #endif #ifdef DEBUG printf("treeview_helper_get_user_history_icon\n"); #endif switch(history_type) { default: debug_print_message("treeview_helper_get_user_history_icon: unknown type %d.\n", history_type); return NULL; case USER_HISTORY_START_GAME: return const_app("string_treeview_helper_user_history_symbol_start_game_icon"); case USER_HISTORY_FIRE_FINANCE: return const_app("string_treeview_helper_user_history_symbol_fire_finances_icon"); case USER_HISTORY_FIRE_FAILURE: return const_app("string_treeview_helper_user_history_symbol_fire_failure_icon"); case USER_HISTORY_JOB_OFFER_ACCEPTED: return const_app("string_treeview_helper_user_history_symbol_job_offer_accepted_icon"); case USER_HISTORY_END_SEASON: return const_app("string_treeview_helper_user_history_symbol_end_season_icon"); case USER_HISTORY_WIN_FINAL: return const_app("string_treeview_helper_user_history_symbol_win_final_icon"); case USER_HISTORY_LOSE_FINAL: return const_app("string_treeview_helper_user_history_symbol_lose_final_icon"); case USER_HISTORY_PROMOTED: return const_app("string_treeview_helper_user_history_symbol_promoted_icon"); case USER_HISTORY_RELEGATED: return const_app("string_treeview_helper_user_history_symbol_relegated_icon"); case USER_HISTORY_REACH_CUP_ROUND: return const_app("string_treeview_helper_user_history_symbol_reach_cup_round_icon"); case USER_HISTORY_CHAMPION: return const_app("string_treeview_helper_user_history_symbol_champion_icon"); } return NULL; } /** Return a new pixbuf created from the specified filename. @param filename Name of a pixmap file located in one of the support directories. @return A new pixbuf or NULL on error. */ GdkPixbuf* treeview_helper_pixbuf_from_filename(gchar *filename) { GdkPixbuf *symbol = NULL; GError *error = NULL; gchar *symbol_file = NULL; if(filename != NULL && strlen(filename) != 0) { symbol_file = file_find_support_file(filename, FALSE); if(symbol_file != NULL) { symbol = gdk_pixbuf_new_from_file(symbol_file, &error); misc_print_error(&error, FALSE); g_free(symbol_file); } } else symbol = NULL; return symbol; } /** Unref an object if non-null (mostly it's a pixbuf added to a treeview).*/ void treeview_helper_unref(GObject *object) { #ifdef DEBUG printf("treeview_helper_unref\n"); #endif if(object == NULL) return; g_object_unref(object); } /** Insert an icon into the liststore at the given iter and column. @param icon_name The filename of the icon. */ void treeview_helper_insert_icon(GtkTreeModel *ls, GtkTreeIter *iter, gint column_nr, gchar *icon_name) { #ifdef DEBUG printf("treeview_helper_insert_icon\n"); #endif GdkPixbuf *symbol = treeview_helper_pixbuf_from_filename(icon_name); if (GTK_IS_LIST_STORE (ls)) gtk_list_store_set(GTK_LIST_STORE (ls), iter, column_nr, symbol, -1); else if (GTK_IS_TREE_STORE(ls)) gtk_tree_store_set(GTK_TREE_STORE (ls), iter, column_nr, symbol, -1); treeview_helper_unref(G_OBJECT(symbol)); } /** Function comparing two teams in a team list treeview. */ gint treeview_helper_team_compare(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_team_compare\n"); #endif gint type = GPOINTER_TO_INT(user_data); Team *tm1, *tm2; gint return_value = 0; gtk_tree_model_get(model, a, 4, &tm1, -1); gtk_tree_model_get(model, b, 4, &tm2, -1); switch(type) { default: debug_print_message("treeview_team_compare: unknown type %d.\n", type); break; case TEAM_COMPARE_AV_SKILL: return_value = misc_float_compare(team_get_average_skill(tm1, FALSE), team_get_average_skill(tm2, FALSE)); break; } return return_value; } /** Compare two players in a treeview. */ gint treeview_helper_player_compare(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_player_compare\n"); #endif gint type = GPOINTER_TO_INT(user_data); Player *pl1, *pl2; gint return_value = 0; gtk_tree_model_get(model, a, 4, &pl1, -1); gtk_tree_model_get(model, b, 4, &pl2, -1); if(pl1 == NULL && pl2 == NULL) return_value = 0; else if(pl1 == NULL) return_value = 1; else if(pl2 == NULL) return_value = -1; else { switch(type) { default: debug_print_message("treeview_player_compare: unknown type %d.\n", type); break; case PLAYER_LIST_ATTRIBUTE_POS: return_value = misc_int_compare(pl1->pos, pl2->pos); break; case PLAYER_LIST_ATTRIBUTE_GOALS: if(pl1->pos == 0 && pl2->pos == 0) return_value = misc_int_compare(player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS), player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS)); else if(pl1->pos == 0 || pl2->pos == 0) return_value = (pl1->pos == 0) ? 1 : -1; else return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GOALS), player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GOALS)); break; case PLAYER_LIST_ATTRIBUTE_SHOTS: return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_SHOTS), player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_SHOTS)); break; case PLAYER_LIST_ATTRIBUTE_GAMES: return_value = misc_int_compare(player_games_goals_get(pl1, pl1->team->clid, PLAYER_VALUE_GAMES), player_games_goals_get(pl2, pl2->team->clid, PLAYER_VALUE_GAMES)); break; case PLAYER_LIST_ATTRIBUTE_SKILL: return_value = misc_float_compare(pl1->skill, pl2->skill); break; case PLAYER_LIST_ATTRIBUTE_AGE: return_value = misc_float_compare(pl1->age, pl2->age); break; case PLAYER_LIST_ATTRIBUTE_ETAL: return_value = misc_float_compare(pl1->etal[current_user.scout % 10], pl2->etal[current_user.scout % 10]); break; case PLAYER_LIST_ATTRIBUTE_VALUE: return_value = misc_int_compare(pl1->value, pl2->value); break; case PLAYER_LIST_ATTRIBUTE_WAGE: return_value = misc_int_compare(pl1->wage, pl2->wage); break; } } return return_value; } /** Find out whether the team given by the index in the league table would participate in an international cup and set the colours accordingly. */ gboolean treeview_helper_get_table_element_colour_cups(const League *league, gint table_index, gint idx, gchar **colour_bg) { #ifdef DEBUG printf("treeview_helper_get_table_element_colour_cups\n"); #endif gint i, j, k; const CupRound *cup_round = NULL; gint league_idx = league_cup_get_index_from_clid(league->id) + 1; gchar buf[SMALL]; gchar *cup_highlight_colour = NULL; sprintf(buf, "LEAGUE%d", league_idx); for(i=0;ilen;i++) { cup_highlight_colour = cup_get_highlight_colour(&cp(i)); if(cup_highlight_colour != NULL) for(k=0;klen;k++) { cup_round = &g_array_index(cp(i).rounds, CupRound, k); for(j=0;jchoose_teams->len;j++) if((strcmp(g_array_index(cup_round->choose_teams, CupChooseTeam, j).sid, buf) == 0 || (strcmp(g_array_index(cup_round->choose_teams, CupChooseTeam, j).sid, league->sid) == 0 && !g_array_index(cup_round->choose_teams, CupChooseTeam, j).generate)) && g_array_index(cup_round->choose_teams, CupChooseTeam, j).from_table == table_index) { if((idx + 1 >= g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx && idx + 1 <= g_array_index(cup_round->choose_teams, CupChooseTeam, j).end_idx && g_array_index(cup_round->choose_teams, CupChooseTeam, j).randomly) || (idx + 1 >= g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx && idx + 1 < g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx + g_array_index(cup_round->choose_teams, CupChooseTeam, j).number_of_teams && !g_array_index(cup_round->choose_teams, CupChooseTeam, j).randomly)) { *colour_bg = cup_highlight_colour; return TRUE; } } } } return FALSE; } /** Find out whether the team given would participate in an international cup and set the colour accordingly. */ gboolean treeview_helper_get_table_element_colour_cups_cup(const Cup *cup, const Team *tm, gchar **colour_bg) { #ifdef DEBUG printf("treeview_helper_get_table_element_colour_cups_cup\n"); #endif gint i, j, k, idx = -1; const CupRound *cup_round = NULL; gchar *cup_highlight_colour = NULL; GPtrArray *teams = cup_get_teams_sorted(cup); for(i=0;ilen;i++) if((Team*)g_ptr_array_index(teams, i) == tm) { idx = i; break; } for(i=0;ilen;i++) { cup_highlight_colour = cup_get_highlight_colour(&cp(i)); if(cup_highlight_colour != NULL) for(k=0;klen;k++) { cup_round = &g_array_index(cp(i).rounds, CupRound, k); for(j=0;jchoose_teams->len;j++) if(strcmp(g_array_index( cup_round->choose_teams, CupChooseTeam, j).sid, cup->sid) == 0) { if((idx + 1 >= g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx && idx + 1 <= g_array_index(cup_round->choose_teams, CupChooseTeam, j).end_idx && g_array_index(cup_round->choose_teams, CupChooseTeam, j).randomly) || (idx + 1 >= g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx && idx + 1 < g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx + g_array_index(cup_round->choose_teams, CupChooseTeam, j).number_of_teams && !g_array_index(cup_round->choose_teams, CupChooseTeam, j).randomly)) { *colour_bg = cup_highlight_colour; return TRUE; } } } } return FALSE; } /** Get the colours for a team in the tables. @param table The table pointer. @param idx The index of the element we're looking at. @param user Whether to take into account user colours. */ void treeview_helper_get_table_element_colours(const Table *table, gint table_index, gint idx, gchar **colour_fg, gchar **colour_bg, gboolean user) { #ifdef DEBUG printf("treeview_helper_get_table_element_colours\n"); #endif gint i; const TableElement *elem = &g_array_index(table->elements, TableElement, idx); const PromRelElement *pelem = NULL; const League *league = NULL; GPtrArray *cup_advance = NULL; *colour_fg = const_app("string_treeview_helper_color_default_foreground"); *colour_bg = const_app("string_treeview_helper_color_default_background"); if(user && elem->team == current_user.tm) { *colour_fg = const_app("string_treeview_current_user_fg"); *colour_bg = const_app("string_treeview_current_user_bg"); } else if(user && team_is_user(elem->team) != -1) { *colour_fg = const_app("string_treeview_user_fg"); *colour_bg = const_app("string_treeview_user_bg"); } else if(table->clid < ID_CUP_START) { league = league_from_clid(table->clid); if(idx + 1 == 1) *colour_bg = const_app("string_treeview_table_first"); else { if(!treeview_helper_get_table_element_colour_cups(league, table_index, idx, colour_bg)) { for(i=0;iprom_rel.elements->len;i++) { pelem = &g_array_index(league_from_clid(table->clid)->prom_rel.elements, PromRelElement, i); if(pelem->ranks[0] <= idx + 1 && idx + 1 <= pelem->ranks[1] && pelem->from_table == table_index) { if(pelem->type == PROM_REL_PROMOTION) *colour_bg = const_app("string_treeview_table_promotion"); else if(pelem->type == PROM_REL_RELEGATION) *colour_bg = const_app("string_treeview_table_relegation"); } } } } } else { cup_advance = fixture_get_round_robin_advance(cup_from_clid(table->clid), table->round); for(i=0;ilen;i++) if((Team*)g_ptr_array_index(cup_advance, i) == elem->team) { *colour_bg = const_app("string_treeview_table_promotion"); free_g_ptr_array(&cup_advance); return; } free_g_ptr_array(&cup_advance); treeview_helper_get_table_element_colour_cups_cup( cup_from_clid(table->clid), elem->team, colour_bg); } } /** Set the char pointers to the constant determining the background and foreground colours of user entries in treeviews if the team is a user team. */ void treeview_helper_set_user_colours(const gchar *team_name, gchar **colour_bg, gchar **colour_fg) { #ifdef DEBUG printf("treeview_helper_set_user_colours\n"); #endif if(strcmp(team_name, current_user.tm->name) == 0) { *colour_fg = const_app("string_treeview_current_user_fg"); *colour_bg = const_app("string_treeview_current_user_bg"); } else if(team_name_is_user(team_name) != -1) { *colour_fg = const_app("string_treeview_user_fg"); *colour_bg = const_app("string_treeview_user_bg"); } else { *colour_fg = const_app("string_treeview_helper_color_default_foreground"); *colour_bg = const_app("string_treeview_helper_color_default_background"); } } /** Determine the attributes shown in the player list depending on the scout quality. */ PlayerListAttribute treeview_helper_get_attributes_from_scout(gint scout) { gint i; PlayerListAttribute attribute; for(i=0;iname, NULL); else if(column == 4) { if(stat0 == STATUS_TEAM_SELECTION) strcpy(buf, ""); else sprintf(buf, "%.1f", team_get_average_skill((Team*)team_pointer, FALSE)); g_object_set(renderer, "text", buf, NULL); } else debug_print_message("treeview_helper_team_selection: unknown column: %d\n", column); } /** Render an integer. This is only so that we know when to draw nothing. */ void treeview_helper_int_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_int_to_cell\n"); #endif gint column = treeview_helper_get_col_number_column(col); gint value; gchar buf[SMALL]; gtk_tree_model_get(model, iter, column, &value, -1); if(value == const_int("int_treeview_helper_int_empty")) strcpy(buf, ""); else sprintf(buf, "%d", value); g_object_set(renderer, "text", buf, NULL); } /** Render a cell in the player info view. */ void treeview_helper_player_ext_info_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_player_ext_info_to_cell\n"); #endif gint column = treeview_helper_get_col_number_column(col); gint row_idx = treeview_helper_iter_get_row(model, iter); const Player *pl; g_object_set(renderer, "text", "", "foreground", const_app("string_treeview_helper_color_default_foreground"), "background", const_app("string_treeview_helper_color_default_background"), NULL); gtk_tree_model_get(model, iter, column, &pl, -1); if(pl == NULL) return; switch(row_idx) { default: debug_print_message("treeview_helper_player_ext_info_to_cell: unknown row index %d\n", row_idx); break; case PLAYER_INFO_ATTRIBUTE_NAME: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_NAME)); break; case PLAYER_INFO_ATTRIBUTE_POS: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_POS)); break; case PLAYER_INFO_ATTRIBUTE_CPOS: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CPOS)); break; case PLAYER_INFO_ATTRIBUTE_SKILL: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_SKILL)); break; case PLAYER_INFO_ATTRIBUTE_CSKILL: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CSKILL)); break; case PLAYER_INFO_ATTRIBUTE_FITNESS: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_FITNESS)); break; case PLAYER_INFO_ATTRIBUTE_ETAL: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_ETAL)); break; case PLAYER_INFO_ATTRIBUTE_AGE: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_AGE)); break; case PLAYER_INFO_ATTRIBUTE_VALUE: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_VALUE)); break; case PLAYER_INFO_ATTRIBUTE_WAGE: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_WAGE)); break; case PLAYER_INFO_ATTRIBUTE_CONTRACT: treeview_helper_player_to_cell(col, renderer, model, iter, GINT_TO_POINTER(PLAYER_LIST_ATTRIBUTE_CONTRACT)); break; case PLAYER_INFO_ATTRIBUTE_HEALTH: treeview_helper_player_info_health_to_cell(renderer, pl); break; case PLAYER_INFO_ATTRIBUTE_GAMES_GOALS: treeview_helper_player_info_games_goals_to_cell(renderer, pl->games_goals); break; case PLAYER_INFO_ATTRIBUTE_YELLOW_CARDS: treeview_helper_player_info_yellow_to_cell(renderer, pl->cards); break; case PLAYER_INFO_ATTRIBUTE_BANNED: treeview_helper_player_info_banned_to_cell(renderer, pl->cards); break; case PLAYER_INFO_ATTRIBUTE_STREAK: treeview_helper_player_info_streak_to_cell(renderer, pl->streak); break; case PLAYER_INFO_ATTRIBUTE_CAREER: treeview_helper_player_info_career_to_cell(renderer, pl); break; case PLAYER_INFO_ATTRIBUTE_OFFERS: if(pl->offers > 0) g_object_set(renderer, "text", _("Player doesn't negotiate anymore"), NULL); else g_object_set(renderer, "text", _("Player accepts new offers"), NULL); break; } } void treeview_helper_player_info_career_to_cell(GtkCellRenderer *renderer, const Player *pl) { #ifdef DEBUG printf("treeview_helper_player_info_career_to_cell\n"); #endif gint i; gfloat goals_game = 0, shot_perc = 0; gchar *titles[PLAYER_VALUE_END] = {_("Games"), _("Goals"), _("Shots"), _("Yellows"), _("Reds")}; gchar buf[SMALL], buf2[SMALL], format[SMALL]; strcpy(buf, ""); for(i=0;icareer[i]); strcat(buf, buf2); } if(pl->career[PLAYER_VALUE_GAMES] > 0) goals_game = (gfloat)pl->career[PLAYER_VALUE_GOALS] / (gfloat)pl->career[PLAYER_VALUE_GAMES]; if(pl->pos == PLAYER_POS_GOALIE) { strcpy(format, _("\nGoals/Game %.1f Save %% %.1f")); if(pl->career[PLAYER_VALUE_SHOTS] > 0) shot_perc = 100 - ((gfloat)pl->career[PLAYER_VALUE_GOALS] * 100 / (gfloat)pl->career[PLAYER_VALUE_SHOTS]); } else { strcpy(format, _("\nGoals/Game %.1f Shot %% %.1f")); if(pl->career[PLAYER_VALUE_SHOTS] > 0) shot_perc = (gfloat)pl->career[PLAYER_VALUE_GOALS] * 100 / (gfloat)pl->career[PLAYER_VALUE_SHOTS]; } sprintf(buf2, format, goals_game, shot_perc); strcat(buf, buf2); g_object_set(renderer, "text", buf, NULL); } void treeview_helper_player_info_banned_to_cell(GtkCellRenderer *renderer, const GArray *cards) { #ifdef DEBUG printf("treeview_helper_player_info_banned_to_cell\n"); #endif gint i; gchar buf[SMALL], buf2[SMALL]; strcpy(buf, ""); for(i=0;ilen;i++) if(g_array_index(cards, PlayerCard, i).red > 0) { /* Ban info of a player in the format: 'Cup/league name: Number of weeks banned' */ sprintf(buf2, _("%s: %d weeks\n"), league_cup_get_name_string(g_array_index(cards, PlayerCard, i).clid), g_array_index(cards, PlayerCard, i).red); strcat(buf, buf2); } g_object_set(renderer, "text", buf, NULL); if(strlen(buf) > 0) g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_banned"), NULL); } void treeview_helper_player_info_yellow_to_cell(GtkCellRenderer *renderer, const GArray *cards) { #ifdef DEBUG printf("treeview_helper_player_info_yellow_to_cell\n"); #endif gint i; gint yellow_red = -1; gchar buf[SMALL], buf2[SMALL]; strcpy(buf, ""); for(i=0;ilen;i++) { yellow_red = league_cup_get_yellow_red(g_array_index(cards, PlayerCard, i).clid); if(g_array_index(cards, PlayerCard, i).yellow > 0) { if(yellow_red < 1000) { sprintf(buf2, "%s: %d (%d)\n", league_cup_get_name_string(g_array_index(cards, PlayerCard, i).clid), g_array_index(cards, PlayerCard, i).yellow, yellow_red); } else /* Yellow cards of a player in a cup/league. No limit means there isn't a limit after which the player gets banned for a match automatically. */ sprintf(buf2, _("%s: %d (no limit)\n"), league_cup_get_name_string(g_array_index(cards, PlayerCard, i).clid), g_array_index(cards, PlayerCard, i).yellow); strcat(buf, buf2); } } g_object_set(renderer, "text", buf, NULL); } void treeview_helper_player_info_games_goals_to_cell(GtkCellRenderer *renderer, const GArray *games_goals) { #ifdef DEBUG printf("treeview_helper_player_info_games_goals_to_cell\n"); #endif gint i; gchar buf[SMALL], buf2[SMALL]; strcpy(buf, ""); for(i=0;ilen;i++) { sprintf(buf2, "%s: %d/%d\n", league_cup_get_name_string(g_array_index(games_goals, PlayerGamesGoals, i).clid), g_array_index(games_goals, PlayerGamesGoals, i).games, g_array_index(games_goals, PlayerGamesGoals, i).goals); strcat(buf, buf2); } g_object_set(renderer, "text", buf, NULL); } void treeview_helper_player_info_streak_to_cell(GtkCellRenderer *renderer, gint streak) { #ifdef DEBUG printf("treeview_helper_player_info_streak_to_cell\n"); #endif if(streak == PLAYER_STREAK_HOT) g_object_set(renderer, "text", _("The player is on a hot streak"), NULL); else if(streak == PLAYER_STREAK_COLD) g_object_set(renderer, "text", _("The player is on a cold streak"), NULL); } void treeview_helper_player_info_health_to_cell(GtkCellRenderer *renderer, const Player *pl) { #ifdef DEBUG printf("treeview_helper_player_info_health_to_cell\n"); #endif gchar buf[SMALL]; if(pl->health != 0) { sprintf(buf, _("%s (expected recovery in %d weeks)"), player_injury_to_char(pl->health), pl->recovery); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_injury"), NULL); } else /* Player health: ok. */ strcpy(buf, _("OK")); g_object_set(renderer, "text", buf, NULL); } /** Render a player list cell. */ void treeview_helper_player_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_player_to_cell\n"); #endif gint column = treeview_helper_get_col_number_column(col); gint attribute = GPOINTER_TO_INT(user_data), idx = -1; gchar buf[SMALL]; const Player *pl; g_object_set(renderer, "text", "", "foreground", const_app("string_treeview_helper_color_default_foreground"), "background", const_app("string_treeview_helper_color_default_background"), NULL); strcpy(buf, ""); gtk_tree_model_get(model, iter, column, &pl, -1); if(pl == NULL) return; switch(attribute) { default: debug_print_message("treeview_helper_player_to_cell: unknown attribute %d.\n", attribute); break; case PLAYER_LIST_ATTRIBUTE_NAME: treeview_helper_player_name_to_cell(renderer, buf, pl); break; case PLAYER_LIST_ATTRIBUTE_CPOS: treeview_helper_player_pos_to_cell(renderer, buf, pl, PLAYER_LIST_ATTRIBUTE_CPOS); break; case PLAYER_LIST_ATTRIBUTE_POS: treeview_helper_player_pos_to_cell(renderer, buf, pl, PLAYER_LIST_ATTRIBUTE_POS); break; case PLAYER_LIST_ATTRIBUTE_CSKILL: treeview_helper_player_cskill_to_cell(renderer, buf, pl); break; case PLAYER_LIST_ATTRIBUTE_SKILL: sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->skill); break; case PLAYER_LIST_ATTRIBUTE_FITNESS: treeview_helper_player_fitness_to_cell(renderer, buf, pl->fitness); break; case PLAYER_LIST_ATTRIBUTE_GAMES: treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_GAMES); break; case PLAYER_LIST_ATTRIBUTE_GOALS: treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_GOALS); break; case PLAYER_LIST_ATTRIBUTE_SHOTS: treeview_helper_player_games_goals_to_cell(buf, pl, PLAYER_VALUE_SHOTS); break; case PLAYER_LIST_ATTRIBUTE_STATUS: treeview_helper_player_status_to_cell(NULL, renderer, NULL, NULL, (gpointer)pl); break; case PLAYER_LIST_ATTRIBUTE_CARDS: treeview_helper_player_cards_to_cell(buf, pl); break; case PLAYER_LIST_ATTRIBUTE_AGE: sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->age); break; case PLAYER_LIST_ATTRIBUTE_ETAL: sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), pl->etal[current_user.scout % 10]); break; case PLAYER_LIST_ATTRIBUTE_VALUE: misc_print_grouped_int(pl->value, buf); break; case PLAYER_LIST_ATTRIBUTE_WAGE: misc_print_grouped_int(pl->wage, buf); break; case PLAYER_LIST_ATTRIBUTE_CONTRACT: treeview_helper_player_contract_to_cell(renderer, buf, pl->contract); break; case PLAYER_LIST_ATTRIBUTE_TEAM: if(debug < 50) sprintf(buf, "%s", pl->team->name); else sprintf(buf, "%s (%s)", pl->team->name, pl->team->strategy_sid); break; case PLAYER_LIST_ATTRIBUTE_LEAGUE_CUP: idx = job_team_is_on_list(pl->team->id); strcpy(buf, (idx == -1) ? league_cup_get_name_string(pl->team->clid) : g_array_index(jobs, Job, idx).league_name); break; } if(attribute != PLAYER_LIST_ATTRIBUTE_STATUS) g_object_set(renderer, "text", buf, NULL); } /** Render a cell of a player name. */ void treeview_helper_player_name_to_cell(GtkCellRenderer *renderer, gchar *buf, const Player *pl) { #ifdef DEBUG printf("treeview_helper_player_name_to_cell\n"); #endif const TransferOffer *off = transfer_player_has_offer(pl); const gchar *colour_fg = const_app("string_treeview_helper_color_default_foreground"), *colour_bg = const_app("string_treeview_helper_color_default_background"); strcpy(buf, pl->name); if(pl->team == current_user.tm && opt_user_int("int_opt_user_penalty_shooter") == pl->id) /* Penalty shooter. */ strcat(buf, _(" (P)")); if(off != NULL) { if(pl->team == current_user.tm) { colour_bg = const_app("string_treeview_helper_color_transfer_offer_user_bg"); colour_fg = const_app("string_treeview_helper_color_transfer_offer_user_fg"); } else if(off->tm == current_user.tm) { colour_bg = const_app("string_treeview_helper_color_transfer_offer_accepted_current_bg"); colour_fg = const_app("string_treeview_helper_color_transfer_offer_accepted_current_fg"); } else { colour_bg = const_app("string_treeview_helper_color_transfer_offer_accepted_other_bg"); colour_fg = const_app("string_treeview_helper_color_transfer_offer_accepted_other_fg"); } } else if(query_transfer_current_team_offer(pl)) { colour_bg = const_app("string_treeview_helper_color_transfer_offer_bg"); colour_fg = const_app("string_treeview_helper_color_transfer_offer_fg"); } g_object_set(renderer, "background", colour_bg, NULL); g_object_set(renderer, "foreground", colour_fg, NULL); } /** Render a cell of a player contract. @param renderer The cell renderer. @param buf The string the cell will contain. @param contract_time The contract time in weeks. */ void treeview_helper_player_contract_to_cell(GtkCellRenderer *renderer, gchar *buf, gfloat contract_time) { #ifdef DEBUG printf("treeview_helper_player_contract_to_cell\n"); #endif sprintf(buf, "%.*f", 1 + opt_int("int_opt_player_precision"), contract_time); if(contract_time < const_float("float_treeview_helper_limit_player_contract_below3")) g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_contract_below3"), NULL); else if(contract_time < const_float("float_treeview_helper_limit_player_contract_below2")) g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_contract_below2"), NULL); else if(contract_time < const_float("float_treeview_helper_limit_player_contract_below1")) g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_contract_below1"), NULL); else g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_contract_normal"), NULL); } /** Render a cell of player yellow cards. @param buf The string the cell will contain. @param pl The pointer to the player. */ void treeview_helper_player_cards_to_cell(gchar *buf, const Player *pl) { #ifdef DEBUG printf("treeview_helper_player_cards_to_cell\n"); #endif gint yellow; Fixture *fix = team_get_fixture(pl->team, FALSE); if(fix == NULL) { if(pl->cards->len == 0) strcpy(buf, "0"); else { if(opt_user_int("int_opt_user_show_overall")) sprintf(buf, "%d(%d)", g_array_index(pl->cards, PlayerCard, 0).yellow, player_all_cards(pl)); else sprintf(buf, "%d", g_array_index(pl->cards, PlayerCard, 0).yellow); } return; } yellow = player_card_get(pl, fix->clid, PLAYER_VALUE_CARD_YELLOW); if(yellow != -1) { if(opt_user_int("int_opt_user_show_overall")) sprintf(buf, "%d(%d)", yellow, player_all_cards(pl)); else sprintf(buf, "%d", yellow); } else strcpy(buf, "0"); } /** Render a cell of player status. @param render The cell renderer. @param buf The string the cell will contain. @param pl The pointer to the player. */ void treeview_helper_player_status_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_player_status_to_cell\n"); #endif const Player *pl = NULL; gchar buf[SMALL]; gint ban = 0, column = -1; GdkPixbuf *symbol = NULL; gboolean render_icon = (user_data == NULL); if(render_icon) { column = treeview_helper_get_col_number_column(col); gtk_tree_model_get(model, iter, column, &pl, -1); } else pl = (const Player*)user_data; if(pl == NULL) { if(render_icon) g_object_set(renderer, "pixbuf", NULL, NULL); return; } ban = player_is_banned(pl); if(pl->health != PLAYER_INJURY_NONE) { /* Injury info. */ if(!render_icon) { sprintf(buf, _("INJ(%d)"), pl->recovery); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_injury"), NULL); } else symbol = treeview_helper_pixbuf_from_filename( const_app("string_treeview_helper_player_status_injury")); } else if(ban > 0) { /* Red card info (how long the player is banned). */ if(!render_icon) { sprintf(buf, _("BAN(%d)"), ban); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_banned"), NULL); } else symbol = treeview_helper_pixbuf_from_filename( const_app("string_treeview_helper_player_status_ban")); } else { if(!render_icon) /* Player status: ok. */ strcpy(buf, _("OK")); else { if(ban == -1) symbol = treeview_helper_pixbuf_from_filename( const_app("string_treeview_helper_player_status_yellow_danger")); else if(pl->streak == PLAYER_STREAK_HOT) symbol = treeview_helper_pixbuf_from_filename( const_app("string_treeview_helper_player_status_hot_streak")); else if(pl->streak == PLAYER_STREAK_COLD) symbol = treeview_helper_pixbuf_from_filename( const_app("string_treeview_helper_player_status_cold_streak")); else symbol = treeview_helper_pixbuf_from_filename( const_app("string_treeview_helper_player_status_ok")); } } if(render_icon) { g_object_set(renderer, "pixbuf", symbol, NULL); treeview_helper_unref(G_OBJECT(symbol)); } else g_object_set(renderer, "text", buf, NULL); } /** Render a cell of player games or goals. @param buf The string the cell will contain. @param pl The pointer to the player. @param goals Whether we render games or goals. */ void treeview_helper_player_games_goals_to_cell(gchar *buf, const Player *pl, gint type) { #ifdef DEBUG printf("treeview_helper_player_games_goals_to_cell\n"); #endif Fixture *fix = team_get_fixture(pl->team, FALSE); gint clid = pl->team->clid; if(pl->games_goals->len == 0) { strcpy(buf, "0"); return; } if(fix != NULL) clid = fix->clid; if(opt_user_int("int_opt_user_show_overall")) sprintf(buf, "%d(%d)", player_games_goals_get(pl, clid, type), player_all_games_goals(pl, type)); else sprintf(buf, "%d", player_games_goals_get(pl, clid, type)); } /** Render a cell of player fitness. @param render The cell renderer. @param buf The string the cell will contain. @param fitness The fitness of the player. */ void treeview_helper_player_fitness_to_cell(GtkCellRenderer *renderer, gchar *buf, gfloat fitness) { #ifdef DEBUG printf("treeview_helper_player_fitness_to_cell\n"); #endif sprintf(buf, "%.*f%%", opt_int("int_opt_player_precision"), fitness * 100); if(fitness < const_float("float_treeview_helper_limit_player_fitness_below3")) g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_fitness_below3"), NULL); else if(fitness < const_float("float_treeview_helper_limit_player_fitness_below2")) g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_fitness_below2"), NULL); else if(fitness < const_float("float_treeview_helper_limit_player_fitness_below2")) g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_fitness_below2"), NULL); else g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_player_fitness_normal"), NULL); } /** Render a cell of player position or cposition. @param render The cell renderer. @param buf The string the cell will contain. @param pos The position of the player. */ void treeview_helper_player_pos_to_cell(GtkCellRenderer *renderer, gchar *buf, const Player *pl, gint type) { #ifdef DEBUG printf("treeview_helper_player_pos_to_cell\n"); #endif gint pos = (type == PLAYER_LIST_ATTRIBUTE_POS) ? pl->pos : pl->cpos; switch(pos) { default: /* Goalie */ strcpy(buf, _("G")); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_pos_goalie_bg"), "foreground", const_app("string_treeview_helper_color_player_pos_goalie_fg"), NULL); break; case PLAYER_POS_DEFENDER: /* Defender */ strcpy(buf, _("D")); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_pos_defender_bg"), "foreground", const_app("string_treeview_helper_color_player_pos_defender_fg"), NULL); break; case PLAYER_POS_MIDFIELDER: /* Midfielder */ strcpy(buf, _("M")); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_pos_midfielder_bg"), "foreground", const_app("string_treeview_helper_color_player_pos_midfielder_fg"), NULL); break; case PLAYER_POS_FORWARD: /* Forward */ strcpy(buf, _("F")); g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_pos_forward_bg"), "foreground", const_app("string_treeview_helper_color_player_pos_forward_fg"), NULL); break; } if(pl->cskill == 0) g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_pos_disabled_bg"), "foreground", const_app("string_treeview_helper_color_player_pos_disabled_fg"), NULL); } /** Render a cell of player cskill. @param render The cell renderer. @param buf The string the cell will contain. @param pl The pointer to the player. */ void treeview_helper_player_cskill_to_cell(GtkCellRenderer *renderer, gchar *buf, const Player *pl) { #ifdef DEBUG printf("treeview_helper_player_cskill_to_cell\n"); #endif sprintf(buf, "%.*f", opt_int("int_opt_player_precision"), player_get_game_skill(pl, FALSE, FALSE)); if(pl->cskill < pl->skill) g_object_set(renderer, "background", const_app("string_treeview_helper_color_player_bad_cskill_bg"), "foreground", const_app("string_treeview_helper_color_player_bad_cskill_fg"), NULL); else g_object_set(renderer, "background", const_app("string_treeview_helper_color_default_background"), "foreground", const_app("string_treeview_helper_color_default_foreground"), NULL); } /** Render the result (team names and goals) in the live game view. */ void treeview_helper_live_game_result(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_live_game_result\n"); #endif gint column = treeview_helper_get_col_number_column(col); gchar buf[SMALL]; gchar *data = NULL; strcpy(buf, ""); gtk_tree_model_get(model, iter, column, &data, -1); sprintf(buf, "%s", const_app("string_treeview_helper_live_game_result_attributes"), data); g_object_set(renderer, "markup", buf, NULL); } gint treeview_helper_int_compare(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_int_compare\n"); #endif gint column = GPOINTER_TO_INT(user_data); gint value1, value2; gtk_tree_model_get(model, a, column, &value1, -1); gtk_tree_model_get(model, b, column, &value2, -1); return misc_int_compare(value1, value2); } void treeview_helper_mm_teams(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_mm_teams\n"); #endif gint column = treeview_helper_get_col_number_column(col); const MemMatch *mm = NULL; const gchar *text = NULL; g_object_set(renderer, "background", const_app("string_treeview_helper_color_default_background"), NULL); g_object_set(renderer, "foreground", const_app("string_treeview_helper_color_default_foreground"), NULL); g_object_set(renderer, "text", "", NULL); if(column == 1 || column == 2) { gtk_tree_model_get(model, iter, column, &mm, -1); if(mm != NULL) { if(column == 1) g_object_set(renderer, "text", mm->lg.team_names[mm->user_team], NULL); else g_object_set(renderer, "text", mm->lg.team_names[!mm->user_team], NULL); if(!mm->neutral && ((column == 1 && mm->user_team == 1) || (column == 2 && mm->user_team == 0))) g_object_set(renderer, "background", const_app("string_treeview_live_game_commentary_away_bg"), NULL); } else if(column == 1) { g_object_set(renderer, "text", _("ADD LAST MATCH"), NULL); g_object_set(renderer, "background", const_app("string_treeview_helper_mmatches_add_bg"), NULL); g_object_set(renderer, "foreground", const_app("string_treeview_helper_mmatches_add_fg"), NULL); } } else if(column >= TREEVIEW_MMATCH_COL_REPLAY) { gtk_tree_model_get(model, iter, column, &text, -1); g_object_set(renderer, "text", text, NULL); } gtk_tree_model_get(model, iter, 1, &mm, -1); if(mm != NULL) { if(column == TREEVIEW_MMATCH_COL_REPLAY) { g_object_set(renderer, "background", const_app("string_treeview_helper_mmatches_replay_bg"), NULL); g_object_set(renderer, "foreground", const_app("string_treeview_helper_mmatches_replay_fg"), NULL); } else if(column == TREEVIEW_MMATCH_COL_REMOVE) { g_object_set(renderer, "background", const_app("string_treeview_helper_mmatches_remove_bg"), NULL); g_object_set(renderer, "foreground", const_app("string_treeview_helper_mmatches_remove_fg"), NULL); } else if(column == TREEVIEW_MMATCH_COL_EXPORT) { g_object_set(renderer, "background", const_app("string_treeview_helper_mmatches_export_bg"), NULL); g_object_set(renderer, "foreground", const_app("string_treeview_helper_mmatches_export_fg"), NULL); } } } void treeview_helper_season_results(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_season_results\n"); #endif gint column = treeview_helper_get_col_number_column(col); gchar buf[SMALL]; const Fixture *fix = NULL; gint user_idx = -1; gtk_tree_model_get(model, iter, column, &fix, -1); if(fix == NULL) return; user_idx = (fix->team_ids[1] == current_user.tm->id); if(column == 3) { strcpy(buf, fix->teams[!user_idx]->name); if(user_idx == 1) g_object_set(renderer, "background", const_app("string_treeview_live_game_commentary_away_bg"), NULL); else g_object_set(renderer, "background", const_app("string_treeview_helper_color_default_background"), NULL); } else if(column == 4) { if(fix->attendance == -1) { strcpy(buf, ""); g_object_set(renderer, "background", const_app("string_treeview_helper_color_default_background"), NULL); } else if((fix->result[0][2] + fix->result[1][2] > 0 && fix->result[user_idx][2] > fix->result[!user_idx][2]) || (fix->result[0][2] + fix->result[1][2] == 0 && math_sum_int_array(fix->result[user_idx], 2) > math_sum_int_array(fix->result[!user_idx], 2))) { /* Won. */ strcpy(buf, _("W")); g_object_set(renderer, "background", const_app("string_treeview_helper_season_results_win_bg"), NULL); } else if((fix->result[0][2] + fix->result[1][2] > 0 && fix->result[user_idx][2] < fix->result[!user_idx][2]) || (fix->result[0][2] + fix->result[1][2] == 0 && math_sum_int_array(fix->result[user_idx], 2) < math_sum_int_array(fix->result[!user_idx], 2))) { /* Lost. */ strcpy(buf, _("L")); g_object_set(renderer, "background", const_app("string_treeview_helper_season_results_loss_bg"), NULL); } else { /* Draw. */ strcpy(buf, _("Dw")); g_object_set(renderer, "background", const_app("string_treeview_helper_season_results_draw_bg"), NULL); } } else if(column == 5) fixture_result_to_buf(fix, buf, (user_idx == 1)); g_object_set(renderer, "text", buf, NULL); } void treeview_helper_bet_odds(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_bet_odds\n"); #endif gint column = treeview_helper_get_col_number_column(col); gchar buf[SMALL]; const Fixture *fix = NULL; const BetMatch *bet = NULL; const BetUser *bet_user = NULL; gtk_tree_model_get(model, iter, column, &bet, -1); g_object_set(renderer, "background", const_app("string_treeview_helper_color_default_background"), "foreground", const_app("string_treeview_helper_color_default_foreground"), "text", "", NULL); if(bet == NULL) return; strcpy(buf, ""); bet_user = bet_is_user(bet); fix = fixture_from_id(bet->fix_id, TRUE); if(fix->attendance == -1) sprintf(buf, "%.2f", bet->odds[column - 1]); else if(column == 2) sprintf(buf, "%d - %d", fix->result[0][0], fix->result[1][0]); if(fix->attendance == -1 && bet_user != NULL && bet_user->outcome == column - 1) g_object_set(renderer, "background", const_app("string_treeview_helper_color_user_bet_bg"), "foreground", const_app("string_treeview_helper_color_user_bet_fg"), NULL); g_object_set(renderer, "text", buf, NULL); } gboolean treeview_helper_search_equal_teams(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) { #ifdef DEBUG printf("treeview_helper_search_equal_teams\n"); #endif const Team *tm = NULL; gchar *name_lower = NULL; gboolean return_value = TRUE; gtk_tree_model_get(model, iter, column, &tm, -1); name_lower = g_utf8_strdown(tm->name, -1); return_value = (g_strrstr(name_lower, key) == NULL); return return_value; } gboolean treeview_helper_search_equal_strings(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) { #ifdef DEBUG printf("treeview_helper_search_equal_strings\n"); #endif const gchar *string = NULL; gtk_tree_model_get(model, iter, column, &string, -1); return (g_strrstr(string, key) == NULL); } void treeview_helper_news_additional(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { const NewsPaperArticle *article = NULL; const gchar *colour_fg; const gchar *colour_bg; gchar buf[SMALL], buf2[SMALL], round_name[SMALL]; gtk_tree_model_get(model, iter, 2, &article, -1); colour_fg = const_app("string_treeview_helper_color_default_foreground"); colour_bg = const_app("string_treeview_helper_color_default_background"); if(article == NULL) { g_object_set(renderer, "markup", "", "background", colour_bg, "foreground", colour_fg, NULL); return; } if(article->clid >= ID_CUP_START) { cup_get_round_name(cup_from_clid(article->clid), article->cup_round, round_name); sprintf(buf2, "%s\n%s", league_cup_get_name_string(article->clid), round_name); } else sprintf(buf2, "%s", league_cup_get_name_string(article->clid)); sprintf(buf, "%s", const_app("string_news_window_league_cup_attribute"), buf2); g_object_set(renderer, "markup", buf, "background", colour_bg, "foreground", colour_fg, NULL); } void treeview_helper_news(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { const NewsPaperArticle *article = NULL; const gchar *colour_fg; const gchar *colour_bg; gchar buf[SMALL]; GString *news_string; gtk_tree_model_get(model, iter, 1, &article, -1); colour_fg = const_app("string_treeview_helper_color_default_foreground"); colour_bg = const_app("string_treeview_helper_color_default_background"); if(article == NULL) { g_object_set(renderer, "markup", "", "background", colour_bg, "foreground", colour_fg, NULL); return; } if(article->user_idx == cur_user) { colour_fg = const_app("string_treeview_current_user_fg"); colour_bg = const_app("string_treeview_current_user_bg"); } else if(article->user_idx != -1) { colour_fg = const_app("string_treeview_user_fg"); colour_bg = const_app("string_treeview_user_bg"); } sprintf(buf, "%s", const_app("string_news_window_title_small_attribute"), article->title_small); news_string = g_string_new(buf); g_string_append_printf(news_string, "\n%s", const_app("string_news_window_title_attribute"), article->title); g_string_append_printf(news_string, "\n%s", const_app("string_news_window_subtitle_attribute"), article->subtitle); g_object_set(renderer, "markup", news_string->str, "background", colour_bg, "foreground", colour_fg, NULL); g_string_free(news_string, TRUE); } void treeview_helper_job_exchange(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { #ifdef DEBUG printf("treeview_helper_job_exchange\n"); #endif gint column = treeview_helper_get_col_number_column(col); gchar buf[SMALL]; const Job *job = NULL; gtk_tree_model_get(model, iter, column, &job, -1); if(job == NULL) return; g_object_set(renderer, "background", const_app("string_treeview_helper_color_default_background"), "foreground", const_app("string_treeview_helper_color_default_foreground"), NULL); if(column == 3) { strcpy(buf, job->country_name); if(job->type != JOB_TYPE_NATIONAL) g_object_set(renderer, "background", const_app("string_treeview_helper_color_job_international_bg"), "foreground", const_app("string_treeview_helper_color_job_international_fg"), NULL); } else if(column == 4) sprintf(buf, "%.1f", team_get_average_skill(job_get_team(job), FALSE)); else if(column == 5) sprintf(buf, "%d", job->talent_percent); g_object_set(renderer, "text", buf, NULL); } void treeview_helper_player_name_editing_done(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) { gint idx; idx = (gint)strtol(path, NULL, 0); if(idx == 11) return; idx = (idx > 11) ? idx - 1 : idx; g_free(g_array_index(current_user.tm->players, Player, idx).name); g_array_index(current_user.tm->players, Player, idx).name = g_strdup(new_text); gtk_widget_set_sensitive(lookup_widget(window.main, "menubar1"), TRUE); gtk_widget_set_sensitive(lookup_widget(window.main, "hbox1"), TRUE); } void treeview_helper_player_name_editing_canceled(GtkCellRendererText *renderer, gpointer user_data) { gtk_widget_set_sensitive(lookup_widget(window.main, "menubar1"), TRUE); gtk_widget_set_sensitive(lookup_widget(window.main, "hbox1"), TRUE); } void treeview_helper_player_name_editing_started(GtkCellRenderer *renderer, GtkCellEditable *editable, gchar *path, gpointer user_data) { gtk_widget_set_sensitive(lookup_widget(window.main, "menubar1"), FALSE); gtk_widget_set_sensitive(lookup_widget(window.main, "hbox1"), FALSE); } void treeview_helper_constants_editing_done(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) { GtkTreeModel *model = gtk_tree_view_get_model((GtkTreeView*)user_data); GtkTreeIter iter; const gchar *name; gfloat float_value = g_ascii_strtod(new_text, NULL); gtk_tree_model_get_iter_from_string(model, &iter, path); gtk_tree_model_get(model, &iter, 0, &name, -1); if(g_str_has_prefix(name, "int_")) { option_set_int(name, &constants, (gint)float_value); gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, (gint)float_value, -1); } else if(g_str_has_prefix(name, "float_")) { option_set_int(name, &constants, (gint)rint(g_ascii_strtod(new_text, NULL) * OPTION_FLOAT_DIVISOR)); gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, float_value, -1); } else { option_set_string(name, &constants, new_text); gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_text, -1); } } void treeview_helper_constants_app_editing_done(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) { GtkTreeModel *model = gtk_tree_view_get_model((GtkTreeView*)user_data); GtkTreeIter iter; const gchar *name; gtk_tree_model_get_iter_from_string(model, &iter, path); gtk_tree_model_get(model, &iter, 0, &name, -1); option_set_string(name, &constants_app, new_text); gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_text, -1); } bygfoot-2.3.2/src/callback_func.h0000644000175000017500000000357211225071373015662 0ustar eliaselias/* callback_func.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef CALLBACK_FUNC_H #define CALLBACK_FUNC_H #include "bygfoot.h" #include "live_game_struct.h" void callback_show_next_live_game(void); void callback_player_clicked(gint idx, GdkEventButton *event); void callback_player_activate(gint idx); void callback_show_last_match(gboolean start, LiveGame *lg); void callback_show_fixtures(gint type); void callback_show_tables(gint type); void callback_pay_loan(void); void callback_get_loan(void); void callback_transfer_list_clicked(gint button, gint idx); void callback_offer_new_contract(gint idx); void callback_show_team(gint type); void callback_show_player_list(gint type); void callback_fire_player(gint idx); void callback_show_last_match_stats(void); void callback_show_fixtures_week(gint type); void callback_show_league_stats(gint type); void callback_show_season_history(gint type); void callback_show_next_opponent(void); void callback_show_player_team(void); void callback_show_youth_academy(void); #endif bygfoot-2.3.2/src/xml_loadsave_league_stat.c0000644000175000017500000001775511225071373020151 0ustar eliaselias/* xml_loadsave_league_stat.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "misc.h" #include "stat.h" #include "team.h" #include "xml.h" #include "xml_loadsave_league_stat.h" enum { TAG_LEAGUE_STAT = TAG_START_LEAGUE_STAT, TAG_STAT_LEAGUE_NAME, TAG_STAT_LEAGUE_SYMBOL, TAG_STAT_TEAMS_OFF, TAG_STAT_TEAMS_DEF, TAG_STAT_PLAYER_SCORERS, TAG_STAT_PLAYER_GOALIES, TAG_STAT, TAG_STAT_TEAM_NAME, TAG_STAT_VALUE, TAG_STAT_VALUE_STRING, TAG_END }; gint state, in_state, valueidx; Stat new_stat; LeagueStat *lig_stat; void xml_loadsave_league_stat_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_league_stat_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_LEAGUE_STAT;iteams_off; else if(in_state == TAG_STAT_TEAMS_DEF) stat_array = lig_stat->teams_def; else if(in_state == TAG_STAT_PLAYER_SCORERS) stat_array = lig_stat->player_scorers; else if(in_state == TAG_STAT_PLAYER_GOALIES) stat_array = lig_stat->player_goalies; else { debug_print_message("xml_loadsave_league_stat_end_element: unknown in_state %d \n", in_state); return; } g_array_append_val(stat_array, new_stat); } else if(tag == TAG_STAT_VALUE_STRING || tag == TAG_STAT_VALUE || tag == TAG_STAT_VALUE_STRING || tag == TAG_STAT_TEAM_NAME) { state = TAG_STAT; if(tag == TAG_STAT_VALUE) valueidx++; } else if(tag != TAG_LEAGUE_STAT) debug_print_message( "xml_loadsave_league_stat_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } void xml_loadsave_league_stat_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_league_stat_text\n"); #endif gchar buf[SMALL]; gint int_value = -1; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); if(state == TAG_STAT_LEAGUE_NAME) lig_stat->league_name = g_strdup(buf); else if(state == TAG_STAT_LEAGUE_SYMBOL) lig_stat->league_symbol = g_strdup(buf); else if(state == TAG_STAT_TEAM_NAME) new_stat.team_name = g_strdup(buf); else if(state == TAG_STAT_VALUE) { if(valueidx == 0) new_stat.value1 = int_value; else if(valueidx == 1) new_stat.value2 = int_value; else new_stat.value3 = int_value; } else if(state == TAG_STAT_VALUE_STRING) new_stat.value_string = g_strdup(buf); } void xml_loadsave_league_stat_read(const gchar *filename, LeagueStat *league_stat) { #ifdef DEBUG printf("xml_loadsave_league_stat_read\n"); #endif GMarkupParser parser = {xml_loadsave_league_stat_start_element, xml_loadsave_league_stat_end_element, xml_loadsave_league_stat_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_loadsave_league_stat_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); } lig_stat = league_stat; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { debug_print_message("xml_loadsave_league_stat_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } } void xml_loadsave_league_stat_write(const gchar *filename, const LeagueStat *league_stat) { #ifdef DEBUG printf("xml_loadsave_league_stat_write\n"); #endif gint i; FILE *fil = NULL; file_my_fopen(filename, "w", &fil, TRUE); fprintf(fil, "<_%d>\n", TAG_LEAGUE_STAT); xml_write_string(fil, league_stat->league_name, TAG_STAT_LEAGUE_NAME, I0); xml_write_string(fil, league_stat->league_symbol, TAG_STAT_LEAGUE_SYMBOL, I0); fprintf(fil, "<_%d>\n", TAG_STAT_TEAMS_OFF); for(i=0;iteams_off->len;i++) xml_loadsave_league_stat_write_stat( fil, &g_array_index(league_stat->teams_off, Stat, i)); fprintf(fil, "\n", TAG_STAT_TEAMS_OFF); fprintf(fil, "<_%d>\n", TAG_STAT_TEAMS_DEF); for(i=0;iteams_def->len;i++) xml_loadsave_league_stat_write_stat( fil, &g_array_index(league_stat->teams_def, Stat, i)); fprintf(fil, "\n", TAG_STAT_TEAMS_DEF); fprintf(fil, "<_%d>\n", TAG_STAT_PLAYER_SCORERS); for(i=0;iplayer_scorers->len;i++) xml_loadsave_league_stat_write_stat( fil, &g_array_index(league_stat->player_scorers, Stat, i)); fprintf(fil, "\n", TAG_STAT_PLAYER_SCORERS); fprintf(fil, "<_%d>\n", TAG_STAT_PLAYER_GOALIES); for(i=0;iplayer_goalies->len;i++) xml_loadsave_league_stat_write_stat( fil, &g_array_index(league_stat->player_goalies, Stat, i)); fprintf(fil, "\n", TAG_STAT_PLAYER_GOALIES); fprintf(fil, "\n", TAG_LEAGUE_STAT); fclose(fil); } void xml_loadsave_league_stat_write_stat(FILE *fil, const Stat *stat) { #ifdef DEBUG printf("xml_loadsave_league_stat_write_stat\n"); #endif fprintf(fil, "%s<_%d>\n", I1, TAG_STAT); xml_write_string(fil, stat->team_name, TAG_STAT_TEAM_NAME, I1); xml_write_int(fil, stat->value1, TAG_STAT_VALUE, I1); xml_write_int(fil, stat->value2, TAG_STAT_VALUE, I1); xml_write_int(fil, stat->value3, TAG_STAT_VALUE, I1); xml_write_string(fil, stat->value_string, TAG_STAT_VALUE_STRING, I1); fprintf(fil, "%s\n", I1, TAG_STAT); } bygfoot-2.3.2/src/xml_lg_commentary.h0000644000175000017500000000352611225071373016632 0ustar eliaselias/* xml_lg_commentary.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LG_COMMENTARY_H #define XML_LG_COMMENTARY_H #include "bygfoot.h" void xml_lg_commentary_read(const gchar *commentary_file); void xml_lg_commentary_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_lg_commentary_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_lg_commentary_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); gint xml_lg_commentary_event_name_to_int(const gchar *event_string); #endif bygfoot-2.3.2/src/xml_loadsave_players.c0000644000175000017500000002410411225071373017315 0ustar eliaselias/* xml_loadsave_players.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "misc.h" #include "player.h" #include "team.h" #include "xml.h" #include "xml_loadsave_players.h" enum { TAG_PLAYERS = TAG_START_PLAYERS, TAG_PLAYER, TAG_PLAYER_NAME, TAG_PLAYER_POS, TAG_PLAYER_CPOS, TAG_PLAYER_HEALTH, TAG_PLAYER_RECOVERY, TAG_PLAYER_ID, TAG_PLAYER_VALUE, TAG_PLAYER_WAGE, TAG_PLAYER_OFFERS, TAG_PLAYER_SKILL, TAG_PLAYER_CSKILL, TAG_PLAYER_TALENT, TAG_PLAYER_ETAL, TAG_PLAYER_FITNESS, TAG_PLAYER_LSU, TAG_PLAYER_AGE, TAG_PLAYER_PEAK_AGE, TAG_PLAYER_PEAK_REGION, TAG_PLAYER_CONTRACT, TAG_PLAYER_PARTICIPATION, TAG_PLAYER_GAMES_GOAL, TAG_PLAYER_GAMES_GOAL_CLID, TAG_PLAYER_GAMES_GOAL_GAMES, TAG_PLAYER_GAMES_GOAL_GOALS, TAG_PLAYER_GAMES_GOAL_SHOTS, TAG_PLAYER_CARD, TAG_PLAYER_CARD_CLID, TAG_PLAYER_CARD_YELLOW, TAG_PLAYER_CARD_RED, TAG_PLAYER_CAREER, TAG_PLAYER_STREAK, TAG_PLAYER_STREAK_COUNT, TAG_PLAYER_STREAK_PROB, TAG_END }; gint state, etalidx, careeridx; Player new_player; PlayerGamesGoals new_games_goals; PlayerCard new_card; void xml_loadsave_players_start_element(gint tag, Team *tm) { #ifdef DEBUG printf("xml_loadsave_players_start_element\n"); #endif gint i; gboolean valid_tag = FALSE; for(i=TAG_PLAYERS;i\n", I1, TAG_PLAYERS); for(i=0;ilen;i++) xml_loadsave_players_write_player(fil, &g_array_index(players, Player, i)); fprintf(fil, "%s\n", I1, TAG_PLAYERS); } void xml_loadsave_players_write_player(FILE *fil, const Player *pl) { #ifdef DEBUG printf("xml_loadsave_players_write_player\n"); #endif gint i; fprintf(fil, "%s<_%d>\n", I1, TAG_PLAYER); xml_write_string(fil, pl->name, TAG_PLAYER_NAME, I2); xml_write_int(fil, pl->pos, TAG_PLAYER_POS, I2); xml_write_int(fil, pl->cpos, TAG_PLAYER_CPOS, I2); xml_write_int(fil, pl->health, TAG_PLAYER_HEALTH, I2); xml_write_int(fil, pl->recovery, TAG_PLAYER_RECOVERY, I2); xml_write_int(fil, pl->id, TAG_PLAYER_ID, I2); xml_write_int(fil, pl->value, TAG_PLAYER_VALUE, I2); xml_write_int(fil, pl->wage, TAG_PLAYER_WAGE, I2); xml_write_int(fil, pl->offers, TAG_PLAYER_OFFERS, I2); xml_write_int(fil, pl->participation, TAG_PLAYER_PARTICIPATION, I2); xml_write_float(fil, pl->skill, TAG_PLAYER_SKILL, I2); xml_write_float(fil, pl->cskill, TAG_PLAYER_CSKILL, I2); xml_write_float(fil, pl->talent, TAG_PLAYER_TALENT, I2); xml_write_float(fil, pl->fitness, TAG_PLAYER_FITNESS, I2); xml_write_float(fil, pl->lsu, TAG_PLAYER_LSU, I2); xml_write_float(fil, pl->age, TAG_PLAYER_AGE, I2); xml_write_float(fil, pl->peak_age, TAG_PLAYER_PEAK_AGE, I2); xml_write_float(fil, pl->peak_region, TAG_PLAYER_PEAK_REGION, I2); xml_write_float(fil, pl->contract, TAG_PLAYER_CONTRACT, I2); for(i=0;i<4;i++) xml_write_float(fil, pl->etal[i], TAG_PLAYER_ETAL, I3); for(i=0;icareer[i], TAG_PLAYER_CAREER, I2); xml_write_int(fil, pl->streak, TAG_PLAYER_STREAK, I2); xml_write_float(fil, pl->streak_count, TAG_PLAYER_STREAK_COUNT, I2); xml_write_float(fil, pl->streak_prob, TAG_PLAYER_STREAK_PROB, I2); for(i=0;igames_goals->len;i++) { fprintf(fil, "%s<_%d>\n", I2, TAG_PLAYER_GAMES_GOAL); xml_write_int(fil, g_array_index(pl->games_goals, PlayerGamesGoals, i).clid, TAG_PLAYER_GAMES_GOAL_CLID, I3); xml_write_int(fil, g_array_index(pl->games_goals, PlayerGamesGoals, i).games, TAG_PLAYER_GAMES_GOAL_GAMES, I3); xml_write_int(fil, g_array_index(pl->games_goals, PlayerGamesGoals, i).goals, TAG_PLAYER_GAMES_GOAL_GOALS, I3); xml_write_int(fil, g_array_index(pl->games_goals, PlayerGamesGoals, i).shots, TAG_PLAYER_GAMES_GOAL_SHOTS, I3); fprintf(fil, "%s\n", I2, TAG_PLAYER_GAMES_GOAL); } for(i=0;icards->len;i++) { fprintf(fil, "%s<_%d>\n", I2, TAG_PLAYER_CARD); xml_write_int(fil, g_array_index(pl->cards, PlayerCard, i).clid, TAG_PLAYER_CARD_CLID, I3); xml_write_int(fil, g_array_index(pl->cards, PlayerCard, i).yellow, TAG_PLAYER_CARD_YELLOW, I3); xml_write_int(fil, g_array_index(pl->cards, PlayerCard, i).red, TAG_PLAYER_CARD_RED, I3); fprintf(fil, "%s\n", I2, TAG_PLAYER_CARD); } fprintf(fil, "%s\n", I1, TAG_PLAYER); } bygfoot-2.3.2/src/table.c0000644000175000017500000002207211225071373014171 0ustar eliaselias/* table.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "league.h" #include "misc.h" #include "table.h" #include "team.h" #include "variables.h" /** Return a newly allocated empty table. */ Table table_new(void) { #ifdef DEBUG printf("table_new\n"); #endif Table new; new.name = NULL; new.clid = -1; new.round = -1; new.elements = g_array_new(FALSE, FALSE, sizeof(TableElement)); return new; } /** Return a nullified table element. @param team The team pointer of the element. @param old_rank The old_rank value of the element. @see #TableElement */ TableElement table_element_new(Team *team, gint old_rank) { #ifdef DEBUG printf("table_element_new\n"); #endif gint i; TableElement new; new.team = team; new.team_id = team->id; new.old_rank = old_rank; for(i=0;iresult[0][0] < fix->result[1][0]); TableElement *elements[2]; end = (fix->clid < ID_CUP_START) ? 2 : 1; for(j = 0; j < end; j++) { elements[0] = elements[1] = NULL; table_update_get_elements(elements, fix, (j == 1)); for(i=0;i<2;i++) { if(elements[i] != NULL) { elements[i]->values[TABLE_PLAYED]++; elements[i]->values[TABLE_GF] += fix->result[i][0]; elements[i]->values[TABLE_GA] += fix->result[!i][0]; elements[i]->values[TABLE_GD] = elements[i]->values[TABLE_GF] - elements[i]->values[TABLE_GA]; } } if(fix->result[0][0] == fix->result[1][0]) for(i=0;i<2;i++) { if(elements[i] != NULL) { elements[i]->values[TABLE_DRAW]++; elements[i]->values[TABLE_PTS] += 1; } } else { if(elements[idx] != NULL) { elements[idx]->values[TABLE_WON]++; elements[idx]->values[TABLE_PTS] += 3; } if(elements[!idx] != NULL) { elements[!idx]->values[TABLE_LOST]++; } } } } /** Get the pointers to the table entries representing the two teams from the fixture. @param elements The table entries. @fix The fixture. @non_cumulative Whether to return the last non-cumulative table. */ void table_update_get_elements(TableElement **elements, const Fixture *fix, gboolean non_cumulative) { #ifdef DEBUG printf("table_update_get_elements\n"); #endif gint i, j; Table *table; if(fix->clid < ID_CUP_START) { for(j = 0; j < 2; j++) { if(non_cumulative && league_from_clid(fix->teams[j]->clid)->tables->len == 1) { elements[j] = NULL; continue; } table = (non_cumulative) ? league_table(league_from_clid(fix->teams[j]->clid)) : league_table_cumul(league_from_clid(fix->teams[j]->clid)); for(i=0;ielements->len;i++) { if(g_array_index(table->elements, TableElement, i).team == fix->teams[j]) elements[j] = &g_array_index(table->elements, TableElement, i); } } } else for(i=0;iclid)->len;i++) { table = &g_array_index(cup_get_last_tables(fix->clid), Table, i); if(elements[0] == NULL || elements[1] == NULL) for(j=0;jelements->len;j++) { if(g_array_index(table->elements, TableElement, j).team == fix->teams[0]) elements[0] = &g_array_index(table->elements, TableElement, j); else if(g_array_index(table->elements, TableElement, j).team == fix->teams[1]) elements[1] = &g_array_index(table->elements, TableElement, j); } } } /** Compare function used to sort the tables. @param a The first table element. @param b The second element. @param clid_round The clid and the cup round of the table encoded as a gpointer. */ gint table_element_compare_func(gconstpointer a, gconstpointer b, gpointer clid_pointer) { #ifdef DEBUG printf("table_element_compare_func\n"); #endif gint i; gint clid, cup_round, value; TableElement *element1 = (TableElement*)a, *element2 = (TableElement*)b; GArray *fixtures; const Fixture *fix[2] = {NULL, NULL}; if(element1->team_id == element2->team_id) return 0; clid = GPOINTER_TO_INT(clid_pointer); fixtures = league_cup_get_fixtures(clid); if(clid < ID_CUP_START) cup_round = -1; else cup_round = cup_has_tables(clid); /*todo use misc_int_compare*/ if(element1->values[TABLE_PTS] != element2->values[TABLE_PTS]) value = misc_int_compare(element1->values[TABLE_PTS], element2->values[TABLE_PTS]); else if(element1->values[TABLE_GF] - element1->values[TABLE_GA] != element2->values[TABLE_GF] - element2->values[TABLE_GA]) value = misc_int_compare(element1->values[TABLE_GF] - element1->values[TABLE_GA], element2->values[TABLE_GF] - element2->values[TABLE_GA]); else if(element1->values[TABLE_GA] != element2->values[TABLE_GA]) value = misc_int_compare(element1->values[TABLE_GA], element2->values[TABLE_GA]); else { for(i=0;ilen;i++) { if(g_array_index(fixtures, Fixture, i).round == cup_round && g_array_index(fixtures, Fixture, i).week_number <= week && g_array_index(fixtures, Fixture, i).week_round_number <= week_round) { if(g_array_index(fixtures, Fixture, i).team_ids[0] == element1->team_id && g_array_index(fixtures, Fixture, i).team_ids[1] == element2->team_id) fix[0] = &g_array_index(fixtures, Fixture, i); else if(g_array_index(fixtures, Fixture, i).team_ids[1] == element1->team_id && g_array_index(fixtures, Fixture, i).team_ids[0] == element2->team_id) fix[1] = &g_array_index(fixtures, Fixture, i); } } if(fix[0] == NULL || fix[1] == NULL) value = 0; else { if(fix[0]->result[0][0] + fix[1]->result[1][0] > fix[0]->result[1][0] + fix[1]->result[0][0]) value = -1; else if(fix[0]->result[0][0] + fix[1]->result[1][0] < fix[0]->result[1][0] + fix[1]->result[0][0]) value = 1; else if(fix[1]->result[1][0] > fix[0]->result[1][0]) value = -1; else value = 1; } } return value; } /** Find out if there are active leagues (which automatically have tables then) or cups with tables in the country. */ gboolean query_tables_in_country(void) { #ifdef DEBUG printf("query_tables_in_country\n"); #endif gint i; for(i=0;ilen;i++) if(query_league_active(&lig(i))) return TRUE; for(i=0;ilen;i++) if(cup_has_tables(cp(i).id) != -1) return TRUE; return FALSE; } /** Copy a table. */ Table table_copy(const Table *table) { #ifdef DEBUG printf("table_copy\n"); #endif gint i, j; Table new_table; TableElement new_table_element; TableElement *elem; new_table.name = g_strdup(table->name); new_table.clid = table->clid; new_table.round = table->round; new_table.elements = g_array_new(FALSE, FALSE, sizeof(TableElement)); for(i = 0; i < table->elements->len; i++) { elem = &g_array_index(table->elements, TableElement, i); new_table_element.team = elem->team; new_table_element.team_id = elem->team_id; new_table_element.old_rank = elem->old_rank; for(j=0;jvalues[j]; g_array_append_val(new_table.elements, new_table_element); } return new_table; } /** Refresh the team pointers in the table from the team ids. */ void table_refresh_team_pointers(Table *table) { gint i; for(i = 0; i < table->elements->len; i++) g_array_index(table->elements, TableElement, i).team = team_of_id(g_array_index(table->elements, TableElement, i).team_id); } bygfoot-2.3.2/src/xml_loadsave_live_game.h0000644000175000017500000000407311225071373017576 0ustar eliaselias/* xml_loadsave_live_game.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_LIVE_GAME_H #define XML_LOADSAVE_LIVE_GAME_H #include "bygfoot.h" #include "live_game_struct.h" void xml_loadsave_live_game_write_stats(FILE *fil, const LiveGameStats *stats); void xml_loadsave_live_game_write_unit(FILE *fil, const LiveGameUnit *unit); void xml_loadsave_live_game_write(const gchar *filename, const LiveGame *live_game); void xml_loadsave_live_game_read(const gchar *filename, LiveGame *live_game); void xml_loadsave_live_game_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_live_game_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_live_game_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); #endif bygfoot-2.3.2/src/misc3_callbacks.c0000644000175000017500000002440211225071373016116 0ustar eliaselias/* misc3_callbacks.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "callbacks.h" #include "finance.h" #include "fixture.h" #include "game_gui.h" #include "gui.h" #include "main.h" #include "misc_callback_func.h" #include "misc3_callbacks.h" #include "misc3_interface.h" #include "option.h" #include "support.h" #include "treeview2.h" #include "treeview_helper.h" #include "user.h" #include "variables.h" #include "window.h" gboolean on_window_bets_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_bets_delete_event\n"); #endif on_button_bet_close_clicked(NULL, NULL); return TRUE; } void on_button_bet_close_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_bet_close_clicked\n"); #endif window_destroy(&window.bets); } gboolean on_checkbutton_bet_all_leagues_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_bet_all_leagues_button_press_event\n"); #endif opt_user_set_int("int_opt_user_bet_show_all_leagues", !opt_user_int("int_opt_user_bet_show_all_leagues")); treeview2_show_bets(); return FALSE; } gboolean on_checkbutton_bet_cups_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_bet_cups_button_press_event\n"); #endif opt_user_set_int("int_opt_user_bet_show_cups", !opt_user_int("int_opt_user_bet_show_cups")); treeview2_show_bets(); return FALSE; } gboolean on_treeview_bets_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_treeview_bets_button_press_event\n"); #endif GtkTreePath *path = NULL; GtkTreeViewColumn *col = NULL; GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); GtkTreeIter iter; GtkSpinButton *spin_wager = NULL; const BetMatch *bet = NULL; gint col_num = -1; gchar buf[SMALL]; if(!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), event->x, event->y, &path, &col, NULL, NULL)) return TRUE; if(!gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_path_free(path); return TRUE; } gtk_tree_path_free(path); col_num = treeview_helper_get_col_number_column(col); if(col_num == 0 || col_num > 3) return TRUE; gtk_tree_model_get(model, &iter, col_num, &bet, -1); if(bet == NULL || fixture_from_id(bet->fix_id, TRUE)->attendance != -1) return TRUE; if(bet_is_user(bet)) { bet_remove(bet->fix_id); treeview2_show_bets(); return FALSE; } sprintf(buf, _("You bet on outcome %d with an odd of %.2f. How much do you wager?"), col_num - 1, bet->odds[col_num - 1]); stat1 = STATUS_PLACE_BET; stat2 = bet->fix_id; stat3 = col_num - 1; /* 'Wager' is the amount of money the user placed on a bet. */ window_show_digits(buf, _("Wager"), 0, NULL, -1, FALSE); spin_wager = GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton1")); gtk_spin_button_set_range(spin_wager, 0, (gdouble)const_int("int_bet_wager_max")); gtk_spin_button_set_value(spin_wager, (gdouble)opt_user_int("int_opt_user_bet_default_wager")); return TRUE; } gboolean on_checkbutton_bet_user_recent_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_bet_user_recent_button_press_event\n"); #endif opt_user_set_int("int_opt_user_bet_show_my_recent", !opt_user_int("int_opt_user_bet_show_my_recent")); treeview2_show_bets(); return FALSE; } gboolean on_window_splash_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_splash_delete_event\n"); #endif return FALSE; } void on_button_splash_new_game_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_splash_new_game_clicked\n"); #endif window_destroy(&window.splash); window_show_startup(); stat0 = STATUS_TEAM_SELECTION; } void on_button_splash_load_game_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_splash_load_game_clicked\n"); #endif stat5 = STATUS_LOAD_GAME_SPLASH; window_show_file_sel(); } void on_button_splash_resume_game_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_splash_resume_game_clicked\n"); #endif misc_callback_startup_load("last_save"); } void on_button_splash_quit_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_splash_quit_clicked\n"); #endif window_destroy(&window.splash); main_exit_program(EXIT_OK, NULL); } void on_button_splash_hint_back_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_splash_hint_back_clicked\n"); #endif counters[COUNT_HINT_NUMBER] = (counters[COUNT_HINT_NUMBER] == 0) ? hints.list->len - 1 : counters[COUNT_HINT_NUMBER] - 1; window_splash_show_hint(); } void on_button_splash_hint_next_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_splash_hint_next_clicked\n"); #endif counters[COUNT_HINT_NUMBER] = (counters[COUNT_HINT_NUMBER] + 1) % hints.list->len; window_splash_show_hint(); } void on_button_calculate_start_week_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_calculate_start_week_clicked\n"); #endif gint start_week; start_week = finance_calculate_alr_start_week( gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment")))); gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week")), (gfloat)start_week); } void on_button_calculate_installment_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_calculate_installment_clicked\n"); #endif gint weekly_installment; weekly_installment = finance_calculate_alr_weekly_installment( gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week")))); gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment")), (gfloat)weekly_installment); } void on_button_alr_confirm_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_alr_confirm_clicked\n"); #endif current_user.alr_start_week = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week"))); current_user.alr_weekly_installment = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment"))); window_destroy(&window.alr); setsav0; on_menu_show_finances_activate(NULL, NULL); } void on_button_alr_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_alr_cancel_clicked\n"); #endif window_destroy(&window.alr); } gboolean on_window_alr_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_alr_delete_event\n"); #endif on_button_alr_cancel_clicked(NULL, NULL); return TRUE; } gboolean on_window_news_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { window_destroy(&window.news); return FALSE; } gboolean on_window_news_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { window_destroy(&window.news); return FALSE; } void on_button_news_close_clicked (GtkButton *button, gpointer user_data) { window_destroy(&window.news); } bygfoot-2.3.2/src/bygfoot_private.h0000644000175000017500000000110211225071373016301 0ustar eliaselias/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ /* DO NOT EDIT ! */ #ifndef BYGFOOT_PRIVATE_H #define BYGFOOT_PRIVATE_H /* VERSION DEFINITIONS */ #define VER_STRING "0.1.1.1" #define VER_MAJOR 0 #define VER_MINOR 1 #define VER_RELEASE 1 #define VER_BUILD 1 #define COMPANY_NAME "" #define FILE_VERSION "" #define FILE_DESCRIPTION "Developed using the Dev-C++ IDE" #define INTERNAL_NAME "" #define LEGAL_COPYRIGHT "" #define LEGAL_TRADEMARKS "" #define ORIGINAL_FILENAME "" #define PRODUCT_NAME "" #define PRODUCT_VERSION "" #endif /*BYGFOOT_PRIVATE_H*/ bygfoot-2.3.2/src/xml_loadsave_misc.h0000644000175000017500000000224611225071373016601 0ustar eliaselias/* xml_loadsave_misc.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_MISC_H #define XML_LOADSAVE_MISC_H #include "bygfoot.h" void xml_loadsave_misc_read(const gchar *dirname, const gchar *basename); void xml_loadsave_misc_write(const gchar *prefix); void xml_loadsave_misc_write_bets(FILE *fil); #endif bygfoot-2.3.2/src/name.c0000644000175000017500000000765511225071373014034 0ustar eliaselias/* name.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "main.h" #include "name.h" #include "option.h" #include "variables.h" #include "xml_name.h" /** Get a random player name from the given names list. If the names list is not found, create it from file. If the file can't be found, either, make some fuss and take one from the general names. */ gchar* name_get(const gchar *names_file) { #ifdef DEBUG printf("name_get\n"); #endif #ifdef DEBUG printf("name_get\n"); #endif gint i; NameList new; if(name_lists->len > 1 && math_rnd(0, 1) < const_float("float_name_random_list_prob")) return name_get_from_random_list(); for(i=0;ilen;i++) if(strcmp(names_file, nli(i).sid) == 0) return name_get_from_list(&nli(i)); /** Create new name list. */ new.sid = NULL; new.first_names = new.last_names = NULL; xml_name_read(names_file, &new); if(new.sid == NULL) { debug_print_message("name_get_new: names file with sid '%s' not found, taking general names file.\n", names_file); return name_get(opt_str("string_opt_player_names_file")); } if(stat5 != STATUS_GENERATE_TEAMS) name_shorten_list(&new); g_array_append_val(name_lists, new); return name_get_from_list(&nli(name_lists->len - 1)); } /** Return a newly allocated string with a randomly picked combined name from the list. */ gchar* name_get_from_list(const NameList *namelist) { #ifdef DEBUG printf("name_get_from_list\n"); #endif #ifdef DEBUG printf("name_get_from_list\n"); #endif gchar buf[SMALL]; sprintf(buf, "%s %s", name_get_random_first_name(namelist), name_get_random_last_name(namelist)); return g_strdup(buf); } /** Shorten a name list so that it doesn't occupy too much memory. */ void name_shorten_list(NameList *namelist) { #ifdef DEBUG printf("name_shorten_list\n"); #endif gint idx; while(namelist->first_names->len * namelist->last_names->len > const_int("int_name_max_product")) { if((gfloat)(namelist->first_names->len) / (gfloat)(namelist->last_names->len) > const_float("float_name_first_last_ratio")) { idx = math_rndi(0, namelist->first_names->len - 1); g_free(g_ptr_array_index(namelist->first_names, idx)); g_ptr_array_remove_index_fast(namelist->first_names, idx); } else { idx = math_rndi(0, namelist->last_names->len - 1); g_free(g_ptr_array_index(namelist->last_names, idx)); g_ptr_array_remove_index_fast(namelist->last_names, idx); } } } /** Find the namelist with the given sid. */ NameList* name_get_list_from_sid(const gchar *sid) { gint i; NameList new; for(i=0;ilen;i++) if(strcmp(sid, nli(i).sid) == 0) return &nli(i); new.sid = NULL; new.first_names = new.last_names = NULL; xml_name_read(sid, &new); if(new.sid == NULL) main_exit_program(EXIT_POINTER_NOT_FOUND, "name_get_list_from_sid: namelist with sid %s not found", sid); else { name_shorten_list(&new); g_array_append_val(name_lists, new); return &nli(name_lists->len - 1); } return NULL; } bygfoot-2.3.2/src/news.c0000644000175000017500000007146311225071373014066 0ustar eliaselias/* news.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include "cup.h" #include "file.h" #include "fixture.h" #include "language.h" #include "lg_commentary.h" #include "live_game.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "news.h" #include "option.h" #include "team.h" #include "user.h" #include "variables.h" #include "xml_news.h" /** The replacement strings for the news tokens. */ GPtrArray *token_rep_news[2]; /** Generate news for a user live game or a CPU fixture. */ void news_generate_match(const LiveGame *live_game) { #ifdef DEBUG printf("news_generate_match\n"); #endif gchar title_small[SMALL], buf[SMALL], title[SMALL], subtitle[SMALL]; gint title_id, subtitle_id, article_id; NewsPaperArticle new_article; token_rep_news[0] = g_ptr_array_new(); token_rep_news[1] = g_ptr_array_new(); news_set_match_tokens(live_game); news_select(news[NEWS_ARTICLE_TYPE_MATCH], title, subtitle, &article_id, &title_id, &subtitle_id); if(title_id != -1 && subtitle_id != -1) { new_article.id = article_id; new_article.week_number = week; new_article.week_round_number = week_round; fixture_result_to_buf(live_game->fix, buf, FALSE); sprintf(title_small, "%s %s %s", live_game->fix->teams[0]->name, buf, live_game->fix->teams[1]->name); new_article.title_small = g_strdup(title_small); new_article.title = g_strdup(title); new_article.subtitle = g_strdup(subtitle); new_article.title_id = title_id; new_article.subtitle_id = subtitle_id; new_article.user_idx = fixture_user_team_involved(live_game->fix); new_article.clid = live_game->fix->clid; new_article.cup_round = live_game->fix->round; if(counters[COUNT_NEW_NEWS] == 0) counters[COUNT_NEW_NEWS] = 2; if(new_article.user_idx != -1) counters[COUNT_NEW_NEWS] = 1; g_array_append_val(newspaper.articles, new_article); } news_free_tokens(); } /** Select a news from the array depending on the tokens available and write the texts and ids into the variables. */ void news_select(const GArray *news_array, gchar *title, gchar *subtitle, gint *article_id, gint *title_id, gint *subtitle_id) { #ifdef DEBUG printf("news_select\n"); #endif gint i; const NewsArticle *article; gint order_articles[news_array->len]; gint to_check; news_articles_get_order(news_array, order_articles); *title_id = *subtitle_id = -1; for(i=0;ilen;i++) { if((!news_check_article_for_repetition(g_array_index(news_array, NewsArticle, order_articles[i]).id) || g_array_index(news_array, NewsArticle, order_articles[i]).priority > 20) && misc_parse_condition(g_array_index(news_array, NewsArticle, order_articles[i]).condition, token_rep_news)) break; } if(i == news_array->len) for(i=0;ilen;i++) if(misc_parse_condition(g_array_index(news_array, NewsArticle, order_articles[i]).condition, token_rep_news)) break; if(i == news_array->len) return; article = &g_array_index(news_array, NewsArticle, order_articles[i]); *article_id = article->id; gint order_titles[article->titles->len], order_subtitles[article->subtitles->len]; news_titles_get_order(article->titles, order_titles); news_titles_get_order(article->subtitles, order_subtitles); *title_id = news_get_title(article->titles, title, order_titles, TRUE, FALSE, const_int("int_news_repetition_max_check_number")); if(*title_id == -1) for(to_check = const_int("int_news_repetition_max_check_number") - 1; to_check >= const_int("int_news_repetition_min_check_number"); to_check--) { *title_id = news_get_title(article->titles, title, order_titles, TRUE, (to_check == const_int("int_news_repetition_min_check_number")), to_check); if(*title_id == -1) break; } *subtitle_id = news_get_title(article->subtitles, subtitle, order_subtitles, FALSE, FALSE, const_int("int_news_repetition_max_check_number")); if(*subtitle_id == -1) for(to_check = const_int("int_news_repetition_max_check_number") - 1; to_check >= const_int("int_news_repetition_min_check_number"); to_check--) { *subtitle_id = news_get_title(article->subtitles, subtitle, order_subtitles, FALSE, (to_check == const_int("int_news_repetition_min_check_number")), to_check); if(*subtitle_id == -1) break; } return; } /** Try to find a news article title with valid tokens. */ gint news_get_title(const GArray *titles, gchar *title, gint *order, gboolean is_title, gboolean ignore_repetition, gint to_check) { #ifdef DEBUG printf("news_get_title\n"); #endif gint i; gint result; for(i = 0; i < titles->len; i++) { if(misc_parse_condition(g_array_index(titles, NewsText, order[i]).condition, token_rep_news) && misc_string_replace_all_tokens(token_rep_news, g_array_index(titles, NewsText, order[i]).text, title)) { result = g_array_index(titles, NewsText, order[i]).id; if(ignore_repetition || !news_check_title_for_repetition(result, is_title, to_check)) return result; else continue; } } return -1; } /** Check whether a news article text has occurred in the paper recently. */ gboolean news_check_title_for_repetition(gint id, gboolean is_title, gint to_check) { #ifdef DEBUG printf("news_check_title_for_repetition\n"); #endif gint i; gint end; end = (newspaper.articles->len < to_check) ? 0 : newspaper.articles->len - to_check; for(i = newspaper.articles->len - 1; i >= end; i--) if((is_title && g_array_index(newspaper.articles, NewsPaperArticle, i).title_id == id) || (!is_title && g_array_index(newspaper.articles, NewsPaperArticle, i).subtitle_id == id)) return TRUE; return FALSE; } /** Check recent news for article repetition. */ gboolean news_check_article_for_repetition(gint id) { #ifdef DEBUG printf("news_check_article_for_repetition\n"); #endif gint i; gint end; end = (newspaper.articles->len < const_int("int_news_repetition_max_check_number")) ? 0 : newspaper.articles->len - const_int("int_news_repetition_max_check_number"); for(i = newspaper.articles->len - 1; i >= end; i--) if(g_array_index(newspaper.articles, NewsPaperArticle, i).id == id) return TRUE; return FALSE; } /** Write a random order of indices into the integer array (only depending on the priority values of the news titles). I don't like this implementation of ordering the titles according to their priority :-P can't think of a better one, though. */ void news_titles_get_order(const GArray *titles, gint *order) { #ifdef DEBUG printf("news_titles_get_order\n"); #endif gint i, j, order_idx = 0; gint priority_sum = 0, bounds[titles->len + 1]; bounds[0] = 0; for(i=0;ilen;i++) { priority_sum += g_array_index(titles, NewsText, i).priority; bounds[i + 1] = priority_sum; order[i] = -1; } gint permutation[priority_sum]; math_generate_permutation(permutation, 1, priority_sum); for(i=0;ilen) break; for(j=0;jlen;j++) if(bounds[j] < permutation[i] && permutation[i] <= bounds[j + 1]) { if(!query_integer_is_in_array(j, order, titles->len)) { order[order_idx] = j; order_idx++; } break; } } } /** Write a random order of indices into the integer array (only depending on the priority values of the news articles). I don't like this implementation of ordering the articles according to their priority :-P can't think of a better one, though. */ void news_articles_get_order(const GArray *articles, gint *order) { #ifdef DEBUG printf("news_articles_get_order\n"); #endif gint i, j, order_idx = 0; gint priority_sum = 0, bounds[articles->len + 1]; bounds[0] = 0; for(i=0;ilen;i++) { priority_sum += g_array_index(articles, NewsArticle, i).priority; bounds[i + 1] = priority_sum; order[i] = -1; } gint permutation[priority_sum]; math_generate_permutation(permutation, 1, priority_sum); for(i=0;ilen) break; for(j=0;jlen;j++) if(bounds[j] < permutation[i] && permutation[i] <= bounds[j + 1]) { if(!query_integer_is_in_array(j, order, articles->len)) { order[order_idx] = j; order_idx++; } break; } } } /** Set match-related tokens for the news. */ void news_set_match_tokens(const LiveGame *live_game) { #ifdef DEBUG printf("news_set_match_tokens\n"); #endif lg_commentary_set_stats_tokens(&live_game->stats, token_rep_news); news_set_fixture_tokens(live_game->fix); news_set_league_cup_tokens(live_game->fix); news_set_streak_tokens(live_game->fix); news_set_scorer_tokens(&live_game->stats); if(live_game->fix->clid < ID_CUP_START) news_set_rank_tokens(live_game->fix); } /** Set overall and league streak tokens for the two teams. */ void news_set_streak_tokens(const Fixture *fix) { #ifdef DEBUG printf("news_set_streak_tokens\n"); #endif gint i, j, k, streak_won, streak_lost, streak_unbeaten; gboolean draw; gint res[2]; gchar buf[SMALL], buf2[SMALL]; GPtrArray *latest_fixtures; for(i = 0; i < 2; i++) { for(k = 0; k < 2; k++) { latest_fixtures = fixture_get_latest(fix->teams[i], (k == 0)); streak_won = streak_lost = streak_unbeaten = 0; draw = FALSE; for(j=latest_fixtures->len - 1;j>=0;j--) { res[0] = math_sum_int_array(((Fixture*)g_ptr_array_index(latest_fixtures, j))->result[0], 3); res[1] = math_sum_int_array(((Fixture*)g_ptr_array_index(latest_fixtures, j))->result[1], 3); if(res[0] == res[1]) { if(streak_lost == 0) { draw = TRUE; streak_unbeaten++; } else break; } else if(res[(((Fixture*)g_ptr_array_index(latest_fixtures, j))->teams[0] == fix->teams[i])] > res[(((Fixture*)g_ptr_array_index(latest_fixtures, j))->teams[0] != fix->teams[i])]) { if(streak_won == 0) streak_lost++; else break; } else { if(streak_lost == 0) { streak_unbeaten++; if(!draw) streak_won++; } else break; } } if(k == 0) strcpy(buf2, ""); else strcpy(buf2, "league_"); sprintf(buf, "string_token_streak_%swon%d", buf2, i); misc_token_add(token_rep_news, option_int(buf, &tokens), misc_int_to_char(streak_won)); sprintf(buf, "string_token_streak_%slost%d", buf2, i); misc_token_add(token_rep_news, option_int(buf, &tokens), misc_int_to_char(streak_lost)); sprintf(buf, "string_token_streak_%sunbeaten%d", buf2, i); misc_token_add(token_rep_news, option_int(buf, &tokens), misc_int_to_char(streak_unbeaten)); g_ptr_array_free(latest_fixtures, TRUE); } } } void news_set_scorer_tokens(const LiveGameStats *stats) { #ifdef DEBUG printf("news_set_scorer_tokens\n"); #endif gint i, j, k; GPtrArray *scorers[2]; GArray *goals[2]; gchar buf[SMALL]; gchar scorer_str[SMALL]; const gchar *scorer; gchar high_scorer[SMALL]; gint scorer_goals; gint max_goals; for(i = 0; i < 2; i++) { scorers[i] = g_ptr_array_new(); goals[i] = g_array_new(FALSE, FALSE, sizeof(gint)); for(j = 0; j < stats->players[i][LIVE_GAME_STAT_ARRAY_SCORERS]->len; j++) { scorer = (gchar*)g_ptr_array_index(stats->players[i][LIVE_GAME_STAT_ARRAY_SCORERS], j); for(k=0;klen;k++) { if(strcmp(scorer, (gchar*)g_ptr_array_index(scorers[i], k)) == 0) { g_array_index(goals[i], gint, k) = g_array_index(goals[i], gint, k) + 1; break; } } if(k == scorers[i]->len) { gint onegoal = 1; g_ptr_array_add(scorers[i], (gpointer)scorer); g_array_append_val(goals[i], onegoal); } } max_goals = 0; strcpy(buf, ""); strcpy(scorer_str, ""); strcpy(high_scorer, ""); for(j = 0; j < scorers[i]->len; j++) { scorer_goals = g_array_index(goals[i], gint, j); scorer = (gchar*)g_ptr_array_index(scorers[i], j); if(scorer_goals > max_goals) { max_goals = scorer_goals; strcpy(high_scorer, scorer); } if(j == 0) { if(scorer_goals > 1) sprintf(scorer_str, "%s (%d)", scorer, scorer_goals); else sprintf(scorer_str, "%s", scorer); } else if(j == scorers[i]->len - 1 && j != 0) { if(scorer_goals > 1) sprintf(scorer_str, _("%s and %s (%d)"), buf, scorer, scorer_goals); else sprintf(scorer_str, _("%s and %s"), buf, scorer); } else { if(scorer_goals > 1) sprintf(scorer_str, "%s, %s (%d)", buf, scorer, scorer_goals); else sprintf(scorer_str, "%s, %s", buf, scorer); } strcpy(buf, scorer_str); } if(strcmp(scorer_str, "") != 0) { sprintf(buf, "string_token_bool_multiple_scorers%d", i); misc_token_add_bool(token_rep_news, option_int(buf, &tokens), (scorers[i]->len > 1)); sprintf(buf, "string_token_scorers%d", i); misc_token_add(token_rep_news, option_int(buf, &tokens), g_strdup(scorer_str)); sprintf(buf, "string_token_highscorer%d", i); misc_token_add(token_rep_news, option_int(buf, &tokens), g_strdup(high_scorer)); sprintf(buf, "string_token_highscorer_goals%d", i); misc_token_add(token_rep_news, option_int(buf, &tokens), misc_int_to_char(max_goals)); } g_ptr_array_free(scorers[i], TRUE); g_array_free(goals[i], TRUE); } } void news_set_league_cup_tokens(const Fixture *fix) { #ifdef DEBUG printf("news_set_league_cup_tokens\n"); #endif gchar buf[SMALL]; const Cup *cup; const CupRound *cupround; const Team *tm; if(fix->teams[0]->clid < ID_CUP_START) misc_token_add(token_rep_news, option_int("string_token_team_layer0", &tokens), misc_int_to_char(league_from_clid(fix->teams[0]->clid)->layer)); if(fix->teams[1]->clid < ID_CUP_START) misc_token_add(token_rep_news, option_int("string_token_team_layer1", &tokens), misc_int_to_char(league_from_clid(fix->teams[1]->clid)->layer)); if(fix->teams[0]->clid < ID_CUP_START && fix->teams[1]->clid < ID_CUP_START) misc_token_add(token_rep_news, option_int("string_token_team_layerdiff", &tokens), misc_int_to_char(ABS(league_from_clid(fix->teams[0]->clid)->layer - league_from_clid(fix->teams[1]->clid)->layer))); misc_token_add(token_rep_news, option_int("string_token_league_cup_name", &tokens), g_strdup(league_cup_get_name_string(fix->clid))); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup", &tokens), (fix->clid >= ID_CUP_START)); if(fix->clid >= ID_CUP_START) { cup = cup_from_clid(fix->clid); cupround = &g_array_index(cup->rounds, CupRound, fix->round); if(query_league_cup_has_property(cup->id, "international")) misc_token_add(token_rep_news, option_int("string_token_team_layerdiff", &tokens), misc_int_to_char(0)); misc_token_add(token_rep_news, option_int("string_token_cup_stage", &tokens), misc_int_to_char(cup->rounds->len - fix->round)); misc_token_add(token_rep_news, option_int("string_token_bool_cup_neutral", &tokens), misc_int_to_char(cupround->neutral)); cup_get_round_name(cup, fix->round, buf); misc_token_add(token_rep_news, option_int("string_token_cup_round_name", &tokens), g_strdup(buf)); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_knockout", &tokens), (cupround->tables->len == 0)); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_home_away", &tokens), cupround->home_away); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_first_leg", &tokens), (cupround->home_away && !fix->second_leg)); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_second_leg", &tokens), (cupround->home_away && fix->second_leg)); if(fix->decisive) { tm = (Team*)fixture_winner_of(fix, FALSE); misc_token_add(token_rep_news, option_int("string_token_cup_match_winner", &tokens), g_strdup(tm->name)); misc_token_add(token_rep_news, option_int("string_token_cup_match_loser", &tokens), g_strdup(fix->teams[fix->teams[1] != tm]->name)); misc_token_add(token_rep_news, option_int("string_token_cup_match_winnern", &tokens), misc_int_to_char(fix->teams[1] == tm)); misc_token_add(token_rep_news, option_int("string_token_cup_match_losern", &tokens), misc_int_to_char(fix->teams[1] != tm)); } misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_national", &tokens), query_league_cup_has_property(cup->id, "national")); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_international", &tokens), query_league_cup_has_property(cup->id, "international")); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_promrel", &tokens), query_league_cup_has_property(cup->id, "promotion")); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_aux", &tokens), query_league_cup_has_property(cup->id, "hide") || query_league_cup_has_property(cup->id, "omit_from_history")); } else { misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_knockout", &tokens), FALSE); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_home_away", &tokens), FALSE); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_first_leg", &tokens), FALSE); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_second_leg", &tokens), FALSE); } } /** Set the news tokens related to the fixture. */ void news_set_fixture_tokens(const Fixture *fix) { #ifdef DEBUG printf("news_set_fixture_tokens\n"); #endif gchar buf[SMALL]; gint res[2]; gint avskill0, avskill1; const Fixture *first_leg; gint goaldiffaggr; avskill0 = (gint)rint(team_get_average_skill(fix->teams[0], TRUE)); avskill1 = (gint)rint(team_get_average_skill(fix->teams[1], TRUE)); res[0] = math_sum_int_array(fix->result[0], 3); res[1] = math_sum_int_array(fix->result[1], 3); goaldiffaggr = ABS(res[0] - res[1]); fixture_result_to_buf(fix, buf, FALSE); misc_token_add(token_rep_news, option_int("string_token_result", &tokens), g_strdup(buf)); fixture_result_to_buf(fix, buf, (res[0] < res[1])); misc_token_add(token_rep_news, option_int("string_token_result_rew", &tokens), g_strdup(buf)); fixture_result_to_buf(fix, buf, (res[0] > res[1])); misc_token_add(token_rep_news, option_int("string_token_result_rel", &tokens), g_strdup(buf)); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_penalties", &tokens), (fix->result[0][2] + fix->result[1][2] != 0)); misc_token_add_bool(token_rep_news, option_int("string_token_bool_cup_extra", &tokens), (fix->result[0][2] + fix->result[1][2] == 0 && fix->result[0][1] + fix->result[1][1] != 0)); misc_print_grouped_int(math_round_integer(fix->attendance, 2), buf); misc_token_add(token_rep_news, option_int("string_token_attendance", &tokens), g_strdup(buf)); misc_token_add(token_rep_news, option_int("string_token_team_avskill0", &tokens), misc_int_to_char(avskill0)); misc_token_add(token_rep_news, option_int("string_token_team_avskill1", &tokens), misc_int_to_char(avskill1)); misc_token_add(token_rep_news, option_int("string_token_team_avskilldiff", &tokens), misc_int_to_char(ABS(avskill0 - avskill1))); misc_token_add(token_rep_news, option_int("string_token_goals0", &tokens), misc_int_to_char(fix->result[0][0])); misc_token_add(token_rep_news, option_int("string_token_goals1", &tokens), misc_int_to_char(fix->result[1][0])); misc_token_add(token_rep_news, option_int("string_token_goal_diff", &tokens), misc_int_to_char(goaldiffaggr)); if(fix->clid >= ID_CUP_START) { first_leg = fixture_get_first_leg(fix, TRUE); if(first_leg != NULL) goaldiffaggr = ABS(fix->result[0][0] + fix->result[0][1] + first_leg->result[1][0] - fix->result[1][0] - fix->result[1][1] - first_leg->result[0][0]); } misc_token_add(token_rep_news, option_int("string_token_goal_diff_aggregate", &tokens), misc_int_to_char(goaldiffaggr)); misc_token_add(token_rep_news, option_int("string_token_team_home", &tokens), g_strdup(fix->teams[0]->name)); misc_token_add(token_rep_news, option_int("string_token_team_away", &tokens), g_strdup(fix->teams[1]->name)); if(fix->result[0][0] != fix->result[1][0]) { misc_token_add(token_rep_news, option_int("string_token_team_losing", &tokens), g_strdup(fix->teams[(fix->result[0][0] > fix->result[1][0])]->name)); misc_token_add(token_rep_news, option_int("string_token_team_winning", &tokens), g_strdup(fix->teams[(fix->result[0][0] < fix->result[1][0])]->name)); misc_token_add(token_rep_news, option_int("string_token_team_losingn", &tokens), misc_int_to_char((fix->result[0][0] > fix->result[1][0]))); misc_token_add(token_rep_news, option_int("string_token_team_winningn", &tokens), misc_int_to_char((fix->result[0][0] < fix->result[1][0]))); } } /** Set the rank tokens of the involved teams. */ void news_set_rank_tokens(const Fixture *fix) { #ifdef DEBUG printf("news_set_rank_tokens\n"); #endif gint i, j; gchar buf[SMALL]; const Table *table; for(i = 0; i < 2; i++) { table = league_table(league_from_clid(fix->teams[i]->clid)); for(j = 0; j < table->elements->len; j++) if(g_array_index(table->elements, TableElement, j).team == fix->teams[i]) { sprintf(buf, "string_token_rank%d", i); misc_token_add(token_rep_news, option_int(buf, &tokens), misc_int_to_char(j + 1)); sprintf(buf, "string_token_oldrank%d", i); misc_token_add(token_rep_news, option_int(buf, &tokens), misc_int_to_char(g_array_index(table->elements, TableElement, j).old_rank)); break; } } } /** Free the memory occupied by the tokens array and the permanent tokens. */ void news_free_tokens(void) { #ifdef DEBUG printf("news_free_tokens\n"); #endif gint i; /* printf("-------------------------------------\n"); */ for(i=token_rep_news[0]->len - 1;i >= 0; i--) { /* printf("%s // %s\n", */ /* (gchar*)g_ptr_array_index(token_rep_news[0], i), */ /* (gchar*)g_ptr_array_index(token_rep_news[1], i)); */ g_free(g_ptr_array_index(token_rep_news[0], i)); g_free(g_ptr_array_index(token_rep_news[1], i)); } g_ptr_array_free(token_rep_news[0], TRUE); g_ptr_array_free(token_rep_news[1], TRUE); } /** Load the appropriate news file by evaluating the language option. */ void news_load_news_file_from_option(void) { #ifdef DEBUG printf("news_load_news_file_from_option\n"); #endif gchar buf[SMALL], news_file[SMALL]; language_get_code(buf); sprintf(news_file, "news_%s.xml", buf); news_load_news_file(news_file, FALSE); } /** Load the news file given. Abort if not found and abort=TRUE, load default english file otherwise. */ void news_load_news_file(const gchar *news_file, gboolean abort) { #ifdef DEBUG printf("news_load_news_file\n"); #endif gchar *file_name = NULL; if(g_file_test(news_file, G_FILE_TEST_EXISTS)) { xml_news_read(news_file); return; } file_name = file_find_support_file(news_file, FALSE); if(file_name != NULL) { xml_news_read(file_name); g_free(file_name); } else { if(abort) main_exit_program(EXIT_FILE_NOT_FOUND, "news_load_news_file: file %s not found \n", file_name); else news_load_news_file("news_en.xml", TRUE); } } /** Find out if the match is interesting from a newspaper article generation point of view. */ gboolean news_check_match_relevant(const LiveGame *live_game) { #ifdef DEBUG printf("news_check_match_relevant\n"); #endif gint i; GArray *user_leagues; if(fixture_user_team_involved(live_game->fix) != -1 && opt_int("int_opt_news_create_user")) return TRUE; if(live_game->fix->clid >= ID_CUP_START && opt_int("int_opt_news_create_cup")) return TRUE; user_leagues = g_array_new(FALSE, FALSE, sizeof(gint)); for(i = 0; i < users->len; i++) if(!query_misc_integer_is_in_g_array(usr(i).tm->clid, user_leagues)) g_array_append_val(user_leagues, usr(i).tm->clid); if(query_misc_integer_is_in_g_array(live_game->fix->clid, user_leagues) && opt_int("int_opt_news_create_league")) { g_array_free(user_leagues, TRUE); return TRUE; } g_array_free(user_leagues, TRUE); return FALSE; } bygfoot-2.3.2/src/variables.h0000644000175000017500000000744511225071373015066 0ustar eliaselias/* variables.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bygfoot.h" #include "enums.h" #include "live_game_struct.h" #include "news_struct.h" #include "option_struct.h" /** * The main variable of the game. * @see Country */ Country country; /** The array of human players. @see #User */ GArray *users; /** The season, week and week round numbers. We keep track of the time in the game with these variables. */ gint season, week, week_round; /** Array of options that get read from bygfoot.conf. */ OptionList options; /** Array of constants that get read from the constants file specified in bygfoot.conf. */ OptionList constants; /** Array of constants affecting game appearance rather than behaviour. */ OptionList constants_app; /** Array with internal settings. */ OptionList settings; /* Array holding string replacement tokens. */ OptionList tokens; /** The array containing the live game commentary strings. */ GArray *lg_commentary[LIVE_GAME_EVENT_END]; /** The array containing the news article strings. */ GArray *news[NEWS_ARTICLE_TYPE_END]; /** Newspaper containing the news articles. */ NewsPaper newspaper; /** The array containing players to be transfered. @see TransferPlayer */ GArray *transfer_list; /** Array with season statistics (updated at the end of each season. */ GArray *season_stats; /** Array of available CPU strategies. */ GArray *strategies; /** Array of current and recent bets. */ GArray *bets[2]; /** Loan interest for the current week. */ gfloat current_interest; /** Array of jobs in the job exchange and teams going with the international jobs. */ GArray *jobs, *job_teams; /** Some counters we use. */ gint counters[COUNT_END]; /** These help us keep track of what's happening. */ gint status[6]; /** A pointer we store temporary stuff in. */ gpointer statp; /** The currently selected row in the treeview. */ gint selected_row; /** An array of name lists. */ GArray *name_lists; /** The struct containing the window pointers. */ Windows window; /** The variables for non-user live games (which aren't shown). */ GArray *live_games; /** The index of the current user in the #users array. */ gint cur_user; gint timeout_id; GRand *rand_generator; /** Debug information. */ gint debug_level, debug_output; /** The list of directories the file_find_support_file() function searches for support files (e.g. pixmaps or text files). @see file_find_support_file() @see file_add_support_directory_recursive() */ GList *support_directories; /** * The list of root defintions directories found (ending in definitions) */ GList *root_definitions_directories; /** * The list of defintions directories found */ GList *definitions_directories; /** The name of the current save file (gets updated when a game is saved or loaded). */ gchar *save_file; /** Whether we are using a Unix system or Windows. */ gboolean os_is_unix; /** The hints displayed in the splash screen. */ OptionList hints; bygfoot-2.3.2/src/bet.h0000644000175000017500000000246311225071373013663 0ustar eliaselias/* bet.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef BET_H #define BET_H #include "bet_struct.h" #include "bygfoot.h" #include "fixture_struct.h" BetMatch* bet_from_fixture(gint fix_id); void bet_update_user_bets(void); void bet_get_odds(BetMatch *bet); void bet_update(void); gfloat bet_round_odd(gfloat odd); BetUser* bet_is_user(const BetMatch *bet); gboolean bet_place(gint fix_id, gint outcome, gint wager); void bet_remove(gint fix_id); #endif bygfoot-2.3.2/src/misc2_callbacks.h0000644000175000017500000001707511225071373016132 0ustar eliaselias/* misc2_callbacks.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MISC2_CALLBACKS_H #define MISC2_CALLBACKS_H #include void on_button_offer_ok_clicked (GtkButton *button, gpointer user_data); void on_button_offer_cancel_clicked (GtkButton *button, gpointer user_data); gboolean on_button_warning_clicked (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_digits_ok_clicked (GtkButton *button, gpointer user_data); void on_button_digits_cancel_clicked (GtkButton *button, gpointer user_data); gboolean on_window_yesno_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_yesno_yes_clicked (GtkButton *button, gpointer user_data); void on_button_yesno_no_clicked (GtkButton *button, gpointer user_data); void on_button_contract_offer_clicked (GtkButton *button, gpointer user_data); gboolean on_window_contract_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_entry_user_management_activate (GtkEntry *entry, gpointer user_data); void on_button_user_management_add_clicked (GtkButton *button, gpointer user_data); void on_button_user_management_close_clicked (GtkButton *button, gpointer user_data); gboolean on_treeview_user_management_users_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_treeview_user_management_teams_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data); gboolean on_window_debug_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_debug_apply_clicked (GtkButton *button, gpointer user_data); void on_button_debug_close_activate (GtkButton *button, gpointer user_data); void on_entry_debug_activate (GtkEntry *entry, gpointer user_data); gboolean on_window_job_offer_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_digits_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_user_management_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_help_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_help_close_clicked (GtkButton *button, gpointer user_data); void on_spinbutton1_activate (GtkEntry *entry, gpointer user_data); void on_spinbutton2_activate (GtkEntry *entry, gpointer user_data); gboolean on_window_transfer_dialog_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_transfer_yes_clicked (GtkButton *button, gpointer user_data); void on_button_transfer_no_clicked (GtkButton *button, gpointer user_data); void on_button_transfer_later_clicked (GtkButton *button, gpointer user_data); void on_button_contract_cancel_clicked (GtkButton *button, gpointer user_data); gboolean on_window_mmatches_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_treeview_mmatches_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_button_mm_save_close_clicked (GtkButton *button, gpointer user_data); void on_button_mm_add_clicked (GtkButton *button, gpointer user_data); void on_button_mm_file_clicked (GtkButton *button, gpointer user_data); void on_button_mm_reload_clicked (GtkButton *button, gpointer user_data); void on_button_mm_reload_close_clicked (GtkButton *button, gpointer user_data); void on_button_mm_import_clicked (GtkButton *button, gpointer user_data); void on_button_digits_alr_clicked (GtkButton *button, gpointer user_data); #endif bygfoot-2.3.2/src/xml_loadsave_users.h0000644000175000017500000000373311225071373017011 0ustar eliaselias/* xml_loadsave_users.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_USERS_H #define XML_LOADSAVE_USERS_H #include "bygfoot.h" void xml_loadsave_users_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_users_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_users_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_users_read(const gchar *dirname, const gchar *basename); void xml_loadsave_users_write(const gchar *prefix); void xml_user_write_history(FILE *fil, const GArray *history); void xml_user_write_events(FILE *fil, const GArray *events); void xml_user_write_bets(FILE *fil, GArray **bets); #endif bygfoot-2.3.2/src/strategy.c0000644000175000017500000005034411225071373014747 0ustar eliaselias/* strategy.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "fixture.h" #include "league.h" #include "live_game.h" #include "main.h" #include "misc.h" #include "option.h" #include "player.h" #include "strategy.h" #include "team.h" GPtrArray *token_strat[2]; /** Return the sid of a random strategy from the strategies array (also dependent on the priorities of the strategies). */ gchar* strategy_get_random(void) { #ifdef DEBUG printf("strategy_get_random\n"); #endif #ifdef DEBUG printf("strategy_get_random\n"); #endif gint i, rndom = math_rndi(1, g_array_index(strategies, Strategy, strategies->len - 1).priority); if(rndom <= g_array_index(strategies, Strategy, 0).priority) return g_strdup(g_array_index(strategies, Strategy, 0).sid); for(i=1;ilen;i++) if(rndom <= g_array_index(strategies, Strategy, i).priority) return g_strdup(g_array_index(strategies, Strategy, i).sid); main_exit_program(EXIT_STRATEGY_ERROR, "team_strategy_get_random: no strategy found."); return NULL; } /** Compare function for sorting the players given a specific strategy. */ gint strategy_compare_players(gconstpointer a, gconstpointer b, gpointer user_data) { #ifdef DEBUG printf("strategy_compare_players\n"); #endif const Player *pl1 = *(const Player**)a; const Player *pl2 = *(const Player**)b; const StrategyPrematch *strat = (StrategyPrematch*)user_data; gint return_value = 0; if(pl1->pos != pl2->pos) return_value = misc_int_compare(pl2->pos, pl1->pos); else if(pl1->cskill == 0 && pl2->cskill > 0) return_value = 1; else if(pl2->cskill == 0 && pl1->cskill > 0) return_value = -1; else if(strat->min_fitness != 0 && pl1->fitness < strat->min_fitness && pl2->fitness >= strat->min_fitness) return_value = 1; else if(strat->min_fitness != 0 && pl1->fitness >= strat->min_fitness && pl2->fitness < strat->min_fitness) return_value = -1; else { gfloat skill1 = player_get_game_skill(pl1, TRUE, TRUE), skill2 = player_get_game_skill(pl2, TRUE, TRUE); if(strat->lineup == STRAT_LINEUP_BEST) return_value = misc_float_compare(skill1, skill2); else if(strat->lineup == STRAT_LINEUP_WEAKEST) return_value = misc_float_compare(skill2, skill1); else if(strat->lineup == STRAT_LINEUP_FITTEST) { return_value = misc_float_compare(pl1->fitness, pl2->fitness); if(pl1->fitness == pl2->fitness) return_value = misc_float_compare(skill1, skill2); } else debug_print_message("strategy_compare_players: unknown lineup type %d\n", strat->lineup); } return return_value; } /** Check whether a lineup described in the prematch using the given formation can be made with the players. */ gboolean query_strategy_formation_possible(const GPtrArray *players, const StrategyPrematch *prematch, gint formation) { #ifdef DEBUG printf("query_strategy_formation_possible\n"); #endif gint i, pos[3] = {0, 0, 0}; for(i=0;ilen;i++) if(((Player*)g_ptr_array_index(players, i))->pos > 0 && ((Player*)g_ptr_array_index(players, i))->cskill > 0 && ((Player*)g_ptr_array_index(players, i))->fitness >= prematch->min_fitness) pos[((Player*)g_ptr_array_index(players, i))->pos - 1]++; if(pos[2] >= math_get_place(formation, 1) && pos[1] >= math_get_place(formation, 2) && pos[0] >= math_get_place(formation, 3)) return TRUE; return FALSE; } /** Make the necessary substitutions to satisfy the given prematch and formation requirements. */ void strategy_update_lineup(Team *tm, const GPtrArray *players, const StrategyPrematch *prematch, gint formation) { #ifdef DEBUG printf("strategy_update_lineup\n"); #endif gint i; GArray *ids = g_array_new(FALSE, FALSE, sizeof(gint)); GArray *new_players = g_array_new(FALSE, FALSE, sizeof(Player)); gint form[3] = {math_get_place(formation, 3), math_get_place(formation, 2), math_get_place(formation, 1)}, pos[3] = {0, 0, 0}; /* Repair goalie if necessary. */ if(((Player*)g_ptr_array_index(players, 0))->cskill == 0) strategy_repair_player((Player*)g_ptr_array_index(players, 0)); g_array_append_val(ids, ((Player*)g_ptr_array_index(players, 0))->id); for(i=0;ilen;i++) if(((Player*)g_ptr_array_index(players, i))->pos > 0 && pos[((Player*)g_ptr_array_index(players, i))->pos - 1] < form[((Player*)g_ptr_array_index(players, i))->pos - 1]) { g_array_append_val(ids, ((Player*)g_ptr_array_index(players, i))->id); pos[((Player*)g_ptr_array_index(players, i))->pos - 1]++; } for(i=0;ilen;i++) g_array_append_val(new_players, *(player_of_id_team(tm, g_array_index(ids, gint, i)))); for(i=0;iplayers->len;i++) if(!query_misc_integer_is_in_g_array( g_array_index(tm->players, Player, i).id, ids)) g_array_append_val(new_players, g_array_index(tm->players, Player, i)); g_array_free(tm->players, TRUE); tm->players = new_players; g_array_free(ids, TRUE); tm->structure = formation; team_rearrange(tm); } /** Delete red cards, cure injuries etc. Used to make sure a CPU team doesn't break. */ void strategy_repair_player(Player *pl) { #ifdef DEBUG printf("strategy_repair_player\n"); #endif gint i; for(i=0;icards->len;i++) g_array_index(pl->cards, PlayerCard, i).red = 0; pl->health = pl->recovery = 0; pl->cskill = player_get_cskill(pl, pl->pos, FALSE); pl->fitness = math_rnd(const_float("float_player_fitness_lower"), const_float("float_player_fitness_upper")); } /** 'Repair' exactly as many players as are required to be able to make a lineup of healthy players with the primary formation of the given prematch. */ void strategy_repair_players(GPtrArray *players, const StrategyPrematch *prematch) { #ifdef DEBUG printf("strategy_repair_players\n"); #endif gint i, j; gint form[3] = {math_get_place(g_array_index(prematch->formations, gint, 0), 3), math_get_place(g_array_index(prematch->formations, gint, 0), 2), math_get_place(g_array_index(prematch->formations, gint, 0), 1)}; gint pos[3] = {0, 0, 0}; for(i=0;ilen;i++) if(((Player*)g_ptr_array_index(players, i))->pos > 0 && ((Player*)g_ptr_array_index(players, i))->cskill > 0) pos[((Player*)g_ptr_array_index(players, i))->pos - 1]++; for(i=0;i<3;i++) { while(pos[i] < form[i]) for(j=0;jlen;j++) if(((Player*)g_ptr_array_index(players, j))->pos == i + 1 && ((Player*)g_ptr_array_index(players, j))->cskill == 0) { strategy_repair_player((Player*)g_ptr_array_index(players, j)); pos[i]++; } } g_ptr_array_sort_with_data(players, (GCompareDataFunc)strategy_compare_players, (gpointer)prematch); } /** Make team changes according to the rules in the prematch. */ void strategy_apply_prematch(Team *tm, const StrategyPrematch *prematch) { #ifdef DEBUG printf("strategy_apply_prematch\n"); #endif gint i; GPtrArray *players = player_get_pointers_from_array(tm->players); tm->style = prematch->style; tm->boost = prematch->boost; g_ptr_array_sort_with_data(players, (GCompareDataFunc)strategy_compare_players, (gpointer)prematch); for(i=0;iformations->len;i++) if(query_strategy_formation_possible( players, prematch, g_array_index(prematch->formations, gint, i))) { strategy_update_lineup( tm, players,prematch, g_array_index(prematch->formations, gint, i)); break; } /* We have to repair players to be able to satisfy a formation. */ if(i == prematch->formations->len) { strategy_repair_players(players, prematch); strategy_update_lineup(tm, players, prematch, g_array_index(prematch->formations, gint, 0)); } g_ptr_array_free(players, TRUE); } /** Make necessary subs etc. for a CPU team. */ void strategy_update_team_pre_match(Team *tm) { #ifdef DEBUG printf("strategy_update_team_pre_match\n"); #endif gint i; const GArray *prematches = strategy_from_sid(tm->strategy_sid)->prematch; strategy_set_tokens(tm, NULL); for(i=prematches->len - 1; i >= 0; i--) if(g_array_index(prematches, StrategyPrematch, i).condition == NULL || misc_parse_condition(g_array_index(prematches, StrategyPrematch, i).condition, token_strat)) { strategy_apply_prematch(tm, &g_array_index(prematches, StrategyPrematch, i)); break; } strategy_free_tokens(); if(i == -1) main_exit_program(EXIT_STRATEGY_ERROR, "strategy_update_team_pre_match: none of the prematch conditions of strategy %s for team %s are fulfilled. remember that a strategy should contain an unconditional prematch.", tm->strategy_sid, tm->name); } /** Get the strategy going with the sid. */ Strategy* strategy_from_sid(const gchar *sid) { #ifdef DEBUG printf("strategy_from_sid\n"); #endif gint i; for(i=0;ilen;i++) if(strcmp(g_array_index(strategies, Strategy, i).sid, sid) == 0) return &g_array_index(strategies, Strategy, i); main_exit_program(EXIT_STRATEGY_ERROR, "strategy_from_sid: strategy '%s' not found.", sid); return NULL; } /** Add tokens that will be evaluated when checking strategy conditions. */ void strategy_set_tokens(const Team *tm, const Fixture *fixture) { #ifdef DEBUG printf("strategy_set_tokens\n"); #endif const Fixture *fix = (fixture == NULL) ? team_get_fixture(tm, FALSE) : fixture; const Team *opp = (fix == NULL) ? NULL : fix->teams[fix->teams[0] == tm]; token_strat[0] = g_ptr_array_new(); token_strat[1] = g_ptr_array_new(); if(opp == NULL) return; misc_token_add(token_strat, option_int("string_token_homeadv", &tokens), misc_int_to_char(((fix->teams[0] == tm) ? 1 : -1) * fix->home_advantage)); misc_token_add(token_strat, option_int("string_token_cup", &tokens), misc_int_to_char(fix->clid >= ID_CUP_START)); misc_token_add(token_strat, option_int("string_token_avskilldiff", &tokens), misc_int_to_char((gint)rint(team_get_average_skill(tm, FALSE) - team_get_average_skill(opp, FALSE)))); misc_token_add(token_strat, option_int("string_token_opponent_skill", &tokens), misc_int_to_char((gint)rint(team_get_average_skill(opp, FALSE)))); if(tm->clid < ID_CUP_START && opp->clid < ID_CUP_START) misc_token_add(token_strat, option_int("string_token_team_layerdiff", &tokens), misc_int_to_char(league_from_clid(tm->clid)->layer - league_from_clid(opp->clid)->layer)); misc_token_add(token_strat, option_int("string_token_goals_to_win", &tokens), misc_int_to_char(fixture_get_goals_to_win(fix, tm))); } /** Free the token arrays. */ void strategy_free_tokens(void) { #ifdef DEBUG printf("strategy_free_tokens\n"); #endif gint i; for(i=0;ilen;i++) { g_free(g_ptr_array_index(token_strat[0], i)); g_free(g_ptr_array_index(token_strat[1], i)); } g_ptr_array_free(token_strat[0], TRUE); g_ptr_array_free(token_strat[1], TRUE); } /** Fill the necessary tokens during a live game. */ void strategy_live_game_set_tokens(const LiveGame *match, gint team_idx) { #ifdef DEBUG printf("strategy_live_game_set_tokens\n"); #endif gint tmp_int, current_min = live_game_unit_get_minute( &g_array_index(match->units, LiveGameUnit, match->units->len - 1)); const Team *tm = match->fix->teams[team_idx]; strategy_set_tokens(tm, match->fix); misc_token_add(token_strat, option_int("string_token_subs_left", &tokens), misc_int_to_char(match->subs_left[team_idx])); misc_token_add(token_strat, option_int("string_token_num_def", &tokens), misc_int_to_char(math_get_place(tm->structure, 3))); misc_token_add(token_strat, option_int("string_token_num_mid", &tokens), misc_int_to_char(math_get_place(tm->structure, 2))); misc_token_add(token_strat, option_int("string_token_num_att", &tokens), misc_int_to_char(math_get_place(tm->structure, 1))); misc_token_add(token_strat, option_int("string_token_form", &tokens), misc_int_to_char(tm->structure)); misc_token_add(token_strat, option_int("string_token_time", &tokens), misc_int_to_char( g_array_index(match->units, LiveGameUnit, match->units->len - 1).time)); misc_token_add(token_strat, option_int("string_token_minute", &tokens), misc_int_to_char(current_min)); tmp_int = live_game_get_minutes_remaining( &g_array_index(match->units, LiveGameUnit, match->units->len - 1)); if(tmp_int > 0) misc_token_add(token_strat, option_int("string_token_minute_remaining", &tokens), misc_int_to_char(tmp_int)); if(query_fixture_is_draw(match->fix)) tmp_int = 120 - current_min; else tmp_int = 90 - current_min; if(tmp_int > 0) misc_token_add(token_strat, option_int("string_token_minute_total", &tokens), misc_int_to_char(tmp_int)); } /** Compare function for sorting the players when looking for substitutes. */ gint strategy_compare_players_sub(gconstpointer a, gconstpointer b, gpointer user_data) { #ifdef DEBUG printf("strategy_compare_players_sub\n"); #endif gfloat skill1, skill2; const Player *pl1 = *(const Player**)a; const Player *pl2 = *(const Player**)b; gint position = GPOINTER_TO_INT(user_data) % 10; gint property = (GPOINTER_TO_INT(user_data) - position) / 10; gint return_value = 0; if(pl1->pos != pl2->pos && (pl1->pos == position || pl2->pos == position)) return_value = (pl1->pos == position) ? -1 : 1; else switch(property) { default: debug_print_message("strategy_compare_players_sub: unknown property %d\n", property); return_value = 0; break; case STRAT_LINEUP_FITTEST: return_value = misc_float_compare(pl1->fitness, pl2->fitness); break; case STRAT_LINEUP_UNFITTEST: return_value = misc_float_compare(pl2->fitness, pl1->fitness); break; case STRAT_LINEUP_BEST: skill1 = player_get_game_skill(pl1, TRUE, TRUE); skill2 = player_get_game_skill(pl2, TRUE, TRUE); return_value = misc_float_compare(skill1, skill2); break; case STRAT_LINEUP_WEAKEST: skill1 = player_get_game_skill(pl1, TRUE, TRUE); skill2 = player_get_game_skill(pl2, TRUE, TRUE); return_value = misc_float_compare(skill2, skill1); break; } return return_value; } /** Compare two player positions, taking into account the number of players playing the position in the team. */ gint strategy_compare_positions(gconstpointer a, gconstpointer b, gpointer user_data) { #ifdef DEBUG printf("strategy_compare_positions\n"); #endif gint i, pos[4] = {0, 0, 0, 0}; gint pos1 = *(gint*)a, pos2 = *(gint*)b; const Team *tm = (const Team*)user_data; for(i=0;i<11;i++) if(player_of_idx_team(tm, i)->cskill > 0 && player_is_banned(player_of_idx_team(tm, i)) <= 0) pos[player_of_idx_team(tm, i)->pos]++; return misc_int_compare(pos[pos1], pos[pos2]); } /** Find an appropriate player to send out or in. @param tm The team we work with. @param position The position of the player we seek. @param property According to which property to sort players. @param sub_in Whether we look for a player to send in or out. */ gint strategy_get_sub(const Team *tm, gint position, gint property, gboolean sub_in) { #ifdef DEBUG printf("strategy_get_sub\n"); #endif gint i, start = (sub_in) ? 11 : 0, stop = (sub_in) ? tm->players->len : 11; GPtrArray *players = g_ptr_array_new(); gint return_value = -1; GArray *positions = g_array_new(FALSE, FALSE, sizeof(gint)); if(position < 90) g_array_append_val(positions, position); else { while(position >= 90) { i = math_get_place(position, 1); g_array_append_val(positions, i); position = (position - position % 10) / 10; } g_array_sort_with_data(positions, (GCompareDataFunc)strategy_compare_positions, (gpointer)tm); } for(i=start;icskill > 0 && query_misc_integer_is_in_g_array( player_of_idx_team(tm, i)->pos, positions) && (i > 10 || player_is_banned(player_of_idx_team(tm, i)) <= 0)) g_ptr_array_add(players, (gpointer)player_of_idx_team(tm, i)); if(players->len == 0) { g_ptr_array_free(players, TRUE); return -1; } g_ptr_array_sort_with_data( players, (GCompareDataFunc)strategy_compare_players_sub, GINT_TO_POINTER(property * 10 + g_array_index(positions, gint, 0))); return_value = ((Player*)g_ptr_array_index(players, 0))->id; g_ptr_array_free(players, TRUE); return return_value; } /** Apply the strategy actions specified to the given team. */ void strategy_live_game_apply_action(LiveGame *match, gint team_idx, const StrategyMatchAction *action) { #ifdef DEBUG printf("strategy_live_game_apply_action\n"); #endif gint sub_in_id = -1, sub_out_id = -1; Team *tm = match->fix->teams[team_idx]; gint old_form = tm->structure; g_array_append_val(match->action_ids[team_idx], action->id); if(action->style != -100 && tm->style != action->style) { tm->style = action->style; live_game_event_team_change(team_idx, LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND + tm->style + 2); } if((action->boost != -100 && tm->boost != action->boost) && (action->boost != 1 || !sett_int("int_opt_disable_boost_on"))) { tm->boost = action->boost; live_game_event_team_change(team_idx, LIVE_GAME_EVENT_BOOST_CHANGE_ANTI + tm->boost + 1); } if(action->sub_in_pos != -1 && match->subs_left[team_idx] > 0 && (action->sub_condition == NULL || misc_parse_condition(action->sub_condition, token_strat))) { sub_in_id = strategy_get_sub(tm, action->sub_in_pos, action->sub_in_prop, TRUE); sub_out_id = strategy_get_sub(tm, action->sub_out_pos, action->sub_in_prop, FALSE); if(sub_in_id > 0 && sub_out_id > 0) { player_swap(tm, player_id_index(tm, sub_out_id), tm, player_id_index(tm, sub_in_id)); team_change_structure(tm, team_find_appropriate_structure(tm)); team_rearrange(tm); live_game_event_substitution(team_idx, sub_in_id, sub_out_id); if(tm->structure != old_form) live_game_event_team_change(team_idx, LIVE_GAME_EVENT_STRUCTURE_CHANGE); } } } /** Take match actions specified in the team's strategy if necessary. */ void strategy_live_game_check(LiveGame *match, gint team_idx) { #ifdef DEBUG printf("strategy_live_game_check\n"); #endif gint i; Team *tm = match->fix->teams[team_idx]; const Strategy *strat = strategy_from_sid(tm->strategy_sid); strategy_live_game_set_tokens(match, team_idx); for(i=strat->match_action->len - 1; i >= 0; i--) { if((match->subs_left[team_idx] > 0 || g_array_index(strat->match_action, StrategyMatchAction, i).sub_in_pos == -1) && !query_misc_integer_is_in_g_array( g_array_index(strat->match_action, StrategyMatchAction, i).id, match->action_ids[team_idx]) && (g_array_index(strat->match_action, StrategyMatchAction, i).condition == NULL || misc_parse_condition( g_array_index(strat->match_action, StrategyMatchAction, i).condition, token_strat))) { strategy_live_game_apply_action( match, team_idx, &g_array_index(strat->match_action, StrategyMatchAction, i)); break; } } strategy_free_tokens(); } bygfoot-2.3.2/src/xml_loadsave_jobs.h0000644000175000017500000000336411225071373016605 0ustar eliaselias/* xml_loadsave_jobs.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_JOBS_H #define XML_LOADSAVE_JOBS_H void xml_loadsave_jobs_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_jobs_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_jobs_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_jobs_read(const gchar *dirname, const gchar *basename); void xml_loadsave_jobs_write(const gchar *prefix); #endif bygfoot-2.3.2/src/cup_struct.h0000644000175000017500000001675411225071373015314 0ustar eliaselias/* cup_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef CUP_STRUCT_H #define CUP_STRUCT_H #include "bygfoot.h" #include "table_struct.h" /** Information about what cup another cup has to wait for before scheduling matches. */ typedef struct { /** The cup we wait for. */ gchar *cup_sid; /** The cup round of the cup we wait for. */ gint cup_round; } CupRoundWait; /** Rules for a round of a cup. Cups consist of rounds, e.g. the final counts as a round or the round robin games. */ typedef struct { /** Name of the cup round. By default filled with "Last 32", "Final" etc. */ gchar *name; /** Whether there are home and away games or only one leg. Default: TRUE. */ gboolean home_away; /** How many times a match gets repeated if there's a draw. Default: 0. */ gint replay; /** Whether the matches are on neutral ground. Default: FALSE. */ gboolean neutral; /** Whether the teams array gets randomised before writing the fixtures. Default: TRUE. FALSE makes only sense in the first cup round. */ gboolean randomise_teams; /** How many round robin groups there are. Default: 0 (ie. no round robin). */ gint round_robin_number_of_groups; /** How many teams advance from each group. Default: -1. */ gint round_robin_number_of_advance; /** How many teams advance apart from those that are specified already (e.g. the first two advance and additionally the best 3 from all the groups. Default: 0. */ gint round_robin_number_of_best_advance; /** How many matchdays there are in the round robin phase. */ gint round_robins; /** Number of weeks between the parts of a round robin. */ GArray *rr_breaks; /** Number of new teams participating in the cup round (ie. teams that get loaded and are not advancing from a previous round). */ gint new_teams; /** The number of byes to be awarded for this cup round. The default is enough to bring the next round to a power of two. */ gint byes; /** Number of weeks the cup round is delayed (or scheduled sooner if the value is negative) with respect to the previous cup round and the week gap. Default: 0. */ gint delay; /** Here we store intervals of fixtures during which there should be two matches in a week instead of one. This is only relevant in round robin rounds. */ GArray *two_match_weeks[2]; /** Whether the two matches of a home/away round are played in one week. */ gboolean two_match_week; /** The teams that got loaded for this cup round. Mostly this only happens in the first round. */ GArray *teams; /** Pointers to all teams loaded in the cup round; these teams get passed to the fixture generation function together with the teams advancing from the previous round. */ GPtrArray *team_ptrs; /** Which new teams come into the cup (@see #CupChooseTeam) */ GArray *choose_teams; /** The round robin tables (in case there is a round robin). */ GArray *tables; /** Array with CupRoundWaits. */ GArray *waits; } CupRound; /** Rules for choosing teams from the league files. This could tell us to select the first three teams from the league 'Italy 1' to participate in the cup. */ typedef struct { /** The string id of the league we choose from. Default: "". */ gchar *sid; /** The number of teams chosen. Default: -1 (ie. all teams are chosen). */ gint number_of_teams; /** Which league table to use. Only relevant for leagues which use more than one table during the season. Default is 0, ie. the cumulative table. */ gint from_table; /** The range from which the teams are chosen, e.g. 2 and 5 means the teams from 2 to 5 are chosen (given that 'number_of_teams' is 4). Defaults: -1 (ie. the teams are chosen from the whole range of teams in the league). */ gint start_idx, end_idx; /** Whether the teams are chosen randomly, ie. 3 random teams from the range 1-20. Default: FALSE. */ gboolean randomly; /** Whether the team is generated and loaded from a league file or taken from one of the country's leagues or cups. Default: FALSE. */ gboolean generate; /** Whether to skip the checking if a team participates in other of the same cup groupcups. */ gboolean skip_group_check; /** Whether to load the choose_team when the cup fixtures for the first cup round are written or only when the cup round the choose_team belongs to is scheduled. Default: TRUE. */ gboolean preload; } CupChooseTeam; /** Structure representing a cup. */ typedef struct { /** Name and short name of the cup, a pixmap path, and the string id (e.g. england_fa or so). Default: "". */ gchar *name, *short_name, *symbol, *sid; /** Numerical id. */ gint id; /** An integer specifying which cups are mutually exclusive for league teams, e.g. the same team can't participate in the UEFA Cup and the Champions' League. */ gint group; /** Last week (typically the week the final takes place) and weeks between matchdays. Default: -1 and 1. */ gint last_week, week_gap; /** This determines when the cup gets added to the acps pointer array (and becomes visible for the user). Also determines when the cup fixtures for the first round get written. Default: 0 (ie. the cup is visible from the first week). */ gint add_week; /** Number of yellow cards that lead to a missed match. Default: 1000 (off). */ gint yellow_red; /** Difference of the average talent for the cup teams compared to the league with highest average talent. Default: 0. */ gfloat talent_diff; /** The week and week_round at the beginning of which the fixtures have to be updated. */ gint next_fixture_update_week; gint next_fixture_update_week_round; /** A gchar pointer array of properties (like "national"). */ GPtrArray *properties; /** The rounds of the cup. @see #CupRound*/ GArray *rounds; /** Pointer array containing teams that got a bye for a round of the cup. */ GPtrArray *bye; /** The teams belonging to the cup (stored in the cup rounds, these are only pointers). Relevant only if it's an international one. */ GPtrArray *teams; /** Pointer array with the names of all the teams in the cup. Also the teams from the country's leagues. */ GPtrArray *team_names; /** The fixtures of a season for the cup. */ GArray *fixtures; /** Array of custom breaks in schedule. */ GArray *week_breaks; /** Pointer array with the sids of competitions that the fixtures of which should be avoided when scheduling the cup fixtures. */ GPtrArray *skip_weeks_with; } Cup; #endif bygfoot-2.3.2/src/xml_loadsave_fixtures.c0000644000175000017500000001744511225071373017521 0ustar eliaselias/* xml_loadsave_fixtures.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "fixture.h" #include "misc.h" #include "team.h" #include "variables.h" #include "xml.h" #include "xml_loadsave_fixtures.h" enum { TAG_FIXTURES = TAG_START_FIXTURES, TAG_FIXTURE, TAG_FIXTURE_REPLAY_NUMBER, TAG_FIXTURE_ID, TAG_FIXTURE_WEEK_NUMBER, TAG_FIXTURE_WEEK_ROUND_NUMBER, TAG_FIXTURE_RESULT, TAG_FIXTURE_HOME_ADVANTAGE, TAG_FIXTURE_SECOND_LEG, TAG_FIXTURE_DECISIVE, TAG_FIXTURE_ATTENDANCE, TAG_END }; gint state, residx1, residx2, teamidx, nameidx; Fixture new_fixture; GArray *fixtures_array; void xml_loadsave_fixtures_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_fixtures_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_FIXTURES;i\n", TAG_FIXTURES); for(i=0;ilen;i++) { fprintf(fil, "<_%d>\n", TAG_FIXTURE); xml_write_int(fil, g_array_index(fixtures, Fixture, i).clid, TAG_ID, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).round, TAG_ROUND, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).replay_number, TAG_FIXTURE_REPLAY_NUMBER, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).id, TAG_FIXTURE_ID, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).week_number, TAG_FIXTURE_WEEK_NUMBER, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).week_round_number, TAG_FIXTURE_WEEK_ROUND_NUMBER, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).home_advantage, TAG_FIXTURE_HOME_ADVANTAGE, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).second_leg, TAG_FIXTURE_SECOND_LEG, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).decisive, TAG_FIXTURE_DECISIVE, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).attendance, TAG_FIXTURE_ATTENDANCE, I1); for(j=0;j<2;j++) { xml_write_int(fil, g_array_index(fixtures, Fixture, i).result[j][0], TAG_FIXTURE_RESULT, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).result[j][1], TAG_FIXTURE_RESULT, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).result[j][2], TAG_FIXTURE_RESULT, I1); xml_write_int(fil, g_array_index(fixtures, Fixture, i).team_ids[j], TAG_TEAM_ID, I1); } fprintf(fil, "\n", TAG_FIXTURE); } fprintf(fil, "\n", TAG_FIXTURES); fclose(fil); } bygfoot-2.3.2/src/maths.h0000644000175000017500000000320611225071373014221 0ustar eliaselias/* maths.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MATHS_H #define MATHS_H #include #include "bygfoot.h" /** Macros for random number generation. */ #define math_rnd(lower,upper) g_rand_double_range(rand_generator, lower, upper) #define math_rndi(lower,upper) g_rand_int_range(rand_generator, lower, upper + 1) #define math_gauss_disti(lower, upper) ((gint)rint( math_gauss_dist((gfloat)lower - 0.499, (gfloat)upper + 0.499))) gdouble math_gaussrand(void); gdouble math_gauss_dist(gdouble lower, gdouble upper); gint math_get_place(gint value, gint place); gint math_round_integer(gint number, gint places); void math_generate_permutation(gint *array, gint start, gint end); gint math_get_bye_len(gint number); gint math_sum_int_array(const gint *array, gint max); #endif bygfoot-2.3.2/src/bygfoot.h0000644000175000017500000001277311225071373014567 0ustar eliaselias/* bygfoot.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef BYGFOOT_H #define BYGFOOT_H //#define MAC_BUILD #include #include #include #ifndef MAC_BUILD #ifdef HAVE_CONFIG_H # include #endif #else # include "config.h" #include #endif #include #include "gettext_macros.h" #include "debug.h" /** * Program version number and year (copyright). */ #define VERS "2.3.2" #define YEAR "2005 - 2009" /** Home dir name */ //#define HOMEDIRNAME ".bygfoot-cvs" #define HOMEDIRNAME ".bygfoot" /** * Convenience macros, used for string sizes (typically buf[SMALL]). */ #define SMALL 10000 #define BIG 1000000 /** Starting numbers of league, cup and supercup numerical ids. */ #define ID_LEAGUE_START 1000 #define ID_CUP_START 7000 #define player_id_new (counters[COUNT_PLAYER_ID]++) #define team_id_new (counters[COUNT_TEAM_ID]++) #define cup_id_new (counters[COUNT_CUP_ID]++) #define league_id_new (counters[COUNT_LEAGUE_ID]++) #define fixture_id_new (counters[COUNT_FIX_ID]++) #define lg_commentary_id_new (counters[COUNT_LG_COMM_ID]++) #define news_title_id_new (counters[COUNT_NEWS_TITLE_ID]++) #define news_subtitle_id_new (counters[COUNT_NEWS_SUBTITLE_ID]++) #define news_article_id_new (counters[COUNT_NEWS_ARTICLE_ID]++) /** Convenience abbreviation. */ #define ligs country.leagues /** Convenience abbreviation. */ #define lig(i) g_array_index(country.leagues, League, i) /** Convenience abbreviation. */ #define cps country.cups /** Convenience abbreviation. */ #define cp(i) g_array_index(country.cups, Cup, i) /** Convenience abbreviation. */ #define acps country.allcups /** Convenience abbreviation. */ #define acp(i) ((Cup*)g_ptr_array_index(country.allcups, i)) /** Convenience abbrevs. */ #define stat0 status[0] #define stat1 status[1] #define stat2 status[2] #define stat3 status[3] #define stat4 status[4] #define stat5 status[5] #define debug debug_level #define debug_writer const_int("int_debug_writer") /* Uncommenting this will cause each function to print its name when it's entered. Makes the whole program really slow, of course. */ //#define DEBUG /** * Exit codes. */ enum ExitCodes { EXIT_OK = 0, /**< Normal exit. */ EXIT_GENERAL, /**< A general, multi-purpose exit code. */ EXIT_NO_COUNTRY_FILES, /**< Exit when no country files have been found. */ EXIT_FILE_OPEN_FAILED, /**< A file could not be opened. */ EXIT_PRINT_ERROR, /**< Exit when the print_error function is called on a set error.*/ EXIT_NO_LEAGUES, /**< The game must contain at least one league. */ EXIT_CHOOSE_TEAM_ERROR, /**< There was a problem loading the choose_teams. @see cup_load_choose_teams() */ EXIT_FIXTURE_WRITE_ERROR, /**< There was an error writing the fixtures. */ EXIT_USER_FIRED, /**< Single user was fired and didn't accept the new offer. */ EXIT_FIRST_WEEK_ERROR, /**< First week of cup was negative. */ EXIT_OPTION_NOT_FOUND, /**< An option couldn't be found. */ EXIT_POINTER_NOT_FOUND, /**< We didn't find a pointer needed. */ EXIT_INT_NOT_FOUND, /**< We didn't find an integer value (mostly indices). */ EXIT_FILE_NOT_FOUND, /**< Some file couldn't be found. */ EXIT_NO_SUPPORT_DIR, /**< No support directory found. */ EXIT_CUP_ROUND_ERROR, /**< Too few cup rounds. */ EXIT_LOAD_TEAM_DEF, /**< Error loading a team definition file. */ EXIT_DEF_SORT, /**< Error sorting a team after loading the definition. */ EXIT_PROM_REL, /**< Error when executing the promotion/relegation stuff. */ EXIT_STRATEGY_ERROR, /**< Error related to CPU strategies. */ EXIT_BET_ERROR, /**< Error related to betting. */ EXIT_END }; /** * A struct representing a country. */ typedef struct { gchar *name, /**< Name of the country. */ *symbol, /**< Symbol of the country, eg a flag pixmap. */ *sid; /**< Id of the country, eg 'england'. */ /** A rating point from 0-10 telling us how good the first league of the country is. Spain, for instance, has rating 10, whereas Ireland has only 5. */ gint rating; /** Leagues and cups arrays. */ GArray *leagues, *cups; /** Pointer array holding all cups. */ GPtrArray *allcups; } Country; /** Struct used for having all the windows in one place. */ typedef struct { GtkWidget *main, *startup, *live, *warning, *progress, *digits, *stadium, *job_offer, *yesno, *options, *constants, *font_sel, *file_chooser, *contract, *menu_player, *menu_youth, *user_management, *wdebug, *help, *transfer_dialog, *sponsors, *mmatches, *bets, *splash, *training_camp, *news, *alr; /** The position of the horizontal divider is stored here. */ gint paned_pos; } Windows; #endif bygfoot-2.3.2/src/xml_loadsave_jobs.c0000644000175000017500000001567011225071373016603 0ustar eliaselias/* xml_loadsave_jobs.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "job.h" #include "file.h" #include "free.h" #include "misc.h" #include "variables.h" #include "xml.h" #include "xml_loadsave_jobs.h" #include "xml_loadsave_teams.h" enum { TAG_JOBS = TAG_START_JOBS, TAG_JOB, TAG_JOB_TYPE, TAG_JOB_TIME, TAG_JOB_COUNTRY_FILE, TAG_JOB_COUNTRY_NAME, TAG_JOB_COUNTRY_RATING, TAG_JOB_LEAGUE_NAME, TAG_JOB_LEAGUE_LAYER, TAG_JOB_TALENT_PERCENT, TAG_JOB_TEAM_ID, TAG_END }; gint state; Job new_job; void xml_loadsave_jobs_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_jobs_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_JOBS;i\n", TAG_JOBS); for(i=0;ilen;i++) { fprintf(fil, "<_%d>\n", TAG_JOB); xml_write_int(fil, g_array_index(jobs, Job, i).type, TAG_JOB_TYPE, I1); xml_write_int(fil, g_array_index(jobs, Job, i).time, TAG_JOB_TIME, I1); if(g_array_index(jobs, Job, i).country_file != NULL) xml_write_string(fil, g_array_index(jobs, Job, i).country_file, TAG_JOB_COUNTRY_FILE, I1); if(g_array_index(jobs, Job, i).country_name != NULL) xml_write_string(fil, g_array_index(jobs, Job, i).country_name, TAG_JOB_COUNTRY_NAME, I1); xml_write_int(fil, g_array_index(jobs, Job, i).country_rating, TAG_JOB_COUNTRY_RATING, I1); if(g_array_index(jobs, Job, i).league_name != NULL) xml_write_string(fil, g_array_index(jobs, Job, i).league_name, TAG_JOB_LEAGUE_NAME, I1); xml_write_int(fil, g_array_index(jobs, Job, i).league_layer, TAG_JOB_LEAGUE_LAYER, I1); xml_write_int(fil, g_array_index(jobs, Job, i).talent_percent, TAG_JOB_TALENT_PERCENT, I1); xml_write_int(fil, g_array_index(jobs, Job, i).team_id, TAG_JOB_TEAM_ID, I1); fprintf(fil, "\n", TAG_JOB); } fprintf(fil, "\n", TAG_JOBS); fclose(fil); } bygfoot-2.3.2/src/team.h0000644000175000017500000000670211225071373014037 0ustar eliaselias/* team.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TEAM_H #define TEAM_H #include "bygfoot.h" #include "cup_struct.h" #include "fixture_struct.h" #include "team_struct.h" /** Possibilities for team comparison. */ enum TeamCompare { TEAM_COMPARE_LEAGUE_RANK = 0, TEAM_COMPARE_LEAGUE_LAYER, TEAM_COMPARE_UNSORTED, TEAM_COMPARE_AV_SKILL, TEAM_COMPARE_OFFENSIVE, TEAM_COMPARE_DEFENSE, TEAM_COMPARE_END }; Team team_new(gboolean new_id); gboolean query_is_my_team(const Team *tm); void team_generate_players_stadium(Team *tm, gfloat av_talent); gboolean query_team_is_in_cups(const Team *tm, gint group); gboolean query_team_is_in_cup(const Team *tm, const Cup *cup); GPtrArray* team_get_pointers_from_array(const GArray *teams, GPtrArray *team_ptrs); Team* team_of_id(gint id); Fixture* team_get_fixture(const Team *tm, gboolean last_fixture); gfloat team_get_average_skill(const Team *tm, gboolean cskill); gfloat team_get_average_talent(const Team *tm); gint team_name_is_user(const gchar *team_name); gint team_is_user(const Team *tm); gint team_get_cup_rank(const Team *tm, const CupRound *cupround, gboolean abort); gint team_get_league_rank(const Team *tm, gint clid); void team_change_structure(Team *tm, gint new_structure); gint team_find_appropriate_structure(const Team *tm); void team_rearrange(Team *tm); gchar* team_attribute_to_char(gint attribute, gint value); void team_change_attribute_with_message(Team * tm, gint attribute, gint new_value); void team_update_team_weekly(Team *tm); void team_update_post_match(Team *tm, const Fixture *fix); void team_update_cpu_new_players(Team *tm); void team_update_team_week_roundly(Team *tm); Team* team_get_new(const Team *tm, gboolean fire); GPtrArray* team_get_sorted(GCompareDataFunc compare_function, gint type, gboolean cup); gint team_compare_func(gconstpointer a, gconstpointer b, gpointer data); gint team_get_index(const Team *tm); gfloat team_get_average_talents(const GArray *teams); gboolean query_team_plays(const Team *tm, gint week_number, gint week_round_number); gint team_get_table_value(const Team *tm, gint type); void team_write_results(const Team *tm, gchar *result_buf, gchar *goals_buf); void team_write_overall_results(const Team *tm, gint clid, gchar *results); void team_write_own_results(const Team *tm, gchar *buf, gboolean sort, gboolean cup_matches); gboolean query_team_is_in_teams_array(const Team *tm, const GPtrArray *teams); gchar* team_has_def_file(const Team *tm); void team_complete_def(Team *tm); void team_complete_def_sort(Team *tm); gint team_get_table_clid(const Team *tm); #endif bygfoot-2.3.2/src/xml_mmatches.h0000644000175000017500000000336511225071373015574 0ustar eliaselias/* xml_mmatches.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_MMATCHES_H #define XML_MMATCHES_H void xml_mmatches_write(const gchar *prefix, const GArray *mmatches); void xml_mmatches_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_mmatches_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_mmatches_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_mmatches_read(const gchar *filename, GArray *mmatches); #endif bygfoot-2.3.2/src/player.h0000644000175000017500000001061711225071373014405 0ustar eliaselias/* player.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PLAYER_H #define PLAYER_H #include "bygfoot.h" #include "fixture_struct.h" #include "maths.h" #include "user_struct.h" #include "player_struct.h" #include "team_struct.h" enum PlayerCompareAttrib { PLAYER_COMPARE_ATTRIBUTE_GAME_SKILL = 0, PLAYER_COMPARE_ATTRIBUTE_POS, PLAYER_COMPARE_ATTRIBUTE_LEAGUE_GOALS, PLAYER_COMPARE_ATTRIBUTE_END }; /** Whether or not a player is a youth according to his age. */ #define query_player_is_youth(pl) (pl->age <= const_float("float_player_age_lower")) /** Whether the player belongs to a cpu team. */ #define query_player_is_cpu(pl) (team_is_user(pl->team) == -1) /** Reset the streak counter. */ #define player_streak_reset_count(pl) pl->streak_count = -math_rnd((gfloat)const_int("int_player_streak_lock_length_lower"), (gfloat)const_int("int_player_streak_lock_length_upper")) Player player_new(Team *tm, gfloat average_skill, gboolean new_id); gint player_get_position_from_structure(gint structure, gint player_number); gfloat player_skill_from_talent(const Player *pl); void player_estimate_talent(Player *pl); gint player_assign_value(const Player *pl); gint player_assign_wage(const Player *pl); gint player_all_games_goals(const Player *pl, gint type); gint player_all_cards(const Player *pl); Player* player_of_idx_team(const Team *tm, gint number); Player* player_of_id_team(const Team *tm, gint id); gint player_compare_func(gconstpointer a, gconstpointer b, gpointer data); gint player_compare_substitute_func(gconstpointer a, gconstpointer b, gpointer data); void player_move(Team *tm1, gint player_number, Team *tm2, gint insert_at); void player_swap(Team *tm1, gint player_number1, Team *tm2, gint player_number2); gfloat player_get_cskill(const Player *pl, gint position, gboolean check_health); gint player_is_banned(const Player *pl); gboolean player_substitution_good_structure(gint old_structure, gint old_pos, gint player_pos); gint player_id_index(const Team *tm, gint player_id); gfloat player_get_game_skill(const Player *pl, gboolean skill, gboolean special); void player_decrease_fitness(Player *pl); gint player_card_get(const Player *pl, gint clid, gint card_type); void player_card_set(Player *pl, gint clid, gint card_type, gint value, gboolean diff); void player_games_goals_set(Player *pl, gint clid, gint type, gint value); gint player_games_goals_get(const Player *pl, gint clid, gint type); void player_update_weekly(Player *pl); void player_remove_contract(Player *pl); void player_update_skill(Player *pl); void player_update_fitness(Player *pl); void player_update_post_match(Player *pl, const Fixture *fix); void player_replace_by_new(Player *pl, gboolean free_player); void player_remove_from_team(Team *tm, gint idx); void player_update_week_roundly(Team *tm, gint idx); void player_update_injury(Player *pl); void player_copy(Player *pl, Team *tm, gint insert_at); gchar* player_injury_to_char(gint injury_type); gboolean query_player_id_in_team(gint player_id, const Team *tm); void player_season_start(Player *pl, gfloat skill_change); gchar* player_get_last_name(const gchar *name); void player_complete_def(Player *pl, gfloat average_skill); GPtrArray* player_get_pointers_from_array(const GArray *players); void player_move_to_ya(gint idx); void player_move_from_ya(gint idx); void player_streak_add_to_prob(Player *pl, gfloat add); void player_update_streak(Player *pl); gboolean query_player_is_in_ya(const Player *pl); gboolean query_player_star_balks(const Player *pl, const Team *tm, gboolean transfer); #endif bygfoot-2.3.2/src/language.h0000644000175000017500000000276011225071373014674 0ustar eliaselias/* language.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LANGUAGE_H #define LANGUAGE_H #include "bygfoot.h" #include "option.h" #include #define language_get_current_index() (strlen(opt_str("string_opt_language_code")) > 0) ? language_get_code_index(opt_str("string_opt_language_code")) : -1 gint language_get_code_index(const gchar *code); void language_set(gint index); void language_pick_country(GPtrArray *country_files); void language_get_code(gchar *buf); gint language_compare_country_files(gconstpointer a, gconstpointer b, gpointer data); /* #ifndef G_OS_UNIX */ /* extern int _nl_msg_cat_cntr; */ /* #endif */ #endif bygfoot-2.3.2/src/fixture.h0000644000175000017500000001111211225071373014566 0ustar eliaselias/* fixture.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FIXTURE_H #define FIXTURE_H #include "bygfoot.h" #include "cup_struct.h" #include "fixture_struct.h" #include "league_struct.h" enum FixtureCompare { FIXTURE_COMPARE_DATE = 0, FIXTURE_COMPARE_END }; /** Check whether the team with given id participates in the fixture. */ #define query_fixture_team_involved(fix, team_id) (fix->team_ids[0] == team_id || fix->team_ids[1] == team_id) void fixture_write_league_fixtures(League *league); gboolean fixture_write_cup_fixtures(Cup *cup); void fixture_write_cup_round_robin(Cup *cup, gint cup_round, GPtrArray *teams); void fixture_write_round_robin(gpointer league_cup, gint cup_round, GPtrArray *teams, gboolean one_round, gint first_week, GArray *rr_breaks, gint rr_break_idx); void fixture_write_round_robin_matchday(GArray *fixtures, gint cup_round, GPtrArray *teams, gint special, gint week_number, gint clid, gboolean home_advantage); void fixture_write_knockout_round(Cup *cup, gint cup_round, GPtrArray *teams); void fixture_write(GArray *fixtures, Team *home_team, Team *away_team, gint week_number, gint week_round_number, gint clid, gint cup_round, gint replay_number, gboolean home_advantage, gboolean second_leg, gboolean decisive); void fixture_update(Cup *cup); gboolean fixture_update_write_replays(Cup *cup); GPtrArray* fixture_get_cup_round_winners(const Cup *cup); GPtrArray* fixture_get_round_robin_advance(const Cup *cup, gint round); gpointer fixture_winner_of(const Fixture *fix, gboolean team_id); gint fixture_get_free_round(gint week_number, const GPtrArray *teams, gint team_id1, gint team_id2); gboolean query_fixture_is_earlier(const Fixture *fix1, const Fixture *fix2); gboolean query_fixture_is_later(const Fixture *fix1, const Fixture *fix2); gboolean query_fixture_is_draw(const Fixture *fix); gint fixture_user_team_involved(const Fixture *fix); gboolean query_fixture_has_tables(const Fixture *fix); gboolean query_fixture_in_week_round(gint clid, gint week_number, gint week_round_number); Fixture* fixture_get_first_leg(const Fixture *fix, gboolean silent); GPtrArray* fixture_get_week_list_clid(gint clid, gint week_number, gint week_round_number); void fixture_result_to_buf(const Fixture *fix, gchar *buf, gboolean swap); gint fixture_get_number_of_matches(gint week_number, gint week_round_number); Fixture* fixture_get(gint type, gint clid, gint week_number, gint week_round_number, const Team *tm); Fixture* fixture_get_next(gint clid, gint week_number, gint week_round_number); Fixture* fixture_get_previous(gint clid, gint week_number, gint week_round_number); GPtrArray* fixture_get_latest(const Team *tm, gboolean with_cups); gint fixture_compare_func(gconstpointer a, gconstpointer b, gpointer data); GPtrArray* fixture_get_matches(const Team *tm1, const Team *tm2); GPtrArray* fixture_get_coming(const Team *tm); Fixture* fixture_from_id(gint id, gboolean abort_program); gint fixture_get_last_week_round(gint week_number); void fixture_get_next_week(gint *week_number, gint *week_round_number); void fixture_get_previous_week(gint *week_number, gint *week_round_number); GPtrArray* fixture_get_week_list(gint week_number, gint week_round_number); GPtrArray* fixture_get_season_results(void); gint fixture_get_goals_to_win(const Fixture *fix, const Team *tm); gint fixture_count_matchdays(const GArray *fixtures); gint fixture_get_last_scheduled_week(void); void fixture_remove_rrs(GArray *fixtures, gint clid1, gint clid2, gint to_remove); void fixtures_condense(GArray *fixtures); void fixture_get_cup_round_name(const Fixture *fix, gchar *buf); void fixture_refresh_team_pointers(GArray *fixtures); #endif bygfoot-2.3.2/src/xml_loadsave_season_stats.c0000644000175000017500000002030211225071373020340 0ustar eliaselias/* xml_loadsave_season_stats.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "misc.h" #include "stat.h" #include "variables.h" #include "xml.h" #include "xml_loadsave_league_stat.h" #include "xml_loadsave_season_stats.h" enum { TAG_SEASON_STATS = TAG_START_SEASON_STATS, TAG_SEASON_STAT, TAG_SEASON_NUMBER, TAG_LEAGUE_CHAMPS, TAG_CUP_CHAMPS, TAG_CHAMP_STAT, TAG_CHAMP_STAT_TEAM_NAME, TAG_CHAMP_STAT_CL_NAME, TAG_LEAGUE_STAT_FILE, TAG_END }; gint state, in_state; ChampStat new_champ_stat; SeasonStat new_season_stat; const gchar *dirname2; void xml_loadsave_season_stats_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_loadsave_season_stats_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_SEASON_STATS;i\n", TAG_SEASON_STATS); for(i=0;ilen;i++) { fprintf(fil, "<_%d>\n", TAG_SEASON_STAT); xml_write_int(fil, g_array_index(season_stats, SeasonStat, i).season_number, TAG_SEASON_NUMBER, I1); fprintf(fil, "%s<_%d>\n", I1, TAG_LEAGUE_CHAMPS); for(j=0;jlen;j++) { fprintf(fil, "%s<_%d>\n", I2, TAG_CHAMP_STAT); xml_write_string(fil, g_array_index( g_array_index( season_stats, SeasonStat, i).league_champs, ChampStat, j).team_name, TAG_CHAMP_STAT_TEAM_NAME, I2); xml_write_string(fil, g_array_index( g_array_index( season_stats, SeasonStat, i).league_champs, ChampStat, j).cl_name, TAG_CHAMP_STAT_CL_NAME, I2); fprintf(fil, "%s\n", I2, TAG_CHAMP_STAT); } fprintf(fil, "%s\n", I1, TAG_LEAGUE_CHAMPS); fprintf(fil, "%s<_%d>\n", I1, TAG_CUP_CHAMPS); for(j=0;jlen;j++) { fprintf(fil, "%s<_%d>\n", I2, TAG_CHAMP_STAT); xml_write_string(fil, g_array_index( g_array_index( season_stats, SeasonStat, i).cup_champs, ChampStat, j).team_name, TAG_CHAMP_STAT_TEAM_NAME, I2); xml_write_string(fil, g_array_index( g_array_index( season_stats, SeasonStat, i).cup_champs, ChampStat, j).cl_name, TAG_CHAMP_STAT_CL_NAME, I2); fprintf(fil, "%s\n", I2, TAG_CHAMP_STAT); } fprintf(fil, "%s\n", I1, TAG_CUP_CHAMPS); for(j=0;jlen;j++) { sprintf(buf, "%s___season_stats_league_stat_%02d-%02d.xml", prefix, i, j); basename = g_path_get_basename(buf); xml_write_string(fil, basename, TAG_LEAGUE_STAT_FILE, I1); xml_loadsave_league_stat_write(buf, &g_array_index( g_array_index(season_stats, SeasonStat, i).league_stats, LeagueStat, j)); g_free(basename); } fprintf(fil, "\n", TAG_SEASON_STAT); } fprintf(fil, "\n", TAG_SEASON_STATS); fclose(fil); } bygfoot-2.3.2/src/xml_team.c0000644000175000017500000002112411225071373014705 0ustar eliaselias/* xml_team.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "main.h" #include "misc.h" #include "option.h" #include "player.h" #include "team.h" #include "variables.h" #include "xml_team.h" /** * The tags used in the XML files defining teams. */ #define TAG_TEAM "team" #define TAG_TEAM_NAME "team_name" #define TAG_STADIUM_NAME "stadium_name" #define TAG_SYMBOL "symbol" #define TAG_AVERAGE_TALENT "average_talent" #define TAG_FORMATION "formation" #define TAG_NAMES_FILE "names_file" #define TAG_PLAYER "player" #define TAG_PLAYER_NAME "player_name" #define TAG_PLAYER_BIRTH_YEAR "birth_year" #define TAG_PLAYER_BIRTH_MONTH "birth_month" #define TAG_PLAYER_SKILL "skill" #define TAG_PLAYER_TALENT "talent" #define TAG_PLAYER_POSITION "position" enum XmlTeamStates { STATE_TEAM = 0, STATE_TEAM_NAME, STATE_STADIUM_NAME, STATE_SYMBOL, STATE_AVERAGE_TALENT, STATE_FORMATION, STATE_NAMES_FILE, STATE_PLAYER, STATE_PLAYER_NAME, STATE_PLAYER_BIRTH_YEAR, STATE_PLAYER_BIRTH_MONTH, STATE_PLAYER_SKILL, STATE_PLAYER_TALENT, STATE_PLAYER_POSITION, STATE_END }; gint state, birth_year; Player new_player; Team *team; const gchar *d_file; void xml_team_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_team_read_start_element\n"); #endif if(strcmp(element_name, TAG_TEAM) == 0) state = STATE_TEAM; else if(strcmp(element_name, TAG_TEAM_NAME) == 0) state = STATE_TEAM_NAME; else if(strcmp(element_name, TAG_STADIUM_NAME) == 0) state = STATE_STADIUM_NAME; else if(strcmp(element_name, TAG_SYMBOL) == 0) state = STATE_SYMBOL; else if(strcmp(element_name, TAG_AVERAGE_TALENT) == 0) state = STATE_AVERAGE_TALENT; else if(strcmp(element_name, TAG_FORMATION) == 0) state = STATE_FORMATION; else if(strcmp(element_name, TAG_NAMES_FILE) == 0) state = STATE_NAMES_FILE; else if(strcmp(element_name, TAG_PLAYER) == 0) { state = STATE_PLAYER; new_player = player_new(team, ((gfloat)team->average_talent / 10000) * const_float("float_player_max_skill"), TRUE); } else if(strcmp(element_name, TAG_PLAYER_NAME) == 0) state = STATE_PLAYER_NAME; else if(strcmp(element_name, TAG_PLAYER_BIRTH_YEAR) == 0) state = STATE_PLAYER_BIRTH_YEAR; else if(strcmp(element_name, TAG_PLAYER_BIRTH_MONTH) == 0) state = STATE_PLAYER_BIRTH_MONTH; else if(strcmp(element_name, TAG_PLAYER_SKILL) == 0) state = STATE_PLAYER_SKILL; else if(strcmp(element_name, TAG_PLAYER_TALENT) == 0) state = STATE_PLAYER_TALENT; else if(strcmp(element_name, TAG_PLAYER_POSITION) == 0) state = STATE_PLAYER_POSITION; else debug_print_message("xml_team_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_team_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_team_read_end_element\n"); #endif if(strcmp(element_name, TAG_TEAM_NAME) == 0 || strcmp(element_name, TAG_STADIUM_NAME) == 0 || strcmp(element_name, TAG_SYMBOL) == 0 || strcmp(element_name, TAG_AVERAGE_TALENT) == 0 || strcmp(element_name, TAG_FORMATION) == 0 || strcmp(element_name, TAG_NAMES_FILE) == 0 || strcmp(element_name, TAG_PLAYER) == 0) { state = STATE_TEAM; if(strcmp(element_name, TAG_PLAYER) == 0) { if(team->players->len == const_int("int_team_cpu_players")) { free_player(&new_player); main_exit_program(EXIT_LOAD_TEAM_DEF, "xml_team_read_end_element: too many players in team definition '%s' (only %d allowed).", d_file, const_int("int_team_cpu_players")); } else g_array_append_val(team->players, new_player); } } else if(strcmp(element_name, TAG_PLAYER_NAME) == 0 || strcmp(element_name, TAG_PLAYER_BIRTH_YEAR) == 0 || strcmp(element_name, TAG_PLAYER_BIRTH_MONTH) == 0 || strcmp(element_name, TAG_PLAYER_SKILL) == 0 || strcmp(element_name, TAG_PLAYER_TALENT) == 0 || strcmp(element_name, TAG_PLAYER_POSITION) == 0) state = STATE_PLAYER; else if(strcmp(element_name, TAG_TEAM) != 0) debug_print_message("xml_team_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_team_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_team_read_text\n"); #endif gchar buf[text_len + 1]; gint int_value; gfloat float_value; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); float_value = (gfloat)g_ascii_strtod(buf, NULL); if(state == STATE_TEAM_NAME) misc_string_assign(&team->name, buf); else if(state == STATE_STADIUM_NAME) { g_free(team->stadium.name); misc_string_assign(&team->stadium.name, buf); } else if(state == STATE_SYMBOL) misc_string_assign(&team->symbol, buf); else if(state == STATE_AVERAGE_TALENT && opt_int("int_opt_load_defs") == 1) team->average_talent = (float_value / 10000) * const_float("float_player_max_skill"); else if(state == STATE_FORMATION) team->structure = int_value; else if(state == STATE_NAMES_FILE) misc_string_assign(&team->names_file, buf); else if(state == STATE_PLAYER_NAME) misc_string_assign(&new_player.name, buf); else if(state == STATE_PLAYER_BIRTH_YEAR && opt_int("int_opt_load_defs") == 1) birth_year = int_value; else if(state == STATE_PLAYER_BIRTH_MONTH && opt_int("int_opt_load_defs") == 1) new_player.age = misc_get_age_from_birth(birth_year, int_value); else if(state == STATE_PLAYER_SKILL && opt_int("int_opt_load_defs") == 1) new_player.skill = ((gfloat)int_value / 10000) * const_float("float_player_max_skill"); else if(state == STATE_PLAYER_TALENT && opt_int("int_opt_load_defs") == 1) new_player.talent = ((gfloat)int_value / 10000) * const_float("float_player_max_skill"); else if(state == STATE_PLAYER_POSITION) new_player.pos = int_value; } /** Parse a team definition file and write the team accordingly. */ void xml_team_read(Team *tm, const gchar *def_file) { #ifdef DEBUG printf("xml_team_read\n"); #endif GMarkupParser parser = {xml_team_read_start_element, xml_team_read_end_element, xml_team_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; team = tm; d_file = def_file; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(def_file, &file_contents, &length, &error)) { debug_print_message("xml_team_read: error reading file %s\n", def_file); misc_print_error(&error, FALSE); return; } if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { g_critical("xml_team_read: error parsing file %s\n", def_file); misc_print_error(&error, TRUE); } team_complete_def(team); } bygfoot-2.3.2/src/bet_struct.h0000644000175000017500000000273511225071373015271 0ustar eliaselias/* bet_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef BET_STRUCT_H #define BET_STRUCT_H #include "bygfoot.h" #include "fixture_struct.h" /** A struct representing a betting possibility: a fixture plus odds. */ typedef struct { /** The match the bet is about. */ gint fix_id; /** The odds for a win, draw or loss of the first team. */ gfloat odds[3]; } BetMatch; /** A struct representing a bet by a user. */ typedef struct { /** Match the user betted on. */ gint fix_id; /** Which outcome he picked. */ gint outcome; /** How much he wagered. */ gint wager; } BetUser; #endif bygfoot-2.3.2/src/table_struct.h0000644000175000017500000000343311225071373015602 0ustar eliaselias/* table_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TABLE_STRUCT_H #define TABLE_STRUCT_H #include "bygfoot.h" #include "team_struct.h" /** Table element values. @see TableElement @see Table */ enum TableElementValues { TABLE_PLAYED = 0, TABLE_WON, TABLE_DRAW, TABLE_LOST, TABLE_GF, TABLE_GA, TABLE_GD, TABLE_PTS, TABLE_END }; /** An element representing a team in the tables. @see Table @see #TableElementValues */ typedef struct { Team *team; gint team_id; /** The rank of the element before the last update. Used to display an arrow if the rank changed. */ gint old_rank; gint values[TABLE_END]; } TableElement; /** A table belonging to a league or a cup with round robin. @see TableElement */ typedef struct { gchar *name; gint clid; /** The cup round (or -1 if it's a league). */ gint round; GArray *elements; } Table; #endif bygfoot-2.3.2/src/file.h0000644000175000017500000000563211225071373014031 0ustar eliaselias/* file.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FILE_H #define FILE_H #include "bygfoot.h" #include "player_struct.h" #include "user_struct.h" #ifdef G_OS_UNIX #define file_mkdir(dirname) mkdir(dirname, (S_IRUSR | S_IWUSR | S_IXUSR)) #else #define file_mkdir(dirname) mkdir(dirname) #endif void file_add_support_directory_recursive (const gchar *directory); gchar* file_find_support_file (const gchar *filename, gboolean warning); gboolean file_get_next_opt_line(FILE *fil, gchar *opt_name, gchar *opt_value); void file_load_opt_file(const gchar *filename, OptionList *optionlist, gboolean sort); void file_save_opt_file(const gchar *filename, OptionList *optionlist); GPtrArray* file_dir_get_contents(const gchar *dir_name, const gchar *prefix, const gchar *suffix); gboolean file_my_fopen(const gchar *filename, gchar *bits, FILE **fil, gboolean abort_program); GPtrArray* file_get_country_files(void); void file_load_conf_files(void); void file_load_user_conf_file(User *user); gboolean file_check_home_dir(void); void file_check_home_dir_get_conf_files(GPtrArray **files_to_copy); void file_check_home_dir_get_definition_files(GPtrArray **files_to_copy); void file_check_home_dir_get_definition_dir(const gchar *dirname, const gchar *basename, GPtrArray **files_to_copy); void file_check_home_dir_copy_files(GPtrArray **files_to_copy); gboolean file_my_system(const GString *command); const gchar* file_get_first_support_dir(void); const gchar* file_get_first_support_dir_suffix(const gchar *suffix); void file_compress_files(const gchar *destfile, const gchar *prefix); void file_decompress(const gchar *filename); void file_remove_files(const GString *files); void file_copy_file(const gchar *source_file, const gchar *dest_file); void file_get_bygfoot_dir(gchar *dir); void file_load_hints_file(void); gchar* file_load_text_from_saves(const gchar *filename); void file_store_text_in_saves(const gchar *filename, const gchar *text); gchar* file_get_mac_resource_path(const gchar *resource); #endif bygfoot-2.3.2/src/xml_mmatches.c0000644000175000017500000001437611225071373015573 0ustar eliaselias/* xml_mmatches.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "live_game.h" #include "misc.h" #include "user.h" #include "xml.h" #include "xml_mmatches.h" #include "xml_loadsave_live_game.h" enum { TAG_MMATCHES = 0, TAG_MMATCH, TAG_MMATCHES_COUNTRY_NAME, TAG_MMATCHES_COMP_NAME, TAG_MMATCHES_NEUTRAL, TAG_MMATCHES_USER_TEAM, TAG_MMATCHES_LG_FILE, TAG_END }; /** * The state variable used in the XML parsing functions. */ gint state; MemMatch new_match; gchar *dirname; GArray *mm_array; void xml_mmatches_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_mmatches_start_element\n"); #endif gint i; gint tag = xml_get_tag_from_name(element_name); gboolean valid_tag = FALSE; for(i=TAG_MMATCHES;i\n", TAG_MMATCHES); for(i=0;ilen;i++) { fprintf(fil, "<_%d>\n", TAG_MMATCH); xml_write_g_string(fil, g_array_index(mmatches, MemMatch, i).competition_name, TAG_MMATCHES_COMP_NAME, I1); xml_write_string(fil, g_array_index(mmatches, MemMatch, i).country_name, TAG_MMATCHES_COUNTRY_NAME, I1); xml_write_int(fil, g_array_index(mmatches, MemMatch, i).neutral, TAG_MMATCHES_NEUTRAL, I1); xml_write_int(fil, g_array_index(mmatches, MemMatch, i).user_team, TAG_MMATCHES_USER_TEAM, I1); sprintf(buf, "%slg%03d", basename, i); xml_write_string(fil, buf, TAG_MMATCHES_LG_FILE, I1); sprintf(buf, "%slg%03d", prefix, i); xml_loadsave_live_game_write(buf, &g_array_index(mmatches, MemMatch, i).lg); fprintf(fil, "\n", TAG_MMATCH); } fprintf(fil, "\n", TAG_MMATCHES); fclose(fil); g_free(basename); } bygfoot-2.3.2/src/user_struct.h0000644000175000017500000001627411225071373015500 0ustar eliaselias/* user_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef USER_STRUCT_H #define USER_STRUCT_H #include "bygfoot.h" #include "enums.h" #include "live_game_struct.h" #include "option_struct.h" #include "player_struct.h" #include "team_struct.h" #include "youth_academy_struct.h" /** Indices for the money_in array. */ enum MonIn { MON_IN_PRIZE = 0, MON_IN_TICKET, MON_IN_SPONSOR, MON_IN_BETS, MON_IN_TRANSFERS, MON_IN_END }; /** Indices for the money_out array. */ enum MonOut { MON_OUT_WAGE = 0, MON_OUT_PHYSIO, MON_OUT_SCOUT, MON_OUT_YC, MON_OUT_YA, MON_OUT_JOURNEY, MON_OUT_COMPENSATIONS, MON_OUT_BETS, MON_OUT_BOOST, MON_OUT_TRANSFERS, MON_OUT_STADIUM_IMPROVEMENT, MON_OUT_STADIUM_BILLS, MON_OUT_TRAINING_CAMP, MON_OUT_END }; /** Indices for the counters variable in #User. */ enum CounterValue { COUNT_USER_LOAN = 0, /** How many weeks until user has to pay back his loan. */ COUNT_USER_OVERDRAWN, /**< How often the user overdrew his bank account. */ COUNT_USER_POSITIVE, /**< How many weeks until the bank account has to be positive or at least not overdrawn). */ COUNT_USER_SUCCESS, /**< How successful the user is. */ COUNT_USER_WARNING, /**< Whether there was already a warning about rumours (new coach). */ COUNT_USER_INC_CAP, /**< How many weeks until the stadium capacity is increased. */ COUNT_USER_INC_SAF, /**< How often the stadium safety was increased (in a week). */ COUNT_USER_STADIUM_CAPACITY, /**< Counter for building stadium seats. */ COUNT_USER_STADIUM_SAFETY, /**< Counter for increasing stadium safety. */ COUNT_USER_SHOW_RES, /**< Whether the latest result is shown when the main window gets refreshed. */ COUNT_USER_TOOK_TURN, /**< Whether the user took his turn in a week round. */ COUNT_USER_NEW_SPONSOR, /**< A new sponsor offer has to be shown. */ COUNT_USER_TRAININGS_WEEK, /**< Whether the user has already had a training camp this week. */ COUNT_USER_TRAININGS_LEFT_SEASON, /**< How many training camps left for the season. */ COUNT_USER_END }; /** User-related things that get recorded. */ enum UserHistoryType { USER_HISTORY_START_GAME = 0, USER_HISTORY_FIRE_FINANCE, USER_HISTORY_FIRE_FAILURE, USER_HISTORY_JOB_OFFER_ACCEPTED, USER_HISTORY_END_SEASON, USER_HISTORY_PROMOTED, USER_HISTORY_RELEGATED, USER_HISTORY_WIN_FINAL, USER_HISTORY_LOSE_FINAL, USER_HISTORY_REACH_CUP_ROUND, USER_HISTORY_CHAMPION, USER_HISTORY_END }; /** A memorable match (a recording of a live game) of a user. */ typedef struct { /** Name of the country the user was playing with. */ gchar *country_name; /** The name of the competition, including the cup round name. */ GString *competition_name; /** Whether the match was on neutral ground. Only relevant for MM list display. */ gboolean neutral; /** 0 or 1, indicating which team was the user's. */ gint user_team; /** The recording. */ LiveGame lg; } MemMatch; /** A structure holding an element of a user's history, e.g. the event of being fired. */ typedef struct { /** When the event happened. */ gint season, week; /** The type (see #UserHistoryType) of the history event. */ gint type; /** The team of the user at the time. */ gchar *team_name; /** These can hold various information like team or league/cup ids. */ gchar *string[3]; } UserHistory; /** A user sponsor. */ typedef struct { GString *name; gint benefit; /**< Money per week. */ gint contract; /**< Contract length in weeks. */ } UserSponsor; /** A structure representing a human player. */ typedef struct { /** Username. */ gchar *name; /** The team the user manages. */ Team *tm; /** The team id (needed when the team pointer gets invalid). */ gint team_id; /** User options. */ OptionList options; /** Events shown each week. */ GArray *events; /** User history. */ GArray *history; /** User counters (not changeable by the user), like number of weeks until debt has to be paid back. */ gint counters[COUNT_USER_END]; /** The user's money, debt, income and expenses. We have double arrays to store information about the current and the past week. */ gint money, debt, money_in[2][MON_IN_END], money_out[2][MON_OUT_END]; /** Interest the debt was taken at. */ gfloat debt_interest; /** Information about the automatic loan repayment. */ gint alr_start_week, alr_weekly_installment; /** The user's scout and physio qualities. @see #Quality */ gint scout, physio; /** The variable for the latest user live game. @see #Game */ LiveGame live_game; /** Sponsor of the user. */ UserSponsor sponsor; /** Youth academy of the user. */ YouthAcademy youth_academy; /** The currently used MM file. */ gchar *mmatches_file; /** The array of MMs. */ GArray *mmatches; /** Array of current and recent bets. */ GArray *bets[2]; // An array of gint that will be used to store the default team of a user GArray *default_team; // the default structure of a user team. gint default_structure; } User; enum EventType { EVENT_TYPE_WARNING = 0, EVENT_TYPE_PLAYER_LEFT, EVENT_TYPE_PAYBACK, EVENT_TYPE_OVERDRAW, EVENT_TYPE_JOB_OFFER, EVENT_TYPE_FIRE_FINANCE, EVENT_TYPE_FIRE_FAILURE, EVENT_TYPE_TRANSFER_OFFER_USER, EVENT_TYPE_TRANSFER_OFFER_CPU, EVENT_TYPE_TRANSFER_OFFER_REJECTED_BETTER_OFFER, EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE_WAGE, EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE, EVENT_TYPE_TRANSFER_OFFER_REJECTED_WAGE, EVENT_TYPE_TRANSFER_OFFER_REJECTED_STARS, EVENT_TYPE_TRANSFER_OFFER_MONEY, EVENT_TYPE_TRANSFER_OFFER_ROSTER, EVENT_TYPE_PLAYER_CAREER_STOP, EVENT_TYPE_CHARITY, EVENT_TYPE_END }; /** A structure representing an event for a user. This is used to show information like a successful transfer or a job offer. */ typedef struct { /** Pointer to the user the event belongs to. */ User *user; /** Type of the event. See #EventType. */ gint type; /** Some values that are used for different purposes. */ gint value1, value2; /** A pointer for different purposes. */ gpointer value_pointer; /** A string for different purposes. */ gchar *value_string; } Event; #endif bygfoot-2.3.2/src/start_end.h0000644000175000017500000000342311225071373015071 0ustar eliaselias/* start_end.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef START_END_H #define START_END_H #include "bygfoot.h" void start_new_game(void); void start_new_season(void); void start_write_variables(void); void start_generate_league_teams(void); void end_week_round(void); void end_week_round_results(void); void end_week_round_sort_tables(void); void end_week_round_update_fixtures(void); void start_week_round(void); void start_week(void); void start_week_update_teams(void); void start_week_round_update_teams(void); void start_week_update_user_finances(void); void start_week_update_users(void); gboolean query_start_end_season_end(void); void start_new_season_league_changes(void); void end_week(void); void end_season(void); void start_week_add_cups(void); void end_week_hide_cups(void); void start_new_season_reset_ids(void); void start_week_update_leagues(void); void end_week_round_generate_news(void); #endif bygfoot-2.3.2/src/window.h0000644000175000017500000000514411225071373014417 0ustar eliaselias/* window.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef WINDOW_H #define WINDOW_H #include "bygfoot.h" /** These are used to keep track of open windows. @see window_create() */ enum Windows { WINDOW_MAIN = 0, WINDOW_STARTUP, WINDOW_LIVE, WINDOW_WARNING, WINDOW_PROGRESS, WINDOW_DIGITS, WINDOW_STADIUM, WINDOW_JOB_OFFER, WINDOW_YESNO, WINDOW_OPTIONS, WINDOW_CONSTANTS, WINDOW_FONT_SEL, WINDOW_FILE_CHOOSER, WINDOW_CONTRACT, WINDOW_USER_MANAGEMENT, WINDOW_DEBUG, WINDOW_HELP, WINDOW_TRANSFER_DIALOG, WINDOW_SPONSORS, WINDOW_MMATCHES, WINDOW_BETS, WINDOW_SPLASH, WINDOW_END, WINDOW_TRAINING_CAMP, WINDOW_NEWS, WINDOW_ALR }; void window_show_help(gint page); void window_show_startup(void); GtkWidget* window_create(gint window_type); void window_destroy(GtkWidget **wind); void window_show_digits(const gchar *text_main, const gchar* text1, gint value1, const gchar* text2, gint value2, gboolean show_alr); void window_show_file_sel(void); void window_show_stadium(void); void window_show_yesno(const gchar *text); void window_show_options(void); void window_show_menu_player(GdkEvent *event); void window_show_menu_youth(GdkEvent *event); void window_live_set_up(void); void window_show_transfer_dialog(const gchar *text); void window_show_mmatches(void); void window_main_save_geometry(void); void window_main_load_geometry(void); void window_show_bets(void); void window_show_progress(gint pictype); void window_show_splash(void); void window_load_hint_number(void); void window_save_hint_number(void); void window_splash_show_hint(void); void window_show_training_camp(void); void window_show_alr(void); void window_show_constants(void); #endif bygfoot-2.3.2/src/xml_loadsave_players.h0000644000175000017500000000252411225071373017324 0ustar eliaselias/* xml_loadsave_players.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_PLAYERS_H #define XML_LOADSAVE_PLAYERS_H #include "bygfoot.h" #include "team_struct.h" void xml_loadsave_players_text(gchar *text); void xml_loadsave_players_end_element(gint tag, GArray *players); void xml_loadsave_players_start_element(gint tag, Team *tm); void xml_loadsave_players_write_player(FILE *fil, const Player *pl); void xml_loadsave_players_write(FILE *fil, const GArray *players); #endif bygfoot-2.3.2/src/news_struct.h0000644000175000017500000000576011225071373015474 0ustar eliaselias/* news_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef NEWS_STRUCT_H #define NEWS_STRUCT_H /** Enumeration of news article types. */ enum NewsArticleTypes { NEWS_ARTICLE_TYPE_MATCH = 0, /**< Article about a match. */ NEWS_ARTICLE_TYPE_FINANCES, /**< Article about user finances. */ NEWS_ARTICLE_TYPE_STAR_PLAYER_TRANSFER, /**< Article about good players appearing on the transfer list. */ NEWS_ARTICLE_TYPE_LEAGUE_CHAMPION, /**< Article about teams clinching the championship. */ NEWS_ARTICLE_TYPE_CUP_QUALIFICATION, /**< Article about teams clinching cup berths. */ NEWS_ARTICLE_TYPE_RELEGATION, /**< Article about teams getting relegated. */ NEWS_ARTICLE_TYPE_END }; /** Structure containing a news title or subtitle with tokens. */ typedef struct { gchar *text; /** Priority of the text (compared to the other ones for the same article type). The higher the priority the higher the probability that the text gets picked. */ gint priority; /** An id to keep track of already used texts (so as not to use the same one too frequently). */ gint id; /** A condition (if not fulfilled, the title or subtitle doesn't get considered). */ gchar *condition; } NewsText; /** Structure describing a news paper article with tokens. */ typedef struct { /** Possible article titles (possibly containing tokens). */ GArray *titles; /** Possible article subtitles (possibly containing tokens). */ GArray *subtitles; /** A condition (if not fulfilled, the article doesn't get shown). */ gchar *condition; /** Priority of the article. */ gint priority; /** An id to avoid repetitions. */ gint id; } NewsArticle; /** Structure holding an article without tokens (ie. the real deal that's displayed). */ typedef struct { gint week_number, week_round_number; gint title_id, subtitle_id; gint clid, cup_round; gchar *title_small, *title, *subtitle; gint id; gint user_idx; } NewsPaperArticle; /** Structure holding the newspaper for the game. */ typedef struct { /** The array of created articles. */ GArray *articles; } NewsPaper; #endif bygfoot-2.3.2/src/support.h0000644000175000017500000000372211225071373014624 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include /* * Standard gettext macros. */ #ifdef ENABLE_NLS # include # undef _ # define _(String) dgettext (PACKAGE, String) # define Q_(String) g_strip_context ((String), gettext (String)) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else # define textdomain(String) (String) # define gettext(String) (String) # define dgettext(Domain,Message) (Message) # define dcgettext(Domain,Message,Type) (Message) # define bindtextdomain(Domain,Directory) (Domain) # define _(String) (String) # define Q_(String) g_strip_context ((String), (String)) # define N_(String) (String) #endif /* * Public Functions. */ /* * This function returns a widget in a component created by Glade. * Call it with the toplevel widget in the component (i.e. a window/dialog), * or alternatively any widget in the component, and the name of the widget * you want returned. */ GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name); /* Use this function to set the directory containing installed pixmaps. */ void add_pixmap_directory (const gchar *directory); /* * Private Functions. */ /* This is used to create the pixmaps used in the interface. */ GtkWidget* create_pixmap (GtkWidget *widget, const gchar *filename); /* This is used to create the pixbufs used in the interface. */ GdkPixbuf* create_pixbuf (const gchar *filename); /* This is used to set ATK action descriptions. */ void glade_set_atk_action_description (AtkAction *action, const gchar *action_name, const gchar *description); bygfoot-2.3.2/src/job.c0000644000175000017500000002556511225071373013666 0ustar eliaselias/* job.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "bet.h" #include "cup.h" #include "file.h" #include "free.h" #include "job.h" #include "league.h" #include "live_game.h" #include "main.h" #include "maths.h" #include "option.h" #include "start_end.h" #include "team.h" #include "transfer.h" #include "user.h" #include "variables.h" #include "xml_country.h" /** Update the job exchange: remove expired offers and add new ones. */ void job_update(void) { #ifdef DEBUG printf("job_update\n"); #endif gint i; gint new_offers, int_offers; for(i=jobs->len - 1; i >= 0; i--) { g_array_index(jobs, Job, i).time--; if(g_array_index(jobs, Job, i).time <= 0) job_remove(&g_array_index(jobs, Job, i), TRUE); } if(week % const_int("int_job_update_interval") != 2) return; new_offers = math_rndi(const_int("int_job_new_offers_lower"), const_int("int_job_new_offers_upper")); int_offers = (users->len == 1) ? (gint)rint((gfloat)new_offers * const_float("float_job_international_perc")) : 0; for(i=0;ilen - 1); while(g_strrstr((gchar*)g_ptr_array_index(country_files, rndom), country.sid)); idx = job_country_is_in_list( (gchar*)g_ptr_array_index(country_files, rndom), countries, num_of_new); if(idx == -1) { idx = k; xml_country_read((gchar*)g_ptr_array_index(country_files, rndom), &countries[k]); counters[COUNT_LEAGUE_ID] -= countries[k].leagues->len; k++; } job_pick_team_from_country(&countries[idx], &tm, &league); new_job.country_file = g_strdup_printf("country_%s.xml", countries[idx].sid); new_job.time = math_rndi(const_int("int_job_update_interval") - 1, const_int("int_job_update_interval") + 1); new_job.country_name = g_strdup(countries[idx].name); new_job.country_rating = countries[idx].rating; new_job.league_name = g_strdup(league->name); new_job.league_layer = league->layer; team_id = job_team_is_in_cup(tm->name); if(team_id == -1) { team_generate_players_stadium(tm, league->average_talent); g_array_append_val(job_teams, *tm); new_job.team_id = tm->id; new_job.type = JOB_TYPE_INTERNATIONAL; } else { new_job.team_id = team_id; new_job.type = JOB_TYPE_CUP; } new_job.talent_percent = (gint)rint((team_get_average_talent(tm) / league->average_talent) * 100); g_array_append_val(jobs, new_job); } free_gchar_array(&country_files); } /** Find out whether the country file is already loaded and part of the country array. @param len The length of the array. */ gint job_country_is_in_list(const gchar *country_file, const Country *countries, gint len) { #ifdef DEBUG printf("job_country_is_in_list\n"); #endif gint i; for(i=0;iname; new_job.league_layer = league->layer; new_job.talent_percent = (gint)rint((team_get_average_talent(tm) / league->average_talent) * 100); new_job.team_id = tm->id; g_array_append_val(jobs, new_job); } void job_pick_team_from_country(const Country *cntry, Team **tm, League **league) { #ifdef DEBUG printf("job_pick_team_from_country\n"); #endif gint i, rndom; gint team_lens[cntry->leagues->len]; team_lens[0] = g_array_index(cntry->leagues, League, 0).teams->len; for(i=1;ileagues->len;i++) team_lens[i] = team_lens[i - 1] + g_array_index(cntry->leagues, League, i).teams->len; do { rndom = math_rndi(0, team_lens[cntry->leagues->len - 1] - 1); for(i=0;ileagues->len;i++) if(rndom < team_lens[i]) { *tm = (i > 0) ? &g_array_index(g_array_index( cntry->leagues, League, i).teams, Team, rndom - team_lens[i - 1]) : &g_array_index(g_array_index( cntry->leagues, League, i).teams, Team, rndom); *league = &g_array_index(cntry->leagues, League, i); break; } } while(team_is_user(*tm) != -1 || job_team_is_on_list((*tm)->id) != -1); } /** Find out whether the team with given id is already on the job exchange list. @return The index in the jobs array if the team is on the list or -1. */ gint job_team_is_on_list(gint team_id) { #ifdef DEBUG printf("job_team_is_on_list\n"); #endif gint i; for(i=0;ilen;i++) if(g_array_index(jobs, Job, i).team_id == team_id) return i; return -1; } /** Find out whether the team with given name is participating in an international cup (and thus doesn't have to be generated). @return The id of the team if found or -1. */ gint job_team_is_in_cup(const gchar *team_name) { #ifdef DEBUG printf("job_team_is_in_cup\n"); #endif gint i, j; for(i=0;ilen;i++) for(j=0;jteams->len;j++) if(strcmp(team_name, ((Team*)g_ptr_array_index(acp(i)->teams, j))->name) == 0) return ((Team*)g_ptr_array_index(acp(i)->teams, j))->id; return -1; } /** Find the team going with the job offer. */ Team* job_get_team(const Job *job) { #ifdef DEBUG printf("job_get_team\n"); #endif gint i, j; if(job->type == JOB_TYPE_NATIONAL) return team_of_id(job->team_id); else if(job->type == JOB_TYPE_INTERNATIONAL) { for(i=0;ilen;i++) if(g_array_index(job_teams, Team, i).id == job->team_id) return &g_array_index(job_teams, Team, i); } else { for(i=0;ilen;i++) for(j=0;jteams->len;j++) if(((Team*)g_ptr_array_index(acp(i)->teams, j))->id == job->team_id) return (Team*)g_ptr_array_index(acp(i)->teams, j); } main_exit_program(EXIT_POINTER_NOT_FOUND, "job_get_team: team not found (league %s, country %s.", job->league_name, job->country_name); return NULL; } /** Find out whether the user's application for the job gets accepted. */ gboolean query_job_application_successful(const Job *job, const User *user) { #ifdef DEBUG printf("query_job_application_successful\n"); #endif gfloat success_needed; const Team *tm = job_get_team(job); gfloat user_av_skill = team_get_average_skill(user->tm, FALSE), job_av_skill = team_get_average_skill(tm, FALSE); success_needed = (job_av_skill - user_av_skill) * (gfloat)const_int("int_job_application_points_per_av_skill"); success_needed += ((gfloat)(job->league_layer - league_from_clid(user->tm->clid)->layer) * (gfloat)const_int("int_job_application_points_per_layer")); if(job->type != JOB_TYPE_NATIONAL) { success_needed += (gfloat)const_int("int_job_application_points_international"); success_needed += ((gfloat)(job->country_rating - country.rating) * (gfloat)const_int("int_job_application_points_per_rating")); } return (user->counters[COUNT_USER_SUCCESS] >= success_needed); } /** Remove a job from the jobs array. @param free Whether to free memory occupied by the job and its team. */ void job_remove(Job *job, gboolean free_tm) { #ifdef DEBUG printf("job_remove\n"); #endif gint i; for(i=0;ilen;i++) if(&g_array_index(jobs, Job, i) == job) { free_job(job, free_tm); g_array_remove_index(jobs, i); break; } } /** Change the game so that the country is used that's specified in the job. */ void job_change_country(Job *job) { #ifdef DEBUG printf("job_change_country\n"); #endif gint i, j, k; Team tm = *(job_get_team(job)); gint season_temp = season + 1; for(i=transfer_list->len - 1;i>=0;i--) transfer_remove_player(i); free_bets(TRUE); /* There's only one user (otherwise international job offers are disabled). */ for(i=0;i<2;i++) { g_array_free(usr(0).bets[i], TRUE); usr(0).bets[i] = g_array_new(FALSE, FALSE, sizeof(BetUser)); } live_game_reset(&usr(0).live_game, NULL, FALSE); free_country(&country, TRUE); xml_country_read(job->country_file, &country); stat5 = STATUS_GENERATE_TEAMS; for(i=0;ilen;i++) for(j=0;jlen;j++) if(strcmp(g_array_index(lig(i).teams, Team, j).name, tm.name) != 0) team_generate_players_stadium(&g_array_index(lig(i).teams, Team, j), 0); else { tm.id = g_array_index(lig(i).teams, Team, j).id; tm.clid = g_array_index(lig(i).teams, Team, j).clid; job->team_id = tm.id; free_team(&g_array_index(lig(i).teams, Team, j)); g_array_index(lig(i).teams, Team, j) = tm; for(k=0;klen;k++) g_array_index(g_array_index(lig(i).teams, Team, j).players, Player, k).team = &g_array_index(lig(i).teams, Team, j); } stat5 = -1; /* Set season to 1 so that some special things in the start_new_season function don't get applied. */ season = 1; start_new_season(); season = season_temp; } bygfoot-2.3.2/src/option.c0000644000175000017500000001456011225071373014415 0ustar eliaselias/* option.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "main.h" #include "misc.h" #include "option.h" #include "variables.h" /** Return the string going with the option named 'name'. @param name The name of the option. @return The string_value of the option. @see #Option */ gchar* option_string(const gchar *name, OptionList *optionlist) { #ifdef DEBUG printf("option_string\n"); #endif #ifdef DEBUG printf("option_string\n"); #endif gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element != NULL) return ((Option*)element)->string_value; main_exit_program(EXIT_OPTION_NOT_FOUND, "option_string: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); return NULL; } /** Return the GString pointer going with the option. */ gchar** option_string_pointer(const gchar *name, OptionList *optionlist) { gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element != NULL) return &((Option*)element)->string_value; main_exit_program(EXIT_OPTION_NOT_FOUND, "option_string: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); return NULL; } /** Return the integer going with the option named 'name'. @param name The name of the option. @return The value of the option. @see #Option */ gint option_int(const gchar *name, OptionList *optionlist) { #ifdef DEBUG printf("option_int\n"); #endif gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element != NULL) return ((Option*)element)->value; main_exit_program(EXIT_OPTION_NOT_FOUND, "option_int: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); return -1; } /** Return the address of an options variable. */ gint* option_int_pointer(const gchar *name, OptionList *optionlist) { #ifdef DEBUG printf("option_int_pointer\n"); #endif gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element != NULL) return &((Option*)element)->value; main_exit_program(EXIT_OPTION_NOT_FOUND, "option_int: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); return NULL; } /** Return the int going with the option named 'name' cast to float and divided by 1000. @param name The name of the option. @return The value of the option cast to float and divided by 1000. @see #Option */ gfloat option_float(const gchar *name, OptionList *optionlist) { gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element != NULL) return (gfloat)((Option*)element)->value / OPTION_FLOAT_DIVISOR; main_exit_program(EXIT_OPTION_NOT_FOUND, "option_float: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); return -1; } /** Change the value of a string option in the array. @param name The name of the option. @param option_array The option array. @param new_value The value we set. */ void option_set_string(const gchar *name, OptionList *optionlist, const gchar *new_value) { #ifdef DEBUG printf("option_set_string\n"); #endif gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element == NULL) debug_print_message("option_set_string: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); else misc_string_assign(&((Option*)element)->string_value, new_value); } /** Change the value of an int option in the array. @param name The name of the option. @param option_array The option array. @param new_value The value we set. */ void option_set_int(const gchar *name, OptionList *optionlist, gint new_value) { #ifdef DEBUG printf("option_set_int\n"); #endif gpointer element = g_datalist_get_data(&optionlist->datalist, name); if(element == NULL) debug_print_message("option_set_int: option named %s not found\nMaybe you should delete the .bygfoot directory from your home dir", name); else ((Option*)element)->value = new_value; } /** Add an option to the optionlist with the given values. */ void option_add(OptionList *optionlist, const gchar *name, gint int_value, const gchar *string_value) { #ifdef DEBUG printf("option_add\n"); #endif gint i; Option new; gpointer element = NULL; if(optionlist->list != NULL) element = g_datalist_get_data(&optionlist->datalist, name); if(element != NULL) { if(debug > 0) debug_print_message("Option %s already in optionlist\n", name); ((Option*)element)->value = int_value; ((Option*)element)->string_value = (string_value == NULL) ? NULL : g_strdup(string_value); return; } new.name = g_strdup(name); new.value = int_value; new.string_value = (string_value == NULL) ? NULL : g_strdup(string_value); if(optionlist->list == NULL) { optionlist->list = g_array_new(FALSE, FALSE, sizeof(Option)); g_datalist_init(&optionlist->datalist); } g_array_append_val(optionlist->list, new); for(i=0;ilist->len;i++) g_datalist_set_data(&optionlist->datalist, g_array_index(optionlist->list, Option, i).name, &g_array_index(optionlist->list, Option, i)); } gint option_compare_func(gconstpointer a, gconstpointer b) { return misc_alphabetic_compare(((const Option*)a)->name, ((const Option*)b)->name); } bygfoot-2.3.2/src/Makefile.in0000644000175000017500000007554211225071373015015 0ustar eliaselias# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = bygfoot$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_bygfoot_OBJECTS = bet.$(OBJEXT) callback_func.$(OBJEXT) \ callbacks.$(OBJEXT) cup.$(OBJEXT) debug.$(OBJEXT) \ file.$(OBJEXT) finance.$(OBJEXT) fixture.$(OBJEXT) \ free.$(OBJEXT) game.$(OBJEXT) game_gui.$(OBJEXT) gui.$(OBJEXT) \ interface.$(OBJEXT) job.$(OBJEXT) language.$(OBJEXT) \ lg_commentary.$(OBJEXT) league.$(OBJEXT) live_game.$(OBJEXT) \ load_save.$(OBJEXT) main.$(OBJEXT) maths.$(OBJEXT) \ misc.$(OBJEXT) misc_callbacks.$(OBJEXT) \ misc_callback_func.$(OBJEXT) misc2_callbacks.$(OBJEXT) \ misc3_callbacks.$(OBJEXT) misc2_callback_func.$(OBJEXT) \ misc_interface.$(OBJEXT) misc2_interface.$(OBJEXT) \ misc3_interface.$(OBJEXT) name.$(OBJEXT) news.$(OBJEXT) \ option.$(OBJEXT) option_gui.$(OBJEXT) \ options_callbacks.$(OBJEXT) options_interface.$(OBJEXT) \ player.$(OBJEXT) start_end.$(OBJEXT) stat.$(OBJEXT) \ strategy.$(OBJEXT) support.$(OBJEXT) table.$(OBJEXT) \ team.$(OBJEXT) training.$(OBJEXT) training_callbacks.$(OBJEXT) \ training_interface.$(OBJEXT) transfer.$(OBJEXT) \ treeview.$(OBJEXT) treeview2.$(OBJEXT) \ treeview_helper.$(OBJEXT) user.$(OBJEXT) window.$(OBJEXT) \ xml.$(OBJEXT) xml_loadsave_cup.$(OBJEXT) \ xml_loadsave_fixtures.$(OBJEXT) xml_loadsave_jobs.$(OBJEXT) \ xml_loadsave_league.$(OBJEXT) \ xml_loadsave_leagues_cups.$(OBJEXT) \ xml_loadsave_league_stat.$(OBJEXT) \ xml_loadsave_live_game.$(OBJEXT) xml_loadsave_misc.$(OBJEXT) \ xml_loadsave_newspaper.$(OBJEXT) \ xml_loadsave_players.$(OBJEXT) \ xml_loadsave_season_stats.$(OBJEXT) \ xml_loadsave_table.$(OBJEXT) xml_loadsave_teams.$(OBJEXT) \ xml_loadsave_transfers.$(OBJEXT) xml_loadsave_users.$(OBJEXT) \ xml_cup.$(OBJEXT) xml_country.$(OBJEXT) xml_league.$(OBJEXT) \ xml_lg_commentary.$(OBJEXT) xml_mmatches.$(OBJEXT) \ xml_name.$(OBJEXT) xml_news.$(OBJEXT) xml_strategy.$(OBJEXT) \ xml_team.$(OBJEXT) youth_academy.$(OBJEXT) bygfoot_OBJECTS = $(am_bygfoot_OBJECTS) am__DEPENDENCIES_1 = bygfoot_DEPENDENCIES = $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(bygfoot_SOURCES) DIST_SOURCES = $(bygfoot_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GST_CFLAGS = @GST_CFLAGS@ GST_LIBS = @GST_LIBS@ HAVE_GSTREAMER = @HAVE_GSTREAMER@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALEDIR = @LOCALEDIR@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -Wall #-fprofile-arcs -ftest-coverage -pg INCLUDES = \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ @PACKAGE_CFLAGS@ @GST_CFLAGS@ bygfoot_SOURCES = \ bet.c bet.h finance.h fixture.h game_gui.h league.h main.h maths.h misc.h option.h player.h support.h treeview2.h user.h \ callback_func.c bet.h callback_func.h callbacks.h cup.h finance.h fixture.h game_gui.h gui.h league.h live_game.h maths.h misc.h option.h player.h start_end.h team.h transfer.h treeview.h treeview_helper.h user.h window.h \ callbacks.c callback_func.h callbacks.h debug.h fixture.h free.h game_gui.h game.h gui.h job.h league.h load_save.h main.h misc2_callback_func.h option.h player.h table.h team.h transfer.h treeview2.h treeview.h treeview_helper.h user.h window.h \ cup.c cup.h fixture.h free.h league.h main.h maths.h misc.h option.h table.h team.h variables.h xml_league.h \ debug.c callbacks.h debug.h game_gui.h league.h live_game.h option.h strategy.h support.h team.h user.h variables.h \ file.c file.h free.h language.h main.h misc.h option.h support.h variables.h \ finance.c callbacks.h finance.h fixture.h game_gui.h league.h maths.h misc.h option.h player.h team.h user.h \ fixture.c cup.h fixture.h free.h league.h main.h maths.h misc.h option.h table.h team.h user.h variables.h \ free.c bet_struct.h free.h lg_commentary_struct.h strategy_struct.h transfer.h user.h variables.h \ game.c cup.h finance.h fixture.h game_gui.h game.h league.h live_game.h main.h maths.h misc.h option.h player.h table.h team.h treeview.h user.h variables.h \ game_gui.c callbacks.h file.h game_gui.h gui.h job.h league.h live_game.h maths.h misc.h option.h support.h team.h treeview.h user.h variables.h window.h \ gui.c gui.h misc.h option.h support.h variables.h window.h \ interface.c callbacks.h interface.h support.h \ job.c bet.h cup.h file.h free.h job.h league.h live_game.h main.h maths.h option.h start_end.h team.h transfer.h user.h variables.h xml_country.h \ language.c callbacks.h free.h language.h lg_commentary.h misc.h option.h variables.h window.h \ lg_commentary.c cup.h file.h fixture.h free.h language.h league.h lg_commentary.h live_game.h main.h maths.h misc.h option.h player.h team.h variables.h xml_lg_commentary.h \ league.c cup.h free.h league.h main.h maths.h misc.h option.h player.h stat.h table.h team.h user.h variables.h \ live_game.c callbacks.h fixture.h free.h game_gui.h game.h league.h lg_commentary.h live_game.h main.h maths.h misc_callback_func.h misc.h option.h player.h strategy.h support.h team.h treeview.h user.h variables.h window.h \ load_save.c callbacks.h file.h game_gui.h gui.h language.h load_save.h misc.h option.h support.h user.h variables.h window.h xml.h xml_loadsave_cup.h xml_loadsave_jobs.h xml_loadsave_league.h xml_loadsave_leagues_cups.h xml_loadsave_misc.h xml_loadsave_season_stats.h xml_loadsave_transfers.h xml_loadsave_users.h \ main.c bet_struct.h debug.h file.h free.h job_struct.h language.h lg_commentary.h live_game.h load_save.h main.h maths.h misc_callbacks.h misc.h name_struct.h option.h start_end.h stat_struct.h strategy_struct.h transfer_struct.h variables.h window.h xml_strategy.h \ maths.c maths.h misc.h variables.h \ misc.c main.h maths.h misc.h option.h variables.h \ misc_callbacks.c callback_func.h callbacks.h game_gui.h game.h gui.h live_game.h load_save.h main.h maths.h misc_callback_func.h misc_callbacks.h option.h user.h variables.h window.h xml_country.h \ misc_callback_func.c callbacks.h debug.h finance.h free.h game_gui.h game.h gui.h load_save.h main.h maths.h misc_callback_func.h misc.h option.h start_end.h support.h treeview.h treeview_helper.h user.h variables.h window.h xml_country.h xml_name.h \ misc2_callbacks.c bet.h callback_func.h callbacks.h debug.h finance.h free.h game_gui.h job.h league.h load_save.h main.h misc2_callback_func.h misc2_callbacks.h misc2_interface.h player.h support.h team.h transfer.h treeview2.h treeview.h treeview_helper.h user.h window.h \ misc3_callbacks.c bet.h callbacks.h finance.h fixture.h game_gui.h gui.h main.h misc3_callbacks.h misc3_interface.h misc_callback_func.h option.h support.h treeview2.h treeview_helper.h user.h variables.h window.h \ misc2_callback_func.c callback_func.h callbacks.h file.h finance.h free.h game_gui.h job.h league.h maths.h misc2_callback_func.h misc.h option.h player.h support.h team.h transfer.h treeview2.h treeview.h treeview_helper.h user.h window.h \ misc_interface.c misc_callbacks.h misc_interface.h support.h \ misc2_interface.c misc2_callbacks.h misc2_interface.h support.h \ misc3_interface.c misc3_callbacks.h misc3_interface.h support.h \ name.c main.h name.h option.h variables.h xml_name.h \ news.c news.h variables.h xml_news.h \ option.c main.h misc.h option.h variables.h \ option_gui.c callbacks.h file.h game_gui.h language.h misc.h option_gui.h option.h support.h training.h treeview.h user.h variables.h \ options_callbacks.c file.h option_gui.h options_callbacks.h options_interface.h support.h training.h user.h variables.h window.h \ options_interface.c options_callbacks.h options_interface.h support.h \ player.c cup.h fixture.h free.h game_gui.h league.h main.h maths.h misc.h name.h option.h player.h team.h transfer.h user.h \ start_end.c bet.h cup.h file.h finance.h fixture.h free.h game_gui.h gui.h job.h league.h live_game.h load_save.h main.h maths.h misc.h name.h option.h player.h start_end.h stat.h table.h team.h transfer.h user.h variables.h xml_name.h youth_academy.h \ stat.c cup.h free.h league.h option.h player.h stat.h table_struct.h team.h variables.h \ strategy.c fixture.h league.h live_game.h main.h misc.h option.h player.h strategy.h team.h \ support.c support.h \ table.c cup.h league.h misc.h table.h variables.h \ team.c cup.h file.h finance.h fixture.h game_gui.h game.h league.h main.h maths.h misc.h option.h player.h strategy.h team.h transfer.h user.h xml_team.h \ training.c enums.h finance.h glib.h option.h player.h training.h \ training_callbacks.c bygfoot.h finance.h game_gui.h maths.h misc.h option.h support.h training_callbacks.h training.h training_interface.h training_struct.h treeview.h user.h variables.h window.h \ training_interface.c support.h training_callbacks.h training_interface.h \ transfer.c callbacks.h cup.h finance.h free.h game_gui.h main.h maths.h misc.h option.h player.h support.h team.h transfer.h treeview.h user.h \ treeview.c cup.h file.h finance.h fixture.h free.h game_gui.h game.h language.h league.h live_game.h maths.h misc.h option.h player.h support.h team.h transfer.h treeview.h treeview_helper.h user.h \ treeview2.c bet.h fixture.h job.h league.h live_game.h misc.h option.h support.h team.h treeview2.h treeview_helper.h user.h \ treeview_helper.c bet.h cup.h file.h fixture.h free.h job.h league.h misc.h option.h player.h support.h team.h transfer.h treeview2.h treeview.h treeview_helper.h user.h variables.h \ user.c bet.h cup.h file.h finance.h fixture.h free.h game_gui.h league.h live_game.h main.h maths.h misc.h name.h option.h player.h support.h team.h transfer.h treeview.h user.h window.h xml_mmatches.h youth_academy.h \ window.c callbacks.h debug.h file.h finance.h fixture.h free.h game_gui.h gui.h interface.h language.h league.h live_game.h load_save.h main.h maths.h misc2_interface.h misc3_interface.h misc_callback_func.h misc.h misc_interface.h option_gui.h option.h options_interface.h support.h training.h training_interface.h transfer.h treeview2.h treeview.h treeview_helper.h user.h window.h \ xml.c cup.h file.h free.h gui.h league.h misc.h option.h support.h table.h transfer_struct.h user.h variables.h xml.h xml_loadsave_cup.h xml_loadsave_fixtures.h xml_loadsave_league.h xml_loadsave_league_stat.h xml_loadsave_live_game.h xml_loadsave_table.h xml_loadsave_teams.h xml_loadsave_transfers.h xml_loadsave_users.h \ xml_loadsave_cup.c cup.h file.h misc.h table.h team.h xml.h xml_loadsave_cup.h xml_loadsave_fixtures.h xml_loadsave_table.h xml_loadsave_teams.h \ xml_loadsave_fixtures.c file.h fixture.h misc.h team.h xml.h xml_loadsave_fixtures.h \ xml_loadsave_jobs.c file.h free.h job.h misc.h variables.h xml.h xml_loadsave_jobs.h xml_loadsave_teams.h \ xml_loadsave_league.c file.h league.h misc.h xml.h xml_loadsave_cup.h xml_loadsave_fixtures.h xml_loadsave_league.h xml_loadsave_league_stat.h xml_loadsave_table.h xml_loadsave_teams.h \ xml_loadsave_leagues_cups.c cup.h file.h free.h league_struct.h misc.h xml.h xml_loadsave_cup.h xml_loadsave_league.h xml_loadsave_leagues_cups.h \ xml_loadsave_league_stat.c file.h misc.h stat.h team.h xml.h xml_loadsave_league_stat.h \ xml_loadsave_live_game.c cup.h file.h fixture.h league.h live_game.h misc.h option.h variables.h xml.h xml_loadsave_live_game.h \ xml_loadsave_misc.c bet_struct.h cup.h file.h fixture.h free.h misc.h variables.h xml.h xml_loadsave_cup.h xml_loadsave_league.h xml_loadsave_misc.h \ xml_loadsave_newspaper.c file.h free.h variables.h xml.h xml_loadsave_newspaper.h \ xml_loadsave_players.c misc.h player.h team.h xml.h xml_loadsave_players.h \ xml_loadsave_season_stats.c file.h free.h misc.h stat.h variables.h xml.h xml_loadsave_league_stat.h xml_loadsave_season_stats.h \ xml_loadsave_table.c file.h misc.h team.h xml.h xml_loadsave_table.h \ xml_loadsave_teams.c file.h misc.h player.h team.h xml.h xml_loadsave_players.h xml_loadsave_teams.h \ xml_loadsave_transfers.c file.h misc.h team.h transfer.h xml.h xml_loadsave_transfers.h \ xml_loadsave_users.c bet_struct.h file.h fixture.h misc.h team.h user.h variables.h xml.h xml_loadsave_live_game.h xml_loadsave_players.h xml_loadsave_users.h \ xml_cup.c cup.h file.h main.h misc.h option.h variables.h xml_cup.h \ xml_country.c file.h free.h misc.h option.h variables.h xml_country.h xml_cup.h xml_league.h \ xml_league.c cup_struct.h file.h free.h league.h misc.h option.h table.h team.h variables.h xml_cup.h xml_league.h \ xml_lg_commentary.c free.h lg_commentary.h live_game.h misc.h variables.h xml_lg_commentary.h \ xml_mmatches.c file.h free.h live_game.h misc.h user.h xml.h xml_loadsave_live_game.h xml_mmatches.h \ xml_name.c file.h free.h misc.h name.h variables.h xml_name.h \ xml_news.c file.h free.h news.h variables.h xml_news.h \ xml_strategy.c file.h free.h main.h misc.h strategy_struct.h xml_strategy.h \ xml_team.c file.h free.h main.h misc.h option.h player.h team.h variables.h xml_team.h \ youth_academy.c free.h maths.h name.h option.h player.h team.h user.h youth_academy.h bygfoot_LDADD = @PACKAGE_LIBS@ @GST_LIBS@ $(INTLLIBS) all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) bygfoot$(EXEEXT): $(bygfoot_OBJECTS) $(bygfoot_DEPENDENCIES) @rm -f bygfoot$(EXEEXT) $(LINK) $(bygfoot_OBJECTS) $(bygfoot_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bet.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callback_func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finance.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fixture.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/free.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/game.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/game_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/job.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/language.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/league.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lg_commentary.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/live_game.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_save.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maths.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc2_callback_func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc2_callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc2_interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc3_callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc3_interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_callback_func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/name.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/news.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/option.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/option_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options_callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options_interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/start_end.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strategy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/support.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/team.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/training.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/training_callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/training_interface.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transfer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/treeview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/treeview2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/treeview_helper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/user.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_country.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_cup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_league.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_lg_commentary.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_cup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_fixtures.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_jobs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_league.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_league_stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_leagues_cups.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_live_game.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_newspaper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_players.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_season_stats.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_table.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_teams.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_transfers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_loadsave_users.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_mmatches.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_name.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_news.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_strategy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml_team.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/youth_academy.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bygfoot-2.3.2/src/treeview_helper.h0000644000175000017500000002076511225071373016307 0ustar eliaselias/* treeview_helper.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TREEVIEW_HELPER_H #define TREEVIEW_HELPER_H #include "bygfoot.h" #include "league_struct.h" #include "player_struct.h" #include "table_struct.h" #include "team_struct.h" gint treeview_helper_iter_get_row(GtkTreeModel *model, GtkTreeIter *iter); gboolean treeview_helper_select_row(GtkTreeView *treeview, GdkEventButton *event); GdkPixbuf* treeview_helper_pixbuf_from_filename(gchar *filename); void treeview_helper_unref(GObject *object); void treeview_helper_insert_icon(GtkTreeModel *ls, GtkTreeIter *iter, gint column_nr, gchar *icon_name); GtkCellRenderer* treeview_helper_cell_renderer_text_new(void); gchar* treeview_helper_live_game_icon(gint event_type); gint treeview_helper_get_index(GtkTreeView *treeview, gint column); gpointer treeview_helper_get_pointer(GtkTreeView *treeview, gint column); void treeview_helper_clear(GtkTreeView *treeview); gint treeview_helper_get_col_number_column (GtkTreeViewColumn *col); void treeview_helper_get_table_element_colours(const Table *table, gint table_index, gint idx, gchar **colour_fg, gchar **colour_bg, gboolean user); gboolean treeview_helper_get_table_element_colour_cups(const League *league, gint table_index, gint idx, gchar **colour_bg); gboolean treeview_helper_get_table_element_colour_cups_cup(const Cup *cup, const Team *tm, gchar **colour_bg); void treeview_helper_set_user_colours(const gchar *team_name, gchar **colour_bg, gchar **colour_fg); PlayerListAttribute treeview_helper_get_attributes_from_scout(gint scout); gint treeview_helper_team_compare(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); gint treeview_helper_player_compare(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); void treeview_helper_team_selection(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_int_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_player_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_player_ext_info_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_player_name_to_cell(GtkCellRenderer *renderer, gchar *buf, const Player *pl); void treeview_helper_player_contract_to_cell(GtkCellRenderer *renderer, gchar *buf, gfloat contract_time); void treeview_helper_player_cards_to_cell(gchar *buf, const Player *pl); void treeview_helper_player_status_to_cell(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_player_games_goals_to_cell(gchar *buf, const Player *pl, gint type); void treeview_helper_player_fitness_to_cell(GtkCellRenderer *renderer, gchar *buf, gfloat fitness); void treeview_helper_player_pos_to_cell(GtkCellRenderer *renderer, gchar *buf, const Player *pl, gint type); void treeview_helper_live_game_result(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_player_cskill_to_cell(GtkCellRenderer *renderer, gchar *buf, const Player *pl); void treeview_helper_player_info_health_to_cell(GtkCellRenderer *renderer, const Player *pl); void treeview_helper_player_info_games_goals_to_cell(GtkCellRenderer *renderer, const GArray *games_goals); void treeview_helper_player_info_yellow_to_cell(GtkCellRenderer *renderer, const GArray *cards); void treeview_helper_player_info_banned_to_cell(GtkCellRenderer *renderer, const GArray *cards); void treeview_helper_player_info_career_to_cell(GtkCellRenderer *renderer, const Player *pl); void treeview_helper_player_info_streak_to_cell(GtkCellRenderer *renderer, gint streak); gchar* treeview_helper_get_user_history_icon(gint history_type); gint treeview_helper_int_compare(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); void treeview_helper_mm_teams(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_season_results(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_bet_odds(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); gboolean treeview_helper_search_equal_teams(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data); gboolean treeview_helper_search_equal_strings(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data); void treeview_helper_job_exchange(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_news(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_news_additional(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); void treeview_helper_player_name_editing_done(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data); void treeview_helper_player_name_editing_started(GtkCellRenderer *renderer, GtkCellEditable *editable, gchar *path, gpointer user_data); void treeview_helper_player_name_editing_canceled(GtkCellRendererText *renderer, gpointer user_data); void treeview_helper_constants_editing_done(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data); void treeview_helper_constants_app_editing_done(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data); #endif bygfoot-2.3.2/src/file.c0000644000175000017500000006453711225071373014035 0ustar eliaselias/* file.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include "file.h" #include "free.h" #include "language.h" #include "main.h" #include "misc.h" #include "option.h" #include "support.h" #include "variables.h" /** * Adds a definition directory */ void add_definitions_directory(const gchar *directory) { #ifdef DEBUG printf("add_definitions_directory\n"); #endif gchar **dir_split_up; dir_split_up = g_strsplit_set (directory, G_DIR_SEPARATOR_S, -1); if (strcmp(dir_split_up[g_strv_length(dir_split_up)-1],"definitions")==0) { root_definitions_directories = g_list_prepend (root_definitions_directories, g_strdup(directory)); } if (query_misc_string_starts_with(directory, root_definitions_directories)) { definitions_directories = g_list_prepend (definitions_directories, g_strdup(directory)); } g_strfreev(dir_split_up); } /** Add the specified directory to the list of directories file_find_support_file() searches for support files. Any subdirectories are added recursively. @param directory The full path of the directory to be added. @see file_find_support_file() @see #support_directories */ void file_add_support_directory_recursive (const gchar *directory) { #ifdef DEBUG printf("file_add_support_directory_recursive\n"); #endif GDir *newdir = g_dir_open(directory, 0, NULL); const gchar *file; gchar *fullpath; if(newdir == NULL) return; /* Ignore .svn directories */ if(g_strrstr(directory, ".svn")) { g_dir_close(newdir); return; } add_definitions_directory(directory); add_pixmap_directory(directory); support_directories = g_list_prepend (support_directories, g_strdup (directory)); while(TRUE) { file = g_dir_read_name(newdir); if(file == NULL) break; fullpath = g_strdup_printf ("%s%s%s", directory, G_DIR_SEPARATOR_S, file); if(g_file_test(fullpath, G_FILE_TEST_IS_DIR)) file_add_support_directory_recursive(fullpath); g_free(fullpath); } g_dir_close(newdir); } /** Search the list of support directories for a given file and return the full path name. The return value must be freed. @param filename The name of the file we look for (without path). @param warning Whether to show a warning if we don't find the file. @return A pointer to the full path string of the file or NULL if we didn't find the file. The gchar* must be freed. @see #support_directories @see file_add_support_directory_recursive() */ gchar* file_find_support_file (const gchar *filename, gboolean warning) { #ifdef DEBUG printf("file_find_support_file\n"); #endif GList *elem = support_directories; while (elem) { gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, G_DIR_SEPARATOR_S, filename); if (g_file_test (pathname, G_FILE_TEST_EXISTS) && !g_file_test(pathname, G_FILE_TEST_IS_DIR)) return pathname; g_free (pathname); elem = elem->next; } if(warning) debug_print_message("file_find_support_file: file '%s' not found.", filename); return NULL; } /** Execute command with 'system' and give a warning if return value is -1. @return TRUE on success, FALSE, otherwise. */ gboolean file_my_system(const GString *command) { #ifdef DEBUG printf("file_my_system\n"); #endif if(system(command->str) != 0) { debug_print_message("file_my_system: system returned -1 when executing '%s'.", command->str); if(!os_is_unix) { debug_print_message("Press RETURN to try to continue."); getchar(); } return FALSE; } return TRUE; } /** A custom function opening files. @param filename The full path to the file or a file name from the support files. @param bits The mode we use, e.g. "r" or "w". @see fopen() @param fil The file pointer that will point to the opened stream. @param abort_program Whether to abort the program if we encounter an error. @return TRUE on success, FALSE otherwise. */ gboolean file_my_fopen(const gchar *filename, gchar *bits, FILE **fil, gboolean abort_program) { #ifdef DEBUG printf("file_my_fopen\n"); #endif gchar *support_file = NULL; *fil = fopen(filename, bits); if(*fil != NULL) return TRUE; support_file = file_find_support_file(filename, FALSE); *fil = fopen(support_file, bits); if(*fil != NULL) { g_free(support_file); return TRUE; } debug_print_message("Could not open file '%s' in mode '%s'.\n", filename, bits); if(abort_program) main_exit_program(EXIT_FILE_OPEN_FAILED, NULL); return FALSE; } /** Create a $HOME/.bygfoot dir and other stuff if necessary. */ void file_check_home_dir_create_dirs(void) { #ifdef DEBUG printf("file_check_home_dir_create_dirs\n"); #endif gint i; gchar *dirs[3] = {HOMEDIRNAME, HOMEDIRNAME G_DIR_SEPARATOR_S "definitions", HOMEDIRNAME G_DIR_SEPARATOR_S "saves"}; const gchar *home = g_get_home_dir(); gchar buf[SMALL]; for(i=0;i<3;i++) { sprintf(buf, "%s%s%s", home, G_DIR_SEPARATOR_S, dirs[i]); if(!g_file_test(buf, G_FILE_TEST_EXISTS)) file_mkdir(buf); } } /** Add the basic config files to the list of file to copy into the user home dir. */ void file_check_home_dir_get_conf_files(GPtrArray **files_to_copy) { #ifdef DEBUG printf("file_check_home_dir_get_conf_files\n"); #endif gint i; gchar *conf_files[2] = {"bygfoot.conf", "bygfoot_user.conf"}; const gchar *home = g_get_home_dir(); gchar *conf_file = NULL; gchar buf[SMALL]; for(i=0;i<2;i++) { sprintf(buf, "%s%s%s%s%s", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S, conf_files[i]); if(!g_file_test(buf, G_FILE_TEST_EXISTS)) { conf_file = file_find_support_file(conf_files[i], TRUE); g_ptr_array_add(files_to_copy[0], g_strdup(conf_file)); g_ptr_array_add(files_to_copy[1], g_strdup(buf)); } } } /** Add the xml definition files to the list of files to copy into the home dir. */ void file_check_home_dir_get_definition_dir(const gchar *dirname, const gchar *basename, GPtrArray **files_to_copy) { #ifdef DEBUG printf("file_check_home_dir_get_definition_dir\n"); #endif gint i; gchar buf[SMALL], buf2[SMALL]; const gchar *home = g_get_home_dir(); GPtrArray *dir_contents = NULL; sprintf(buf, "%s%s%s%s%s", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S, basename); if(!g_file_test(buf, G_FILE_TEST_EXISTS)) file_mkdir(buf); dir_contents = file_dir_get_contents(dirname, "", ""); for(i=0;ilen;i++) { sprintf(buf, "%s%s%s%s%s%s%s", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S, basename, G_DIR_SEPARATOR_S, (gchar*)g_ptr_array_index(dir_contents, i)); if(g_str_has_suffix((gchar*)g_ptr_array_index(dir_contents, i), ".xml") && !g_file_test(buf, G_FILE_TEST_EXISTS)) { sprintf(buf2, "%s%s%s", dirname, G_DIR_SEPARATOR_S, (gchar*)g_ptr_array_index(dir_contents, i)); g_ptr_array_add(files_to_copy[0], g_strdup(buf2)); g_ptr_array_add(files_to_copy[1], g_strdup(buf)); } else { sprintf(buf, "%s%s%s", dirname, G_DIR_SEPARATOR_S, (gchar*)g_ptr_array_index(dir_contents, i)); if(g_file_test(buf, G_FILE_TEST_IS_DIR) && !g_strrstr(buf, ".svn")) { sprintf(buf2, "%s%s%s", basename, G_DIR_SEPARATOR_S, (gchar*)g_ptr_array_index(dir_contents, i)); file_check_home_dir_get_definition_dir(buf, buf2, files_to_copy); } } } free_gchar_array(&dir_contents); } /** Step through the support dirs to find xml definition files that get copied into the home dir. */ void file_check_home_dir_get_definition_files(GPtrArray **files_to_copy) { #ifdef DEBUG printf("file_check_home_dir_get_definition_files\n"); #endif GList *elem = support_directories; while(elem != NULL) { if(g_str_has_suffix((gchar*)elem->data, "definitions")) file_check_home_dir_get_definition_dir((const gchar*)elem->data, "definitions", files_to_copy); elem = elem->next; } } /** Execute the copy commands on the files assembled earlier. */ void file_check_home_dir_copy_files(GPtrArray **files_to_copy) { #ifdef DEBUG printf("file_check_home_dir_copy_files\n"); #endif gint i; gchar buf[SMALL]; const gchar *filename = NULL; GtkLabel *label_splash_progress = GTK_LABEL(lookup_widget(window.splash, "label_splash_progress")); GtkProgressBar *progressbar_splash = GTK_PROGRESS_BAR(lookup_widget(window.splash, "progressbar_splash")); GtkWidget *hint_buttons[2] = {lookup_widget(window.splash, "button_splash_hint_back"), lookup_widget(window.splash, "button_splash_hint_next")}; GtkWidget *hbox_buttons = lookup_widget(window.splash, "hbox3"); if(files_to_copy[0]->len > 0) { gtk_widget_set_sensitive(hint_buttons[0], FALSE); gtk_widget_set_sensitive(hint_buttons[1], FALSE); gtk_widget_set_sensitive(hbox_buttons, FALSE); } for(i=0;ilen;i++) { filename = g_strrstr((gchar*)g_ptr_array_index(files_to_copy[0], i), G_DIR_SEPARATOR_S); if(filename == NULL) filename = (gchar*)g_ptr_array_index(files_to_copy[0], i); else filename = filename + 1; sprintf(buf, _("Copying %s"), filename); gtk_label_set_text(label_splash_progress, buf); gtk_progress_bar_set_fraction(progressbar_splash, (gdouble)i /(gdouble)files_to_copy[0]->len); while(gtk_events_pending()) gtk_main_iteration(); file_copy_file((gchar*)g_ptr_array_index(files_to_copy[0], i), (gchar*)g_ptr_array_index(files_to_copy[1], i)); } gtk_progress_bar_set_fraction(progressbar_splash, 1); gtk_label_set_text(label_splash_progress, _("Ready")); while(gtk_events_pending()) gtk_main_iteration(); if(files_to_copy[0]->len > 0) { gtk_widget_set_sensitive(hint_buttons[0], TRUE); gtk_widget_set_sensitive(hint_buttons[1], TRUE); gtk_widget_set_sensitive(hbox_buttons, TRUE); } } /** Copy some files into the user's home directory. */ gboolean file_check_home_dir(void) { #ifdef DEBUG printf("file_check_home_dir\n"); #endif GPtrArray *files_to_copy[2] = {g_ptr_array_new(), g_ptr_array_new()}; file_check_home_dir_create_dirs(); file_check_home_dir_get_conf_files(files_to_copy); file_check_home_dir_get_definition_files(files_to_copy); file_check_home_dir_copy_files(files_to_copy); free_gchar_array(&(files_to_copy[0])); free_gchar_array(&(files_to_copy[1])); return FALSE; } /** Retrieve those files in the given directory that start with the given prefix and suffix. The file names are stored in an array of strings. @param dir_name The full path to the directory. @param prefix The prefix that files must have to be included. @param suffix The suffix that files must have to be included. @return A GPtrArray with pointers to the strings of the file names. The array must be freed with free_gchar_array(). */ GPtrArray* file_dir_get_contents(const gchar *dir_name, const gchar *prefix, const gchar *suffix) { #ifdef DEBUG printf("file_dir_get_contents\n"); #endif GError *error = NULL; GDir *dir = g_dir_open(dir_name, 0, &error); GPtrArray *contents = g_ptr_array_new(); const gchar *file = NULL; misc_print_error(&error, FALSE); if(dir == NULL) return contents; file = g_dir_read_name(dir); if(file == NULL) return contents; while(file != NULL) { if(g_str_has_prefix(file, prefix) && g_str_has_suffix(file, suffix)) g_ptr_array_add(contents, (gpointer)g_strdup(file)); file = g_dir_read_name(dir); } g_dir_close(dir); return contents; } /** Return the country definition files found in the support dirs. * The files are appended with the directories*/ GPtrArray* file_get_country_files(void) { #ifdef DEBUG printf("file_get_country_files\n"); #endif gint i; GList *elem = definitions_directories; GPtrArray *country_files = g_ptr_array_new(); GPtrArray *dir_contents = NULL; GPtrArray *country_files_full_path = g_ptr_array_new(); gchar buf[SMALL]; const gchar *country_structure; while(elem != NULL) { dir_contents = file_dir_get_contents((gchar*)elem->data, "country_", ".xml"); country_structure = misc_strip_definitions_root((gchar*)elem->data); for(i=0;ilen;i++) { if(!query_misc_string_in_array((gchar*)g_ptr_array_index(dir_contents, i), country_files)) { g_ptr_array_add(country_files, g_strdup((gchar*)g_ptr_array_index(dir_contents, i))); sprintf(buf, "%s%s%s", g_strdup(country_structure), G_DIR_SEPARATOR_S, g_strdup((gchar*)g_ptr_array_index(dir_contents, i))); g_ptr_array_add(country_files_full_path,g_strdup(buf)); } } free_gchar_array(&dir_contents); elem = elem->next; } free_gchar_array(&country_files); country_files = g_ptr_array_new(); for(i = country_files_full_path->len - 1; i >= 0; i--) g_ptr_array_add(country_files, g_strdup(g_ptr_array_index(country_files_full_path, i))); free_gchar_array(&country_files_full_path); return country_files; } /** Read the file until the next line that's not a comment or a blank line. Split the line into the part before and after the first white space and copy them into the char arrays. Trailing and leading white spaces and trailing comments are stripped. @param fil The file stream. @param opt_name The first char array (an option name, mostly). @param opt_value The second array (an option value, mostly). @return TRUE if the file still contains lines to read, FALSE otherwise. */ gboolean file_get_next_opt_line(FILE *fil, gchar *opt_name, gchar *opt_value) { #ifdef DEBUG printf("file_get_next_opt_line\n"); #endif gint i; gchar trash[SMALL]; gchar buf[BIG]; strcpy(buf, ""); strcpy(opt_name, ""); strcpy(opt_value, ""); while( (buf[0] == '#' || strlen(buf) == 0) && feof(fil) == 0) { fscanf(fil, "%[\n \t]*", buf); fscanf(fil, "%[^\n]", buf); } if(buf[0] != '#' && strlen(buf) != 0) { if(strlen(buf) > 1000) debug_print_message("\n the text file I'm reading contains a line longer than 1000 chars.\n\n"); for(i=0;i0;i--) if(buf[i] == '\t' || buf[i] == ' ') buf[i] = '\0'; else break; sscanf(buf, "%[^ \t]%[ \t]%[^\n]", opt_name, trash, opt_value); } return (feof(fil) == 0); } /** Save an optionlist to a file. */ void file_save_opt_file(const gchar *filename, OptionList *optionlist) { #ifdef DEBUG printf("file_save_opt_file\n"); #endif gint i; FILE *fil = NULL; file_my_fopen(filename, "w", &fil, TRUE); for(i=0;ilist->len;i++) if(g_str_has_prefix(g_array_index(optionlist->list, Option, i).name, "string_")) fprintf(fil, "%s %s\n", g_array_index(optionlist->list, Option, i).name, g_array_index(optionlist->list, Option, i).string_value); else fprintf(fil, "%s %d\n", g_array_index(optionlist->list, Option, i).name, g_array_index(optionlist->list, Option, i).value); fclose(fil); } /** Load a file containing name - value pairs into the specified array. */ void file_load_opt_file(const gchar *filename, OptionList *optionlist, gboolean sort) { #ifdef DEBUG printf("file_load_opt_file\n"); #endif gint i; gchar opt_name[SMALL], opt_value[SMALL]; Option new; FILE *fil = NULL; free_option_list(optionlist, TRUE); file_my_fopen(filename, "r", &fil, TRUE); while(file_get_next_opt_line(fil, opt_name, opt_value)) { new.name = g_strdup(opt_name); if(g_str_has_prefix(opt_name, "string_")) { new.string_value = g_strdup(opt_value); new.value = -1; } else { new.string_value = NULL; sscanf(opt_value, "%d", &new.value); } g_array_append_val(optionlist->list, new); if((g_str_has_suffix(new.name, "_unix") && os_is_unix) || (g_str_has_suffix(new.name, "_win32") && !os_is_unix)) { strcpy(opt_name, new.name); opt_name[strlen(new.name) - (os_is_unix ? 5 : 6)] = '\0'; new.name = g_strdup(opt_name); new.string_value = g_strdup(opt_value); g_array_append_val(optionlist->list, new); } } if(sort) g_array_sort(optionlist->list, (GCompareFunc)option_compare_func); for(i=0;ilist->len;i++) g_datalist_set_data(&optionlist->datalist, g_array_index(optionlist->list, Option, i).name, &g_array_index(optionlist->list, Option, i)); fclose(fil); } /** Load the appropriate hints file. */ void file_load_hints_file(void) { #ifdef DEBUG printf("file_load_hints_file\n"); #endif gchar buf[SMALL], hints_file[SMALL]; gchar *hints_file_sup = NULL; language_get_code(buf); sprintf(hints_file, "bygfoot_hints_%s", buf); hints_file_sup = file_find_support_file(hints_file, FALSE); if(hints_file_sup != NULL) g_free(hints_file_sup); else strcpy(hints_file, "bygfoot_hints_en"); file_load_opt_file(hints_file, &hints, FALSE); } /** Load the options at the beginning of a new game from the configuration files. */ void file_load_conf_files(void) { #ifdef DEBUG printf("file_load_conf_files\n"); #endif gint i; gchar *conf_file = file_find_support_file("bygfoot.conf", TRUE); file_load_opt_file(conf_file, &options, FALSE); g_free(conf_file); file_load_opt_file(opt_str("string_opt_constants_file"), &constants, TRUE); file_load_opt_file(opt_str("string_opt_appearance_file"), &constants_app, TRUE); file_load_opt_file("bygfoot_tokens", &tokens, FALSE); file_load_hints_file(); for(i=0;ilen;i++) g_array_index(tokens.list, Option, i).value = i; } /** Load a user-specific conf file. @param user The user we load the file for. */ void file_load_user_conf_file(User *user) { #ifdef DEBUG printf("file_load_user_conf_file\n"); #endif FILE *fil = NULL; gchar *conf_file = NULL, buf[SMALL]; sprintf(buf, "bygfoot_%s.conf", user->name); conf_file = file_find_support_file(buf, FALSE); if(conf_file == NULL || !file_my_fopen(conf_file, "r", &fil, FALSE)) { g_free(conf_file); conf_file = file_find_support_file(opt_str("string_opt_default_user_conf_file"), TRUE); } file_load_opt_file(conf_file, &user->options, FALSE); g_free(conf_file); } /** Return the primary support dir (probably './support_files' or the Bygfoot dir in $HOME). */ const gchar* file_get_first_support_dir(void) { #ifdef DEBUG printf("file_get_first_support_dir\n"); #endif GList *elem = support_directories; while (elem) { if(g_str_has_suffix((gchar*)elem->data, HOMEDIRNAME) || g_str_has_suffix((gchar*)elem->data, "support_files") || g_str_has_suffix((gchar*)elem->data, "support_files" G_DIR_SEPARATOR_S)) return (const gchar*)elem->data; elem = elem->next; } main_exit_program(EXIT_NO_SUPPORT_DIR, "file_get_first_support_dir: no primary support dir found."); return NULL; } /** Return the first support directory which has the given suffix.*/ const gchar* file_get_first_support_dir_suffix(const gchar *suffix) { #ifdef DEBUG printf("file_get_first_support_dir_suffix\n"); #endif GList *elem = support_directories; while (elem) { if(g_str_has_suffix((gchar*)elem->data, suffix)) return (const gchar*)elem->data; elem = elem->next; } debug_print_message("file_get_first_support_dir_suffix: no dir with suffix %s found.", suffix); return NULL; } /** Compress the files starting with the prefix. @param destfile The name of the file to create. */ void file_compress_files(const gchar *destfile, const gchar *prefix) { #ifdef DEBUG printf("file_compress_files\n"); #endif gint i; GString *buf = g_string_new(""); gchar *basename = g_path_get_basename(prefix), *dirname = g_path_get_dirname(prefix), *zipbasename = g_path_get_basename(destfile), *pwd = g_get_current_dir(); GPtrArray *files = file_dir_get_contents(dirname, basename, ""); chdir(dirname); if (os_is_unix) g_string_sprintf(buf, "%s %s %s", const_str("string_fs_compress_command"), const_str("string_fs_compress_switches"), zipbasename); else g_string_sprintf(buf, "\"%s%s%s\" %s %s", pwd, G_DIR_SEPARATOR_S, const_str("string_fs_compress_command"), const_str("string_fs_compress_switches"), zipbasename); for(i=0;ilen;i++) { g_string_append(buf, " "); g_string_append(buf, (gchar*)g_ptr_array_index(files, i)); } file_my_system(buf); chdir(pwd); g_string_sprintf(buf, "%s%s%s*", dirname, G_DIR_SEPARATOR_S, basename); file_remove_files(buf); g_string_free(buf, TRUE); free_gchar_array(&files); g_free(basename); g_free(dirname); g_free(zipbasename); g_free(pwd); } /** Decompress the specified file. */ void file_decompress(const gchar *filename) { #ifdef DEBUG printf("file_decompress\n"); #endif GString *buf = g_string_new(""); gchar *dirname = g_path_get_dirname(filename), *basename = g_path_get_basename(filename), *pwd = g_get_current_dir(); chdir(dirname); if (os_is_unix) g_string_sprintf(buf, "%s %s %s", const_str("string_fs_uncompress_command"), const_str("string_fs_uncompress_switches"), basename); else g_string_sprintf(buf, "\"%s%s%s\" %s %s", pwd, G_DIR_SEPARATOR_S, const_str("string_fs_uncompress_command"), const_str("string_fs_uncompress_switches"), basename); file_my_system(buf); g_string_free(buf, TRUE); g_free(dirname); g_free(basename); chdir(pwd); g_free(pwd); } /** Execute the appropriate remove command with 'files' as argument (can be directories or a regexp, too). */ void file_remove_files(const GString *files) { #ifdef DEBUG printf("file_remove_files\n"); #endif GString *buf = g_string_new(""); if(os_is_unix) g_string_sprintf(buf, "%s %s", const_str("string_fs_remove_file_command"), files->str); else g_string_sprintf(buf, "%s \"%s\"", const_str("string_fs_remove_file_command"), files->str); file_my_system(buf); g_string_free(buf, TRUE); } /** Execute the appropriate copy command. */ void file_copy_file(const gchar *source_file, const gchar *dest_file) { #ifdef DEBUG printf("file_copy_file\n"); #endif GString *buf = g_string_new(""); if(os_is_unix) g_string_sprintf(buf, "%s %s %s", const_str("string_fs_copy_file_command"), source_file, dest_file); else g_string_sprintf(buf, "%s \"%s\" \"%s\"", const_str("string_fs_copy_file_command"), source_file, dest_file); file_my_system(buf); g_string_free(buf, TRUE); } /** Find out where the Bygfoot directory we can write to resides and write the location into the string. */ void file_get_bygfoot_dir(gchar *dir) { #ifdef DEBUG printf("file_get_bygfoot_dir\n"); #endif const gchar *home = g_get_home_dir(); gchar *pwd = g_get_current_dir(); if(os_is_unix) sprintf(dir, "%s%s%s", home, G_DIR_SEPARATOR_S, HOMEDIRNAME); else sprintf(dir, "%s%s", pwd, G_DIR_SEPARATOR_S); g_free(pwd); } /** Store text information in a text file in the saves directory. */ void file_store_text_in_saves(const gchar *filename, const gchar *text) { #ifdef DEBUG printf("file_store_text_in_saves\n"); #endif gchar buf[SMALL]; const gchar *home = g_get_home_dir(); FILE *fil = NULL; if(os_is_unix) sprintf(buf, "%s%s%s%ssaves%s%s", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S, filename); else { gchar *pwd = g_get_current_dir(); sprintf(buf, "%s%ssaves%s%s", pwd, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S, filename); g_free(pwd); } if(!file_my_fopen(buf, "w", &fil, FALSE)) { debug_print_message("file_store_text_in_saves: failed to store '%s' in file '%s'\n", text, buf); return; } fprintf(fil, "%s", text); fclose(fil); } /** Load the text stored in the file in the saves directory. */ gchar* file_load_text_from_saves(const gchar *filename) { #ifdef DEBUG printf("file_load_text_from_saves\n"); #endif gchar buf[SMALL]; const gchar *home = g_get_home_dir(); FILE *fil = NULL; gint i = 0, c; if(os_is_unix) sprintf(buf, "%s%s%s%ssaves%s%s", home, G_DIR_SEPARATOR_S, HOMEDIRNAME, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S, filename); else { gchar *pwd = g_get_current_dir(); sprintf(buf, "%s%ssaves%s%s", pwd, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S, filename); g_free(pwd); } fil = fopen(buf, "r"); if(fil == NULL) return NULL; while ((c = (gchar)fgetc(fil)) != EOF) buf[i++] = (gchar)c; buf[i] = 0; fclose(fil); return g_strdup(buf); } /** Return the path to a resource in the Mac OS X bundle. */ gchar* file_get_mac_resource_path(const gchar *resource) { #ifndef MAC_BUILD return NULL; #else gchar buf[SMALL]; CFURLRef newurlref; CFStringRef newstring = CFStringCreateWithCString(NULL, resource, kCFStringEncodingASCII); newurlref = CFBundleCopyResourceURL(CFBundleGetMainBundle(), newstring, NULL, NULL); CFRelease(newstring); newstring = CFURLCopyPath(newurlref); CFStringGetCString(newstring, buf, SMALL + 1, kCFStringEncodingASCII); CFRelease(newurlref); CFRelease(newstring); return g_strdup(buf); #endif } bygfoot-2.3.2/src/options_callbacks.c0000644000175000017500000001572711225071373016605 0ustar eliaselias/* options_callbacks.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "option.h" #include "options_callbacks.h" #include "options_interface.h" #include "option_gui.h" #include "support.h" #include "training.h" #include "treeview2.h" #include "user.h" #include "variables.h" #include "window.h" void on_button_options_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_options_ok_clicked\n"); #endif gboolean save_global = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_save_global"))), save_user = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_save_user"))); const gchar *conf_dir = file_get_first_support_dir(); gchar buf[SMALL]; option_gui_write_options(); if(save_global) { sprintf(buf, "%s%sbygfoot.conf", conf_dir, G_DIR_SEPARATOR_S); file_save_opt_file(buf, &options); } if(save_user) { if(strcmp(current_user.name, "NONAME") == 0) sprintf(buf, "%s%sbygfoot_user.conf", conf_dir, G_DIR_SEPARATOR_S); else sprintf(buf, "%s%sbygfoot_%s.conf", conf_dir, G_DIR_SEPARATOR_S, current_user.name); file_save_opt_file(buf, ¤t_user.options); } window_destroy(&window.options); } void on_button_options_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_options_cancel_clicked\n"); #endif window_destroy(&window.options); } void on_button_font_name_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_font_name_clicked\n"); #endif window_create(WINDOW_FONT_SEL); } void on_button_reload_constants_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_reload_constants_clicked\n"); #endif const gchar *constants_file = gtk_entry_get_text(GTK_ENTRY(lookup_widget(window.options, "entry_constants_file"))); file_load_opt_file(constants_file, &constants, TRUE); } gboolean on_checkbutton_save_global_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_save_global_button_press_event\n"); #endif if(event->button == 3) { gchar *conf_file = file_find_support_file("bygfoot.conf", TRUE); file_load_opt_file(conf_file, &options, FALSE); g_free(conf_file); option_gui_set_up_window(); return TRUE; } return FALSE; } gboolean on_checkbutton_save_user_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_save_user_button_press_event\n"); #endif if(event->button == 3) { file_load_user_conf_file(¤t_user); option_gui_set_up_window(); return TRUE; } return FALSE; } gboolean on_window_options_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_options_delete_event\n"); #endif on_button_options_cancel_clicked(NULL, NULL); return TRUE; } void on_spinbutton_recreation_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_recreation_value_changed\n"); #endif gchar buf[SMALL]; sprintf(buf, "%d", CAMP_SCALE_MAX - gtk_spin_button_get_value_as_int(spinbutton)); gtk_label_set_text(GTK_LABEL(lookup_widget(window.options, "label_training")), buf); } void on_button_edit_constants_clicked (GtkButton *button, gpointer user_data) { window_show_constants(); } gboolean on_window_constants_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { on_button_constants_close_clicked(NULL, NULL); return FALSE; } gboolean on_window_constants_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { on_button_constants_close_clicked(NULL, NULL); return FALSE; } void on_button_constants_reload_clicked (GtkButton *button, gpointer user_data) { if(gtk_notebook_get_current_page( GTK_NOTEBOOK(lookup_widget(GTK_WIDGET(button), "notebook_constants"))) == 3) file_load_opt_file(opt_str("string_opt_appearance_file"), &constants_app, TRUE); else file_load_opt_file(opt_str("string_opt_constants_file"), &constants, TRUE); treeview2_show_constants(); } void on_button_constants_close_clicked (GtkButton *button, gpointer user_data) { window_destroy(&window.constants); } void on_button_constants_save_clicked (GtkButton *button, gpointer user_data) { gchar buf[SMALL]; if(gtk_notebook_get_current_page( GTK_NOTEBOOK(lookup_widget(GTK_WIDGET(button), "notebook_constants"))) == 3) { sprintf(buf, "%s%s%s", file_get_first_support_dir(), G_DIR_SEPARATOR_S, opt_str("string_opt_appearance_file")); file_save_opt_file(buf, &constants_app); } else { sprintf(buf, "%s%s%s", file_get_first_support_dir(), G_DIR_SEPARATOR_S, opt_str("string_opt_constants_file")); file_save_opt_file(buf, &constants); } } bygfoot-2.3.2/src/misc_callbacks.h0000644000175000017500000001473511225071373016050 0ustar eliaselias/* misc_callbacks.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MISC_CALLBACS_H #define MISC_CALLBACS_H #include "bygfoot.h" #include "misc_interface.h" #include "support.h" void on_team_selection_cancel_clicked (GtkButton *button, gpointer user_data); void on_team_selection_ok_clicked (GtkButton *button, gpointer user_data); gboolean on_button_font_sel_cancel_clicked (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_font_sel_ok_clicked (GtkButton *button, gpointer user_data); void on_button_font_sel_apply_clicked (GtkButton *button, gpointer user_data); gboolean on_live_window_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_live_close_clicked (GtkButton *button, gpointer user_data); void on_button_pause_clicked (GtkButton *button, gpointer user_data); void on_button_resume_clicked (GtkButton *button, gpointer user_data); void on_spinbutton_speed_value_changed (GtkSpinButton *spinbutton, gpointer user_data); void on_button_add_player_clicked (GtkButton *button, gpointer user_data); gboolean on_treeview_users_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_entry_player_name_activate (GtkEntry *entry, gpointer user_data); void on_spinbutton_capacity_value_changed (GtkSpinButton *spinbutton, gpointer user_data); void on_spinbutton_safety_value_changed (GtkSpinButton *spinbutton, gpointer user_data); void on_button_stadium_ok_clicked (GtkButton *button, gpointer user_data); void on_button_stadium_cancel_clicked (GtkButton *button, gpointer user_data); gboolean on_spinbutton_capacity_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_window_stadium_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_combo_country_changed (GtkComboBox *combobox, gpointer user_data); void on_spinbutton_verbosity_value_changed (GtkSpinButton *spinbutton, gpointer user_data); gboolean on_spinbutton_speed_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_button_sponsors_clicked (GtkButton *button, gpointer user_data); void on_treeview_sponsors_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data); gboolean on_window_sponsors_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_sponsors_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_treeview_sponsors_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data); void on_button_sponsors_clicked (GtkButton *button, gpointer user_data); void on_button_sponsors_wait_clicked (GtkButton *button, gpointer user_data); gboolean on_eventbox_lg_style_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_eventbox_lg_boost_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); void on_button_team_selection_back_clicked (GtkButton *button, gpointer user_data); #endif bygfoot-2.3.2/src/callbacks.c0000644000175000017500000013452311225071373015026 0ustar eliaselias/* callbacks.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "callbacks.h" #include "callback_func.h" #include "debug.h" #include "fixture.h" #include "free.h" #include "game.h" #include "game_gui.h" #include "gui.h" #include "job.h" #include "league.h" #include "load_save.h" #include "main.h" #include "misc2_callback_func.h" #include "option.h" #include "player.h" #include "table.h" #include "team.h" #include "transfer.h" #include "treeview.h" #include "treeview2.h" #include "treeview_helper.h" #include "user.h" #include "window.h" /*********************************************************************************************************** ******************************************** TOOLBAR CALLBACKS ********************************************* ***********************************************************************************************************/ gboolean on_button_quit_clicked (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_button_quit_clicked\n"); #endif on_menu_quit_activate(NULL, NULL); return TRUE; } gboolean on_eventbox_style_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_eventbox_style_button_press_event\n"); #endif gint new_style = -1; if(event->type != GDK_BUTTON_PRESS) return FALSE; if(event->button == 3) new_style = (current_user.tm->style != 2) ? current_user.tm->style + 1 : -2; else if(event->button == 1) new_style = (current_user.tm->style != -2) ? current_user.tm->style - 1 : 2; else return FALSE; team_change_attribute_with_message(current_user.tm, TEAM_ATTRIBUTE_STYLE, new_style); game_gui_write_meters(current_user.tm); game_gui_write_radio_items(); if(stat0 == STATUS_MAIN) treeview_show_next_opponent(); setsav0; return FALSE; } gboolean on_eventbox_boost_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_eventbox_boost_button_press_event\n"); #endif gint new_boost = -1; if(event->type != GDK_BUTTON_PRESS) return FALSE; if(event->button == 3) new_boost = (current_user.tm->boost != 1) ? current_user.tm->boost + 1 : -1; else if(event->button == 1) new_boost = (current_user.tm->boost != -1) ? current_user.tm->boost - 1 : 1; else return FALSE; if(new_boost == 1 && sett_int("int_opt_disable_boost_on")) game_gui_print_message(_("Boost ON is disabled in this country definition.")); else team_change_attribute_with_message(current_user.tm, TEAM_ATTRIBUTE_BOOST, new_boost); game_gui_write_meters(current_user.tm); game_gui_write_radio_items(); if(stat0 == STATUS_MAIN) treeview_show_next_opponent(); setsav0; return FALSE; } void on_button_load_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_load_clicked\n"); #endif on_menu_open_activate(NULL, NULL); } void on_button_save_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_save_clicked\n"); #endif on_menu_save_activate(NULL, NULL); } void on_button_back_to_main_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_back_to_main_clicked\n"); #endif if(stat0 != STATUS_LIVE_GAME_PAUSE) stat0 = STATUS_MAIN; gtk_notebook_set_current_page(GTK_NOTEBOOK(lookup_widget(window.main, "notebook_player")), 0); selected_row = -1; game_gui_show_main(); gui_set_arrows(); if((opt_int("int_opt_news_popup") == 2 || (opt_int("int_opt_news_popup") == 1 && counters[COUNT_NEW_NEWS] == 1)) && counters[COUNT_NEWS_SHOWN] == 0 && counters[COUNT_NEW_NEWS] != 0) on_menu_news_activate(NULL, NULL); } void on_button_transfers_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_transfers_clicked\n"); #endif if(sett_int("int_opt_disable_transfers")) game_gui_print_message(_("Transfers are disabled in this country definition.")); else if(week < transfer_get_deadline() || transfer_list->len > 0) { if(stat0 != STATUS_SHOW_TRANSFER_LIST) { stat0 = STATUS_SHOW_TRANSFER_LIST; game_gui_print_message( _("Left click to make an offer. Right click to remove offer.")); game_gui_print_message_with_delay( _("Transfer deadline is Week %d"), transfer_get_deadline()); } treeview_show_transfer_list( GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right"))); gtk_notebook_set_current_page( GTK_NOTEBOOK(lookup_widget(window.main, "notebook_player")), 1); gui_set_arrows(); } else game_gui_print_message(_("The transfer deadline is over.")); } void on_button_new_week_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_new_week_clicked\n"); #endif if(transfer_offers_pending()) game_gui_show_warning(_("You still have some transfer business to manage.")); else if(query_user_no_turn()) { stat1 = STATUS_QUERY_USER_NO_TURN; window_show_yesno(_("At least one user didn't take his turn this week. Continue?")); } else if(opt_int("int_opt_confirm_unfit") && query_user_teams_have_unfit()) { stat1 = STATUS_QUERY_UNFIT; window_show_yesno(_("There are injured or banned players in one of the user teams. Continue?")); } else { load_save_autosave(); callback_show_next_live_game(); } } /*********************************************************************************************************** ******************************************** ARROW BUTTON CALLBACKS **************************************** ***********************************************************************************************************/ void on_button_browse_forward_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_browse_forward_clicked\n"); #endif switch(stat0) { case STATUS_SHOW_FIXTURES: callback_show_fixtures(SHOW_NEXT); break; case STATUS_SHOW_FIXTURES_WEEK: callback_show_fixtures_week(SHOW_NEXT); break; case STATUS_BROWSE_TEAMS: callback_show_team(SHOW_NEXT); break; case STATUS_SHOW_PLAYER_INFO: selected_row = (selected_row + 1) % current_user.tm->players->len; on_menu_show_info_activate(NULL, NULL); break; case STATUS_SHOW_SEASON_HISTORY: callback_show_season_history(SHOW_NEXT); break; } } void on_button_browse_back_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_browse_back_clicked\n"); #endif switch(stat0) { case STATUS_SHOW_FIXTURES: callback_show_fixtures(SHOW_PREVIOUS); break; case STATUS_SHOW_FIXTURES_WEEK: callback_show_fixtures_week(SHOW_PREVIOUS); break; case STATUS_BROWSE_TEAMS: callback_show_team(SHOW_PREVIOUS); break; case STATUS_SHOW_PLAYER_INFO: selected_row = (selected_row == 0) ? current_user.tm->players->len - 1 : selected_row - 1; on_menu_show_info_activate(NULL, NULL); break; case STATUS_SHOW_SEASON_HISTORY: callback_show_season_history(SHOW_PREVIOUS); break; } } void on_button_cl_back_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_cl_back_clicked\n"); #endif switch(stat0) { case STATUS_SHOW_FIXTURES: callback_show_fixtures(SHOW_PREVIOUS_LEAGUE); break; case STATUS_SHOW_TABLES: callback_show_tables(SHOW_PREVIOUS_LEAGUE); break; case STATUS_BROWSE_TEAMS: callback_show_team(SHOW_PREVIOUS_LEAGUE); break; case STATUS_SHOW_PLAYER_LIST: callback_show_player_list(SHOW_PREVIOUS_LEAGUE); break; case STATUS_SHOW_LEAGUE_STATS: callback_show_league_stats(SHOW_PREVIOUS_LEAGUE); break; case STATUS_SHOW_SEASON_HISTORY: callback_show_season_history(SHOW_PREVIOUS_LEAGUE); break; } } void on_button_cl_forward_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_cl_forward_clicked\n"); #endif switch(stat0) { case STATUS_SHOW_FIXTURES: callback_show_fixtures(SHOW_NEXT_LEAGUE); break; case STATUS_SHOW_TABLES: callback_show_tables(SHOW_NEXT_LEAGUE); break; case STATUS_BROWSE_TEAMS: callback_show_team(SHOW_NEXT_LEAGUE); break; case STATUS_SHOW_PLAYER_LIST: callback_show_player_list(SHOW_NEXT_LEAGUE); break; case STATUS_SHOW_LEAGUE_STATS: callback_show_league_stats(SHOW_NEXT_LEAGUE); break; case STATUS_SHOW_SEASON_HISTORY: callback_show_season_history(SHOW_NEXT_LEAGUE); break; } } /*********************************************************************************************************** ******************************************** TREEVIEW CALLBACKS ******************************************** ***********************************************************************************************************/ gboolean on_treeview_right_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_treeview_right_button_press_event\n"); #endif gint idx; if(stat0 == STATUS_SHOW_FINANCES) { if(event->button == 1) callback_get_loan(); else if(event->button == 3) callback_pay_loan(); else if(event->button == 2) on_menu_show_stadium_activate(NULL, NULL); } if(gtk_tree_selection_get_mode( gtk_tree_view_get_selection(GTK_TREE_VIEW(widget))) == GTK_SELECTION_NONE) return TRUE; if(treeview_helper_select_row(GTK_TREE_VIEW(widget), event)) idx = treeview_helper_get_index(GTK_TREE_VIEW(widget), 0); else return TRUE; switch(stat0) { case STATUS_SHOW_TRANSFER_LIST: if(trans(idx - 1).tm == current_user.tm || (trans(idx - 1).offers->len > 0 && transoff(idx - 1, 0).status == TRANSFER_OFFER_ACCEPTED) || event->button == 1) callback_transfer_list_clicked(event->button, idx - 1); else if(event->button == 3) { if(transfer_remove_offer(idx - 1, current_user.tm)) game_gui_print_message(_("Your offer has been removed.")); else game_gui_print_message( _("You haven't made an offer for the player.")); return TRUE; } break; case STATUS_SHOW_TEAM_LIST: callback_show_team(SHOW_CURRENT); break; case STATUS_MAIN: callback_show_next_opponent(); break; case STATUS_SHOW_PLAYER_LIST: callback_show_player_team(); break; case STATUS_SHOW_YA: selected_row = idx - 1; if(event->button == 1) on_menu_youth_move_to_team_activate(NULL, NULL); else if(event->button == 3) window_show_menu_youth((GdkEvent*)event); break; case STATUS_SHOW_JOB_EXCHANGE: if(g_array_index(jobs, Job, idx - 1).type != JOB_TYPE_NATIONAL && users->len > 1) game_gui_show_warning(_("You can't apply for a job from abroad if there's more than one user.")); else if(event->button == 1) game_gui_show_job_offer(NULL, &g_array_index(jobs, Job, idx - 1), STATUS_JOB_EXCHANGE_SHOW_TEAM); else if(event->button == 3) if(misc2_callback_evaluate_job_application( &g_array_index(jobs, Job, idx - 1), ¤t_user)) { stat0 = STATUS_MAIN; game_gui_show_main(); setsav0; } break; case STATUS_SHOW_TABLES: stat0 = STATUS_SHOW_FIXTURES; stat2 = week; stat3 = week_round; callback_show_fixtures(SHOW_CURRENT); break; case STATUS_SHOW_FIXTURES: if(stat1 >= ID_CUP_START && cup_has_tables(stat1) == -1) game_gui_print_message(_("Cup has no tables.")); else { stat0 = STATUS_SHOW_TABLES; callback_show_tables(SHOW_CURRENT); } break; } gui_set_arrows(); return TRUE; } gboolean on_player_list1_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_player_list1_button_press_event\n"); #endif gint idx = -1; if(event->button == 2) { on_menu_rearrange_team_activate(NULL, NULL); return TRUE; } else if(stat0 == STATUS_LIVE_GAME_PAUSE && event->button == 3) { on_menu_reset_players_activate(NULL, NULL); return TRUE; } if(treeview_helper_select_row(GTK_TREE_VIEW(widget), event)) idx = treeview_helper_get_index(GTK_TREE_VIEW(widget), 0); if(idx < 0 || idx - 1 == selected_row) { selected_row = -1; return FALSE; } callback_player_clicked(idx - 1, event); return FALSE; } gboolean on_player_list1_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { #ifdef DEBUG printf("on_player_list1_key_press_event\n"); #endif gint idx = -1; if(event->keyval != GDK_Return) return FALSE; idx = treeview_helper_get_index(GTK_TREE_VIEW(widget), 0); if(idx < 0 || idx - 1 == selected_row) { selected_row = -1; return FALSE; } callback_player_activate(idx - 1); return FALSE; } /*********************************************************************************************************** ******************************************** FILE MENU CALLBACKS ******************************************* ***********************************************************************************************************/ void on_menu_load_last_save_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_load_last_save_activate\n"); #endif if(load_save_load_game("last_save", FALSE)) { cur_user = 0; on_button_back_to_main_clicked(NULL, NULL); setsav1; } } void on_menu_new_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_new_activate\n"); #endif window_destroy(&window.main); free_memory(); main_init(NULL, NULL); window_show_startup(); stat0 = STATUS_TEAM_SELECTION; statp = NULL; } void on_menu_open_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_open_activate\n"); #endif stat5 = STATUS_LOAD_GAME; window_show_file_sel(); } void on_menu_save_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_save_activate\n"); #endif if(!opt_int("int_opt_save_will_overwrite") || save_file == NULL) on_menu_save_as_activate(NULL, NULL); else load_save_save_game(save_file); } void on_menu_save_as_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_save_as_activate\n"); #endif stat5 = STATUS_SAVE_GAME; window_show_file_sel(); } void on_menu_quit_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_quit_activate\n"); #endif if(!getsav || !opt_int("int_opt_confirm_quit")) main_exit_program(EXIT_OK, NULL); else { stat1 = STATUS_QUERY_QUIT; window_show_yesno(_("The current game state is unsaved and will be lost. Continue?")); } } /*********************************************************************************************************** ******************************************** PREFERENCES MENU CALLBACKS ************************************ ***********************************************************************************************************/ void on_menu_save_window_geometry_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_save_window_geometry_activate\n"); #endif window_main_save_geometry(); } gboolean on_menu_check_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_menu_check_button_press_event\n"); #endif game_gui_read_check_items(widget); setsav0; return FALSE; } void on_menu_preferences_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_preferences_activate\n"); #endif window_show_options(); } /*********************************************************************************************************** ******************************************** FIGURES CALLBACKS ********************************************* ***********************************************************************************************************/ void on_menu_fixtures_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_fixtures_activate\n"); #endif game_gui_print_message( _("Left click to show table.")); stat0 = STATUS_SHOW_FIXTURES; callback_show_fixtures(SHOW_TEAM); gui_set_arrows(); } void on_menu_fixtures_week_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_fixtures_week_activate\n"); #endif stat0 = STATUS_SHOW_FIXTURES_WEEK; callback_show_fixtures_week(SHOW_CURRENT); gui_set_arrows(); } void on_menu_tables_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_tables_activate\n"); #endif /* No tables in this country? */ if(!query_tables_in_country()) { game_gui_print_message( _("There are no leagues or cups with tables in this country definition.")); return; } game_gui_print_message( _("Left click to show fixtures.")); stat0 = STATUS_SHOW_TABLES; stat1 = team_get_table_clid(current_user.tm); callback_show_tables(SHOW_CURRENT); gui_set_arrows(); } void on_menu_league_stats_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_league_stats_activate\n"); #endif if(!query_leagues_active_in_country()) { game_gui_print_message( _("There are no leagues in this country definition (only cups).")); return; } stat0 = STATUS_SHOW_LEAGUE_STATS; callback_show_league_stats(SHOW_CURRENT); gui_set_arrows(); } void on_menu_season_history_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_season_history_activate\n"); #endif if(season_stats->len == 0) { game_gui_print_message( _("There are no season history elements stored yet.")); return; } stat0 = STATUS_SHOW_SEASON_HISTORY; callback_show_season_history(SHOW_CURRENT); gui_set_arrows(); } /*********************************************************************************************************** ******************************************** TEAM MENU CALLBACKS ******************************************* ***********************************************************************************************************/ void on_menu_show_youth_academy_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_show_youth_academy_activate\n"); #endif if(sett_int("int_opt_disable_ya")) { game_gui_print_message( _("Youth academy is disabled in this country definition.")); return; } callback_show_youth_academy(); stat0 = STATUS_SHOW_YA; } void on_menu_set_investment_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_set_investment_activate\n"); #endif if(sett_int("int_opt_disable_ya")) { game_gui_print_message( _("Youth academy is disabled in this country definition.")); return; } stat1 = STATUS_SET_YA_PERCENTAGE; window_show_digits( _("Set the percentage of your income you want to devote to your youth academy."), NULL, -1, "%", current_user.youth_academy.percentage, FALSE); } void on_menu_show_job_exchange_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_show_job_exchange_activate\n"); #endif stat0 = STATUS_SHOW_JOB_EXCHANGE; gui_set_arrows(); treeview2_show_job_exchange(); game_gui_print_message( _("Right click to apply for job at once, left click to see team info.")); game_gui_print_message_with_delay( _("The job exchange update interval is %d weeks."), const_int("int_job_update_interval")); } void on_training_camp_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_training_camp_activate\n"); #endif if(sett_int("int_opt_disable_training_camp")) { game_gui_print_message( _("Training camp is disabled in this country definition.")); return; } if(current_user.counters[COUNT_USER_TRAININGS_WEEK] == const_int("int_training_camps_week")) { game_gui_print_message(_("Your team has already had enough training camps this week.")); return; } if(current_user.counters[COUNT_USER_TRAININGS_LEFT_SEASON] == 0) { game_gui_print_message(_("You've reached the limit of %d training camps for the season."), const_int("int_training_camps_per_season")); return; } window_show_training_camp(); } void on_menu_rearrange_team_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_rearrange_team_activate\n"); #endif team_rearrange(current_user.tm); treeview_show_user_player_list(); } gboolean on_menu_team_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_menu_team_button_release_event\n"); #endif game_gui_read_radio_items(widget); setsav0; return FALSE; } void on_menu_custom_structure_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_custom_structure_activate\n"); #endif stat1 = STATUS_CUSTOM_STRUCTURE; window_show_digits(_("Enter a structure. The digits must sum up to 10."), NULL, -1, _("Structure"), current_user.tm->structure, FALSE); } void on_menu_browse_teams_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_browse_teams_activate\n"); #endif GtkWidget *treeview_right = lookup_widget(window.main, "treeview_right"); treeview_show_team_list(GTK_TREE_VIEW(treeview_right), TRUE, TRUE); stat0 = STATUS_SHOW_TEAM_LIST; gui_set_arrows(); } /*********************************************************************************************************** ******************************************** PLAYER MENU CALLBACKS ***************************************** ***********************************************************************************************************/ void on_menu_edit_name_activate (GtkMenuItem *menuitem, gpointer user_data) { GtkTreeViewColumn *col; GtkNotebook *notebook; GtkTreeView *player_list; GtkTreePath *tpath; if(selected_row == -1) { game_gui_print_message(_("You haven't selected a player.")); return; } notebook = GTK_NOTEBOOK(lookup_widget(window.main, "notebook_player")); if(gtk_notebook_get_current_page(notebook) != 1) gtk_notebook_set_current_page(notebook, 1); if(selected_row < 11) tpath = gtk_tree_path_new_from_indices(selected_row, -1); else tpath = gtk_tree_path_new_from_indices(selected_row + 1, -1); player_list = GTK_TREE_VIEW(lookup_widget(window.main, "player_list2")); col = gtk_tree_view_get_column(player_list, PLAYER_LIST_ATTRIBUTE_NAME + 1); gtk_tree_view_set_cursor(player_list, tpath, col, TRUE); setsav0; } void on_menu_browse_players_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_browse_players_activate\n"); #endif stat0 = STATUS_SHOW_PLAYER_LIST; callback_show_player_list(SHOW_CURRENT); gui_set_arrows(); } void on_menu_offer_new_contract_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_offer_new_contract_activate\n"); #endif if(sett_int("int_opt_disable_contracts")) { game_gui_print_message(_("Contracts are disabled in this country definition.")); return; } if(selected_row == -1) { game_gui_print_message(_("You haven't selected a player.")); return; } callback_offer_new_contract(selected_row); setsav0; } void on_menu_show_info_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_show_info_activate\n"); #endif if(selected_row == -1) { game_gui_print_message(_("You haven't selected a player.")); return; } if(stat0 != STATUS_LIVE_GAME_PAUSE) stat0 = STATUS_SHOW_PLAYER_INFO; treeview_show_player_info(player_of_idx_team(current_user.tm, selected_row)); gui_set_arrows(); } void on_menu_put_on_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_put_on_transfer_list_activate\n"); #endif if(sett_int("int_opt_disable_transfers")) game_gui_print_message(_("Transfers are disabled in this country definition.")); else if(selected_row == -1) game_gui_print_message(_("You haven't selected a player.")); else if(query_transfer_player_is_on_list(player_of_idx_team(current_user.tm, selected_row))) game_gui_print_message(_("The player is already on the list.")); else { setsav0; transfer_add_remove_user_player(player_of_idx_team(current_user.tm, selected_row)); } } void on_menu_remove_from_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_remove_from_transfer_list_activate\n"); #endif if(selected_row == -1) game_gui_print_message(_("You haven't selected a player.")); else if(!query_transfer_player_is_on_list(player_of_idx_team(current_user.tm, selected_row))) game_gui_print_message(_("The player is not on the list.")); else { setsav0; transfer_add_remove_user_player(player_of_idx_team(current_user.tm, selected_row)); } } void on_menu_fire_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_fire_activate\n"); #endif if(selected_row == -1) game_gui_print_message(_("You haven't selected a player.")); else if(current_user.tm->players->len == 11) game_gui_show_warning(_("Your team can't have less than 11 players.")); else { callback_fire_player(selected_row); selected_row = -1; } } void on_menu_shoots_penalties_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_shoots_penalties_activate\n"); #endif if(selected_row == -1) game_gui_print_message(_("You haven't selected a player.")); else if(player_of_idx_team(current_user.tm, selected_row)->id == opt_user_int("int_opt_user_penalty_shooter")) { opt_user_set_int("int_opt_user_penalty_shooter", -1); game_gui_print_message(_("Penalty/free kick shooter deselected.")); treeview_show_user_player_list(); setsav0; } else { game_gui_print_message(_("%s will shoot penalties and free kicks when he plays."), player_of_idx_team(current_user.tm, selected_row)->name); opt_user_set_int("int_opt_user_penalty_shooter", player_of_idx_team(current_user.tm, selected_row)->id); treeview_show_user_player_list(); setsav0; } } void on_menu_move_to_youth_academy_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_move_to_youth_academy_activate\n"); #endif Player *pl; if(sett_int("int_opt_disable_ya")) { game_gui_print_message( _("Youth academy is disabled in this country definition.")); return; } if(selected_row == -1) game_gui_print_message(_("You haven't selected a player.")); else { pl = player_of_idx_team(current_user.tm, selected_row); if(pl->age > const_float("float_player_age_lower")) game_gui_print_message(_("The player is too old for the youth academy.")); else if(current_user.tm->players->len <= 11) game_gui_print_message( _("You can't move the player, there are too few players in your team.")); else if(current_user.youth_academy.players->len == const_int("int_youth_academy_max_youths")) game_gui_print_message(_("There is no room in your youth academy.")); else { player_move_to_ya(selected_row); treeview_show_user_player_list(); on_menu_show_youth_academy_activate(NULL, NULL); selected_row = -1; } } } /*********************************************************************************************************** ******************************************** PLAYER CONTEXT MENU CALLBACKS ********************************* ***********************************************************************************************************/ void on_player_menu_edit_name_activate (GtkMenuItem *menuitem, gpointer user_data) { on_menu_edit_name_activate(NULL, NULL); } void on_player_menu_show_info_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_show_info_activate\n"); #endif on_menu_show_info_activate(NULL, NULL); } void on_player_menu_put_on_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_put_on_transfer_list_activate\n"); #endif on_menu_put_on_transfer_list_activate(NULL, NULL); } void on_player_menu_remove_from_transfer_list_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_remove_from_transfer_list_activate\n"); #endif on_menu_remove_from_transfer_list_activate(NULL, NULL); } void on_player_menu_offer_new_contract_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_offer_new_contract_activate\n"); #endif on_menu_offer_new_contract_activate(NULL, NULL); } void on_player_menu_fire_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_fire_activate\n"); #endif on_menu_fire_activate(NULL, NULL); } void on_player_menu_shoots_penalties_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_shoots_penalties_activate\n"); #endif on_menu_shoots_penalties_activate(NULL, NULL); } void on_player_menu_move_to_youth_academy_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_player_menu_move_to_youth_academy_activate\n"); #endif on_menu_move_to_youth_academy_activate(NULL, NULL); } /*********************************************************************************************************** ******************************************** YOUTH CONTEXT MENU CALLBACKS ********************************** ***********************************************************************************************************/ void on_menu_youth_move_to_team_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_youth_move_to_team_activate\n"); #endif if(sett_int("int_opt_disable_ya")) { game_gui_print_message( _("Youth academy is disabled in this country definition.")); return; } if(current_user.tm->players->len == const_int("int_team_max_players")) game_gui_print_message(_("You can't have more than %d players in the team."), const_int("int_team_max_players")); else { player_move_from_ya(selected_row); treeview_show_user_player_list(); on_menu_show_youth_academy_activate(NULL, NULL); selected_row = -1; } } void on_menu_youth_kick_out_of_academy_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_youth_kick_out_of_academy_activate\n"); #endif if(opt_user_int("int_opt_user_confirm_youth")) { stat1 = STATUS_QUERY_KICK_YOUTH; window_show_yesno(_("Do you really want to kick the poor boy out of your academy?")); } else { free_player(&g_array_index(current_user.youth_academy.players, Player, selected_row)); g_array_remove_index(current_user.youth_academy.players, selected_row); on_menu_show_youth_academy_activate(NULL, NULL); selected_row = -1; } } /*********************************************************************************************************** ******************************************** USER MENU CALLBACKS ******************************************* ***********************************************************************************************************/ void on_menu_next_user_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_next_user_activate\n"); #endif if(transfer_offers_pending()) { game_gui_show_warning(_("You still have some transfer business to manage.")); return; } cur_user = (cur_user + 1) % users->len; user_event_show_next(); on_button_back_to_main_clicked(NULL, NULL); } void on_menu_previous_user_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_previous_user_activate\n"); #endif if(transfer_offers_pending()) { game_gui_show_warning(_("You still have some transfer business to manage.")); return; } cur_user = (cur_user == 0) ? users->len - 1 : cur_user - 1; user_event_show_next(); on_button_back_to_main_clicked(NULL, NULL); } void on_menu_manage_users_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_manage_users_activate\n"); #endif stat0 = stat1 = STATUS_USER_MANAGEMENT; window_create(WINDOW_USER_MANAGEMENT); treeview_show_users(GTK_TREE_VIEW(lookup_widget(window.user_management, "treeview_user_management_users"))); treeview_show_team_list(GTK_TREE_VIEW(lookup_widget(window.user_management, "treeview_user_management_teams")), FALSE, FALSE); } void on_menu_user_show_last_match_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_user_show_last_match_activate\n"); #endif if(current_user.live_game.units->len == 0) { game_gui_show_warning(_("No match stored.")); return; } stat1 = STATUS_SHOW_LAST_MATCH; stat3 = 0; callback_show_last_match(TRUE, ¤t_user.live_game); } void on_menu_user_show_last_stats_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_user_show_last_stats_activate\n"); #endif if(current_user.live_game.units->len == 0) { game_gui_show_warning(_("No match stored.")); return; } stat0 = STATUS_SHOW_LAST_MATCH_STATS; callback_show_last_match_stats(); gui_set_arrows(); } void on_menu_user_show_coming_matches_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_user_show_coming_matches_activate\n"); #endif stat0 = STATUS_SHOW_PREVIEW; treeview_show_preview(); gui_set_arrows(); } /*********************************************************************************************************** ******************************************** FINSTAD MENU CALLBACKS **************************************** ***********************************************************************************************************/ void on_menu_betting_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_betting_activate\n"); #endif on_button_back_to_main_clicked(NULL, NULL); window_show_bets(); } void on_automatic_loan_repayment_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_automatic_loan_repayment_activate\n"); #endif if(sett_int("int_opt_disable_finances")) { game_gui_print_message(_("Finances are disabled in this country definition.")); return; } if(current_user.debt == 0) { game_gui_print_message(_("You are not in debt.")); return; } else if(week >= fixture_get_last_scheduled_week() - 1) { game_gui_print_message(_("It's too late in the season for automatic loan repayment.")); return; } window_show_alr(); } void on_menu_show_finances_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_show_finances_activate\n"); #endif if(sett_int("int_opt_disable_finances")) { game_gui_print_message(_("Finances are disabled in this country definition.")); return; } stat0 = STATUS_SHOW_FINANCES; game_gui_print_message(_("Left-click: get loan; Right-click: pay back; Middle click: stadium window.")); treeview_show_finances(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")), ¤t_user); gui_set_arrows(); } void on_menu_show_stadium_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_show_stadium_activate\n"); #endif if(sett_int("int_opt_disable_stadium")) { game_gui_print_message( _("Stadium management is disabled in this country definition.")); return; } window_show_stadium(); } /*********************************************************************************************************** ******************************************** STATS MENU CALLBACKS ****************************************** ***********************************************************************************************************/ void on_menu_user_show_history_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_user_show_history_activate\n"); #endif stat0 = STATUS_SHOW_USER_HISTORY; treeview_show_user_history(); gui_set_arrows(); } void on_mm_add_last_match_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_mm_add_last_match_activate\n"); #endif if(current_user.live_game.units->len == 0) { game_gui_show_warning(_("No match stored.")); return; } if(current_user.mmatches_file == NULL) { stat5 = STATUS_SELECT_MM_FILE_ADD; window_show_file_sel(); } else user_mm_add_last_match(FALSE, TRUE); } void on_mm_manage_matches_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_mm_manage_matches_activate\n"); #endif if(current_user.mmatches_file == NULL) { stat5 = STATUS_SELECT_MM_FILE_LOAD; window_show_file_sel(); } else window_show_mmatches(); } void on_menu_news_activate (GtkMenuItem *menuitem, gpointer user_data) { window_create(WINDOW_NEWS); treeview2_show_news(); counters[COUNT_NEWS_SHOWN] = 1; } void on_menu_my_league_results_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_my_league_results_activate\n"); #endif stat0 = STATUS_SHOW_LEAGUE_RESULTS; treeview_show_league_results(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right"))); gui_set_arrows(); } void on_menu_season_results_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_season_results_activate\n"); #endif stat0 = STATUS_SHOW_SEASON_RESULTS; treeview2_show_season_results(); gui_set_arrows(); } /*********************************************************************************************************** ******************************************** HELP MENU CALLBACKS ******************************************* ***********************************************************************************************************/ void on_menu_help_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_help_activate\n"); #endif window_show_help(2); } void on_menu_contributors_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_contributors_activate\n"); #endif window_show_help(1); } void on_menu_about_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_about_activate\n"); #endif window_show_help(0); } /*********************************************************************************************************** ******************************************** MISCELLANEOUS CALLBACKS *************************************** ***********************************************************************************************************/ gboolean on_hpaned2_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_hpaned2_button_release_event\n"); #endif window.paned_pos = gtk_paned_get_position(GTK_PANED(widget)); return FALSE; } gboolean on_button_quit_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_button_quit_button_press_event\n"); #endif if(event->button == 3 && counters[COUNT_SHOW_DEBUG] == 0) { counters[COUNT_SHOW_DEBUG] = 1; g_timeout_add(3000, (GSourceFunc)debug_reset_counter, NULL); } else if(event->button == 2 && counters[COUNT_SHOW_DEBUG] == 1) { window_create(WINDOW_DEBUG); counters[COUNT_SHOW_DEBUG] = 0; } return FALSE; } void on_button_reset_players_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_reset_players_clicked\n"); #endif on_menu_reset_players_activate(NULL, NULL); } void on_menu_reset_players_activate (GtkMenuItem *menuitem, gpointer user_data) { #ifdef DEBUG printf("on_menu_reset_players_activate\n"); #endif gint idx = -1; if(team_is_user(usr(stat2).live_game.fix->teams[0]) == -1 || team_is_user(usr(stat2).live_game.fix->teams[1]) == -1) idx = (team_is_user(usr(stat2).live_game.fix->teams[0]) == -1); else { if(team_is_user(usr(stat2).live_game.fix->teams[0]) == cur_user) idx = 0; else idx = 1; } game_reset_players(idx); } bygfoot-2.3.2/src/xml_strategy.c0000644000175000017500000004552511225071373015634 0ustar eliaselias/* xml_strategy.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "free.h" #include "main.h" #include "misc.h" #include "strategy_struct.h" #include "xml_strategy.h" #define TAG_STRATEGY "strategy" #define TAG_STRATEGY_SID "sid" #define TAG_STRATEGY_DESC "desc" #define TAG_STRATEGY_PRIORITY "priority" #define TAG_STRATEGY_PREMATCH "prematch" #define TAG_STRATEGY_PREMATCH_FORMATION "formation" #define TAG_STRATEGY_PREMATCH_LINEUP "lineup" #define TAG_STRATEGY_PREMATCH_BOOST "prematch_boost" #define TAG_STRATEGY_PREMATCH_STYLE "prematch_style" #define TAG_STRATEGY_MATCH_ACTION "match_action" #define TAG_STRATEGY_MATCH_ACTION_BOOST "boost" #define TAG_STRATEGY_MATCH_ACTION_STYLE "style" #define TAG_STRATEGY_MATCH_ACTION_SUB "sub" #define TAG_STRATEGY_MATCH_ACTION_SUB_IN_POS "in" #define TAG_STRATEGY_MATCH_ACTION_SUB_OUT_POS "out" #define ATT_NAME_MIN_FITNESS "min_fitness" #define ATT_NAME_COND "cond" #define ATT_NAME_SUB_PROPERTY "prop" #define LINEUP_NAME_BEST "best" #define LINEUP_NAME_WEAKEST "weakest" #define LINEUP_NAME_FITTEST "fittest" #define LINEUP_NAME_UNFITTEST "unfittest" #define BOOST_NAME_ON "on" #define BOOST_NAME_OFF "off" #define BOOST_NAME_ANTI "anti" #define STYLE_NAME_ALL_OUT_DEFEND "all-out-defend" #define STYLE_NAME_DEFEND "defend" #define STYLE_NAME_BALANCED "balanced" #define STYLE_NAME_ATTACK "attack" #define STYLE_NAME_ALL_OUT_ATTACK "all-out-attack" #define POS_NAME_GOALIE "goalie" #define POS_NAME_DEFENDER "defender" #define POS_NAME_MIDFIELDER "midfielder" #define POS_NAME_FORWARD "forward" enum { STATE_STRATEGY = 0, STATE_STRATEGY_SID, STATE_STRATEGY_DESC, STATE_STRATEGY_PRIORITY, STATE_STRATEGY_PREMATCH, STATE_STRATEGY_PREMATCH_FORMATION, STATE_STRATEGY_PREMATCH_LINEUP, STATE_STRATEGY_PREMATCH_BOOST, STATE_STRATEGY_PREMATCH_STYLE, STATE_STRATEGY_MATCH_ACTION, STATE_STRATEGY_MATCH_ACTION_BOOST, STATE_STRATEGY_MATCH_ACTION_STYLE, STATE_STRATEGY_MATCH_ACTION_SUB, STATE_STRATEGY_MATCH_ACTION_SUB_IN_POS, STATE_STRATEGY_MATCH_ACTION_SUB_OUT_POS, }; gint state, action_id; #define curstrat g_array_index(strategies, Strategy, strategies->len - 1) #define curprematch g_array_index(curstrat.prematch, StrategyPrematch, curstrat.prematch->len - 1) #define curmatchaction g_array_index(curstrat.match_action, StrategyMatchAction, curstrat.match_action->len - 1) void xml_strategy_read_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_strategy_read_start_element\n"); #endif gint atidx = 0; if(strcmp(element_name, TAG_STRATEGY) == 0) state = STATE_STRATEGY; else if(strcmp(element_name, TAG_STRATEGY_SID) == 0) state = STATE_STRATEGY_SID; else if(strcmp(element_name, TAG_STRATEGY_DESC) == 0) state = STATE_STRATEGY_DESC; else if(strcmp(element_name, TAG_STRATEGY_PRIORITY) == 0) state = STATE_STRATEGY_PRIORITY; else if(strcmp(element_name, TAG_STRATEGY_PREMATCH) == 0) { StrategyPrematch new_prematch; state = STATE_STRATEGY_PREMATCH; new_prematch.condition = NULL; new_prematch.lineup = new_prematch.boost = new_prematch.style = -100; new_prematch.min_fitness = 0; new_prematch.formations = g_array_new(FALSE, FALSE, sizeof(gint)); while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_COND) == 0 && new_prematch.condition == NULL) new_prematch.condition = g_strdup(attribute_values[atidx]); else debug_print_message("xml_strategy_read_start_element: unknown attribute %s\n", attribute_names[atidx]); atidx++; } g_array_append_val(curstrat.prematch, new_prematch); } else if(strcmp(element_name, TAG_STRATEGY_PREMATCH_FORMATION) == 0) state = STATE_STRATEGY_PREMATCH_FORMATION; else if(strcmp(element_name, TAG_STRATEGY_PREMATCH_LINEUP) == 0) { state = STATE_STRATEGY_PREMATCH_LINEUP; while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_MIN_FITNESS) == 0) curprematch.min_fitness = g_ascii_strtod(attribute_values[atidx], NULL) / 100; else debug_print_message("xml_strategy_read_start_element: unknown attribute %s\n", attribute_names[atidx]); atidx++; } } else if(strcmp(element_name, TAG_STRATEGY_PREMATCH_BOOST) == 0) state = STATE_STRATEGY_PREMATCH_BOOST; else if(strcmp(element_name, TAG_STRATEGY_PREMATCH_STYLE) == 0) state = STATE_STRATEGY_PREMATCH_STYLE; else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION) == 0) { StrategyMatchAction new_match_action; state = STATE_STRATEGY_MATCH_ACTION; new_match_action.sub_condition = NULL; new_match_action.condition = NULL; new_match_action.boost = new_match_action.style = -100; new_match_action.sub_in_pos = -1; new_match_action.id = action_id++; while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_COND) == 0 && new_match_action.condition == NULL) new_match_action.condition = g_strdup(attribute_values[atidx]); else debug_print_message("xml_strategy_read_start_element: unknown attribute %s\n", attribute_names[atidx]); atidx++; } g_array_append_val(curstrat.match_action, new_match_action); } else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_BOOST) == 0) state = STATE_STRATEGY_MATCH_ACTION_BOOST; else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_STYLE) == 0) state = STATE_STRATEGY_MATCH_ACTION_STYLE; else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_SUB) == 0) { state = STATE_STRATEGY_MATCH_ACTION_SUB; while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_COND) == 0 && curmatchaction.sub_condition == NULL) curmatchaction.sub_condition = g_strdup(attribute_values[atidx]); else debug_print_message("xml_strategy_read_start_element: unknown attribute %s\n", attribute_names[atidx]); atidx++; } } else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_SUB_IN_POS) == 0) { state = STATE_STRATEGY_MATCH_ACTION_SUB_IN_POS; while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_SUB_PROPERTY) == 0) { if(strcmp(attribute_values[atidx], LINEUP_NAME_BEST) == 0) curmatchaction.sub_in_prop = STRAT_LINEUP_BEST; else if(strcmp(attribute_values[atidx], LINEUP_NAME_WEAKEST) == 0) curmatchaction.sub_in_prop = STRAT_LINEUP_WEAKEST; else if(strcmp(attribute_values[atidx], LINEUP_NAME_FITTEST) == 0) curmatchaction.sub_in_prop = STRAT_LINEUP_FITTEST; else if(strcmp(attribute_values[atidx], LINEUP_NAME_UNFITTEST) == 0) curmatchaction.sub_in_prop = STRAT_LINEUP_UNFITTEST; else debug_print_message("xml_strategy_read_start_element: unknown property value %s\n", attribute_values[atidx]); } else debug_print_message("xml_strategy_read_start_element: unknown attribute %s\n", attribute_names[atidx]); atidx++; } } else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_SUB_OUT_POS) == 0) { state = STATE_STRATEGY_MATCH_ACTION_SUB_OUT_POS; while(attribute_names[atidx] != NULL) { if(strcmp(attribute_names[atidx], ATT_NAME_SUB_PROPERTY) == 0) { if(strcmp(attribute_values[atidx], LINEUP_NAME_BEST) == 0) curmatchaction.sub_out_prop = STRAT_LINEUP_BEST; else if(strcmp(attribute_values[atidx], LINEUP_NAME_WEAKEST) == 0) curmatchaction.sub_out_prop = STRAT_LINEUP_WEAKEST; else if(strcmp(attribute_values[atidx], LINEUP_NAME_FITTEST) == 0) curmatchaction.sub_out_prop = STRAT_LINEUP_FITTEST; else if(strcmp(attribute_values[atidx], LINEUP_NAME_UNFITTEST) == 0) curmatchaction.sub_out_prop = STRAT_LINEUP_UNFITTEST; else debug_print_message("xml_strategy_read_start_element: unknown property value %s\n", attribute_values[atidx]); } else debug_print_message("xml_strategy_read_start_element: unknown attribute %s\n", attribute_names[atidx]); atidx++; } } else debug_print_message("xml_strategy_read_start_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when a closing tag is read. * The state variable is changed in this function. * @see The GLib manual (Simple XML parser). */ void xml_strategy_read_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_strategy_read_end_element\n"); #endif if(strcmp(element_name, TAG_STRATEGY_SID) == 0 || strcmp(element_name, TAG_STRATEGY_DESC) == 0 || strcmp(element_name, TAG_STRATEGY_PRIORITY) == 0 || strcmp(element_name, TAG_STRATEGY_MATCH_ACTION) == 0 || strcmp(element_name, TAG_STRATEGY_PREMATCH) == 0) state = STATE_STRATEGY; else if(strcmp(element_name, TAG_STRATEGY_PREMATCH_FORMATION) == 0 || strcmp(element_name, TAG_STRATEGY_PREMATCH_LINEUP) == 0 || strcmp(element_name, TAG_STRATEGY_PREMATCH_BOOST) == 0 || strcmp(element_name, TAG_STRATEGY_PREMATCH_STYLE) == 0) state = STATE_STRATEGY_PREMATCH; else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_SUB) == 0 || strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_STYLE) == 0 || strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_BOOST) == 0) state = STATE_STRATEGY_MATCH_ACTION; else if(strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_SUB_IN_POS) == 0 || strcmp(element_name, TAG_STRATEGY_MATCH_ACTION_SUB_OUT_POS) == 0) state = STATE_STRATEGY_MATCH_ACTION_SUB; else if(strcmp(element_name, TAG_STRATEGY) != 0) debug_print_message("xml_strategy_read_end_element: unknown tag: %s; I'm in state %d\n", element_name, state); } /** * The function called by the parser when the text between tags is read. * This function is responsible for filling in the variables (e.g. team names) * when a file gets loaded. * @see The GLib manual (Simple XML parser). */ void xml_strategy_read_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { #ifdef DEBUG printf("xml_strategy_read_text\n"); #endif gchar buf[text_len + 1]; gint int_value; strncpy(buf, text, text_len); buf[text_len] = '\0'; int_value = (gint)g_ascii_strtod(buf, NULL); if(state == STATE_STRATEGY_SID) misc_string_assign(&curstrat.sid, buf); else if(state == STATE_STRATEGY_DESC) misc_string_assign(&curstrat.desc, buf); else if(state == STATE_STRATEGY_PRIORITY) { if(strategies->len == 1) curstrat.priority = int_value; else curstrat.priority = g_array_index(strategies, Strategy, strategies->len - 2).priority + int_value; } else if(state == STATE_STRATEGY_PREMATCH_FORMATION) g_array_append_val(curprematch.formations, int_value); else if(state == STATE_STRATEGY_PREMATCH_LINEUP) { if(strcmp(buf, LINEUP_NAME_BEST) == 0) curprematch.lineup = STRAT_LINEUP_BEST; else if(strcmp(buf, LINEUP_NAME_WEAKEST) == 0) curprematch.lineup = STRAT_LINEUP_WEAKEST; else if(strcmp(buf, LINEUP_NAME_FITTEST) == 0) curprematch.lineup = STRAT_LINEUP_FITTEST; else debug_print_message( "xml_strategy_read_text: unknown lineup type %s\n", buf); } else if(state == STATE_STRATEGY_PREMATCH_BOOST) { if(strcmp(buf, BOOST_NAME_ON) == 0) curprematch.boost = 1; else if(strcmp(buf, BOOST_NAME_OFF) == 0) curprematch.boost = 0; else if(strcmp(buf, BOOST_NAME_ANTI) == 0) curprematch.boost = -1; else debug_print_message( "xml_strategy_read_text: unknown boost type %s\n", buf); } else if(state == STATE_STRATEGY_PREMATCH_STYLE) { if(strcmp(buf, STYLE_NAME_ALL_OUT_DEFEND) == 0) curprematch.style = -2; else if(strcmp(buf, STYLE_NAME_DEFEND) == 0) curprematch.style = -1; else if(strcmp(buf, STYLE_NAME_BALANCED) == 0) curprematch.style = 0; else if(strcmp(buf, STYLE_NAME_ATTACK) == 0) curprematch.style = 1; else if(strcmp(buf, STYLE_NAME_ALL_OUT_ATTACK) == 0) curprematch.style = 2; else debug_print_message( "xml_strategy_read_text: unknown style type %s\n", buf); } else if(state == STATE_STRATEGY_MATCH_ACTION_STYLE) { if(strcmp(buf, STYLE_NAME_ALL_OUT_DEFEND) == 0) curmatchaction.style = -2; else if(strcmp(buf, STYLE_NAME_DEFEND) == 0) curmatchaction.style = -1; else if(strcmp(buf, STYLE_NAME_BALANCED) == 0) curmatchaction.style = 0; else if(strcmp(buf, STYLE_NAME_ATTACK) == 0) curmatchaction.style = 1; else if(strcmp(buf, STYLE_NAME_ALL_OUT_ATTACK) == 0) curmatchaction.style = 2; else debug_print_message( "xml_strategy_read_text: unknown style type %s\n", buf); } else if(state == STATE_STRATEGY_MATCH_ACTION_BOOST) { if(strcmp(buf, BOOST_NAME_ON) == 0) curmatchaction.boost = 1; else if(strcmp(buf, BOOST_NAME_OFF) == 0) curmatchaction.boost = 0; else if(strcmp(buf, BOOST_NAME_ANTI) == 0) curmatchaction.boost = -1; else debug_print_message( "xml_strategy_read_text: unknown boost type %s\n", buf); } else if(state == STATE_STRATEGY_MATCH_ACTION_SUB_IN_POS || state == STATE_STRATEGY_MATCH_ACTION_SUB_OUT_POS) { GPtrArray *positions = misc_separate_strings(buf); gint i, *pos; if(state == STATE_STRATEGY_MATCH_ACTION_SUB_IN_POS) { if(positions->len > 1) { free_gchar_array(&positions); main_exit_program(EXIT_STRATEGY_ERROR, "xml_strategy_read_text: too many sub_in positions: %s\n", buf); } pos = &curmatchaction.sub_in_pos; } else pos = &curmatchaction.sub_out_pos; *pos = 9; for(i=0;ilen;i++) if(strcmp((gchar*)g_ptr_array_index(positions, i), POS_NAME_GOALIE) == 0) *pos *= 10; else if(strcmp((gchar*)g_ptr_array_index(positions, i), POS_NAME_DEFENDER) == 0) *pos = (*pos * 10) + 1; else if(strcmp((gchar*)g_ptr_array_index(positions, i), POS_NAME_MIDFIELDER) == 0) *pos = (*pos * 10) + 2; else if(strcmp((gchar*)g_ptr_array_index(positions, i), POS_NAME_FORWARD) == 0) *pos = (*pos * 10) + 3; else debug_print_message( "xml_strategy_read_text: unknown position %s\n", (gchar*)g_ptr_array_index(positions, i)); if(*pos < 100) *pos = *pos % 10; free_gchar_array(&positions); } } /** Add the strategy described in the file to the strategies array. */ void xml_strategy_read(const gchar *filename) { #ifdef DEBUG printf("xml_strategy_read\n"); #endif gint i; Strategy new_strat; GMarkupParser parser = {xml_strategy_read_start_element, xml_strategy_read_end_element, xml_strategy_read_text, NULL, NULL}; GMarkupParseContext *context; gchar *file_contents; gsize length; GError *error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_file_get_contents(filename, &file_contents, &length, &error)) { debug_print_message("xml_strategy_read: error reading file %s\n", filename); misc_print_error(&error, TRUE); return; } new_strat.sid = new_strat.desc = NULL; new_strat.priority = 1; new_strat.prematch = g_array_new(FALSE, FALSE, sizeof(StrategyPrematch)); new_strat.match_action = g_array_new(FALSE, FALSE, sizeof(StrategyMatchAction)); g_array_append_val(strategies, new_strat); action_id = 0; if(g_markup_parse_context_parse(context, file_contents, length, &error)) { g_markup_parse_context_end_parse(context, NULL); g_markup_parse_context_free(context); g_free(file_contents); } else { g_critical("xml_strategy_read: error parsing file %s\n", filename); misc_print_error(&error, TRUE); } for(i=0;ilen;i++) { if(g_array_index(curstrat.match_action, StrategyMatchAction, i).condition == NULL) main_exit_program(EXIT_STRATEGY_ERROR, "xml_strategy_read: unconditional match action encountered in file %s. match actions MUST have conditions.", filename); } } /** Load all strategy files found in the appropriate folder. */ void xml_strategy_load_strategies(void) { #ifdef DEBUG printf("xml_strategy_load_strategies\n"); #endif gint i, j, k; const gchar *strategydir = file_get_first_support_dir_suffix("strategy"); GPtrArray *files = NULL; gchar buf[SMALL]; if(strategydir == NULL) main_exit_program(EXIT_STRATEGY_ERROR, "xml_strategy_load_strategies: strategy directory not found."); files = file_dir_get_contents(strategydir, "strategy_", ".xml"); if(files->len == 0) { g_ptr_array_free(files, TRUE); main_exit_program(EXIT_STRATEGY_ERROR, "xml_strategy_load_strategies: no CPU strategies found."); } for(i=0;ilen;i++) { sprintf(buf, "%s%s%s", strategydir, G_DIR_SEPARATOR_S, (const gchar*)g_ptr_array_index(files, i)); xml_strategy_read(buf); } free_gchar_array(&files); /* Fill secondary prematches with default values. */ for(i=0;ilen;i++) { StrategyPrematch *prem0 = &g_array_index( g_array_index(strategies, Strategy, i).prematch, StrategyPrematch, 0), *premcur = NULL; if(prem0->formations->len == 0) main_exit_program(EXIT_STRATEGY_ERROR, "xml_strategy_read (%s): The primary prematch should have at least one formation.", g_array_index(strategies, Strategy, i).sid); for(j=1;jlen;j++) { premcur = &g_array_index( g_array_index(strategies, Strategy, i).prematch, StrategyPrematch, j); if(premcur->formations->len == 0) for(k=0;kformations->len;k++) g_array_append_val(premcur->formations, g_array_index(prem0->formations, gint, k)); if(premcur->boost == -100) premcur->boost = prem0->boost; if(premcur->style == -100) premcur->style = prem0->style; if(premcur->lineup == -100) premcur->lineup = prem0->lineup; if(premcur->min_fitness == -100) premcur->min_fitness = prem0->min_fitness; } } } bygfoot-2.3.2/src/options_callbacks.h0000644000175000017500000000652311225071373016604 0ustar eliaselias/* options_callbacks.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #ifndef OPTIONS_CALLBACKS_H #define OPTIONS_CALLBACKS_H void on_button_options_ok_clicked (GtkButton *button, gpointer user_data); void on_button_options_cancel_clicked (GtkButton *button, gpointer user_data); void on_button_font_name_clicked (GtkButton *button, gpointer user_data); void on_button_reload_constants_clicked (GtkButton *button, gpointer user_data); gboolean on_checkbutton_save_global_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_checkbutton_save_user_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_window_options_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_spinbutton_recreation_value_changed (GtkSpinButton *spinbutton, gpointer user_data); void on_button_edit_constants_clicked (GtkButton *button, gpointer user_data); gboolean on_window_constants_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_constants_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_constants_reload_clicked (GtkButton *button, gpointer user_data); void on_button_constants_close_clicked (GtkButton *button, gpointer user_data); void on_button_constants_save_clicked (GtkButton *button, gpointer user_data); #endif bygfoot-2.3.2/src/live_game_struct.h0000644000175000017500000001575311225071373016453 0ustar eliaselias/* live_game_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LIVE_GAME_STRUCT_H #define LIVE_GAME_STRUCT_H #include "bygfoot.h" #include "fixture_struct.h" /** Events happening during a live game. @see #LiveGameEvent @see #LiveGameUnit */ enum LiveGameEventType { /** This is the 'main' event, nothing in particular is happening; one of the teams is in possession of the ball. */ LIVE_GAME_EVENT_GENERAL = 0, /* 0 */ LIVE_GAME_EVENT_START_MATCH, /* 1 */ LIVE_GAME_EVENT_HALF_TIME, /* 2 */ LIVE_GAME_EVENT_EXTRA_TIME, /* 3 */ LIVE_GAME_EVENT_END_MATCH, /* 4 */ LIVE_GAME_EVENT_LOST_POSSESSION, /* 5 */ LIVE_GAME_EVENT_SCORING_CHANCE, /* 6 */ LIVE_GAME_EVENT_HEADER, /* 7 */ LIVE_GAME_EVENT_PENALTY, /* 8 */ LIVE_GAME_EVENT_FREE_KICK, /* 9 */ LIVE_GAME_EVENT_GOAL, /* 10 */ LIVE_GAME_EVENT_OWN_GOAL, /* 11 */ LIVE_GAME_EVENT_POST, /* 12 */ LIVE_GAME_EVENT_MISS, /* 13 */ LIVE_GAME_EVENT_SAVE, /* 14 */ LIVE_GAME_EVENT_CROSS_BAR, /* 15 */ LIVE_GAME_EVENT_FOUL, /* 16 */ LIVE_GAME_EVENT_FOUL_YELLOW, /* 17 */ LIVE_GAME_EVENT_FOUL_RED, /* 18 */ LIVE_GAME_EVENT_FOUL_RED_INJURY, /* 19 */ LIVE_GAME_EVENT_SEND_OFF, /* 20 */ LIVE_GAME_EVENT_INJURY, /* 21 */ /** An injury that permits the player to continue after some brief time. */ LIVE_GAME_EVENT_TEMP_INJURY, /* 22 */ LIVE_GAME_EVENT_PENALTIES, /* 23 */ LIVE_GAME_EVENT_STADIUM, /* 24 */ LIVE_GAME_EVENT_STADIUM_BREAKDOWN, /* 25 */ LIVE_GAME_EVENT_STADIUM_RIOTS, /* 26 */ LIVE_GAME_EVENT_STADIUM_FIRE, /* 27 */ LIVE_GAME_EVENT_SUBSTITUTION, /* 28 */ LIVE_GAME_EVENT_STRUCTURE_CHANGE, /* 29 */ LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_DEFEND, /* 30 */ LIVE_GAME_EVENT_STYLE_CHANGE_DEFEND, /* 31 */ LIVE_GAME_EVENT_STYLE_CHANGE_BALANCED, /* 32 */ LIVE_GAME_EVENT_STYLE_CHANGE_ATTACK, /* 33 */ LIVE_GAME_EVENT_STYLE_CHANGE_ALL_OUT_ATTACK, /* 34 */ LIVE_GAME_EVENT_BOOST_CHANGE_ANTI, /* 35 */ LIVE_GAME_EVENT_BOOST_CHANGE_OFF, /* 36 */ LIVE_GAME_EVENT_BOOST_CHANGE_ON, /* 37 */ LIVE_GAME_EVENT_END }; enum LiveGameUnitArea { LIVE_GAME_UNIT_AREA_DEFEND = 0, LIVE_GAME_UNIT_AREA_MIDFIELD, LIVE_GAME_UNIT_AREA_ATTACK, LIVE_GAME_UNIT_AREA_END }; /** Indices for the time variable of th #LiveGameUnit struct. */ enum LiveGameUnitTime { LIVE_GAME_UNIT_TIME_FIRST_HALF = 0, LIVE_GAME_UNIT_TIME_SECOND_HALF, LIVE_GAME_UNIT_TIME_EXTRA_TIME, LIVE_GAME_UNIT_TIME_PENALTIES, LIVE_GAME_UNIT_TIME_END }; /** Indices for the values in #LiveGameStats. */ enum LiveGameStatValue { LIVE_GAME_STAT_VALUE_GOALS_REGULAR = 0, LIVE_GAME_STAT_VALUE_SHOTS, LIVE_GAME_STAT_VALUE_SHOT_PERCENTAGE, LIVE_GAME_STAT_VALUE_POSSESSION, LIVE_GAME_STAT_VALUE_PENALTIES, LIVE_GAME_STAT_VALUE_FOULS, LIVE_GAME_STAT_VALUE_CARDS, LIVE_GAME_STAT_VALUE_REDS, LIVE_GAME_STAT_VALUE_INJURIES, LIVE_GAME_STAT_VALUE_END }; enum LiveGameStatArray { LIVE_GAME_STAT_ARRAY_SCORERS_FOR_DISPLAY = 0, LIVE_GAME_STAT_ARRAY_SCORERS, LIVE_GAME_STAT_ARRAY_YELLOWS, LIVE_GAME_STAT_ARRAY_REDS, LIVE_GAME_STAT_ARRAY_INJURED, LIVE_GAME_STAT_ARRAY_END }; /** Indices for the team_value array. @see game_get_values() */ enum GameTeamValue { GAME_TEAM_VALUE_GOALIE = 0, GAME_TEAM_VALUE_DEFEND, GAME_TEAM_VALUE_MIDFIELD, GAME_TEAM_VALUE_ATTACK, GAME_TEAM_VALUE_END }; /** Some stats for a live game like ball possession, shots on goal etc. */ typedef struct { gfloat possession; gint values[2][LIVE_GAME_STAT_VALUE_END]; GPtrArray *players[2][LIVE_GAME_STAT_ARRAY_END]; } LiveGameStats; /** A struct telling us what's happening at a certain moment in a game. */ typedef struct { /** @see #LiveGameEventType */ gint type; /** Verbosity value. The lower the more important the event. */ gint verbosity; /** Information about a team and two players involved in the event. */ gint team, player, player2; /** The commentary for the event. */ gchar *commentary; /** Id of the commentary. */ gint commentary_id; } LiveGameEvent; /** A struct representing a fraction of a live game. */ typedef struct { /** Tells us which of the teams is in possession of the ball. */ gint possession; /** The area of the pitch the ball is currently in. */ gint area; /** Which minute of the game and which part of the game. If 'minute' is -1 we have an event like a substitution that doesn't count as a match time consuming event. @see #GameUnitTime */ gint minute, time; /** The match result at the time of this unit. */ gint result[2]; /** The event belonging to the game unit. */ LiveGameEvent event; } LiveGameUnit; /** A structure storing team settings during a live game pause (so that we know what users have changed in pauses. */ typedef struct { gint structure, style; gboolean boost; gint player_ids[11]; } LiveGameTeamState; typedef struct { /** The fixture that belongs to the game. */ Fixture *fix; /** Integer determining the fixture (needed because fixture pointers can change when new fixtures are added to the fixtures array). */ gint fix_id; /** The names of the teams stored for later use (when the fixture already got freed). */ gchar *team_names[2]; /** Attendance stored for later use (when the fixture already got freed). */ gint attendance; /** Substitutions left for the teams. */ gint subs_left[2]; /** The team that started the game, 0 or 1. */ gint started_game; /** We keep track of the stadium events because there shouldn't be more than one of them in a game. */ gint stadium_event; /** Attacking, defending etc. values for both teams. @see #GameTeamValue */ gfloat team_values[2][GAME_TEAM_VALUE_END]; /** The home advantage factor. */ gfloat home_advantage; /** The array of units. @see #GameUnit */ GArray *units; /** Match statistics. @see #LiveGameStats */ LiveGameStats stats; LiveGameTeamState team_state[2]; /** Ids of strategy actions applied. Actions only get applied once. */ GArray *action_ids[2]; } LiveGame; #endif bygfoot-2.3.2/src/treeview2.h0000644000175000017500000000377111225071373015030 0ustar eliaselias/* treeview2.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TREEVIEW2_H #define TREEVIEW2_H #include "bygfoot.h" enum { TREEVIEW_MMATCH_COL_REPLAY = 6, TREEVIEW_MMATCH_COL_REMOVE, TREEVIEW_MMATCH_COL_EXPORT, TREEVIEW_MMATCH_COL_END }; void treeview2_create_mmatches(GtkListStore *ls); void treeview2_set_up_mmatches(GtkTreeView *treeview); void treeview2_show_mmatches(void); void treeview2_create_season_results(GtkListStore *ls); void treeview2_set_up_season_results(GtkTreeView *treeview); void treeview2_show_season_results(void); void treeview2_create_bets(GtkListStore *ls); void treeview2_set_up_bets(GtkTreeView *treeview); void treeview2_show_bets(void); void treeview2_create_job_exchange(GtkListStore *ls); void treeview2_set_up_job_exchange(GtkTreeView *treeview); void treeview2_show_job_exchange(void); void treeview2_create_news(GtkListStore *ls); void treeview2_set_up_news(GtkTreeView *treeview); void treeview2_show_news(void); GtkTreeModel* treeview2_create_constants(const GPtrArray *list, gint type); void treeview2_set_up_constants(GtkTreeView *treeview, gint type); void treeview2_show_constants(void); #endif bygfoot-2.3.2/src/training.c0000755000175000017500000001654411225071373014727 0ustar eliaselias/* bet_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "enums.h" #include "finance.h" #include "glib.h" #include "option.h" #include "training.h" #include "player.h" void calculateTrainingCamp(Team *current_team, gdouble value_training, gdouble value_recreation, gint number_camp) { #ifdef DEBUG printf("calculateTrainingCamp\n"); #endif gint count, i; Player *player; gfloat skill_points=0.0; gfloat fitness_points=0.0; gint recovery_points=0; for (count=0; countplayers->len; count++) { player = &g_array_index(current_team->players, Player, count); if (((value_training>0) || (value_recreation>0)) && (player->health == 0)) { skill_points=calculate_skill_points((gint) value_training, number_camp, player->age, player->fitness, player->lsu); fitness_points=calculate_fitness_points((gint) value_training, (gint) value_recreation, number_camp, player->age); recovery_points=0; } else { recovery_points = calculate_recovery_points((gint) value_recreation, number_camp, player->age); skill_points=0.0; fitness_points=0.0; } //Set new values if ((player->health > 0) && (player->recovery > 0)) { //Health & recovery player->recovery -= recovery_points; } else { //Skill if ((player->skill+skill_points) <= (player->talent-2)) { player->skill += skill_points; player->lsu = 0; // Functions which are called during a skill-update by player_update_skill() in player.c player->cskill = player_get_cskill(player, player->cpos, TRUE); player->value = player_assign_value(player); for(i=0; iskill > player->etal[i]) { player_estimate_talent(player); break; } } //Fitness player->fitness -= fitness_points; if (player->fitness > 1) player->fitness = 1; else if (player->fitness < 0) player->fitness = 0; } } } gfloat calculate_skill_points(gint value_training, gint number_camp, gfloat age, gfloat fitness, gfloat lsu) { #ifdef DEBUG printf("calculate_skill_points\n"); #endif gint training_points=0; gfloat skill_points=0.0; gint random=0; //Calculat training points -> age if (age < 20) training_points += 4; else if (age < 25) training_points += 3; else if (age < 30) training_points += 2; else training_points += 1; //Calculat training points -> fittness if (fitness > 0.75) training_points += 4; else if (fitness > 0.50) training_points += 3; else if (fitness > 0.25) training_points += 2; else training_points += 1; //Calculat training points -> lsu if (lsu > 15) training_points += 4; else if (lsu > 10) training_points += 3; else if (lsu > 5) training_points += 2; else training_points += 1; //Calculate skill points random = random_int(1, 3); skill_points = training_points - random; if (skill_points == 0) return skill_points; else { skill_points = skill_points * value_training * number_camp / 100.0; return skill_points; } } gfloat calculate_fitness_points(gint value_training, gint value_recreation, gint number_camp, gfloat age) { #ifdef DEBUG printf("calculate_fitness_points\n"); #endif gint training_points=0; gfloat fitness_points=0.0; gint random=0; if (value_recreation > 8) { if (value_recreation == 9) { //Calculate fitness points random = random_int(1, 2); fitness_points = ((0.02 * number_camp) + (random / 100.0)) * -1; } else { //Calculate fitness points random = random_int(1, 2); fitness_points = ((0.04 * number_camp) + (random / 100.0)) * -1; } } else { //Calculat fitness points -> age if (age < 20) training_points += 1; else if (age < 25) training_points += 2; else if (age < 30) training_points += 3; else training_points += 4; //Calculat fitness points -> value training switch (value_training) { case 2: training_points += 1; break; case 3: training_points += 1; break; case 4: training_points += 2; break; case 5: training_points += 2; break; case 6: training_points += 3; break; case 7: training_points += 3; break; case 8: training_points += 4; break; case 9: training_points += 4; break; case 10: training_points += 5; break; } //Calculate fitness points random = random_int(1, 2); fitness_points = (((gfloat) training_points + random) / number_camp) / 100; } return fitness_points; } gint calculate_recovery_points(gint value_recreation, gint number_camp, gfloat age) { #ifdef DEBUG printf("calculate_recovery_points\n"); #endif gint training_points=0; gint recovery_points=0; gint random=0; //Calculat recovery points -> age if (age < 20) training_points += 4; else if (age < 25) training_points += 3; else if (age < 30) training_points += 2; else training_points += 1; //Calculat recovery points -> recreation switch (value_recreation) { case 10: training_points += 4; break; case 9: training_points += 3; break; case 8: training_points += 2; break; case 7: training_points += 1; break; } //Calculate recreation points random = random_int(1, 2); recovery_points = (training_points + random) * number_camp; if (recovery_points > 17) return 1; else return 0; } gint random_int(gint min, gint max) { #ifdef DEBUG printf("random_int\n"); #endif gint random=0; GRand *grand = NULL; grand = g_rand_new (); random = (gint) g_rand_int_range(grand, min, max+1); //random() works until max -1 return random; } void calculateCostsTrainingCamp(gint number_camp) { #ifdef DEBUG printf("calculateCostsTrainingCamp\n"); #endif gint *money_out = current_user.money_out[0]; gint *money = ¤t_user.money; gfloat factor = finance_wage_unit(current_user.tm); gint costs[3] = {factor * const_float("float_training_camp_factor1"), factor * const_float("float_training_camp_factor2"), factor * const_float("float_training_camp_factor2")}; money_out[MON_OUT_TRAINING_CAMP] -= costs[number_camp - 1]; *money -= costs[number_camp - 1]; } bygfoot-2.3.2/src/game_gui.h0000644000175000017500000000615011225071373014663 0ustar eliaselias/* game_gui.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GAME_GUI_H #define GAME_GUI_H #include #include #include "bygfoot.h" #include "job_struct.h" #include "live_game_struct.h" #include "option_struct.h" #define setsav1 gtk_widget_set_sensitive(lookup_widget(window.main, "button_save"), FALSE);gtk_widget_set_sensitive(lookup_widget(window.main, "menu_save"), FALSE) #define setsav0 gtk_widget_set_sensitive(lookup_widget(window.main, "button_save"), TRUE);gtk_widget_set_sensitive(lookup_widget(window.main, "menu_save"), TRUE) #define getsav GTK_WIDGET_SENSITIVE(lookup_widget(window.main, "button_save")) void game_gui_live_game_show_unit(const LiveGameUnit *unit); void game_gui_live_game_set_hscale(const LiveGameUnit *unit, GtkHScale *hscale); void game_gui_live_game_show_opponent(void); void game_gui_set_main_window_header(void); void game_gui_show_main(void); #ifdef G_OS_UNIX void game_gui_show_warning(const gchar *format, ...) __attribute__ ((format (printf, 1, 2))); #else void game_gui_show_warning(const gchar *format, ...); #endif #ifdef G_OS_UNIX void game_gui_print_message(gchar *format, ...) __attribute__ ((format (printf, 1, 2))); #else void game_gui_print_message(gchar *format, ...); #endif gboolean game_gui_print_message_source(gpointer data); #ifdef G_OS_UNIX void game_gui_print_message_with_delay(const gchar *format, ...) __attribute__ ((format (printf, 1, 2))); #else void game_gui_print_message_with_delay(const gchar *format, ...); #endif void game_gui_get_radio_items(GtkWidget **style, GtkWidget **scout, GtkWidget **physio, GtkWidget **boost, GtkWidget **yc, GtkWidget **ya_pos_pref); void game_gui_read_radio_items(GtkWidget *widget); void game_gui_write_radio_items(void); gboolean game_gui_clear_entry_message(gpointer data); void game_gui_set_main_window_sensitivity(gboolean value); void game_gui_write_av_skills(const Team *tm); void game_gui_write_meter_images(const Team *tm, GtkImage *style, GtkImage *boost); void game_gui_write_meters(const Team *tm); void game_gui_show_job_offer(Team *team, Job *job, gint type); void game_gui_write_check_items(void); void game_gui_read_check_items(GtkWidget *widget); void game_gui_set_help_labels(void); void game_gui_write_money(void); #endif bygfoot-2.3.2/src/xml_loadsave_league.h0000644000175000017500000000367511225071373017117 0ustar eliaselias/* xml_loadsave_league.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef XML_LOADSAVE_LEAGUE_H #define XML_LOADSAVE_LEAGUE_H #include "bygfoot.h" #include "league_struct.h" void xml_loadsave_league_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); void xml_loadsave_league_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); void xml_loadsave_league_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); void xml_loadsave_league_write(const gchar *prefix, const League *league); void xml_loadsave_league_read(const gchar *filename, const gchar *team_file, League *league); void xml_loadsave_league_prom_rel_write(FILE *fil, const League *league); #endif bygfoot-2.3.2/src/league_table_interface.c0000644000175000017500000000564311225071373017540 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "league_table_callbacks.h" #include "league_table_interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window_league_table (void) { GtkWidget *window_league_table; GtkWidget *panel_table; GtkWidget *l_headline; GtkWidget *hs_table2; GtkWidget *hs_table1; GtkWidget *b_ok; window_league_table = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_league_table), _("League table")); gtk_window_set_position (GTK_WINDOW (window_league_table), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window_league_table), TRUE); gtk_window_set_resizable (GTK_WINDOW (window_league_table), FALSE); panel_table = gtk_fixed_new (); gtk_widget_show (panel_table); gtk_container_add (GTK_CONTAINER (window_league_table), panel_table); gtk_widget_set_size_request (panel_table, 500, 290); l_headline = gtk_label_new (_("Headline")); gtk_widget_show (l_headline); gtk_fixed_put (GTK_FIXED (panel_table), l_headline, 208, 32); gtk_widget_set_size_request (l_headline, 90, 20); hs_table2 = gtk_hseparator_new (); gtk_widget_show (hs_table2); gtk_fixed_put (GTK_FIXED (panel_table), hs_table2, 25, 88); gtk_widget_set_size_request (hs_table2, 450, 16); hs_table1 = gtk_hseparator_new (); gtk_widget_show (hs_table1); gtk_fixed_put (GTK_FIXED (panel_table), hs_table1, 25, 235); gtk_widget_set_size_request (hs_table1, 450, 16); b_ok = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (b_ok); gtk_fixed_put (GTK_FIXED (panel_table), b_ok, 376, 254); gtk_widget_set_size_request (b_ok, 110, 25); g_signal_connect ((gpointer) window_league_table, "delete_event", G_CALLBACK (on_window_league_table_delete_event), NULL); g_signal_connect ((gpointer) b_ok, "clicked", G_CALLBACK (on_lt_b_ok_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_league_table, window_league_table, "window_league_table"); GLADE_HOOKUP_OBJECT (window_league_table, panel_table, "panel_table"); GLADE_HOOKUP_OBJECT (window_league_table, l_headline, "l_headline"); GLADE_HOOKUP_OBJECT (window_league_table, hs_table2, "hs_table2"); GLADE_HOOKUP_OBJECT (window_league_table, hs_table1, "hs_table1"); GLADE_HOOKUP_OBJECT (window_league_table, b_ok, "b_ok"); return window_league_table; } bygfoot-2.3.2/src/support.c0000644000175000017500000000723711225071373014624 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #define MAC_BUILD #ifndef MAC_BUILD #ifdef HAVE_CONFIG_H # include #endif #else # include "config.h" #endif #include #include #include #include #include #include #include "support.h" GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name) { GtkWidget *parent, *found_widget; for (;;) { if (GTK_IS_MENU (widget)) parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); else parent = widget->parent; if (!parent) parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); if (parent == NULL) break; widget = parent; } found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), widget_name); if (!found_widget) g_warning ("Widget not found: %s", widget_name); return found_widget; } static GList *pixmaps_directories = NULL; /* Use this function to set the directory containing installed pixmaps. */ void add_pixmap_directory (const gchar *directory) { pixmaps_directories = g_list_prepend (pixmaps_directories, g_strdup (directory)); } /* This is an internally used function to find pixmap files. */ static gchar* find_pixmap_file (const gchar *filename) { GList *elem; /* We step through each of the pixmaps directory to find it. */ elem = pixmaps_directories; while (elem) { gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, G_DIR_SEPARATOR_S, filename); if (g_file_test (pathname, G_FILE_TEST_EXISTS)) return pathname; g_free (pathname); elem = elem->next; } return NULL; } /* This is an internally used function to create pixmaps. */ GtkWidget* create_pixmap (GtkWidget *widget, const gchar *filename) { gchar *pathname = NULL; GtkWidget *pixmap; if (!filename || !filename[0]) return gtk_image_new (); pathname = find_pixmap_file (filename); if (!pathname) { g_warning (_("Couldn't find pixmap file: %s"), filename); return gtk_image_new (); } pixmap = gtk_image_new_from_file (pathname); g_free (pathname); return pixmap; } /* This is an internally used function to create pixmaps. */ GdkPixbuf* create_pixbuf (const gchar *filename) { gchar *pathname = NULL; GdkPixbuf *pixbuf; GError *error = NULL; if (!filename || !filename[0]) return NULL; pathname = find_pixmap_file (filename); if (!pathname) { g_warning (_("Couldn't find pixmap file: %s"), filename); return NULL; } pixbuf = gdk_pixbuf_new_from_file (pathname, &error); if (!pixbuf) { fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", pathname, error->message); g_error_free (error); } g_free (pathname); return pixbuf; } /* This is used to set ATK action descriptions. */ void glade_set_atk_action_description (AtkAction *action, const gchar *action_name, const gchar *description) { gint n_actions, i; n_actions = atk_action_get_n_actions (action); for (i = 0; i < n_actions; i++) { if (!strcmp (atk_action_get_name (action, i), action_name)) atk_action_set_description (action, i, description); } } bygfoot-2.3.2/src/misc3_callbacks.h0000644000175000017500000001120711225071373016122 0ustar eliaselias/* misc3_callbacks.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MISC2_CALLBACKS_H #define MISC2_CALLBACKS_H #include gboolean on_window_bets_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_bet_close_clicked (GtkButton *button, gpointer user_data); gboolean on_checkbutton_bet_all_leagues_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_checkbutton_bet_cups_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_treeview_bets_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_checkbutton_bet_user_recent_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_window_splash_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_splash_new_game_clicked (GtkButton *button, gpointer user_data); void on_button_splash_load_game_clicked (GtkButton *button, gpointer user_data); void on_button_splash_resume_game_clicked (GtkButton *button, gpointer user_data); void on_button_splash_quit_clicked (GtkButton *button, gpointer user_data); void on_button_splash_hint_back_clicked (GtkButton *button, gpointer user_data); void on_button_splash_hint_next_clicked (GtkButton *button, gpointer user_data); void on_button_calculate_installment_clicked (GtkButton *button, gpointer user_data); void on_button_calculate_start_week_clicked (GtkButton *button, gpointer user_data); void on_button_alr_confirm_clicked (GtkButton *button, gpointer user_data); void on_button_alr_cancel_clicked (GtkButton *button, gpointer user_data); gboolean on_window_alr_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_news_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); gboolean on_window_news_destroy_event (GtkWidget *widget, GdkEvent *event, gpointer user_data); void on_button_news_close_clicked (GtkButton *button, gpointer user_data); #endif bygfoot-2.3.2/src/bygfoot_private.rc0000644000175000017500000000144011225071373016463 0ustar eliaselias/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ /* DO NOT EDIT! */ #include // include for version info constants A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "bygfoot.ico" // // TO CHANGE VERSION INFORMATION, EDIT PROJECT OPTIONS... // 1 VERSIONINFO FILEVERSION 0,1,1,1 PRODUCTVERSION 0,1,1,1 FILETYPE VFT_APP { BLOCK "StringFileInfo" { BLOCK "041C04E4" { VALUE "CompanyName", "" VALUE "FileVersion", "" VALUE "FileDescription", "Developed using the Dev-C++ IDE" VALUE "InternalName", "" VALUE "LegalCopyright", "" VALUE "LegalTrademarks", "" VALUE "OriginalFilename", "" VALUE "ProductName", "" VALUE "ProductVersion", "" } } BLOCK "VarFileInfo" { VALUE "Translation", 0x041C, 1252 } } bygfoot-2.3.2/src/league.c0000644000175000017500000007724111225071373014354 0ustar eliaselias/* league.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "cup.h" #include "free.h" #include "league.h" #include "main.h" #include "maths.h" #include "misc.h" #include "option.h" #include "player.h" #include "stat.h" #include "table.h" #include "team.h" #include "user.h" #include "variables.h" /** Create a new league with some default values. @return The league we created. @see League */ League league_new(gboolean new_id) { #ifdef DEBUG printf("league_new\n"); #endif League new; new.name = NULL; new.names_file = g_strdup(opt_str("string_opt_player_names_file")); new.sid = NULL; new.short_name = NULL; new.symbol = NULL; new.id = (new_id) ? league_id_new : -1; new.layer = -1; new.average_talent = 0; new.prom_rel.elements = g_array_new(FALSE, FALSE, sizeof(PromRelElement)); new.prom_rel.prom_games = g_array_new(FALSE, FALSE, sizeof(PromGames)); new.teams = g_array_new(FALSE, FALSE, sizeof(Team)); new.fixtures = g_array_new(FALSE, FALSE, sizeof(Fixture)); new.joined_leagues = g_array_new(FALSE, FALSE, sizeof(JoinedLeague)); new.new_tables = g_array_new(FALSE, FALSE, sizeof(NewTable)); new.tables = g_array_new(FALSE, FALSE, sizeof(Table)); new.properties = g_ptr_array_new(); new.skip_weeks_with = g_ptr_array_new(); new.rr_breaks = g_array_new(FALSE, FALSE, sizeof(gint)); new.week_breaks = g_array_new(FALSE, FALSE, sizeof(WeekBreak)); new.first_week = new.week_gap = 1; new.two_match_weeks[0] = g_array_new(FALSE, FALSE, sizeof(gint)); new.two_match_weeks[1] = g_array_new(FALSE, FALSE, sizeof(gint)); new.round_robins = 2; new.yellow_red = 1000; new.stats = stat_league_new("", ""); return new; } /** Create a new PromRelElement with default values. @return The PromRelElement we created. @see PromRelElement */ PromRelElement prom_rel_element_new(void) { #ifdef DEBUG printf("prom_rel_element_new\n"); #endif PromRelElement new; new.ranks[0] = new.ranks[1] = new.from_table = 0; new.dest_sid = NULL; new.type = PROM_REL_NONE; return new; } /** Create a new PromGames with default values. @see PromGames */ PromGames prom_games_new(void) { #ifdef DEBUG printf("prom_games_new\n"); #endif PromGames new; new.dest_sid = NULL; new.loser_sid = NULL; new.cup_sid = NULL; new.number_of_advance = 1; return new; } /** Get the array index of the given league or cup id. @param clid The id of the league or cup. @return The index in the leagues or cups array. */ gint league_cup_get_index_from_clid(gint clid) { #ifdef DEBUG printf("league_cup_get_index_from_clid\n"); #endif gint i; gint index = -1; if(clid < ID_CUP_START) { for(i=0;ilen;i++) if(lig(i).id == clid) { index = i; break; } } else for(i=0;ilen;i++) if(cp(i).id == clid) { index = i; break; } if(index == -1) main_exit_program(EXIT_POINTER_NOT_FOUND, "league_cup_get_index_from_clid: couldn't find league or cup with id %d\n", clid); return index; } /** Return the league pointer belonging to the id. @param clid The id we look for. @return The league pointer or NULL if failed. */ League* league_from_clid(gint clid) { #ifdef DEBUG printf("league_from_clid\n"); #endif gint i; for(i=0;ilen;i++) if(lig(i).id == clid) return &lig(i); main_exit_program(EXIT_POINTER_NOT_FOUND, "league_from_clid: didn't find league with id %d\n", clid); return NULL; } /** Return the id of the next league (or cup if we are at the end of the leagues array). @param clid The id of the current league or cup. @param count_inactive Whether inactive leagues count. */ gint league_cup_get_next_clid(gint clid, gboolean count_inactive) { #ifdef DEBUG printf("league_cup_get_next_clid\n"); #endif gint i, return_value = -1; if(clid < ID_CUP_START) { for(i=0;ilen;i++) if(lig(i).id == clid) break; if(i != ligs->len - 1) { if(query_league_active(&lig(i + 1)) || count_inactive) return_value = lig(i + 1).id; else return_value = league_cup_get_next_clid(lig(i + 1).id, count_inactive); } else if(acps->len > 0) return_value = acp(0)->id; else { if(query_league_active(&lig(0)) || count_inactive) return_value = lig(0).id; else return_value = league_cup_get_next_clid(lig(0).id, count_inactive); } } else { for(i=0;ilen;i++) if(acp(i)->id == clid) break; if(i != acps->len - 1) return_value = acp(i + 1)->id; else { if(query_league_active(&lig(0)) || count_inactive) return_value = lig(0).id; else return_value = league_cup_get_next_clid(lig(0).id, count_inactive); } } return return_value; } /** Return the id of the previous league or cup. @param clid The id of the current league or cup. @param count_inactive Whether inactive leagues count. */ gint league_cup_get_previous_clid(gint clid, gboolean count_inactive) { #ifdef DEBUG printf("league_cup_get_previous_clid\n"); #endif gint i, return_value = -1; if(clid < ID_CUP_START) { for(i=ligs->len - 1;i>=0;i--) if(lig(i).id == clid) break; if(i != 0) { if(query_league_active(&lig(i - 1)) || count_inactive) return_value = lig(i - 1).id; else return_value = league_cup_get_previous_clid(lig(i - 1).id, count_inactive); } else if(acps->len > 0) return_value = acp(acps->len - 1)->id; else { if(query_league_active(&lig(ligs->len - 1)) || count_inactive) return_value = lig(ligs->len - 1).id; else return_value = league_cup_get_previous_clid(lig(ligs->len - 1).id, count_inactive); } } else { for(i=acps->len - 1;i>=0;i--) if(acp(i)->id == clid) break; if(i != 0) return_value = acp(i - 1)->id; else { if(query_league_active(&lig(ligs->len - 1)) || count_inactive) return_value = lig(ligs->len - 1).id; else return_value = league_cup_get_previous_clid(lig(ligs->len - 1).id, count_inactive); } } return return_value; } /** Return the fixture coming after the specified week and round. @param league The league the fixtures of which we examine. @return A fixture pointer or NULL. */ Fixture* league_cup_get_next_fixture(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("league_cup_get_next_fixture\n"); #endif gint i; GArray *fixtures = league_cup_get_fixtures(clid); for(i=0;ilen;i++) if(g_array_index(fixtures, Fixture, i).week_number > week_number || (g_array_index(fixtures, Fixture, i).week_number == week_number && g_array_index(fixtures, Fixture, i).week_round_number >= week_round_number)) return &g_array_index(fixtures, Fixture, i); return NULL; } /** Return the fixture coming just before the specified week and round. @param league The league the fixtures of which we examine. @return A fixture pointer or NULL. */ Fixture* league_cup_get_previous_fixture(gint clid, gint week_number, gint week_round_number) { #ifdef DEBUG printf("league_cup_get_previous_fixture\n"); #endif gint i; GArray *fixtures = league_cup_get_fixtures(clid); for(i=fixtures->len - 1;i>=0;i--) if(g_array_index(fixtures, Fixture, i).week_number < week_number || (g_array_index(fixtures, Fixture, i).week_number == week_number && g_array_index(fixtures, Fixture, i).week_round_number < week_round_number)) return &g_array_index(fixtures, Fixture, i); return NULL; } /** Return the average stadium capacity of cpu teams in the specified league or cup. */ gint league_cup_average_capacity(gint clid) { #ifdef DEBUG printf("league_cup_average_capacity\n"); #endif gint i, cnt = 0; gfloat sum = 0; const GArray *teams = NULL; const GPtrArray *teamsp = NULL; if(clid < ID_CUP_START) { teams = (GArray*)league_cup_get_teams(clid); for(i=0;ilen;i++) if(team_is_user(&g_array_index(teams, Team, i)) == -1) { sum += g_array_index(teams, Team, i).stadium.capacity; cnt++; } } else { teamsp = (GPtrArray*)league_cup_get_teams(clid); for(i=0;ilen;i++) if(team_is_user((Team*)g_ptr_array_index(teamsp, i)) == -1) { sum += ((Team*)g_ptr_array_index(teamsp, i))->stadium.capacity; cnt++; } } return sum / (gfloat)cnt; } /** Get the index of the league with the specified string id. */ gint league_index_from_sid(const gchar *sid) { #ifdef DEBUG printf("league_index_from_sid\n"); #endif gint i; for(i=0;ilen;i++) if(strcmp(lig(i).sid, sid) == 0) return i; main_exit_program(EXIT_INT_NOT_FOUND, "league_index_from_sid: no index found for sid '%s'.\n", sid); return -1; } /** Remove the team with the specified id from the teams array without freeing the memory (used in promotion/relegation). */ void league_remove_team_with_id(League *league, gint id) { #ifdef DEBUG printf("league_remove_team_with_id\n"); #endif gint i; for(i=0;iteams->len;i++) if(g_array_index(league->teams, Team, i).id == id) { g_array_remove_index(league->teams, i); return; } debug_print_message("league_remove_team_with_id: team with id %d in league %s not found\n", id, league->name); } /** Nullify league stuff at the beginning of a season. */ void league_season_start(League *league) { #ifdef DEBUG printf("league_season_start\n"); #endif gint i, j; gint idx = league_index_from_sid(league->sid); gboolean user_champ = (team_is_user( team_of_id( g_array_index(league_table((&lig(0)))->elements, TableElement, 0).team_id)) != -1); gboolean league_above_talent = (team_get_average_talents(league->teams) > league->average_talent * const_float("float_season_end_league_above_talent_factor") && !user_champ); gboolean team_is_top = FALSE; Team *tm = NULL; gfloat team_change_lower = const_float("float_season_end_team_change_lower"), user_champ_addition = const_float("float_season_end_user_champ_addition"), user_champ_best_teams_addition = const_float("float_season_end_user_champ_best_teams_addition"), team_change_upper = const_float("float_season_end_team_change_upper"); gint user_champ_best_teams_limit = const_int("int_season_end_user_champ_best_teams_limit"); gfloat team_change_factor = 0; if(user_champ) { tm = team_of_id( g_array_index(league_table((&lig(0)))->elements, TableElement, 0).team_id); tm->luck = MAX(tm->luck * const_float("float_season_end_user_champ_luck_factor"), const_float("float_luck_limit")); } else for(i=0;ilen;i++) if(usr(i).tm->luck < 1) usr(i).tm->luck = MIN(usr(i).tm->luck * const_float("float_season_end_user_champ_luck_factor_regen"), 1); /** Reset tables */ for(i = league->tables->len - 1; i >= 0; i--) { g_array_free(g_array_index(league->tables, Table, i).elements, TRUE); g_array_remove_index(league->tables, i); } league_add_table(league); /*d*/ /* if(league == &lig(0)) */ /* printf("league %s av %.2f ab %d\n", league->name, */ /* team_get_average_talents(league->teams), league_above_talent); */ for(i=0;iteams->len;i++) { team_is_top = (team_get_league_rank(&g_array_index(league->teams, Team, i), -1) <= user_champ_best_teams_limit && idx == 0 && user_champ); team_change_factor = (team_is_user(&g_array_index(league->teams, Team, i)) == -1) * math_rnd(team_change_lower + user_champ * user_champ_addition + team_is_top * user_champ_best_teams_addition - league_above_talent * (user_champ_addition / 2), team_change_upper + user_champ * user_champ_addition + team_is_top * user_champ_best_teams_addition - league_above_talent * (user_champ_addition / 2)); for(j=0;jteams, Team, i).players->len;j++) player_season_start( &g_array_index( g_array_index( league->teams, Team, i).players, Player, j), team_change_factor); g_array_index(league->teams, Team, i).stadium.average_attendance = g_array_index(league->teams, Team, i).stadium.games = g_array_index(league->teams, Team, i).stadium.possible_attendance = 0; } /* if(league == &lig(0)) */ /* printf("2 league %s av %.2f\n", league->name, */ /* team_get_average_talents(league->teams)); */ } /** Find out whether the team with specified rank in the league would participate in promotion games were the season to end. */ gboolean query_league_rank_in_prom_games(const League *league, gint rank) { #ifdef DEBUG printf("query_league_rank_in_prom_games\n"); #endif gint i, j, k, l; const Cup *cup = NULL; const CupRound *cup_round = NULL; for(i=0;ilen;i++) if(query_league_has_prom_games((&lig(i)))) { for(l = 0; l < lig(i).prom_rel.prom_games->len; l++) { cup = cup_from_sid(g_array_index(lig(i).prom_rel.prom_games, PromGames, l).cup_sid); for(k=0;krounds->len;k++) { cup_round = &g_array_index(cup->rounds, CupRound, k); for(j=0;jchoose_teams->len;j++) { if(strcmp(g_array_index(cup_round->choose_teams, CupChooseTeam, j).sid, league->sid) == 0 && ((rank >= g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx && rank <= g_array_index(cup_round->choose_teams, CupChooseTeam, j).end_idx && g_array_index(cup_round->choose_teams, CupChooseTeam, j).randomly) || (rank >= g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx && rank < g_array_index(cup_round->choose_teams, CupChooseTeam, j).start_idx + g_array_index(cup_round->choose_teams, CupChooseTeam, j).number_of_teams && !g_array_index(cup_round->choose_teams, CupChooseTeam, j).randomly))) return TRUE; } } } } return FALSE; } /** Find out whether there are/were league matches. */ gboolean query_league_matches_in_week(const League *league, gint week_number) { #ifdef DEBUG printf("query_league_matches_in_week\n"); #endif gint i; for(i=0;ifixtures->len;i++) if(g_array_index(league->fixtures, Fixture, i).week_number == week_number) return TRUE; return FALSE; } /** Add the teams to promote/relegate (from the prom_rel elements) from the league to the array. */ void league_get_team_movements_prom_rel(const League *league, GArray *team_movements) { #ifdef DEBUG printf("league_get_team_movements_prom_rel\n"); #endif gint i, j, k; TeamMove new_move; const GArray *elements = league->prom_rel.elements; PromRelElement *elem; GArray *dest_idcs = NULL; GPtrArray *dest_sids = NULL; for(i=0;ilen;i++) { elem = &g_array_index(elements, PromRelElement, i); dest_sids = misc_separate_strings( elem->dest_sid); gint dest_idcs_int[dest_sids->len]; gint dest_idcs_order[dest_sids->len]; for(j=0;jlen;j++) dest_idcs_int[j] = league_index_from_sid((gchar*)g_ptr_array_index(dest_sids, j)); for(j=elem->ranks[0]; j<=elem->ranks[1]; j++) { dest_idcs = g_array_new(FALSE, FALSE, sizeof(gint)); math_generate_permutation(dest_idcs_order, 0, dest_sids->len - 1); for(k=0;klen;k++) g_array_append_val(dest_idcs, dest_idcs_int[dest_idcs_order[k]]); new_move.tm = *(g_array_index(g_array_index(league->tables, Table, elem->from_table).elements, TableElement, j - 1).team); new_move.prom_rel_type = elem->type; new_move.dest_idcs = dest_idcs; new_move.dest_assigned = FALSE; g_array_append_val(team_movements, new_move); } free_gchar_array(&dest_sids); } } /** Add the team movements from the promotion games to the array. */ void league_get_team_movements_prom_games(const League *league, const PromGames *prom_games, GArray *team_movements, const GPtrArray *prom_games_teams, gboolean up) { #ifdef DEBUG printf("league_get_team_movements_prom_games\n"); #endif gint i, j; TeamMove new_move; GPtrArray *dest_sids = (up) ? misc_separate_strings(prom_games->dest_sid) : misc_separate_strings(prom_games->loser_sid); GArray *dest_idcs = NULL; gint dest_idcs_int[dest_sids->len]; gint dest_idcs_order[dest_sids->len]; gint start_idx = 0, end_idx = prom_games->number_of_advance; gint prom_type = PROM_REL_PROMOTION; if(!up) { start_idx = prom_games->number_of_advance; end_idx = prom_games_teams->len; prom_type = PROM_REL_RELEGATION; } for(i=0;ilen;i++) dest_idcs_int[i] = league_index_from_sid((gchar*)g_ptr_array_index(dest_sids, i)); for(i=start_idx;ilen - 1); for(j=0;jlen;j++) g_array_append_val(dest_idcs, dest_idcs_int[dest_idcs_order[j]]); new_move.tm = *((Team*)g_ptr_array_index(prom_games_teams, i)); new_move.prom_rel_type = prom_type; new_move.dest_idcs = dest_idcs; new_move.dest_assigned = FALSE; g_array_append_val(team_movements, new_move); } free_gchar_array(&dest_sids); } /** Add the teams to promote/relegate from the league to the array and remove them from the leagues. */ void league_get_team_movements(League *league, GArray *team_movements) { #ifdef DEBUG printf("league_get_team_movements\n"); #endif gint i; GPtrArray *prom_games_teams = NULL; const Cup *prom_cup = NULL; league_get_team_movements_prom_rel(league, team_movements); if(query_league_has_prom_games(league)) { for(i = 0; i < league->prom_rel.prom_games->len; i++) { prom_cup = cup_from_sid(g_array_index(league->prom_rel.prom_games, PromGames, i).cup_sid); prom_games_teams = cup_get_teams_sorted(prom_cup); league_get_team_movements_prom_games(league, &g_array_index(league->prom_rel.prom_games, PromGames, i), team_movements, prom_games_teams, TRUE); if(g_array_index(league->prom_rel.prom_games, PromGames, i).loser_sid != NULL) league_get_team_movements_prom_games(league, &g_array_index(league->prom_rel.prom_games, PromGames, i), team_movements, prom_games_teams, FALSE); g_ptr_array_free(prom_games_teams, TRUE); } } g_array_sort_with_data(league->teams, team_compare_func, GINT_TO_POINTER(TEAM_COMPARE_LEAGUE_RANK + 100)); } /** Find out whether there are unassigned TeamMoves in the array. */ gboolean query_league_team_movements_unassigned(const GArray *team_movements) { #ifdef DEBUG printf("query_league_team_movements_unassigned\n"); #endif gint i; for(i=0;ilen;i++) if(!g_array_index(team_movements, TeamMove, i).dest_assigned) return TRUE; return FALSE; } /** Find out whether there are unassigned team moves with a single destination value. */ gboolean query_league_team_movements_unassigned_single(const GArray *team_movements) { #ifdef DEBUG printf("query_league_team_movements_unassigned_single\n"); #endif gint i; for(i=0;ilen;i++) if(!g_array_index(team_movements, TeamMove, i).dest_assigned && g_array_index(team_movements, TeamMove, i).dest_idcs->len == 1) return TRUE; return FALSE; } /** Print out the movements to the console (debug function). */ void league_team_movements_print(const GArray *team_movements, const gint *league_size, const gint *league_cur_size) { #ifdef DEBUG printf("league_team_movements_print\n"); #endif gint i, j; const TeamMove *tmove = NULL; g_print("%-25s Dest \t\t Possible\n\n", "Team"); for(i=0;ilen;i++) { tmove = &g_array_index(team_movements, TeamMove, i); if(tmove->dest_assigned) g_print("%-25s (%d) %s \t\t", tmove->tm.name, league_from_clid(tmove->tm.clid)->layer, lig(g_array_index(tmove->dest_idcs, gint, 0)).name); else g_print("%-25s (%d) UNASSIGNED \t\t", tmove->tm.name, league_from_clid(tmove->tm.clid)->layer); for(j=0;jdest_idcs->len;j++) g_print("%d ", g_array_index(tmove->dest_idcs, gint, j)); g_print("\n"); } g_print("%-20s Size Cursize\n", "League"); for(i=0;ilen;i++) g_print("%-20s %d %d\n", lig(i).name, league_size[i], league_cur_size[i]); } /** Compare two leagues when doing promotion/relegation. The league that has fewer teams is preferred. */ gint league_team_movements_compare_dest_idcs(gconstpointer a, gconstpointer b, gpointer data) { #ifdef DEBUG printf("league_team_movements_compare_dest_idcs\n"); #endif gint league_idx1 = *(gint*)a, league_idx2 = *(gint*)b; const gint *league_cur_size = (const gint*)data; if(league_cur_size[league_idx1] < league_cur_size[league_idx2]) return -1; else if(league_cur_size[league_idx1] > league_cur_size[league_idx2]) return 1; return 0; } /** Assign a random destination for the team move with given index and remove the destination from all other unassigned moves if the dest league is full. */ void league_team_movements_assign_dest(GArray *team_movements, gint idx, const gint *league_size, gint *league_cur_size) { #ifdef DEBUG printf("league_team_movements_assign_dest\n"); #endif gint i, j, dest_idx; TeamMove *tmove = &g_array_index(team_movements, TeamMove, idx); if(debug > 60) g_print("league_team_movements_assign_dest %s\n", tmove->tm.name); if(tmove->dest_idcs->len == 1) dest_idx = g_array_index(tmove->dest_idcs, gint, 0); else { g_array_sort_with_data(tmove->dest_idcs, (GCompareDataFunc)league_team_movements_compare_dest_idcs, (gpointer)league_cur_size); dest_idx = g_array_index(tmove->dest_idcs, gint, 0); } league_cur_size[dest_idx]++; if(league_cur_size[dest_idx] > league_size[dest_idx]) main_exit_program(EXIT_PROM_REL, "league_team_movements_assign_dest: no room in league %s for team %s.", lig(dest_idx).name, tmove->tm.name); tmove->dest_assigned = TRUE; if(debug > 60) g_print("%s %d -> %d\n", tmove->tm.name, league_from_clid(tmove->tm.clid)->layer, league_from_clid(lig(dest_idx).id)->layer); if(league_cur_size[dest_idx] == league_size[dest_idx]) for(i=0;ilen;i++) { if(!g_array_index(team_movements, TeamMove, i).dest_assigned) { tmove = &g_array_index(team_movements, TeamMove, i); for(j=tmove->dest_idcs->len - 1; j>= 0; j--) if(g_array_index(tmove->dest_idcs, gint, j) == dest_idx) g_array_remove_index(tmove->dest_idcs, j); if(tmove->dest_idcs->len == 0) main_exit_program(EXIT_PROM_REL, "league_team_movements_assign_dest: no destinations left for team %s.", tmove->tm.name); } } if(team_is_user(&tmove->tm) != -1) { if(tmove->prom_rel_type == PROM_REL_PROMOTION) user_history_add(&usr(team_is_user(&tmove->tm)), USER_HISTORY_PROMOTED, tmove->tm.name, lig(g_array_index(tmove->dest_idcs, gint, 0)).name, NULL, NULL); else user_history_add(&usr(team_is_user(&tmove->tm)), USER_HISTORY_RELEGATED, tmove->tm.name, lig(g_array_index(tmove->dest_idcs, gint, 0)).name, NULL, NULL); } } /** Assign all unassigned TeamMoves in the array that only have one destination value. @param league_size The size of all leagues (i.e. how many teams they should contain after promotion/relegation is finished). @param league_cur_size The current size of all leagues (taking into account the assigned team moves). */ void league_team_movements_prune(GArray *team_movements, const gint *league_size, gint *league_cur_size) { #ifdef DEBUG printf("league_team_movements_prune\n"); #endif gint i; if(debug > 60) g_print("league_team_movements_prune\n"); while(query_league_team_movements_unassigned_single(team_movements)) { for(i=0;ilen;i++) if(!g_array_index(team_movements, TeamMove, i).dest_assigned && g_array_index(team_movements, TeamMove, i).dest_idcs->len == 1) league_team_movements_assign_dest(team_movements, i, league_size, league_cur_size); } } /** Try to assign destinations for the team movements based on the array of possible destinations. @param league_size The size of all leagues (i.e. how many teams they should contain after promotion/relegation is finished). */ void league_team_movements_destinations(GArray *team_movements, const gint *league_size) { #ifdef DEBUG printf("league_team_movements_destinations\n"); #endif gint i; gint league_cur_size[ligs->len]; if(debug > 60) g_print("league_team_movements_destinations\n"); for(i=0;ilen;i++) league_cur_size[i] = lig(i).teams->len; if(debug > 65) league_team_movements_print(team_movements, league_size, league_cur_size); while(query_league_team_movements_unassigned(team_movements)) { league_team_movements_prune(team_movements, league_size, league_cur_size); for(i=0;ilen;i++) if(!g_array_index(team_movements, TeamMove, i).dest_assigned) league_team_movements_assign_dest(team_movements, i, league_size, league_cur_size); } if(debug > 65) league_team_movements_print(team_movements, league_size, league_cur_size); } /** Find out whether there are any active leagues in the country. */ gboolean query_leagues_active_in_country(void) { #ifdef DEBUG printf("query_leagues_active_in_country\n"); #endif gint i; for(i=0;ilen;i++) if(query_league_active(&lig(i))) return TRUE; return FALSE; } /** Find out whether a given matchday should occur in the same week as the one before or a full week later. */ gboolean query_league_cup_matchday_in_two_match_week(GArray **two_match_weeks, gint matchday) { #ifdef DEBUG printf("query_league_cup_matchday_in_two_match_week\n"); #endif gint i; for(i=0;ilen;i++) { if(g_array_index(two_match_weeks[0], gint, i) < matchday && matchday <= g_array_index(two_match_weeks[1], gint, i) && (matchday - g_array_index(two_match_weeks[0], gint, i)) % 2 == 1) return TRUE; } return FALSE; } /** Add a new table to the league tables if specified in the new_tables array. */ void league_check_new_tables(League *league) { #ifdef DEBUG printf("league_check_new_tables\n"); #endif gint i; Table new_table; for(i = 0; i < league->new_tables->len; i++) if(g_array_index(league->new_tables, NewTable, i).add_week == week) { /** Create cumulative table if necessary. */ if(league->tables->len == 1 && week > 1) { new_table = table_copy(league_table(league)); g_array_append_val(league->tables, new_table); } league_add_table(league); misc_string_assign(&league_table(league)->name, g_array_index(league->new_tables, NewTable, i).name); } } /** Add an initialized table to the league. */ void league_add_table(League *league) { #ifdef DEBUG printf("league_add_table\n"); #endif gint i; Table new_table; TableElement new_table_element; new_table = table_new(); new_table.clid = league->id; new_table.name = g_strdup(league->name); for(i = 0; i < league->teams->len; i++) { new_table_element = table_element_new( &g_array_index(league->teams, Team, i), i); g_array_append_val(new_table.elements, new_table_element); } g_array_append_val(league->tables, new_table); } gboolean query_league_cup_has_property(gint clid, const gchar *property) { const GPtrArray *properties = league_cup_get_properties(clid); return query_misc_string_in_array(property, properties); } GPtrArray* league_cup_get_teams(gint clid) { return (clid < ID_CUP_START) ? (GPtrArray*)league_from_clid(clid)->teams : cup_from_clid(clid)->teams; } GPtrArray* league_cup_get_properties(gint clid) { return (clid < ID_CUP_START) ? league_from_clid(clid)->properties : cup_from_clid(clid)->properties; } /** Synchronise the number of league breaks with the number of round robins in the league. */ void league_cup_adjust_rr_breaks(GArray *rr_breaks, gint round_robins, gint week_gap) { #ifdef DEBUG printf("league_cup_adjust_rr_breaks\n"); #endif gint i; gint default_break; /* Remove superfluous breaks. */ for(i = rr_breaks->len - 1; i >= round_robins - 1; i--) g_array_remove_index(rr_breaks, i); /* Add more breaks if necessary. */ if(rr_breaks->len == 0) default_break = week_gap; else default_break = g_array_index(rr_breaks, gint, rr_breaks->len - 1); for(i = rr_breaks->len; i < round_robins - 1; i++) g_array_append_val(rr_breaks, default_break); } /** Fill the breaks array from a comma separated string of integers. */ void league_cup_fill_rr_breaks(GArray *rr_breaks, const gchar *breaks) { #ifdef DEBUG printf("league_cup_fill_rr_breaks\n"); #endif gint i = 0; gchar **breaks_arr = g_strsplit(breaks, ",", 0); gint new_break; while(breaks_arr[i] != NULL) { new_break = (gint)g_ascii_strtod(breaks_arr[i], NULL); g_array_append_val(rr_breaks, new_break); i++; } g_strfreev(breaks_arr); } /** Set the values of the week breaks to the week gap of the league or cup if necessary. */ void league_cup_adjust_week_breaks(GArray *week_breaks, gint week_gap) { gint i; for(i = 0; i < week_breaks->len; i++) if(g_array_index(week_breaks, WeekBreak, i).length == -1000) g_array_index(week_breaks, WeekBreak, i).length = week_gap; } /** Return the week number with a possible schedule break adjustment. */ gint league_cup_get_week_with_break(gint clid, gint week_number) { gint i; const GArray *week_breaks; week_breaks = (clid >= ID_CUP_START) ? cup_from_clid(clid)->week_breaks : league_from_clid(clid)->week_breaks; for(i = 0; i < week_breaks->len; i++) if(g_array_index(week_breaks, WeekBreak, i).week_number == week_number) return week_number + g_array_index(week_breaks, WeekBreak, i).length; return week_number; } bygfoot-2.3.2/src/options_interface.c0000644000175000017500000023570011225071373016621 0ustar eliaselias/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "options_callbacks.h" #include "options_interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window_options (void) { GtkWidget *window_options; GtkWidget *vbox1; GtkWidget *notebook1; GtkWidget *hbox2; GtkWidget *vbox3; GtkWidget *checkbutton_conf_quit; GtkWidget *checkbutton_conf_unfit; GtkWidget *checkbutton_save_overwrite; GtkWidget *hseparator5; GtkWidget *checkbutton_maximize; GtkWidget *checkbutton_pref_mess; GtkWidget *checkbutton_show_progress_pics; GtkWidget *hseparator6; GtkWidget *checkbutton_skip; GtkWidget *vseparator1; GtkWidget *table1; GtkWidget *hbox3; GtkWidget *label6; GtkObject *spinbutton_autosave_adj; GtkWidget *spinbutton_autosave; GtkWidget *label36; GtkObject *spinbutton_autosave_files_adj; GtkWidget *spinbutton_autosave_files; GtkWidget *label7; GtkWidget *label8; GtkWidget *label10; GtkWidget *button_font_name; GtkWidget *alignment1; GtkWidget *hbox7; GtkWidget *image1; GtkWidget *label34; GtkWidget *hbox8; GtkWidget *entry_constants_file; GtkWidget *button_reload_constants; GtkWidget *alignment2; GtkWidget *hbox9; GtkWidget *image2; GtkWidget *label35; GtkWidget *button_edit_constants; GtkWidget *alignment3; GtkWidget *hbox19; GtkWidget *image3; GtkWidget *label49; GtkWidget *label40; GtkWidget *checkbutton_autosave; GtkObject *spinbutton_precision_adj; GtkWidget *spinbutton_precision; GtkObject *spinbutton_refresh_adj; GtkWidget *spinbutton_refresh; GtkWidget *entry_font_name; GtkWidget *eventbox2; GtkWidget *combobox_languages; GtkWidget *label1; GtkWidget *hbox6; GtkWidget *vbox6; GtkWidget *checkbutton_conf_youth; GtkWidget *checkbutton_show_job; GtkWidget *eventbox1; GtkWidget *hbox10; GtkWidget *label37; GtkObject *spinbutton_contract_adj; GtkWidget *spinbutton_contract; GtkWidget *label38; GtkWidget *checkbutton_show_all_leagues; GtkWidget *vseparator3; GtkWidget *alignment7; GtkWidget *vbox7; GtkWidget *checkbutton_swap_adapts; GtkWidget *checkbutton_show_overall; GtkWidget *checkbutton_store_restore_default_team; GtkWidget *label3; GtkWidget *hbox4; GtkWidget *vbox4; GtkWidget *checkbutton_show_live; GtkWidget *checkbutton_show_tendency; GtkWidget *table3; GtkWidget *label12; GtkWidget *label39; GtkObject *spinbutton_live_speed_adj; GtkWidget *spinbutton_live_speed; GtkObject *spinbutton_live_verbosity_adj; GtkWidget *spinbutton_live_verbosity; GtkWidget *checkbutton_auto_sub; GtkWidget *vseparator2; GtkWidget *vbox5; GtkWidget *checkbutton_pause_injury; GtkWidget *checkbutton_pause_red; GtkWidget *checkbutton_pause_break; GtkWidget *label2; GtkWidget *table2; GtkWidget *label13; GtkWidget *label14; GtkWidget *label15; GtkWidget *label16; GtkWidget *label17; GtkWidget *label18; GtkWidget *label19; GtkWidget *label20; GtkWidget *label21; GtkWidget *label22; GtkWidget *label23; GtkWidget *label24; GtkWidget *label25; GtkWidget *label26; GtkWidget *label27; GtkWidget *label28; GtkWidget *label29; GtkWidget *label30; GtkWidget *checkbutton1; GtkWidget *checkbutton20; GtkWidget *checkbutton2; GtkWidget *checkbutton3; GtkWidget *checkbutton4; GtkWidget *checkbutton5; GtkWidget *checkbutton6; GtkWidget *checkbutton7; GtkWidget *checkbutton8; GtkWidget *checkbutton9; GtkWidget *checkbutton10; GtkWidget *checkbutton11; GtkWidget *checkbutton12; GtkWidget *checkbutton13; GtkWidget *checkbutton14; GtkWidget *checkbutton15; GtkWidget *checkbutton16; GtkWidget *checkbutton17; GtkWidget *checkbutton18; GtkWidget *checkbutton19; GtkWidget *checkbutton21; GtkWidget *checkbutton22; GtkWidget *checkbutton23; GtkWidget *checkbutton24; GtkWidget *checkbutton25; GtkWidget *checkbutton26; GtkWidget *checkbutton27; GtkWidget *checkbutton28; GtkWidget *checkbutton29; GtkWidget *checkbutton30; GtkWidget *checkbutton31; GtkWidget *checkbutton32; GtkWidget *checkbutton33; GtkWidget *checkbutton34; GtkWidget *checkbutton35; GtkWidget *checkbutton36; GtkWidget *hseparator3; GtkWidget *hseparator4; GtkWidget *label31; GtkWidget *label32; GtkWidget *label33; GtkWidget *hseparator2; GtkWidget *label4; GtkWidget *hbox11; GtkWidget *vbox8; GtkWidget *checkbutton_bet_show_all_leagues; GtkWidget *checkbutton_bet_show_cups; GtkWidget *checkbutton_bet_show_only_recent; GtkWidget *hbox12; GtkWidget *label42; GtkObject *spinbutton_bet_wager_adj; GtkWidget *spinbutton_bet_wager; GtkWidget *label41; GtkWidget *vbox9; GtkWidget *hbox13; GtkWidget *label44; GtkWidget *combobox_hotel; GtkWidget *vbox10; GtkWidget *hseparator7; GtkWidget *hbox15; GtkWidget *label45; GtkObject *spinbutton_recreation_adj; GtkWidget *spinbutton_recreation; GtkWidget *hseparator8; GtkWidget *hbox16; GtkWidget *label47; GtkWidget *label_training; GtkWidget *label43; GtkWidget *vbox11; GtkWidget *hbox17; GtkWidget *checkbutton_news_user; GtkWidget *checkbutton_news_cup; GtkWidget *checkbutton_news_league; GtkWidget *checkbutton_news_recent; GtkWidget *hbox18; GtkWidget *radiobutton_news_popup_no; GSList *radiobutton_news_popup_no_group = NULL; GtkWidget *radiobutton_news_popup_user; GtkWidget *radiobutton_news_popup_always; GtkWidget *label48; GtkWidget *hseparator1; GtkWidget *hbox1; GtkWidget *vbox2; GtkWidget *checkbutton_save_global; GtkWidget *checkbutton_save_user; GtkWidget *button_ok; GtkWidget *button_cancel; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_options = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_options), 5); gtk_window_set_position (GTK_WINDOW (window_options), GTK_WIN_POS_CENTER); vbox1 = gtk_vbox_new (FALSE, 2); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (window_options), vbox1); notebook1 = gtk_notebook_new (); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (vbox1), notebook1, TRUE, TRUE, 0); hbox2 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox2); gtk_container_add (GTK_CONTAINER (notebook1), hbox2); gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), hbox2, FALSE, FALSE, GTK_PACK_START); vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox3); gtk_box_pack_start (GTK_BOX (hbox2), vbox3, TRUE, TRUE, 0); checkbutton_conf_quit = gtk_check_button_new_with_mnemonic (_("Confirm quit when not saved")); gtk_widget_show (checkbutton_conf_quit); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_conf_quit, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_conf_quit, _("Whether to show a confirmation popup when you press quit and the game state is not saved"), NULL); checkbutton_conf_unfit = gtk_check_button_new_with_mnemonic (_("Confirm when unfit")); gtk_widget_show (checkbutton_conf_unfit); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_conf_unfit, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_conf_unfit, _("Whether to show a confirmation popup if a user team has an injured or banned player in the startup formation"), NULL); checkbutton_save_overwrite = gtk_check_button_new_with_mnemonic (_("Save overwrites")); gtk_widget_show (checkbutton_save_overwrite); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_save_overwrite, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_save_overwrite, _("Whether 'Save' overwrites the current save file or pops up a 'Save as' window"), NULL); hseparator5 = gtk_hseparator_new (); gtk_widget_show (hseparator5); gtk_box_pack_start (GTK_BOX (vbox3), hseparator5, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator5, 1, 10); checkbutton_maximize = gtk_check_button_new_with_mnemonic (_("Maximize main window")); gtk_widget_show (checkbutton_maximize); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_maximize, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_maximize, _("Whether game starts with a maximized main window (doesn't work with all window managers)"), NULL); checkbutton_pref_mess = gtk_check_button_new_with_mnemonic (_("Prefer messages")); gtk_widget_show (checkbutton_pref_mess); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_pref_mess, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_pref_mess, _("Whether to show warnings and such in the message area in the main window when possible"), NULL); checkbutton_show_progress_pics = gtk_check_button_new_with_mnemonic (_("Show progressbar pictures")); gtk_widget_show (checkbutton_show_progress_pics); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_show_progress_pics, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_show_progress_pics, _("Whether to show pictures on top of the progressbar when loading/saving or calculating results"), NULL); hseparator6 = gtk_hseparator_new (); gtk_widget_show (hseparator6); gtk_box_pack_start (GTK_BOX (vbox3), hseparator6, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator6, 1, 10); checkbutton_skip = gtk_check_button_new_with_mnemonic (_("Skip weeks without user matches")); gtk_widget_show (checkbutton_skip); gtk_box_pack_start (GTK_BOX (vbox3), checkbutton_skip, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_skip, _("If checked, weeks without user teams playing are calculated automatically (without the user having to press 'New week')"), NULL); vseparator1 = gtk_vseparator_new (); gtk_widget_show (vseparator1); gtk_box_pack_start (GTK_BOX (hbox2), vseparator1, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator1, 10, 1); table1 = gtk_table_new (6, 2, FALSE); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (hbox2), table1, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table1), 1); gtk_table_set_col_spacings (GTK_TABLE (table1), 5); hbox3 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox3); gtk_table_attach (GTK_TABLE (table1), hbox3, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label6 = gtk_label_new (_("Autosave interval ")); gtk_widget_show (label6); gtk_box_pack_start (GTK_BOX (hbox3), label6, FALSE, FALSE, 0); spinbutton_autosave_adj = gtk_adjustment_new (1, 1, 20, 1, 10, 0); spinbutton_autosave = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_autosave_adj), 1, 0); gtk_widget_show (spinbutton_autosave); gtk_box_pack_start (GTK_BOX (hbox3), spinbutton_autosave, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, spinbutton_autosave, _("How often the game is saved automatically"), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_autosave), TRUE); label36 = gtk_label_new (_(" Autosave files ")); gtk_widget_show (label36); gtk_box_pack_start (GTK_BOX (hbox3), label36, FALSE, FALSE, 0); spinbutton_autosave_files_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 0); spinbutton_autosave_files = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_autosave_files_adj), 1, 0); gtk_widget_show (spinbutton_autosave_files); gtk_box_pack_start (GTK_BOX (hbox3), spinbutton_autosave_files, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, spinbutton_autosave_files, _("How many files the autosave uses"), NULL); label7 = gtk_label_new (_("Player attribute precision")); gtk_widget_show (label7); gtk_table_attach (GTK_TABLE (table1), label7, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label7), 1, 0.5); label8 = gtk_label_new (_("Player list refresh rate")); gtk_widget_show (label8); gtk_table_attach (GTK_TABLE (table1), label8, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label8), 1, 0.5); label10 = gtk_label_new (_("Constants file")); gtk_widget_show (label10); gtk_table_attach (GTK_TABLE (table1), label10, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label10), 1, 0.5); button_font_name = gtk_button_new (); gtk_widget_show (button_font_name); gtk_table_attach (GTK_TABLE (table1), button_font_name, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, button_font_name, _("Font used in treeviews"), NULL); alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment1); gtk_container_add (GTK_CONTAINER (button_font_name), alignment1); hbox7 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox7); gtk_container_add (GTK_CONTAINER (alignment1), hbox7); image1 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image1); gtk_box_pack_start (GTK_BOX (hbox7), image1, FALSE, FALSE, 0); label34 = gtk_label_new_with_mnemonic (_("Font name")); gtk_widget_show (label34); gtk_box_pack_start (GTK_BOX (hbox7), label34, FALSE, FALSE, 0); hbox8 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox8); gtk_table_attach (GTK_TABLE (table1), hbox8, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); entry_constants_file = gtk_entry_new (); gtk_widget_show (entry_constants_file); gtk_box_pack_start (GTK_BOX (hbox8), entry_constants_file, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, entry_constants_file, _("File containing settings which determine a lot of aspects of the game behaviour. DON'T CHANGE THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING."), NULL); button_reload_constants = gtk_button_new (); gtk_widget_show (button_reload_constants); gtk_box_pack_start (GTK_BOX (hbox8), button_reload_constants, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_reload_constants, _("Reload the constants file"), NULL); alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment2); gtk_container_add (GTK_CONTAINER (button_reload_constants), alignment2); hbox9 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox9); gtk_container_add (GTK_CONTAINER (alignment2), hbox9); image2 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image2); gtk_box_pack_start (GTK_BOX (hbox9), image2, FALSE, FALSE, 0); label35 = gtk_label_new_with_mnemonic (_("Reload")); gtk_widget_show (label35); gtk_box_pack_start (GTK_BOX (hbox9), label35, FALSE, FALSE, 0); button_edit_constants = gtk_button_new (); gtk_widget_show (button_edit_constants); gtk_box_pack_start (GTK_BOX (hbox8), button_edit_constants, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_edit_constants, _("Edit the constants used in the game"), NULL); alignment3 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment3); gtk_container_add (GTK_CONTAINER (button_edit_constants), alignment3); hbox19 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox19); gtk_container_add (GTK_CONTAINER (alignment3), hbox19); image3 = gtk_image_new_from_stock ("gtk-edit", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image3); gtk_box_pack_start (GTK_BOX (hbox19), image3, FALSE, FALSE, 0); label49 = gtk_label_new_with_mnemonic (_("Edit")); gtk_widget_show (label49); gtk_box_pack_start (GTK_BOX (hbox19), label49, FALSE, FALSE, 0); label40 = gtk_label_new (_("Language")); gtk_widget_show (label40); gtk_table_attach (GTK_TABLE (table1), label40, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label40), 1, 0.5); checkbutton_autosave = gtk_check_button_new_with_mnemonic (_("Autosave")); gtk_widget_show (checkbutton_autosave); gtk_table_attach (GTK_TABLE (table1), checkbutton_autosave, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, checkbutton_autosave, _("Whether to automatically save the game regularly"), NULL); spinbutton_precision_adj = gtk_adjustment_new (1, 0, 3, 1, 10, 0); spinbutton_precision = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_precision_adj), 1, 0); gtk_widget_show (spinbutton_precision); gtk_table_attach (GTK_TABLE (table1), spinbutton_precision, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spinbutton_precision, _("How many digits after the comma there are for skill etc."), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_precision), TRUE); spinbutton_refresh_adj = gtk_adjustment_new (1, 1, 100, 1, 10, 0); spinbutton_refresh = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_refresh_adj), 1, 0); gtk_widget_show (spinbutton_refresh); gtk_table_attach (GTK_TABLE (table1), spinbutton_refresh, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spinbutton_refresh, _("How often the player list gets refreshed during a live game (in live game minutes)"), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_refresh), TRUE); entry_font_name = gtk_entry_new (); gtk_widget_show (entry_font_name); gtk_table_attach (GTK_TABLE (table1), entry_font_name, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, entry_font_name, _("Font used in treeviews"), NULL); eventbox2 = gtk_event_box_new (); gtk_widget_show (eventbox2); gtk_table_attach (GTK_TABLE (table1), eventbox2, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_tooltips_set_tip (tooltips, eventbox2, _("Choose game language (might not work in Windows versions)"), NULL); combobox_languages = gtk_combo_box_new_text (); gtk_widget_show (combobox_languages); gtk_container_add (GTK_CONTAINER (eventbox2), combobox_languages); label1 = gtk_label_new (_("Global")); gtk_widget_show (label1); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1); hbox6 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox6); gtk_container_add (GTK_CONTAINER (notebook1), hbox6); vbox6 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox6); gtk_box_pack_start (GTK_BOX (hbox6), vbox6, TRUE, TRUE, 0); checkbutton_conf_youth = gtk_check_button_new_with_mnemonic (_("Confirm removing youths")); gtk_widget_show (checkbutton_conf_youth); gtk_box_pack_start (GTK_BOX (vbox6), checkbutton_conf_youth, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_conf_youth, _("Whether a confirmation popup is shown when you kick out a youth from your academy"), NULL); checkbutton_show_job = gtk_check_button_new_with_mnemonic (_("Show job offers")); gtk_widget_show (checkbutton_show_job); gtk_box_pack_start (GTK_BOX (vbox6), checkbutton_show_job, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_show_job, _("Whether to show job offers when a user is successful"), NULL); eventbox1 = gtk_event_box_new (); gtk_widget_show (eventbox1); gtk_box_pack_start (GTK_BOX (vbox6), eventbox1, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, eventbox1, _("Set to 0 to switch off warning"), NULL); hbox10 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox10); gtk_container_add (GTK_CONTAINER (eventbox1), hbox10); label37 = gtk_label_new (_("Show warning if a player contract gets below ")); gtk_widget_show (label37); gtk_box_pack_start (GTK_BOX (hbox10), label37, FALSE, FALSE, 0); spinbutton_contract_adj = gtk_adjustment_new (1, 0, 24, 1, 10, 0); spinbutton_contract = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_contract_adj), 1, 0); gtk_widget_show (spinbutton_contract); gtk_box_pack_start (GTK_BOX (hbox10), spinbutton_contract, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_contract), TRUE); label38 = gtk_label_new (_(" months")); gtk_widget_show (label38); gtk_box_pack_start (GTK_BOX (hbox10), label38, FALSE, FALSE, 0); checkbutton_show_all_leagues = gtk_check_button_new_with_mnemonic (_("Show all leagues in the fixture view")); gtk_widget_show (checkbutton_show_all_leagues); gtk_box_pack_start (GTK_BOX (vbox6), checkbutton_show_all_leagues, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_show_all_leagues, _("Whether in the weekly fixture view all leagues or only the user league is shown"), NULL); vseparator3 = gtk_vseparator_new (); gtk_widget_show (vseparator3); gtk_box_pack_start (GTK_BOX (hbox6), vseparator3, FALSE, FALSE, 0); gtk_widget_set_size_request (vseparator3, 10, 1); alignment7 = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment7); gtk_box_pack_start (GTK_BOX (hbox6), alignment7, TRUE, TRUE, 0); vbox7 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox7); gtk_container_add (GTK_CONTAINER (alignment7), vbox7); checkbutton_swap_adapts = gtk_check_button_new_with_mnemonic (_("Swap adapts structure")); gtk_widget_show (checkbutton_swap_adapts); gtk_box_pack_start (GTK_BOX (vbox7), checkbutton_swap_adapts, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_swap_adapts, _("Whether swapping two players automatically adapts the team structure to the player positions"), NULL); checkbutton_show_overall = gtk_check_button_new_with_mnemonic (_("Show overall games/goals")); gtk_widget_show (checkbutton_show_overall); gtk_box_pack_start (GTK_BOX (vbox7), checkbutton_show_overall, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_show_overall, _("Whether to show the player games/goals value in all competitions"), NULL); checkbutton_store_restore_default_team = gtk_check_button_new_with_mnemonic (_("Always store/restore your default team")); gtk_widget_show (checkbutton_store_restore_default_team); gtk_box_pack_start (GTK_BOX (vbox7), checkbutton_store_restore_default_team, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_store_restore_default_team, _("Always store/restore your default team before/after a match"), NULL); label3 = gtk_label_new (_("Gameplay")); gtk_widget_show (label3); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label3); hbox4 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox4); gtk_container_add (GTK_CONTAINER (notebook1), hbox4); vbox4 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox4); gtk_box_pack_start (GTK_BOX (hbox4), vbox4, TRUE, TRUE, 0); checkbutton_show_live = gtk_check_button_new_with_mnemonic (_("Show live game")); gtk_widget_show (checkbutton_show_live); gtk_box_pack_start (GTK_BOX (vbox4), checkbutton_show_live, FALSE, FALSE, 0); checkbutton_show_tendency = gtk_check_button_new_with_mnemonic (_("Show tendency bar")); gtk_widget_show (checkbutton_show_tendency); gtk_box_pack_start (GTK_BOX (vbox4), checkbutton_show_tendency, FALSE, FALSE, 0); table3 = gtk_table_new (2, 2, FALSE); gtk_widget_show (table3); gtk_box_pack_start (GTK_BOX (vbox4), table3, FALSE, FALSE, 0); gtk_table_set_col_spacings (GTK_TABLE (table3), 2); label12 = gtk_label_new (_("Live game speed factor")); gtk_widget_show (label12); gtk_table_attach (GTK_TABLE (table3), label12, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label12), 1, 0.5); label39 = gtk_label_new (_("Live game verbosity")); gtk_widget_show (label39); gtk_table_attach (GTK_TABLE (table3), label39, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label39), 1, 0.5); spinbutton_live_speed_adj = gtk_adjustment_new (0, 0, 40, 1, 10, 0); spinbutton_live_speed = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_live_speed_adj), 1, 0); gtk_widget_show (spinbutton_live_speed); gtk_table_attach (GTK_TABLE (table3), spinbutton_live_speed, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spinbutton_live_speed, _("The lower this value the faster the live game commentary will scroll."), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_live_speed), TRUE); spinbutton_live_verbosity_adj = gtk_adjustment_new (1, 1, 7, 1, 10, 0); spinbutton_live_verbosity = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_live_verbosity_adj), 1, 0); gtk_widget_show (spinbutton_live_verbosity); gtk_table_attach (GTK_TABLE (table3), spinbutton_live_verbosity, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spinbutton_live_verbosity, _("The higher this value, the more commentary you'll see."), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_live_verbosity), TRUE); checkbutton_auto_sub = gtk_check_button_new_with_mnemonic (_("Automatic substitutions")); gtk_widget_show (checkbutton_auto_sub); gtk_box_pack_start (GTK_BOX (vbox4), checkbutton_auto_sub, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_auto_sub, _("Whether the subs (e.g. for injured players) are made by the CPU. This is automatically done if the live game is off."), NULL); vseparator2 = gtk_vseparator_new (); gtk_widget_show (vseparator2); gtk_box_pack_start (GTK_BOX (hbox4), vseparator2, FALSE, TRUE, 0); gtk_widget_set_size_request (vseparator2, 10, 1); vbox5 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox5); gtk_box_pack_start (GTK_BOX (hbox4), vbox5, TRUE, TRUE, 0); checkbutton_pause_injury = gtk_check_button_new_with_mnemonic (_("Pause when injury")); gtk_widget_show (checkbutton_pause_injury); gtk_box_pack_start (GTK_BOX (vbox5), checkbutton_pause_injury, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_pause_injury, _("Whether the live game pauses when a user player is injured"), NULL); checkbutton_pause_red = gtk_check_button_new_with_mnemonic (_("Pause when red card")); gtk_widget_show (checkbutton_pause_red); gtk_box_pack_start (GTK_BOX (vbox5), checkbutton_pause_red, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_pause_red, _("Whether the live game pauses when a user player is sent off"), NULL); checkbutton_pause_break = gtk_check_button_new_with_mnemonic (_("Pause when break")); gtk_widget_show (checkbutton_pause_break); gtk_box_pack_start (GTK_BOX (vbox5), checkbutton_pause_break, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_pause_break, _("Whether the live game pauses at half time and extra time"), NULL); label2 = gtk_label_new (_("Live game")); gtk_widget_show (label2); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label2); table2 = gtk_table_new (20, 3, FALSE); gtk_widget_show (table2); gtk_container_add (GTK_CONTAINER (notebook1), table2); label13 = gtk_label_new (_("Name ")); gtk_widget_show (label13); gtk_table_attach (GTK_TABLE (table2), label13, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5); label14 = gtk_label_new (_("CPos ")); gtk_widget_show (label14); gtk_table_attach (GTK_TABLE (table2), label14, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label14), 0, 0.5); label15 = gtk_label_new (_("Pos ")); gtk_widget_show (label15); gtk_table_attach (GTK_TABLE (table2), label15, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5); label16 = gtk_label_new (_("CSkill ")); gtk_widget_show (label16); gtk_table_attach (GTK_TABLE (table2), label16, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label16), 0, 0.5); label17 = gtk_label_new (_("Skill ")); gtk_widget_show (label17); gtk_table_attach (GTK_TABLE (table2), label17, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5); label18 = gtk_label_new (_("Fitness ")); gtk_widget_show (label18); gtk_table_attach (GTK_TABLE (table2), label18, 0, 1, 7, 8, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label18), 0, 0.5); label19 = gtk_label_new (_("Games ")); gtk_widget_show (label19); gtk_table_attach (GTK_TABLE (table2), label19, 0, 1, 8, 9, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label19), 0, 0.5); label20 = gtk_label_new (_("Shots ")); gtk_widget_show (label20); gtk_table_attach (GTK_TABLE (table2), label20, 0, 1, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label20), 0, 0.5); label21 = gtk_label_new (_("Goals ")); gtk_widget_show (label21); gtk_table_attach (GTK_TABLE (table2), label21, 0, 1, 10, 11, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5); label22 = gtk_label_new (_("Status ")); gtk_widget_show (label22); gtk_table_attach (GTK_TABLE (table2), label22, 0, 1, 11, 12, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label22), 0, 0.5); label23 = gtk_label_new (_("Cards ")); gtk_widget_show (label23); gtk_table_attach (GTK_TABLE (table2), label23, 0, 1, 12, 13, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label23), 0, 0.5); label24 = gtk_label_new (_("Age ")); gtk_widget_show (label24); gtk_table_attach (GTK_TABLE (table2), label24, 0, 1, 13, 14, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); label25 = gtk_label_new (_("ETal ")); gtk_widget_show (label25); gtk_table_attach (GTK_TABLE (table2), label25, 0, 1, 14, 15, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); label26 = gtk_label_new (_("Value ")); gtk_widget_show (label26); gtk_table_attach (GTK_TABLE (table2), label26, 0, 1, 15, 16, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5); label27 = gtk_label_new (_("Wage ")); gtk_widget_show (label27); gtk_table_attach (GTK_TABLE (table2), label27, 0, 1, 16, 17, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5); label28 = gtk_label_new (_("Contract ")); gtk_widget_show (label28); gtk_table_attach (GTK_TABLE (table2), label28, 0, 1, 17, 18, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label28), 0, 0.5); label29 = gtk_label_new (_("League ")); gtk_widget_show (label29); gtk_table_attach (GTK_TABLE (table2), label29, 0, 1, 19, 20, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label29), 0, 0.5); label30 = gtk_label_new (_("Team ")); gtk_widget_show (label30); gtk_table_attach (GTK_TABLE (table2), label30, 0, 1, 18, 19, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label30), 0, 0.5); checkbutton1 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton1); gtk_table_attach (GTK_TABLE (table2), checkbutton1, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton20 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton20); gtk_table_attach (GTK_TABLE (table2), checkbutton20, 2, 3, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton2 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton2); gtk_table_attach (GTK_TABLE (table2), checkbutton2, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton3 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton3); gtk_table_attach (GTK_TABLE (table2), checkbutton3, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton4 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton4); gtk_table_attach (GTK_TABLE (table2), checkbutton4, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton5 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton5); gtk_table_attach (GTK_TABLE (table2), checkbutton5, 1, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton6 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton6); gtk_table_attach (GTK_TABLE (table2), checkbutton6, 1, 2, 7, 8, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton7 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton7); gtk_table_attach (GTK_TABLE (table2), checkbutton7, 1, 2, 8, 9, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton8 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton8); gtk_table_attach (GTK_TABLE (table2), checkbutton8, 1, 2, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton9 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton9); gtk_table_attach (GTK_TABLE (table2), checkbutton9, 1, 2, 10, 11, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton10 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton10); gtk_table_attach (GTK_TABLE (table2), checkbutton10, 1, 2, 11, 12, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton11 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton11); gtk_table_attach (GTK_TABLE (table2), checkbutton11, 1, 2, 12, 13, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton12 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton12); gtk_table_attach (GTK_TABLE (table2), checkbutton12, 1, 2, 13, 14, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton13 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton13); gtk_table_attach (GTK_TABLE (table2), checkbutton13, 1, 2, 14, 15, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton14 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton14); gtk_table_attach (GTK_TABLE (table2), checkbutton14, 1, 2, 15, 16, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton15 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton15); gtk_table_attach (GTK_TABLE (table2), checkbutton15, 1, 2, 16, 17, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton16 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton16); gtk_table_attach (GTK_TABLE (table2), checkbutton16, 1, 2, 17, 18, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton17 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton17); gtk_table_attach (GTK_TABLE (table2), checkbutton17, 1, 2, 18, 19, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton18 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton18); gtk_table_attach (GTK_TABLE (table2), checkbutton18, 1, 2, 19, 20, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton19 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton19); gtk_table_attach (GTK_TABLE (table2), checkbutton19, 2, 3, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton21 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton21); gtk_table_attach (GTK_TABLE (table2), checkbutton21, 2, 3, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton22 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton22); gtk_table_attach (GTK_TABLE (table2), checkbutton22, 2, 3, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton23 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton23); gtk_table_attach (GTK_TABLE (table2), checkbutton23, 2, 3, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton24 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton24); gtk_table_attach (GTK_TABLE (table2), checkbutton24, 2, 3, 7, 8, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton25 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton25); gtk_table_attach (GTK_TABLE (table2), checkbutton25, 2, 3, 8, 9, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton26 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton26); gtk_table_attach (GTK_TABLE (table2), checkbutton26, 2, 3, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton27 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton27); gtk_table_attach (GTK_TABLE (table2), checkbutton27, 2, 3, 10, 11, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton28 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton28); gtk_table_attach (GTK_TABLE (table2), checkbutton28, 2, 3, 11, 12, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton29 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton29); gtk_table_attach (GTK_TABLE (table2), checkbutton29, 2, 3, 12, 13, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton30 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton30); gtk_table_attach (GTK_TABLE (table2), checkbutton30, 2, 3, 13, 14, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton31 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton31); gtk_table_attach (GTK_TABLE (table2), checkbutton31, 2, 3, 14, 15, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton32 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton32); gtk_table_attach (GTK_TABLE (table2), checkbutton32, 2, 3, 15, 16, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton33 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton33); gtk_table_attach (GTK_TABLE (table2), checkbutton33, 2, 3, 16, 17, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton34 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton34); gtk_table_attach (GTK_TABLE (table2), checkbutton34, 2, 3, 17, 18, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton35 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton35); gtk_table_attach (GTK_TABLE (table2), checkbutton35, 2, 3, 18, 19, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); checkbutton36 = gtk_check_button_new_with_mnemonic (""); gtk_widget_show (checkbutton36); gtk_table_attach (GTK_TABLE (table2), checkbutton36, 2, 3, 19, 20, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); hseparator3 = gtk_hseparator_new (); gtk_widget_show (hseparator3); gtk_table_attach (GTK_TABLE (table2), hseparator3, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_widget_set_size_request (hseparator3, 1, 10); hseparator4 = gtk_hseparator_new (); gtk_widget_show (hseparator4); gtk_table_attach (GTK_TABLE (table2), hseparator4, 2, 3, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_widget_set_size_request (hseparator4, 1, 10); label31 = gtk_label_new (_("Attribute ")); gtk_widget_show (label31); gtk_table_attach (GTK_TABLE (table2), label31, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label31), 0, 0.5); label32 = gtk_label_new (_("List 1 ")); gtk_widget_show (label32); gtk_table_attach (GTK_TABLE (table2), label32, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label32), 0, 0.5); label33 = gtk_label_new (_("List 2")); gtk_widget_show (label33); gtk_table_attach (GTK_TABLE (table2), label33, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label33), 0, 0.5); hseparator2 = gtk_hseparator_new (); gtk_widget_show (hseparator2); gtk_table_attach (GTK_TABLE (table2), hseparator2, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_widget_set_size_request (hseparator2, 1, 10); label4 = gtk_label_new (_("Player attributes shown")); gtk_widget_show (label4); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label4); hbox11 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox11); gtk_container_add (GTK_CONTAINER (notebook1), hbox11); vbox8 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox8); gtk_box_pack_start (GTK_BOX (hbox11), vbox8, TRUE, TRUE, 0); checkbutton_bet_show_all_leagues = gtk_check_button_new_with_mnemonic (_("Show matches from all leagues")); gtk_widget_show (checkbutton_bet_show_all_leagues); gtk_box_pack_start (GTK_BOX (vbox8), checkbutton_bet_show_all_leagues, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_bet_show_all_leagues, _("Whether to show matches of all leagues in the betting window"), NULL); checkbutton_bet_show_cups = gtk_check_button_new_with_mnemonic (_("Show matches from cups")); gtk_widget_show (checkbutton_bet_show_cups); gtk_box_pack_start (GTK_BOX (vbox8), checkbutton_bet_show_cups, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_bet_show_cups, _("Whether to show cup matches in the betting window"), NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton_bet_show_cups), TRUE); checkbutton_bet_show_only_recent = gtk_check_button_new_with_mnemonic (_("Show only my recent bets")); gtk_widget_show (checkbutton_bet_show_only_recent); gtk_box_pack_start (GTK_BOX (vbox8), checkbutton_bet_show_only_recent, FALSE, FALSE, 0); hbox12 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox12); gtk_box_pack_start (GTK_BOX (vbox8), hbox12, FALSE, FALSE, 0); label42 = gtk_label_new (_("Default wager")); gtk_widget_show (label42); gtk_box_pack_start (GTK_BOX (hbox12), label42, FALSE, FALSE, 0); spinbutton_bet_wager_adj = gtk_adjustment_new (1, 1, 100, 100, 1000, 0); spinbutton_bet_wager = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_bet_wager_adj), 1, 0); gtk_widget_show (spinbutton_bet_wager); gtk_box_pack_start (GTK_BOX (hbox12), spinbutton_bet_wager, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, spinbutton_bet_wager, _("How much you wager by default"), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_bet_wager), TRUE); label41 = gtk_label_new (_("Betting")); gtk_widget_show (label41); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 4), label41); vbox9 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox9); gtk_container_add (GTK_CONTAINER (notebook1), vbox9); gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (notebook1), vbox9, FALSE, FALSE, GTK_PACK_START); hbox13 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox13); gtk_box_pack_start (GTK_BOX (vbox9), hbox13, FALSE, FALSE, 0); label44 = gtk_label_new (_("Default hotel")); gtk_widget_show (label44); gtk_box_pack_start (GTK_BOX (hbox13), label44, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label44), 0.1, 0.5); gtk_misc_set_padding (GTK_MISC (label44), 4, 3); combobox_hotel = gtk_combo_box_new_text (); gtk_widget_show (combobox_hotel); gtk_box_pack_start (GTK_BOX (hbox13), combobox_hotel, FALSE, FALSE, 0); vbox10 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox10); gtk_box_pack_start (GTK_BOX (vbox9), vbox10, FALSE, FALSE, 0); hseparator7 = gtk_hseparator_new (); gtk_widget_show (hseparator7); gtk_box_pack_start (GTK_BOX (vbox10), hseparator7, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator7, -1, 10); hbox15 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox15); gtk_box_pack_start (GTK_BOX (vbox10), hbox15, FALSE, FALSE, 0); label45 = gtk_label_new (_("Default recreation:")); gtk_widget_show (label45); gtk_box_pack_start (GTK_BOX (hbox15), label45, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label45), 0.1, 0.5); gtk_misc_set_padding (GTK_MISC (label45), 3, 3); spinbutton_recreation_adj = gtk_adjustment_new (1, 0, 10, 1, 10, 0); spinbutton_recreation = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_recreation_adj), 1, 0); gtk_widget_show (spinbutton_recreation); gtk_box_pack_start (GTK_BOX (hbox15), spinbutton_recreation, FALSE, FALSE, 0); hseparator8 = gtk_hseparator_new (); gtk_widget_show (hseparator8); gtk_box_pack_start (GTK_BOX (vbox9), hseparator8, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator8, -1, 10); hbox16 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox16); gtk_box_pack_start (GTK_BOX (vbox9), hbox16, FALSE, FALSE, 0); label47 = gtk_label_new (_("Default training:")); gtk_widget_show (label47); gtk_box_pack_start (GTK_BOX (hbox16), label47, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label47), 0.1, 0.5); gtk_misc_set_padding (GTK_MISC (label47), 3, 3); label_training = gtk_label_new (""); gtk_widget_show (label_training); gtk_box_pack_start (GTK_BOX (hbox16), label_training, FALSE, FALSE, 0); label43 = gtk_label_new (_("Training camp")); gtk_widget_show (label43); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 5), label43); vbox11 = gtk_vbox_new (FALSE, 4); gtk_widget_show (vbox11); gtk_container_add (GTK_CONTAINER (notebook1), vbox11); hbox17 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox17); gtk_box_pack_start (GTK_BOX (vbox11), hbox17, FALSE, FALSE, 0); checkbutton_news_user = gtk_check_button_new_with_mnemonic (_("Create user news")); gtk_widget_show (checkbutton_news_user); gtk_box_pack_start (GTK_BOX (hbox17), checkbutton_news_user, FALSE, FALSE, 0); checkbutton_news_cup = gtk_check_button_new_with_mnemonic (_("Create cup news")); gtk_widget_show (checkbutton_news_cup); gtk_box_pack_start (GTK_BOX (hbox17), checkbutton_news_cup, FALSE, FALSE, 0); checkbutton_news_league = gtk_check_button_new_with_mnemonic (_("Create league news")); gtk_widget_show (checkbutton_news_league); gtk_box_pack_start (GTK_BOX (hbox17), checkbutton_news_league, FALSE, FALSE, 0); checkbutton_news_recent = gtk_check_button_new_with_mnemonic (_("Show only recent news")); gtk_widget_show (checkbutton_news_recent); gtk_box_pack_start (GTK_BOX (vbox11), checkbutton_news_recent, FALSE, FALSE, 0); hbox18 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox18); gtk_box_pack_start (GTK_BOX (vbox11), hbox18, FALSE, FALSE, 0); radiobutton_news_popup_no = gtk_radio_button_new_with_mnemonic (NULL, _("No automatic popup")); gtk_widget_show (radiobutton_news_popup_no); gtk_box_pack_start (GTK_BOX (hbox18), radiobutton_news_popup_no, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_news_popup_no), radiobutton_news_popup_no_group); radiobutton_news_popup_no_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_news_popup_no)); radiobutton_news_popup_user = gtk_radio_button_new_with_mnemonic (NULL, _("Popup for user news")); gtk_widget_show (radiobutton_news_popup_user); gtk_box_pack_start (GTK_BOX (hbox18), radiobutton_news_popup_user, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, radiobutton_news_popup_user, _("Show news window after a matchday when new user news was created"), NULL); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_news_popup_user), radiobutton_news_popup_no_group); radiobutton_news_popup_no_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_news_popup_user)); radiobutton_news_popup_always = gtk_radio_button_new_with_mnemonic (NULL, _("Automatic popup")); gtk_widget_show (radiobutton_news_popup_always); gtk_box_pack_start (GTK_BOX (hbox18), radiobutton_news_popup_always, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, radiobutton_news_popup_always, _("Always show news window after a matchday"), NULL); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_news_popup_always), radiobutton_news_popup_no_group); radiobutton_news_popup_no_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_news_popup_always)); label48 = gtk_label_new (_("News")); gtk_widget_show (label48); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 6), label48); hseparator1 = gtk_hseparator_new (); gtk_widget_show (hseparator1); gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, FALSE, 0); gtk_widget_set_size_request (hseparator1, 1, 10); hbox1 = gtk_hbox_new (FALSE, 3); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (hbox1), vbox2, FALSE, FALSE, 0); checkbutton_save_global = gtk_check_button_new_with_mnemonic (_("Save global settings to file")); gtk_widget_show (checkbutton_save_global); gtk_box_pack_start (GTK_BOX (vbox2), checkbutton_save_global, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_save_global, _("Whether to save the global settings to file (so that they get loaded next time you start a new game)"), NULL); checkbutton_save_user = gtk_check_button_new_with_mnemonic (_("Save user settings to file")); gtk_widget_show (checkbutton_save_user); gtk_box_pack_start (GTK_BOX (vbox2), checkbutton_save_user, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, checkbutton_save_user, _("Whether to save the user settings to file (so that they get loaded next time this user starts a new game)"), NULL); button_ok = gtk_button_new_from_stock ("gtk-apply"); gtk_widget_show (button_ok); gtk_box_pack_start (GTK_BOX (hbox1), button_ok, TRUE, TRUE, 0); button_cancel = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (button_cancel); gtk_box_pack_start (GTK_BOX (hbox1), button_cancel, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, button_cancel, _("Esc"), NULL); gtk_widget_add_accelerator (button_cancel, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); g_signal_connect ((gpointer) window_options, "delete_event", G_CALLBACK (on_window_options_delete_event), NULL); g_signal_connect ((gpointer) button_font_name, "clicked", G_CALLBACK (on_button_font_name_clicked), NULL); g_signal_connect ((gpointer) button_reload_constants, "clicked", G_CALLBACK (on_button_reload_constants_clicked), NULL); g_signal_connect ((gpointer) button_edit_constants, "clicked", G_CALLBACK (on_button_edit_constants_clicked), NULL); g_signal_connect ((gpointer) spinbutton_recreation, "value_changed", G_CALLBACK (on_spinbutton_recreation_value_changed), NULL); g_signal_connect ((gpointer) checkbutton_save_global, "button_press_event", G_CALLBACK (on_checkbutton_save_global_button_press_event), NULL); g_signal_connect ((gpointer) checkbutton_save_user, "button_press_event", G_CALLBACK (on_checkbutton_save_user_button_press_event), NULL); g_signal_connect ((gpointer) button_ok, "clicked", G_CALLBACK (on_button_options_ok_clicked), NULL); g_signal_connect ((gpointer) button_cancel, "clicked", G_CALLBACK (on_button_options_cancel_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_options, window_options, "window_options"); GLADE_HOOKUP_OBJECT (window_options, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT (window_options, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (window_options, hbox2, "hbox2"); GLADE_HOOKUP_OBJECT (window_options, vbox3, "vbox3"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_conf_quit, "checkbutton_conf_quit"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_conf_unfit, "checkbutton_conf_unfit"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_save_overwrite, "checkbutton_save_overwrite"); GLADE_HOOKUP_OBJECT (window_options, hseparator5, "hseparator5"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_maximize, "checkbutton_maximize"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_pref_mess, "checkbutton_pref_mess"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_show_progress_pics, "checkbutton_show_progress_pics"); GLADE_HOOKUP_OBJECT (window_options, hseparator6, "hseparator6"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_skip, "checkbutton_skip"); GLADE_HOOKUP_OBJECT (window_options, vseparator1, "vseparator1"); GLADE_HOOKUP_OBJECT (window_options, table1, "table1"); GLADE_HOOKUP_OBJECT (window_options, hbox3, "hbox3"); GLADE_HOOKUP_OBJECT (window_options, label6, "label6"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_autosave, "spinbutton_autosave"); GLADE_HOOKUP_OBJECT (window_options, label36, "label36"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_autosave_files, "spinbutton_autosave_files"); GLADE_HOOKUP_OBJECT (window_options, label7, "label7"); GLADE_HOOKUP_OBJECT (window_options, label8, "label8"); GLADE_HOOKUP_OBJECT (window_options, label10, "label10"); GLADE_HOOKUP_OBJECT (window_options, button_font_name, "button_font_name"); GLADE_HOOKUP_OBJECT (window_options, alignment1, "alignment1"); GLADE_HOOKUP_OBJECT (window_options, hbox7, "hbox7"); GLADE_HOOKUP_OBJECT (window_options, image1, "image1"); GLADE_HOOKUP_OBJECT (window_options, label34, "label34"); GLADE_HOOKUP_OBJECT (window_options, hbox8, "hbox8"); GLADE_HOOKUP_OBJECT (window_options, entry_constants_file, "entry_constants_file"); GLADE_HOOKUP_OBJECT (window_options, button_reload_constants, "button_reload_constants"); GLADE_HOOKUP_OBJECT (window_options, alignment2, "alignment2"); GLADE_HOOKUP_OBJECT (window_options, hbox9, "hbox9"); GLADE_HOOKUP_OBJECT (window_options, image2, "image2"); GLADE_HOOKUP_OBJECT (window_options, label35, "label35"); GLADE_HOOKUP_OBJECT (window_options, button_edit_constants, "button_edit_constants"); GLADE_HOOKUP_OBJECT (window_options, alignment3, "alignment3"); GLADE_HOOKUP_OBJECT (window_options, hbox19, "hbox19"); GLADE_HOOKUP_OBJECT (window_options, image3, "image3"); GLADE_HOOKUP_OBJECT (window_options, label49, "label49"); GLADE_HOOKUP_OBJECT (window_options, label40, "label40"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_autosave, "checkbutton_autosave"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_precision, "spinbutton_precision"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_refresh, "spinbutton_refresh"); GLADE_HOOKUP_OBJECT (window_options, entry_font_name, "entry_font_name"); GLADE_HOOKUP_OBJECT (window_options, eventbox2, "eventbox2"); GLADE_HOOKUP_OBJECT (window_options, combobox_languages, "combobox_languages"); GLADE_HOOKUP_OBJECT (window_options, label1, "label1"); GLADE_HOOKUP_OBJECT (window_options, hbox6, "hbox6"); GLADE_HOOKUP_OBJECT (window_options, vbox6, "vbox6"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_conf_youth, "checkbutton_conf_youth"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_show_job, "checkbutton_show_job"); GLADE_HOOKUP_OBJECT (window_options, eventbox1, "eventbox1"); GLADE_HOOKUP_OBJECT (window_options, hbox10, "hbox10"); GLADE_HOOKUP_OBJECT (window_options, label37, "label37"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_contract, "spinbutton_contract"); GLADE_HOOKUP_OBJECT (window_options, label38, "label38"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_show_all_leagues, "checkbutton_show_all_leagues"); GLADE_HOOKUP_OBJECT (window_options, vseparator3, "vseparator3"); GLADE_HOOKUP_OBJECT (window_options, alignment7, "alignment7"); GLADE_HOOKUP_OBJECT (window_options, vbox7, "vbox7"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_swap_adapts, "checkbutton_swap_adapts"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_show_overall, "checkbutton_show_overall"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_store_restore_default_team, "checkbutton_store_restore_default_team"); GLADE_HOOKUP_OBJECT (window_options, label3, "label3"); GLADE_HOOKUP_OBJECT (window_options, hbox4, "hbox4"); GLADE_HOOKUP_OBJECT (window_options, vbox4, "vbox4"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_show_live, "checkbutton_show_live"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_show_tendency, "checkbutton_show_tendency"); GLADE_HOOKUP_OBJECT (window_options, table3, "table3"); GLADE_HOOKUP_OBJECT (window_options, label12, "label12"); GLADE_HOOKUP_OBJECT (window_options, label39, "label39"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_live_speed, "spinbutton_live_speed"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_live_verbosity, "spinbutton_live_verbosity"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_auto_sub, "checkbutton_auto_sub"); GLADE_HOOKUP_OBJECT (window_options, vseparator2, "vseparator2"); GLADE_HOOKUP_OBJECT (window_options, vbox5, "vbox5"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_pause_injury, "checkbutton_pause_injury"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_pause_red, "checkbutton_pause_red"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_pause_break, "checkbutton_pause_break"); GLADE_HOOKUP_OBJECT (window_options, label2, "label2"); GLADE_HOOKUP_OBJECT (window_options, table2, "table2"); GLADE_HOOKUP_OBJECT (window_options, label13, "label13"); GLADE_HOOKUP_OBJECT (window_options, label14, "label14"); GLADE_HOOKUP_OBJECT (window_options, label15, "label15"); GLADE_HOOKUP_OBJECT (window_options, label16, "label16"); GLADE_HOOKUP_OBJECT (window_options, label17, "label17"); GLADE_HOOKUP_OBJECT (window_options, label18, "label18"); GLADE_HOOKUP_OBJECT (window_options, label19, "label19"); GLADE_HOOKUP_OBJECT (window_options, label20, "label20"); GLADE_HOOKUP_OBJECT (window_options, label21, "label21"); GLADE_HOOKUP_OBJECT (window_options, label22, "label22"); GLADE_HOOKUP_OBJECT (window_options, label23, "label23"); GLADE_HOOKUP_OBJECT (window_options, label24, "label24"); GLADE_HOOKUP_OBJECT (window_options, label25, "label25"); GLADE_HOOKUP_OBJECT (window_options, label26, "label26"); GLADE_HOOKUP_OBJECT (window_options, label27, "label27"); GLADE_HOOKUP_OBJECT (window_options, label28, "label28"); GLADE_HOOKUP_OBJECT (window_options, label29, "label29"); GLADE_HOOKUP_OBJECT (window_options, label30, "label30"); GLADE_HOOKUP_OBJECT (window_options, checkbutton1, "checkbutton1"); GLADE_HOOKUP_OBJECT (window_options, checkbutton20, "checkbutton20"); GLADE_HOOKUP_OBJECT (window_options, checkbutton2, "checkbutton2"); GLADE_HOOKUP_OBJECT (window_options, checkbutton3, "checkbutton3"); GLADE_HOOKUP_OBJECT (window_options, checkbutton4, "checkbutton4"); GLADE_HOOKUP_OBJECT (window_options, checkbutton5, "checkbutton5"); GLADE_HOOKUP_OBJECT (window_options, checkbutton6, "checkbutton6"); GLADE_HOOKUP_OBJECT (window_options, checkbutton7, "checkbutton7"); GLADE_HOOKUP_OBJECT (window_options, checkbutton8, "checkbutton8"); GLADE_HOOKUP_OBJECT (window_options, checkbutton9, "checkbutton9"); GLADE_HOOKUP_OBJECT (window_options, checkbutton10, "checkbutton10"); GLADE_HOOKUP_OBJECT (window_options, checkbutton11, "checkbutton11"); GLADE_HOOKUP_OBJECT (window_options, checkbutton12, "checkbutton12"); GLADE_HOOKUP_OBJECT (window_options, checkbutton13, "checkbutton13"); GLADE_HOOKUP_OBJECT (window_options, checkbutton14, "checkbutton14"); GLADE_HOOKUP_OBJECT (window_options, checkbutton15, "checkbutton15"); GLADE_HOOKUP_OBJECT (window_options, checkbutton16, "checkbutton16"); GLADE_HOOKUP_OBJECT (window_options, checkbutton17, "checkbutton17"); GLADE_HOOKUP_OBJECT (window_options, checkbutton18, "checkbutton18"); GLADE_HOOKUP_OBJECT (window_options, checkbutton19, "checkbutton19"); GLADE_HOOKUP_OBJECT (window_options, checkbutton21, "checkbutton21"); GLADE_HOOKUP_OBJECT (window_options, checkbutton22, "checkbutton22"); GLADE_HOOKUP_OBJECT (window_options, checkbutton23, "checkbutton23"); GLADE_HOOKUP_OBJECT (window_options, checkbutton24, "checkbutton24"); GLADE_HOOKUP_OBJECT (window_options, checkbutton25, "checkbutton25"); GLADE_HOOKUP_OBJECT (window_options, checkbutton26, "checkbutton26"); GLADE_HOOKUP_OBJECT (window_options, checkbutton27, "checkbutton27"); GLADE_HOOKUP_OBJECT (window_options, checkbutton28, "checkbutton28"); GLADE_HOOKUP_OBJECT (window_options, checkbutton29, "checkbutton29"); GLADE_HOOKUP_OBJECT (window_options, checkbutton30, "checkbutton30"); GLADE_HOOKUP_OBJECT (window_options, checkbutton31, "checkbutton31"); GLADE_HOOKUP_OBJECT (window_options, checkbutton32, "checkbutton32"); GLADE_HOOKUP_OBJECT (window_options, checkbutton33, "checkbutton33"); GLADE_HOOKUP_OBJECT (window_options, checkbutton34, "checkbutton34"); GLADE_HOOKUP_OBJECT (window_options, checkbutton35, "checkbutton35"); GLADE_HOOKUP_OBJECT (window_options, checkbutton36, "checkbutton36"); GLADE_HOOKUP_OBJECT (window_options, hseparator3, "hseparator3"); GLADE_HOOKUP_OBJECT (window_options, hseparator4, "hseparator4"); GLADE_HOOKUP_OBJECT (window_options, label31, "label31"); GLADE_HOOKUP_OBJECT (window_options, label32, "label32"); GLADE_HOOKUP_OBJECT (window_options, label33, "label33"); GLADE_HOOKUP_OBJECT (window_options, hseparator2, "hseparator2"); GLADE_HOOKUP_OBJECT (window_options, label4, "label4"); GLADE_HOOKUP_OBJECT (window_options, hbox11, "hbox11"); GLADE_HOOKUP_OBJECT (window_options, vbox8, "vbox8"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_bet_show_all_leagues, "checkbutton_bet_show_all_leagues"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_bet_show_cups, "checkbutton_bet_show_cups"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_bet_show_only_recent, "checkbutton_bet_show_only_recent"); GLADE_HOOKUP_OBJECT (window_options, hbox12, "hbox12"); GLADE_HOOKUP_OBJECT (window_options, label42, "label42"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_bet_wager, "spinbutton_bet_wager"); GLADE_HOOKUP_OBJECT (window_options, label41, "label41"); GLADE_HOOKUP_OBJECT (window_options, vbox9, "vbox9"); GLADE_HOOKUP_OBJECT (window_options, hbox13, "hbox13"); GLADE_HOOKUP_OBJECT (window_options, label44, "label44"); GLADE_HOOKUP_OBJECT (window_options, combobox_hotel, "combobox_hotel"); GLADE_HOOKUP_OBJECT (window_options, vbox10, "vbox10"); GLADE_HOOKUP_OBJECT (window_options, hseparator7, "hseparator7"); GLADE_HOOKUP_OBJECT (window_options, hbox15, "hbox15"); GLADE_HOOKUP_OBJECT (window_options, label45, "label45"); GLADE_HOOKUP_OBJECT (window_options, spinbutton_recreation, "spinbutton_recreation"); GLADE_HOOKUP_OBJECT (window_options, hseparator8, "hseparator8"); GLADE_HOOKUP_OBJECT (window_options, hbox16, "hbox16"); GLADE_HOOKUP_OBJECT (window_options, label47, "label47"); GLADE_HOOKUP_OBJECT (window_options, label_training, "label_training"); GLADE_HOOKUP_OBJECT (window_options, label43, "label43"); GLADE_HOOKUP_OBJECT (window_options, vbox11, "vbox11"); GLADE_HOOKUP_OBJECT (window_options, hbox17, "hbox17"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_news_user, "checkbutton_news_user"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_news_cup, "checkbutton_news_cup"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_news_league, "checkbutton_news_league"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_news_recent, "checkbutton_news_recent"); GLADE_HOOKUP_OBJECT (window_options, hbox18, "hbox18"); GLADE_HOOKUP_OBJECT (window_options, radiobutton_news_popup_no, "radiobutton_news_popup_no"); GLADE_HOOKUP_OBJECT (window_options, radiobutton_news_popup_user, "radiobutton_news_popup_user"); GLADE_HOOKUP_OBJECT (window_options, radiobutton_news_popup_always, "radiobutton_news_popup_always"); GLADE_HOOKUP_OBJECT (window_options, label48, "label48"); GLADE_HOOKUP_OBJECT (window_options, hseparator1, "hseparator1"); GLADE_HOOKUP_OBJECT (window_options, hbox1, "hbox1"); GLADE_HOOKUP_OBJECT (window_options, vbox2, "vbox2"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_save_global, "checkbutton_save_global"); GLADE_HOOKUP_OBJECT (window_options, checkbutton_save_user, "checkbutton_save_user"); GLADE_HOOKUP_OBJECT (window_options, button_ok, "button_ok"); GLADE_HOOKUP_OBJECT (window_options, button_cancel, "button_cancel"); GLADE_HOOKUP_OBJECT_NO_REF (window_options, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_options), accel_group); return window_options; } GtkWidget* create_window_constants (void) { GtkWidget *window_constants; GtkWidget *vbox12; GtkWidget *notebook_constants; GtkWidget *scrolledwindow1; GtkWidget *treeview_constants_integer; GtkWidget *label50; GtkWidget *scrolledwindow2; GtkWidget *treeview_constants_float; GtkWidget *label51; GtkWidget *scrolledwindow3; GtkWidget *treeview_constants_string; GtkWidget *label52; GtkWidget *scrolledwindow4; GtkWidget *treeview_constants_app; GtkWidget *label53; GtkWidget *hseparator9; GtkWidget *button_constants_save; GtkWidget *alignment6; GtkWidget *hbox22; GtkWidget *image6; GtkWidget *label56; GtkWidget *button_constants_reload; GtkWidget *alignment4; GtkWidget *hbox20; GtkWidget *image4; GtkWidget *label54; GtkWidget *button_constants_close; GtkWidget *alignment5; GtkWidget *hbox21; GtkWidget *image5; GtkWidget *label55; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); window_constants = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window_constants), 5); gtk_window_set_position (GTK_WINDOW (window_constants), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (window_constants), 650, 600); vbox12 = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox12); gtk_container_add (GTK_CONTAINER (window_constants), vbox12); notebook_constants = gtk_notebook_new (); gtk_widget_show (notebook_constants); gtk_box_pack_start (GTK_BOX (vbox12), notebook_constants, TRUE, TRUE, 0); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_container_add (GTK_CONTAINER (notebook_constants), scrolledwindow1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN); treeview_constants_integer = gtk_tree_view_new (); gtk_widget_show (treeview_constants_integer); gtk_container_add (GTK_CONTAINER (scrolledwindow1), treeview_constants_integer); label50 = gtk_label_new (_("Integer")); gtk_widget_show (label50); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_constants), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_constants), 0), label50); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow2); gtk_container_add (GTK_CONTAINER (notebook_constants), scrolledwindow2); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN); treeview_constants_float = gtk_tree_view_new (); gtk_widget_show (treeview_constants_float); gtk_container_add (GTK_CONTAINER (scrolledwindow2), treeview_constants_float); label51 = gtk_label_new (_("Float")); gtk_widget_show (label51); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_constants), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_constants), 1), label51); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow3); gtk_container_add (GTK_CONTAINER (notebook_constants), scrolledwindow3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN); treeview_constants_string = gtk_tree_view_new (); gtk_widget_show (treeview_constants_string); gtk_container_add (GTK_CONTAINER (scrolledwindow3), treeview_constants_string); label52 = gtk_label_new (_("String")); gtk_widget_show (label52); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_constants), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_constants), 2), label52); scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow4); gtk_container_add (GTK_CONTAINER (notebook_constants), scrolledwindow4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_SHADOW_IN); treeview_constants_app = gtk_tree_view_new (); gtk_widget_show (treeview_constants_app); gtk_container_add (GTK_CONTAINER (scrolledwindow4), treeview_constants_app); label53 = gtk_label_new (_("Appearance")); gtk_widget_show (label53); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_constants), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_constants), 3), label53); hseparator9 = gtk_hseparator_new (); gtk_widget_show (hseparator9); gtk_box_pack_start (GTK_BOX (vbox12), hseparator9, FALSE, TRUE, 0); gtk_widget_set_size_request (hseparator9, -1, 10); button_constants_save = gtk_button_new (); gtk_widget_show (button_constants_save); gtk_box_pack_start (GTK_BOX (vbox12), button_constants_save, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_constants_save, _("Save changes to the constants file. DON'T DO THIS UNLESS YOU REALLY KNOW WHAT YOU ARE DOING."), NULL); alignment6 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment6); gtk_container_add (GTK_CONTAINER (button_constants_save), alignment6); hbox22 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox22); gtk_container_add (GTK_CONTAINER (alignment6), hbox22); image6 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image6); gtk_box_pack_start (GTK_BOX (hbox22), image6, FALSE, FALSE, 0); label56 = gtk_label_new_with_mnemonic (_("Save to file")); gtk_widget_show (label56); gtk_box_pack_start (GTK_BOX (hbox22), label56, FALSE, FALSE, 0); button_constants_reload = gtk_button_new (); gtk_widget_show (button_constants_reload); gtk_box_pack_start (GTK_BOX (vbox12), button_constants_reload, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_constants_reload, _("Reload constants files. This will overwrite any changes you made in the current game session."), NULL); alignment4 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment4); gtk_container_add (GTK_CONTAINER (button_constants_reload), alignment4); hbox20 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox20); gtk_container_add (GTK_CONTAINER (alignment4), hbox20); image4 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image4); gtk_box_pack_start (GTK_BOX (hbox20), image4, FALSE, FALSE, 0); label54 = gtk_label_new_with_mnemonic (_("Reload from file")); gtk_widget_show (label54); gtk_box_pack_start (GTK_BOX (hbox20), label54, FALSE, FALSE, 0); button_constants_close = gtk_button_new (); gtk_widget_show (button_constants_close); gtk_box_pack_start (GTK_BOX (vbox12), button_constants_close, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_constants_close, _("Close window. Changes will only be saved for the current session, unless you also save to file."), NULL); gtk_widget_add_accelerator (button_constants_close, "clicked", accel_group, GDK_Escape, (GdkModifierType) 0, GTK_ACCEL_VISIBLE); alignment5 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment5); gtk_container_add (GTK_CONTAINER (button_constants_close), alignment5); hbox21 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox21); gtk_container_add (GTK_CONTAINER (alignment5), hbox21); image5 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image5); gtk_box_pack_start (GTK_BOX (hbox21), image5, FALSE, FALSE, 0); label55 = gtk_label_new_with_mnemonic (_("Close")); gtk_widget_show (label55); gtk_box_pack_start (GTK_BOX (hbox21), label55, FALSE, FALSE, 0); g_signal_connect ((gpointer) window_constants, "destroy_event", G_CALLBACK (on_window_constants_destroy_event), NULL); g_signal_connect ((gpointer) window_constants, "delete_event", G_CALLBACK (on_window_constants_delete_event), NULL); g_signal_connect ((gpointer) button_constants_save, "clicked", G_CALLBACK (on_button_constants_save_clicked), NULL); g_signal_connect ((gpointer) button_constants_reload, "clicked", G_CALLBACK (on_button_constants_reload_clicked), NULL); g_signal_connect ((gpointer) button_constants_close, "clicked", G_CALLBACK (on_button_constants_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window_constants, window_constants, "window_constants"); GLADE_HOOKUP_OBJECT (window_constants, vbox12, "vbox12"); GLADE_HOOKUP_OBJECT (window_constants, notebook_constants, "notebook_constants"); GLADE_HOOKUP_OBJECT (window_constants, scrolledwindow1, "scrolledwindow1"); GLADE_HOOKUP_OBJECT (window_constants, treeview_constants_integer, "treeview_constants_integer"); GLADE_HOOKUP_OBJECT (window_constants, label50, "label50"); GLADE_HOOKUP_OBJECT (window_constants, scrolledwindow2, "scrolledwindow2"); GLADE_HOOKUP_OBJECT (window_constants, treeview_constants_float, "treeview_constants_float"); GLADE_HOOKUP_OBJECT (window_constants, label51, "label51"); GLADE_HOOKUP_OBJECT (window_constants, scrolledwindow3, "scrolledwindow3"); GLADE_HOOKUP_OBJECT (window_constants, treeview_constants_string, "treeview_constants_string"); GLADE_HOOKUP_OBJECT (window_constants, label52, "label52"); GLADE_HOOKUP_OBJECT (window_constants, scrolledwindow4, "scrolledwindow4"); GLADE_HOOKUP_OBJECT (window_constants, treeview_constants_app, "treeview_constants_app"); GLADE_HOOKUP_OBJECT (window_constants, label53, "label53"); GLADE_HOOKUP_OBJECT (window_constants, hseparator9, "hseparator9"); GLADE_HOOKUP_OBJECT (window_constants, button_constants_save, "button_constants_save"); GLADE_HOOKUP_OBJECT (window_constants, alignment6, "alignment6"); GLADE_HOOKUP_OBJECT (window_constants, hbox22, "hbox22"); GLADE_HOOKUP_OBJECT (window_constants, image6, "image6"); GLADE_HOOKUP_OBJECT (window_constants, label56, "label56"); GLADE_HOOKUP_OBJECT (window_constants, button_constants_reload, "button_constants_reload"); GLADE_HOOKUP_OBJECT (window_constants, alignment4, "alignment4"); GLADE_HOOKUP_OBJECT (window_constants, hbox20, "hbox20"); GLADE_HOOKUP_OBJECT (window_constants, image4, "image4"); GLADE_HOOKUP_OBJECT (window_constants, label54, "label54"); GLADE_HOOKUP_OBJECT (window_constants, button_constants_close, "button_constants_close"); GLADE_HOOKUP_OBJECT (window_constants, alignment5, "alignment5"); GLADE_HOOKUP_OBJECT (window_constants, hbox21, "hbox21"); GLADE_HOOKUP_OBJECT (window_constants, image5, "image5"); GLADE_HOOKUP_OBJECT (window_constants, label55, "label55"); GLADE_HOOKUP_OBJECT_NO_REF (window_constants, tooltips, "tooltips"); gtk_window_add_accel_group (GTK_WINDOW (window_constants), accel_group); return window_constants; } bygfoot-2.3.2/src/training.h0000755000175000017500000000354311225071373014727 0ustar eliaselias/* bet_struct.h Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef TRAINING_ #define TRAINING_ #include "team.h" #include "training_struct.h" #include "user.h" void calculateTrainingCamp(Team *current_team, gdouble value_training, gdouble value_recreation, gint number_camp); gfloat calculate_skill_points(gint value_training, gint number_camp, gfloat age, gfloat fitness, gfloat lsu); gfloat calculate_fitness_points(gint value_training, gint value_recreation, gint number_camp, gfloat age); gint calculate_recovery_points(gint value_recreation, gint number_camp, gfloat age); gint random_int(gint min, gint max); void calculateCostsTrainingCamp(gint number_camp); #endif /*TRAINING_*/ bygfoot-2.3.2/AUTHORS0000644000175000017500000000074111225071373013216 0ustar eliaseliasBygfoot Football Manager AUTHORS: Gyozo Both Mark Lawrenz mark@bygfoot.com http://bygfoot.sourceforge.net Homepage designer: Jose Geraldo Gouvea (Brazil) Icons: Mark Symonds (Australia) Windows port: Simon Binns (Australia) Patches and ideas: Mark Calderbank (England), Michal Rudolf (Poland) Country file contributors: See Help -> Contributors. Translators: See Help -> Contributors. Debian maintainer: Isaac Clerencia (Spain) FreeBSD port: Pav Lucistnik (Czech Republic) bygfoot-2.3.2/depcomp0000755000175000017500000004271311225071373013530 0ustar eliaselias#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2007-03-29.01 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # 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 2, 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # 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. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: bygfoot-2.3.2/COPYING0000644000175000017500000004311011225071373013176 0ustar eliaselias GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 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. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, 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 or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's 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 give any other recipients of the Program a copy of this License along with the Program. 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 Program or any portion of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, 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 Program, 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 Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) 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; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, 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 executable. However, as a special exception, the source code 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. If distribution of executable or 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 counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program 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. 5. 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 Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program 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 to this License. 7. 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 Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program 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 Program. 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. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program 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. 9. The Free Software Foundation may publish revised and/or new versions of the 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 Program 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 Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, 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 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 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 Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. 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 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 2 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, 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. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. bygfoot-2.3.2/UPDATE0000644000175000017500000000153211225071373013052 0ustar eliaseliasBygfoot Football Manager AUTHORS: Gyozo Both Mark Lawrenz (mark@bygfoot.com) http://bygfoot.sourceforge.net The bygfoot-update script is located in the 'b-u' directory of the source package (1.8 branch) or in the build directory (1.9 branch). After installing with 'make install' it will also be copied to PREFIX/bin, PREFIX mostly being /usr/local. The RPM package installs the script to /usr/bin. For the binary package, the script is located in the bygfoot-X.Y.Z-binary directory. Call the script with the '-h' or '--help' switch to see command line options. You can use the script to - keep your source package up-to-date using patches - download new releases - download official country file names (1.8 branch) - get a CVS version. If you have trouble or questions, email me or post at the forums: http://bygfoot.sourceforge.net/phpBB2/index.php bygfoot-2.3.2/support_files/0000755000175000017500000000000011225071373015042 5ustar eliaseliasbygfoot-2.3.2/support_files/bygfoot_user.conf0000644000175000017500000000413311225071373020421 0ustar eliaselias# Bygfoot Football Manager # Default user configuration file # Most of these options are uncommented because their meaning # is rather clear if you take a look at the options window in the game. int_opt_user_confirm_youth 1 int_opt_user_show_live_game 1 int_opt_user_live_game_speed 20 int_opt_user_live_game_verbosity 5 int_opt_user_show_tendency_bar 1 int_opt_user_pause_injury 1 int_opt_user_pause_red 1 int_opt_user_pause_break 1 int_opt_user_store_restore_default_team 1 int_opt_user_auto_sub 0 int_opt_user_show_job_offers 1 int_opt_user_swap_adapts 1 int_opt_user_show_overall 0 int_opt_user_show_all_leagues 0 int_opt_user_contract_limit 12 int_opt_user_penalty_shooter -1 int_opt_user_bet_show_all_leagues 0 int_opt_user_bet_show_cups 1 int_opt_user_bet_show_my_recent 1 int_opt_user_bet_default_wager 5000 # default training camp hotel int_opt_user_training_camp_hotel 1 int_opt_user_training_camp_recreation 5 # the order of these attributes is important # don't change it, only the values int_opt_user_pl1_att_name 1 int_opt_user_pl1_att_cpos 1 int_opt_user_pl1_att_pos 1 int_opt_user_pl1_att_cskill 1 int_opt_user_pl1_att_skill 1 int_opt_user_pl1_att_fitness 1 int_opt_user_pl1_att_games 1 int_opt_user_pl1_att_shots 1 int_opt_user_pl1_att_goals 1 int_opt_user_pl1_att_status 1 int_opt_user_pl1_att_cards 0 int_opt_user_pl1_att_age 1 int_opt_user_pl1_att_etal 1 int_opt_user_pl1_att_value 0 int_opt_user_pl1_att_wage 0 int_opt_user_pl1_att_contract 0 int_opt_user_pl1_att_team 0 int_opt_user_pl1_att_league_cup 0 # the order of these attributes is important # don't change it, only the values int_opt_user_pl2_att_name 1 int_opt_user_pl2_att_cpos 0 int_opt_user_pl2_att_pos 1 int_opt_user_pl2_att_cskill 0 int_opt_user_pl2_att_skill 1 int_opt_user_pl2_att_fitness 0 int_opt_user_pl2_att_games 0 int_opt_user_pl2_att_shots 0 int_opt_user_pl2_att_goals 0 int_opt_user_pl2_att_status 1 int_opt_user_pl2_att_cards 0 int_opt_user_pl2_att_age 1 int_opt_user_pl2_att_etal 1 int_opt_user_pl2_att_value 1 int_opt_user_pl2_att_wage 1 int_opt_user_pl2_att_contract 1 int_opt_user_pl2_att_team 0 int_opt_user_pl2_att_league_cup 0 bygfoot-2.3.2/support_files/definitions/0000755000175000017500000000000011225071373017355 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/0000755000175000017500000000000011225071373022200 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/ecuador/0000755000175000017500000000000011225071373023622 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/ecuador/country_ecuador.xml0000644000175000017500000000105311225071373027550 0ustar eliaselias Ecuador flag_ecuador.png ecuador 6 ecuador1 ecuador2 ecuador_serie_a_dos_a ecuador_serie_a_dos_b ecuador_serie_a_tres ecuador_serie_b_final libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/ecuador/league_ecuador2.xml0000644000175000017500000000305411225071373027374 0ustar eliaselias ecuador2 2 Serie B Serie B flag_ecuador.png 6800 latinoamerica 7 1 5 4 1 25 Aucas 6800 Manta 6800 Imbabura 6800 L. Loja 6800 L. Portoviejo 6800 A. Audaz 6800 Rocafuerte 6800 Grecia 6800 Independiente J. T. 6800 D. Municipal 6800 bygfoot-2.3.2/support_files/definitions/south_america/ecuador/league_ecuador1.xml0000644000175000017500000000502011225071373027366 0ustar eliaselias ecuador1 1 Serie A Serie A flag_ecuador.png 7400 latinoamerica 7 1 3 4 15 16 5 2 11 12 ecuador2 relegation ecuador1 ecuador2 2 ecuador_serie_b_final L. D. Quito 7400 Cuenca 7400 Olmedo 7400 S. D. Quito 7400 Emelec 7400 Barcelona 7400 Nacional 7400 Espoli 7400 U. Católica 7400 Macará 7400 Universitario 7400 Azogues 7400 bygfoot-2.3.2/support_files/definitions/south_america/ecuador/cup_ecuador_serie_a_tres.xml0000644000175000017500000000165211225071373031365 0ustar eliaselias Serie A: Final Serie A Final flag_ecuador.png ecuador_serie_a_tres 37 46 1 national highlight1 1 1 Final ecuador_serie_a_dos_a 3 1 3 ecuador_serie_a_dos_b 3 1 3 bygfoot-2.3.2/support_files/definitions/south_america/ecuador/cup_ecuador_serie_b_final.xml0000644000175000017500000000137211225071373031501 0ustar eliaselias Serie B: Final Serie B: Final flag_ecuador.png ecuador_serie_b_final 43 48 1 promotion national highlight1 1 2 Final ecuador2 4 1 4 bygfoot-2.3.2/support_files/definitions/south_america/ecuador/cup_ecuador_serie_a_dos_a.xml0000644000175000017500000000312411225071373031471 0ustar eliaselias Serie A: Grupo A Serie A: GA flag_ecuador.png ecuador_serie_a_dos_a 27 36 1 national omit_from_history 1 0 ecuador1 1 1 1 ecuador1 1 3 3 ecuador1 1 5 5 ecuador1 1 7 7 ecuador1 1 9 9 ecuador1 1 11 11 bygfoot-2.3.2/support_files/definitions/south_america/ecuador/cup_ecuador_serie_a_dos_b.xml0000644000175000017500000000312611225071373031474 0ustar eliaselias Serie A: Grupo B Serie A: GB flag_ecuador.png ecuador_serie_a_dos_b 27 36 1 national omit_from_history 1 0 ecuador1 1 2 2 ecuador1 1 4 4 ecuador1 1 6 6 ecuador1 1 8 8 ecuador1 1 10 10 ecuador1 1 12 12 bygfoot-2.3.2/support_files/definitions/south_america/colombia/0000755000175000017500000000000011225071373023765 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/colombia/country_colombia.xml0000644000175000017500000000115111225071373030055 0ustar eliaselias Colombia flag_colombia.png colombia 6 colombia1 colombia2 mustang1a mustang1b mustang1 mustang2a mustang2b mustang2 copa_premier_fase1 copa_premier_fase2 copa_premier_final copa_colombia libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_copa_premier_fase1.xml0000644000175000017500000000123111225071373031077 0ustar eliaselias Copa Premier CPremier1 flag_colombia.png copa_premier_fase1 0 33 1 national omit_from_history 2 4 3 Fase 1 colombia2 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_mustang2.xml0000755000175000017500000000141511225071373027122 0ustar eliaselias Copa Mustang II Mustang II flag_colombia.png mustang2 47 48 1 national highlight1 mustang2a 1 1 1 mustang2b 1 1 1 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_mustang2b.xml0000755000175000017500000000260311225071373027264 0ustar eliaselias Copa Mustang II: Grupo B Mustang IIB flag_colombia.png mustang2b 41 46 1 national omit_from_history highlight2 1 0 colombia1 1 2 2 2 colombia1 1 4 4 2 colombia1 1 6 6 2 colombia1 1 8 8 2 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_mustang1b.xml0000755000175000017500000000260211225071373027262 0ustar eliaselias Copa Mustang I: Grupo B Mustang IB flag_colombia.png mustang1b 20 25 1 national omit_from_history highlight2 1 0 colombia1 1 2 2 1 colombia1 1 4 4 1 colombia1 1 6 6 1 colombia1 1 8 8 1 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_mustang2a.xml0000755000175000017500000000260211225071373027262 0ustar eliaselias Copa Mustang II: Grupo A Mustang IA flag_colombia.png mustang2a 41 46 1 national omit_from_history highlight1 1 0 colombia1 1 1 1 2 colombia1 1 3 3 2 colombia1 1 5 5 2 colombia1 1 7 7 2 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_mustang1.xml0000755000175000017500000000141311225071373027117 0ustar eliaselias Copa Mustang I Mustang I flag_colombia.png mustang1 26 27 1 national highlight1 mustang1a 1 1 1 mustang1b 1 1 1 bygfoot-2.3.2/support_files/definitions/south_america/colombia/league_colombia1.xml0000644000175000017500000000700711225071373027703 0ustar eliaselias colombia1 1 Primera División Primera flag_colombia.png 7400 latinoamerica 7 1 1 2 5 6 10 11 14 15 19 20 23 24 29 30 32 33 5 2 9 17 18 colombia2 relegation 1 27 Nacional 7400 Cúcuta 7400 Boyacá 7400 D. Cali 7400 A. Cali 7400 Bucaramanga 7400 Huila 7400 Quindío 7400 Tolima 7400 Pasto 7400 Pereira 7400 Envigado 7400 I. Medellín 7400 Junior 7400 La Equidad 7400 Millonarios 7400 O. Caldas 7400 Santa Fé 7400 bygfoot-2.3.2/support_files/definitions/south_america/colombia/league_colombia2.xml0000644000175000017500000000513411225071373027703 0ustar eliaselias colombia2 2 Primera B Primera B flag_colombia.png 6800 latinoamerica inactive omit_from_history colombia1 colombia2 2 copa_premier_final Academia 6800 A. Petrolera 6800 Barranquilla 6800 Bogotá 6800 Centauros 6800 Córdoba 6800 Cortulúa 6800 Depor 6800 Expreso R. 6800 Girardot 6800 Itaguí 6800 J. Soacha 6800 R. Santander 6800 Patriotas 6800 R. Cartagena 6800 Rionegro 6800 U. Magdalena 6800 Valledupar 6800 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_mustang1a.xml0000755000175000017500000000260211225071373027261 0ustar eliaselias Copa Mustang I: Grupo A Mustang IA flag_colombia.png mustang1a 20 25 1 national omit_from_history highlight1 1 0 colombia1 1 1 1 1 colombia1 1 3 3 1 colombia1 1 5 5 1 colombia1 1 7 7 1 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_copa_colombia.xml0000644000175000017500000000133511225071373030147 0ustar eliaselias Copa Colombia CColombia flag_colombia.png copa_colombia 0 43 3 national Fase 1 colombia1 colombia2 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_copa_premier_fase2.xml0000644000175000017500000000134311225071373031104 0ustar eliaselias Copa Premier CPremier2 flag_colombia.png copa_premier_fase2 34 40 1 national omit_from_history 2 2 Fase 2 copa_premier_fase1 8 1 8 bygfoot-2.3.2/support_files/definitions/south_america/colombia/cup_copa_premier_final.xml0000644000175000017500000000117711225071373031202 0ustar eliaselias Copa Premier CPremier3 flag_colombia.png copa_premier_final 41 45 1 promotion national copa_premier_fase2 4 1 4 bygfoot-2.3.2/support_files/definitions/south_america/venezuela/0000755000175000017500000000000011225071373024176 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/venezuela/league_venezuela1.xml0000644000175000017500000000510311225071373030320 0ustar eliaselias venezuela1 1 Primera División Primera flag_venezuela.png 7000 latinoamerica 7 1 5 2 7 1 27 17 18 venezuela2 relegation Caracas 7000 Maracaibo 7000 Mineros 7000 Aragua 7000 D. Táchira 7000 Minervén 7000 A. Vigía 7000 Carabobo 7000 D. Anzoátegui 7000 D. Italia 7000 E. Roja 7000 E. Mérida 7000 G. Lara 7000 Guanare 7000 Monagas 7000 Portuguesa 7000 Zamora 7000 Zulia 7000 ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootbygfoot-2.3.2/support_files/definitions/south_america/venezuela/cup_campeonato_nacional_venezuela2.xmlbygfoot-2.3.2/support_files/definitions/south_america/venezuela/cup_campeonato_nacional_venezuela2.x0000755000175000017500000000163011225071373033373 0ustar eliaselias Campeonato Nacional Segunda CN2 flag_venezuela.png campeonato_nacional_venezuela2 47 48 1 national promotion silent_on_fixture_error venezuela2 1 1 1 1 venezuela2 1 1 1 2 ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootbygfoot-2.3.2/support_files/definitions/south_america/venezuela/cup_campeonato_nacional_venezuela1.xmlbygfoot-2.3.2/support_files/definitions/south_america/venezuela/cup_campeonato_nacional_venezuela1.x0000755000175000017500000000155711225071373033402 0ustar eliaselias Campeonato Nacional CN flag_venezuela.png campeonato_nacional_venezuela1 47 48 1 national silent_on_fixture_error venezuela1 1 1 1 1 venezuela1 1 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/venezuela/country_venezuela.xml0000644000175000017500000000073711225071373030510 0ustar eliaselias Venezuela flag_venezuela.png venezuela 5 venezuela1 venezuela2 copa_venezuela campeonato_nacional_venezuela1 campeonato_nacional_venezuela2 libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/venezuela/cup_copa_venezuela.xml0000755000175000017500000000144611225071373030577 0ustar eliaselias Copa Venezuela Copa Venezuela flag_venezuela.png copa_venezuela 2 45 3 0 national Fase 1 venezuela1 venezuela2 bygfoot-2.3.2/support_files/definitions/south_america/venezuela/league_venezuela2.xml0000755000175000017500000000455411225071373030335 0ustar eliaselias venezuela2 2 Segunda División Primera flag_venezuela.png 6000 latinoamerica 7 1 5 2 11 1 27 1 2 venezuela1 promotion A. Piar 6000 A. Trujillo 6000 A. Varyná 6000 Baralt 6000 Caracas B 6000 C. Italo 6000 D. Barinas 6000 Hermandad G. 6000 P. Lara 6000 R. Espor 6000 Trujillanos 6000 UCLA 6000 UCV 6000 Unefa 6000 U. Lara 6000 Yaracuyanos 6000 bygfoot-2.3.2/support_files/definitions/south_america/argentina/0000755000175000017500000000000011225071373024150 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_reducido.xml0000644000175000017500000000403211225071373027336 0ustar eliaselias Torneo Reducido (1ra B M) Reducido flag_argentina.png reducido 44 48 1 national promotion highlight3 0 0 argentina3a 1 2 2 argentina3a 1 9 9 argentina3a 1 3 3 argentina3a 1 8 8 argentina3a 1 4 4 argentina3a 1 7 7 argentina3a 1 5 5 argentina3a 1 6 6 bygfoot-2.3.2/support_files/definitions/south_america/argentina/league_argentina1.xml0000644000175000017500000000543211225071373030251 0ustar eliaselias argentina1 1 Primera División Primera flag_argentina.png 8200 argentina 7 1 5 2 3 18 20 argentina2 relegation 1 27 B. Juniors 8200 Estudiantes 8200 S. Lorenzo 8200 R. Plate 8200 Arsenal 8200 Lanús 8200 A. Juniors 8200 Independiente 8200 Vélez 8200 Banfield 8200 Colón 8200 GyE Jujuy 8200 Godoy Cruz 8200 Huracán 8200 Newell's 8200 Rosario C. 8200 S. Martín 8200 Tigre 8200 GyE La Plata 8200 Racing 8200 bygfoot-2.3.2/support_files/definitions/south_america/argentina/league_argentina3a.xml0000644000175000017500000000720611225071373030415 0ustar eliaselias argentina3a 3 Primera B Metropolitana Primera B Metropolitana flag_argentina.png 6300 argentina 6 1 3 4 13 14 20 21 29 30 5 2 1 1 argentina2 promotion argentina2 argentina3a 1 reducido 20 21 argentina4a relegation Acassuso 6300 Almirante B. 6300 Armenio 6300 Atlanta 6300 Atlético B. 6300 C. Córdoba 6300 Comunicaciones 6300 D. Belgrano 6300 Colegiales 6300 Español 6300 Estudiantes B. A. 6300 Flandria 6300 S. Italiano 6300 N. Chicago 6300 Merlo 6300 Morón 6300 S. Telmo 6300 Sarmiento 6300 Talleres B. A. 6300 Temperley 6300 Tristán S. 6300 bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_a_fase1.xml0000644000175000017500000000137211225071373031111 0ustar eliaselias Torneo Argentino A Argentino A flag_argentina.png argentino_a_fase1 0 36 1 national omit_from_history highlight2 3 2 2 4 Fase 1 argentina3b bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_b_final.xml0000644000175000017500000000131311225071373031177 0ustar eliaselias Torneo Argentino B Argentino B flag_argentina.png argentino_b_final 44 46 promotion 1 national highlight2 Ascenso argentino_b_fase2 4 1 4 bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_a_final.xml0000644000175000017500000000121211225071373031174 0ustar eliaselias Torneo Argentino A Argentino A flag_argentina.png argentino_a_final 44 46 promotion 1 national highlight2 argentino_a_fase2 2 1 2 bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_a_descenso.xml0000644000175000017500000000135311225071373031714 0ustar eliaselias Descenso Argentino A-B Descenso Argentino A-B flag_argentina.png argentino_a_descenso 37 48 promotion 1 national highlight3 omit_from_history Descenso argentino_a_fase1 4 21 24 bygfoot-2.3.2/support_files/definitions/south_america/argentina/league_argentina4a.xml0000644000175000017500000000577311225071373030425 0ustar eliaselias argentina4a 4 Primera C Metropolitana Primera C Metropolitana flag_argentina.png 5800 argentina 6 1 5 2 1 1 argentina3a promotion argentina3a argentina4a 1 reducido_1c A. A. Rosario 5800 A. A. Merlo 5800 Barracas C. 5800 Cañuelas 5800 Colegiales V. L. 5800 Laferrere 5800 Dock Sud 5800 Porvenir Avellaneda 5800 Excursionistas 5800 Fenix 5800 Lamadrid 5800 J. J. Urquiza 5800 L. N. Alem 5800 C. Luján 5800 Sacachispas 5800 S. M. A. Brown 5800 San Miguel 5800 Barracas 5800 Dálmine 5800 V. S. Carlos 5800 bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_a_fase2.xml0000644000175000017500000000141311225071373031106 0ustar eliaselias Torneo Argentino A Argentino A flag_argentina.png argentino_a_fase2 37 43 1 national omit_from_history highlight2 2 1 Fase 2 argentino_a_fase1 8 1 8 bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_b_fase1.xml0000644000175000017500000000124311225071373031107 0ustar eliaselias Torneo Argentino B Argentino B flag_argentina.png argentino_b_fase1 0 36 1 national omit_from_history 8 2 6 Fase 1 argentina4b bygfoot-2.3.2/support_files/definitions/south_america/argentina/league_argentina3b.xml0000644000175000017500000000647411225071373030424 0ustar eliaselias argentina3b 3 Torneo Argentino A Argentino A flag_argentina.png 6300 argentina inactive omit_from_history argentina3b argentina4b 2 argentino_a_descenso Alvarado 6300 Cipolletti 6300 G. Brown 6300 H. Tres Arroyos 6300 J. Pergamino 6300 R. Lincoln 6300 Santamarina 6300 V. Mitre 6300 9 de Julio 6300 Ben Hur 6300 B. Unidos 6300 GyE Concepción 6300 Libertad 6300 Patronato 6300 R. Arroyo S. 6300 U. Sunchales 6300 Alumni 6300 C. C. S. Estero 6300 D. Maipú 6300 Desamparados 6300 GyE Mendoza 6300 J. Antoniana 6300 J. Unida 6300 Racing C. 6300 bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_reducido_1c.xml0000644000175000017500000000404011225071373027720 0ustar eliaselias Torneo Reducido (1ra C M) Reducido 1C flag_argentina.png reducido_1c 44 48 1 national promotion highlight3 0 0 argentina4a 1 2 2 argentina4a 1 9 9 argentina4a 1 3 3 argentina4a 1 8 8 argentina4a 1 4 4 argentina4a 1 7 7 argentina4a 1 5 5 argentina4a 1 6 6 bygfoot-2.3.2/support_files/definitions/south_america/argentina/country_argentina.xml0000644000175000017500000000137611225071373030434 0ustar eliaselias Argentina flag_argentina.png argentina 8 argentina1 argentina2 argentina3a argentina4a argentina3b argentina4b reducido reducido_1c argentino_a_fase1 argentino_a_fase2 argentino_a_final argentino_a_descenso argentino_b_fase1 argentino_b_fase2 argentino_b_final libertadores_ab sudamericana_ab recopa_ab mundial_clubes_ab bygfoot-2.3.2/support_files/definitions/south_america/argentina/cup_argentino_b_fase2.xml0000644000175000017500000000141511225071373031111 0ustar eliaselias Torneo Argentino B Argentino B flag_argentina.png argentino_b_fase2 37 43 1 national omit_from_history highlight2 4 1 Fase 2 argentino_b_fase1 16 1 16 bygfoot-2.3.2/support_files/definitions/south_america/argentina/league_argentina4b.xml0000644000175000017500000001331711225071373030417 0ustar eliaselias argentina4b 4 Torneo Argentino B Argentino B flag_argentina.png 5800 argentina inactive omit_from_history argentina3b argentina4b 2 argentino_b_final G. Paz 5800 A. Policial 5800 C. C. S. Estero 5800 Concepción 5800 Nuñorco 5800 A. Famaillá 5800 C. Norte 5800 GyT Salta 5800 S. A. Formosa 5800 Chaco F. E. 5800 T. Mandiyú 5800 A. Patronato 5800 Juventud U. 5800 C. Concordia 5800 Crucero N. 5800 A. Franco 5800 E. R. Cuarto 5800 Atenas 5800 S. M. Mendoza 5800 D. Guaymallén 5800 D. M. Mendoza 5800 A. A. Guaymallén 5800 Trinidad 5800 J. Alianza 5800 Douglas H. 5800 D. Belgrano 5800 L. Emilia 5800 GyE Santa Fe 5800 9J Morteros 5800 T. Federal 5800 S. Belgrano 5800 9J Rio Tercero 5800 Alvarado 5800 Sporting 5800 G. Universitario 5800 R. Olavarría 5800 D. Coreano 5800 T. Algarrobos 5800 Lincoln 5800 D. Salto 5800 R. Trelew 5800 D. Madryn 5800 Cruz del Sur 5800 I. Neuquén 5800 A. Maronese 5800 D. Roca 5800 B. Vista 5800 Liniers 5800 bygfoot-2.3.2/support_files/definitions/south_america/argentina/league_argentina2.xml0000644000175000017500000000626111225071373030253 0ustar eliaselias argentina2 2 Primera B Nacional Primera B Nacional flag_argentina.png 7000 argentina 7 1 5 2 3 1 3 argentina1 promotion argentina2 argentina3b 2 argentino_a_final 17 20 argentina3a argentina3b relegation Aldosivi 7000 Almagro 7000 A. Boys 7000 A. Rafaela 7000 Tucumán 7000 Belgrano 7000 Chacarita J. 7000 C. A. Infantiles 7000 Defensa y J. 7000 Ferro C. O. 7000 I. Rivadavia 7000 I. A. C. Córdoba 7000 L. Andes 7000 Olimpo 7000 Platense 7000 Quilmes 7000 S. M. San Juán 7000 Talleres C. 7000 Tiro F. 7000 Unión 7000 bygfoot-2.3.2/support_files/definitions/south_america/uruguay/0000755000175000017500000000000011225071373023701 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/uruguay/league_uruguay2.xml0000755000175000017500000000521311225071373027534 0ustar eliaselias uruguay2 2 Segunda División Segunda flag_uruguay.png 7000 latinoamerica 7 1 5 2 11 1 27 1 3 uruguay1 promotion 14 15 uruguay3 relegation Atenas 7000 Boston R. 7000 Cerrito 7000 D. Maldonado 7000 Durazno 7000 Sisley 7000 Fénix 7000 Huracán B. 7000 L. Luz 7000 Miramar M. 7000 P. Colonia 7000 Progreso 7000 Rentistas 7000 Rocha 7000 A. Sud América 7000 bygfoot-2.3.2/support_files/definitions/south_america/uruguay/cup_campeonato_nacional_uruguay2.xml0000755000175000017500000000156011225071373033134 0ustar eliaselias Campeonato Nacional Segunda CN2 flag_uruguay.png campeonato_nacional_uruguay2 47 48 1 national silent_on_fixture_error uruguay2 1 1 1 1 uruguay2 1 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/uruguay/cup_campeonato_nacional_uruguay1.xml0000755000175000017500000000154711225071373033140 0ustar eliaselias Campeonato Nacional CN flag_uruguay.png campeonato_nacional_uruguay1 47 48 1 national silent_on_fixture_error uruguay1 1 1 1 1 uruguay1 1 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/uruguay/league_uruguay3.xml0000755000175000017500000000513611225071373027541 0ustar eliaselias uruguay3 3 Segunda División Amateur Segunda Amateur flag_uruguay.png 6200 latinoamerica 7 1 3 4 15 16 28 29 35 36 5 4 1 1 27 1 2 uruguay2 promotion Albion 6200 A. Perú 6200 Basáñez 6200 Coraceros P. 6200 Huracán 6200 Mar F. 6200 Oriental 6200 Parque P. 6200 Platense 6200 Torque 6200 U. Montevideo 6200 V. Teresa 6200 bygfoot-2.3.2/support_files/definitions/south_america/uruguay/league_uruguay1.xml0000644000175000017500000000511711225071373027533 0ustar eliaselias uruguay1 1 Primera División Primera flag_uruguay.png 7700 latinoamerica 7 1 5 2 11 1 27 14 16 uruguay2 relegation Danubio 7700 Nacional 7700 M. Wanderers 7700 Defensor 7700 River 7700 Peñarol 7700 B. Vista 7700 C. Español 7700 Cerro 7700 C. Largo 7700 Juventud 7700 Liverpool 7700 Racing 7700 Rampla 7700 Tacuarembó 7700 V. Española 7700 bygfoot-2.3.2/support_files/definitions/south_america/uruguay/country_uruguay.xml0000644000175000017500000000077311225071373027716 0ustar eliaselias Uruguay flag_uruguay.png uruguay 7 uruguay1 uruguay2 uruguay3 campeonato_nacional_uruguay1 campeonato_nacional_uruguay2 campeonato_nacional_uruguay3 libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/uruguay/cup_campeonato_nacional_uruguay3.xml0000755000175000017500000000157011225071373033136 0ustar eliaselias Campeonato Nacional Segunda Amateur CN3 flag_uruguay.png campeonato_nacional_uruguay3 47 48 1 national silent_on_fixture_error uruguay3 1 1 1 1 uruguay3 1 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/paraguay/0000755000175000017500000000000011225071373024011 5ustar eliaselias././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootbygfoot-2.3.2/support_files/definitions/south_america/paraguay/cup_campeonato_nacional_paraguay1.xmlbygfoot-2.3.2/support_files/definitions/south_america/paraguay/cup_campeonato_nacional_paraguay1.xml0000755000175000017500000000155311225071373033355 0ustar eliaselias Campeonato Nacional CN flag_paraguay.png campeonato_nacional_paraguay1 47 48 1 national silent_on_fixture_error paraguay1 1 1 1 1 paraguay1 1 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/paraguay/country_paraguay.xml0000644000175000017500000000062111225071373030126 0ustar eliaselias Paraguay flag_paraguay.png paraguay 7 paraguay1 paraguay2 libertadores sudamericana recopa mundial_clubes campeonato_nacional_paraguay1 bygfoot-2.3.2/support_files/definitions/south_america/paraguay/league_paraguay1.xml0000644000175000017500000000515611225071373027756 0ustar eliaselias paraguay1 1 Primera División Primera flag_paraguay.png 7700 latinoamerica 7 1 3 4 15 16 28 29 35 36 5 4 1 11 12 paraguay2 relegation 1 27 Luqueño 7700 Libertad 7700 Cerro 7700 Olimpia 7700 12 de Octubre 7700 S. América 7700 Guaraní 7700 Nacional 7700 2 de Mayo 7700 Tacuary 7700 3 de Febrero 7700 S. Pettirossi 7700 bygfoot-2.3.2/support_files/definitions/south_america/paraguay/league_paraguay2.xml0000755000175000017500000000366111225071373027761 0ustar eliaselias paraguay2 2 División Intermedia Intermedia flag_paraguay.png 7000 latinoamerica 18 1 5 2 1 1 2 paraguay1 promotion G. Caballero 7000 Rubio N. 7000 S. Trinidense 7000 S. Colombia 7000 S. Iteno 7000 C. Porteño PF 7000 B. Aceval 7000 G. Díaz 7000 F. Mora 7000 P. Hayes 7000 bygfoot-2.3.2/support_files/definitions/south_america/bolivia/0000755000175000017500000000000011225071373023625 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/bolivia/cup_clausura_grupo_b.xml0000755000175000017500000000312111225071373030552 0ustar eliaselias Clausura: Grupo B Clausura B flag_bolivia.png clausura_grupo_b 29 40 1 national omit_from_history 1 0 bolivia1 1 2 2 bolivia1 1 4 4 bolivia1 1 6 6 bolivia1 1 8 8 bolivia1 1 10 10 bolivia1 1 12 12 bygfoot-2.3.2/support_files/definitions/south_america/bolivia/cup_clausura_final.xml0000755000175000017500000000233411225071373030213 0ustar eliaselias Clausura Clausura flag_bolivia.png clausura_final 42 46 1 national highlight1 0 clausura_grupo_a 1 1 1 clausura_grupo_b 1 2 2 clausura_grupo_b 1 1 1 clausura_grupo_a 1 2 2 bygfoot-2.3.2/support_files/definitions/south_america/bolivia/cup_clausura_grupo_a.xml0000755000175000017500000000311711225071373030556 0ustar eliaselias Clausura: Grupo A Clausura A flag_bolivia.png clausura_grupo_a 29 40 1 national omit_from_history 1 0 bolivia1 1 1 1 bolivia1 1 3 3 bolivia1 1 5 5 bolivia1 1 7 7 bolivia1 1 9 9 bolivia1 1 11 11 bygfoot-2.3.2/support_files/definitions/south_america/bolivia/country_bolivia.xml0000644000175000017500000000063511225071373027563 0ustar eliaselias Bolivia flag_bolivia.png bolivia 5 bolivia1 clausura_grupo_a clausura_grupo_b clausura_final libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/bolivia/league_bolivia1.xml0000644000175000017500000000350311225071373027400 0ustar eliaselias bolivia1 1 Primera División Primera flag_bolivia.png 7000 latinoamerica 7 1 5 2 R. Potosí 7000 S. José 7000 La Paz 7000 Bolivar 7000 Blooming 7000 Aurora 7000 Guabirá 7000 J. Wilstermann 7000 Universitario 7000 O. Petrolero 7000 T. Strongest 7000 R. Mamoré 7000 bygfoot-2.3.2/support_files/definitions/south_america/chile/0000755000175000017500000000000011225071373023264 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/chile/cup_copa_chile.xml0000644000175000017500000000156511225071373026752 0ustar eliaselias Copa Chile CChile flag_chile.png copa_chile 0 43 8 national weak_at_home Fase 1 0 chile1 chile2 0 0 0 0 1 bygfoot-2.3.2/support_files/definitions/south_america/chile/league_chile2.xml0000644000175000017500000000457111225071373026505 0ustar eliaselias chile2 2 Primera B Primera B flag_chile.png 6800 latinoamerica 7 1 3 4 15 16 28 29 35 36 5 4 1 1 27 1 2 chile1 promotion D. Copiapó 6800 Coquimbo U. 6800 Curicó U. 6800 F. Vial 6800 M. Iquique 6800 L. Schwager 6800 D. P. Montt 6800 S. Luis 6800 S. M. Arica 6800 S. Wanderers 6800 U. L. Calera 6800 U. S. Felipe 6800 bygfoot-2.3.2/support_files/definitions/south_america/chile/country_chile.xml0000644000175000017500000000066511225071373026664 0ustar eliaselias Chile flag_chile.png chile 6 chile1 chile2 copa_chile libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/chile/league_chile1.xml0000644000175000017500000000555411225071373026506 0ustar eliaselias chile1 1 Primera División Primera flag_chile.png 7400 latinoamerica 7 1 5 2 3 1 27 19 20 chile2 relegation Colo-Colo 7400 U. Católica 7400 Audax 7400 Nublense 7400 U. Chile 7400 Cobreloa 7400 Antofagasta 7400 Cobresal 7400 D. Concepción 7400 Everton 7400 Huachipato 7400 La Serena 7400 Melipilla 7400 O'Higgins 7400 Palestino 7400 Osorno 7400 Rangers 7400 Santiago M. 7400 U. Concepción 7400 U. Española 7400 bygfoot-2.3.2/support_files/definitions/south_america/brazil/0000755000175000017500000000000011225071373023463 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/brazil/league_brazil1.xml0000644000175000017500000000525111225071373027076 0ustar eliaselias brazil1 1 Serie A Serie A flag_brazil.png 8200 brazil 7 1 5 2 3 17 20 brazil2 relegation Fluminense 8200 São Paulo 8200 Santos 8200 Flamengo 8200 Cruzeiro 8200 Grêmio 8200 Palmeiras 8200 A. Mineiro 8200 Botafogo 8200 V. da Gama 8200 Internacional 8200 A. Paranaense 8200 Coritiba 8200 Figueirense 8200 Goiás 8200 Ipatinga 8200 Náutico 8200 Portuguesa 8200 Sport 8200 Vitória 8200 bygfoot-2.3.2/support_files/definitions/south_america/brazil/cup_copa_do_brasil.xml0000644000175000017500000000165411225071373030022 0ustar eliaselias Copa do Brasil Copa flag_brazil.png copa_do_brasil 0 47 3 national Pre Copa brazil1 14 7 20 brazil2 brazil3 bygfoot-2.3.2/support_files/definitions/south_america/brazil/cup_serie_c_final.xml0000644000175000017500000000131511225071373027636 0ustar eliaselias Serie C Serie C Final flag_brazil.png serie_c_final 31 46 1 national promotion 1 4 Final serie_c_fase3 8 1 8 bygfoot-2.3.2/support_files/definitions/south_america/brazil/league_brazil3.xml0000644000175000017500000001562111225071373027102 0ustar eliaselias brazil3 3 Serie C Serie C flag_brazil.png 6200 brazil inactive omit_from_history Rio B. 6200 Luverdense 6200 Fast C. M. 6200 D. Pedro II G. 6200 Itumbiara 6200 Anapolis 6200 L. Brasilia 6200 A. B. Horizonte 6200 Duque C. 6200 Paulista J. 6200 Serra 6200 Guaratingueta 6200 Boavista S. 6200 Macae E. 6200 Linhares 6200 Ituiutaba 6200 N. Bauru 6200 Tupi J. F. 6200 Mirassol 6200 Ituano 6200 G. Campinas 6200 Madureira 6200 Linense 6200 Toledo 6200 Marcilio D. I. 6200 I. S. Maria 6200 AER I. Beltrao 6200 B. Pelotas 6200 SEeR C. S. 6200 J. Malucelli 6200 M. Blumenau 6200 Holanda M. 6200 Remo 6200 C. Macapa 6200 P. Macujai 6200 A. Marabá 6200 Paysandu 6200 Bacabal 6200 Palmas 6200 Sampaio C. 6200 Picos 6200 Barras 6200 Horizonte 6200 Campinense 6200 S. C. Recife 6200 P. Mossoro 6200 Caruaru 6200 Salgueiro 6200 Icasa J. N. 6200 SC S. Cruz 6200 Treze C. G. 6200 Arapiraca 6200 C. Aracaju 6200 A. Alagoinhas 6200 Petrolina 6200 ECPP V. Conquista 6200 Sergipe A. 6200 Itabuna 6200 Maceio 6200 Goianiense 6200 M. Cuiaba 6200 Operario 6200 R. Brilhante 6200 bygfoot-2.3.2/support_files/definitions/south_america/brazil/cup_serie_c_fase3.xml0000644000175000017500000000133511225071373027550 0ustar eliaselias Serie C: Fase 3 Serie C F3 flag_brazil.png serie_c_fase3 21 30 1 national omit_from_history 4 2 Fase 3 serie_c_fase2 16 1 16 bygfoot-2.3.2/support_files/definitions/south_america/brazil/cup_serie_c_fase1.xml0000644000175000017500000000116311225071373027545 0ustar eliaselias Serie C: Fase 1 Serie C F1 flag_brazil.png serie_c_fase1 0 12 1 national omit_from_history 16 2 Fase 1 brazil3 bygfoot-2.3.2/support_files/definitions/south_america/brazil/country_brazil.xml0000644000175000017500000000101311225071373027246 0ustar eliaselias Brazil flag_brazil.png brazil 8 brazil1 brazil2 brazil3 serie_c_fase1 serie_c_fase2 serie_c_fase3 serie_c_final copa_do_brasil libertadores_ab sudamericana_ab recopa_ab mundial_clubes_ab bygfoot-2.3.2/support_files/definitions/south_america/brazil/cup_serie_c_fase2.xml0000644000175000017500000000133511225071373027547 0ustar eliaselias Serie C: Fase 2 Serie C F2 flag_brazil.png serie_c_fase2 13 20 1 national omit_from_history 8 2 Fase 2 serie_c_fase1 32 1 32 bygfoot-2.3.2/support_files/definitions/south_america/brazil/league_brazil2.xml0000644000175000017500000000613211225071373027076 0ustar eliaselias brazil2 2 Serie B Serie B flag_brazil.png 7000 brazil 7 1 5 2 3 1 4 brazil1 promotion 17 20 brazil3 relegation brazil2 brazil3 4 serie_c_final ABC 7000 A. Natal 7000 Avaí 7000 Bahia 7000 Bragantino 7000 Brasiliense 7000 Ceará 7000 Corinthians 7000 CRB 7000 Criciúma 7000 Fortaleza 7000 Gama 7000 G. Barueri 7000 Juventude 7000 Marília 7000 Paraná 7000 P. Preta 7000 S. André 7000 S. Caetano 7000 V. Nova 7000 bygfoot-2.3.2/support_files/definitions/south_america/americas/0000755000175000017500000000000011225071373023764 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/americas/cup_mundial_clubes_ab.xml0000755000175000017500000000432411225071373031013 0ustar eliaselias Copa Mundial de Clubes CMundialClub mundial_clubes 5 2 750 51 52 0 international 4 0 1 Fase 1 england1 spain1 italy1 germany1 1 1 1 1 4 mexico1 usa_wconf usa_econf 1 1 1 1 4 australia1 1 1 1 1 6 japan1 1 1 1 1 6 2 0 1 recopa_ab 1 1 1 england1 spain1 italy1 germany1 1 1 1 1 4 2 0 1 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_recopa_ab.xml0000644000175000017500000000130211225071373027264 0ustar eliaselias Recopa Sudamericana Recopa recopa_ab 45 50 international sudamericana_ab 1 1 1 libertadores_ab 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_sudamericana.xml0000644000175000017500000001376211225071373030022 0ustar eliaselias Copa Sudamericana CS wc_samerica.png sudamericana 1 3 500 -1 44 1 international highlight2 -5 0 8 Fase 1 LEAGUE1 1 5 5 bolivia1 1 1 1 1 8 chile1 1 1 1 1 8 colombia1 1 1 1 1 8 ecuador1 1 1 1 1 8 paraguay1 1 1 1 1 8 peru1 1 1 1 1 8 uruguay1 1 1 1 1 8 venezuela1 1 1 1 1 8 -4 0 20 Fase 2 LEAGUE1 1 4 4 1 argentina1 6 1 1 1 14 1 brazil1 6 1 1 1 14 1 bolivia1 1 1 1 1 8 chile1 1 1 1 1 8 colombia1 1 1 1 1 8 ecuador1 1 1 1 1 8 peru1 1 1 1 1 8 venezuela1 1 1 1 1 8 mexico1 2 1 1 1 8 -3 0 4 Octavos de final argentina1 2 1 1 1 14 brazil1 2 1 1 1 14 -2 -1 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_sudamericana_ab.xml0000755000175000017500000001416711225071373030467 0ustar eliaselias Copa Sudamericana CS wc_samerica.png sudamericana_ab 1 3 500 -1 44 1 international highlight2 -5 0 8 Fase 1 bolivia1 1 1 1 1 8 chile1 1 1 1 1 8 colombia1 1 1 1 1 8 ecuador1 1 1 1 1 8 paraguay1 1 1 1 1 8 peru1 1 1 1 1 8 uruguay1 1 1 1 1 8 venezuela1 1 1 1 1 8 -4 0 20 Fase 2 LEAGUE1 6 3 8 1 argentina1 6 1 1 1 14 1 brazil1 6 1 1 1 14 1 bolivia1 1 1 1 1 8 chile1 1 1 1 1 8 colombia1 1 1 1 1 8 ecuador1 1 1 1 1 8 peru1 1 1 1 1 8 venezuela1 1 1 1 1 8 mexico1 2 1 1 1 8 -3 0 4 Octavos de final LEAGUE1 2 1 2 1 argentina1 2 1 1 1 14 1 brazil1 2 1 1 1 14 1 -2 -1 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_mundial_clubes.xml0000755000175000017500000000426511225071373030355 0ustar eliaselias Copa Mundial de Clubes CMundialClub mundial_clubes 5 2 750 51 52 0 international 0 1 4 Fase 1 england1 spain1 italy1 germany1 1 1 1 1 4 mexico1 usa_wconf usa_econf 1 1 1 1 4 australia1 1 1 1 1 6 japan1 1 1 1 1 6 0 1 2 recopa 1 1 1 england1 spain1 italy1 germany1 1 1 1 1 4 0 1 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_libertadores_ab.xml0000755000175000017500000001472211225071373030507 0ustar eliaselias Copa Libertadores CL wc_samerica.png libertadores_ab 1 3 750 -1 25 1 international highlight1 -5 0 12 Pre Copa LEAGUE1 2 5 6 1 argentina1 2 1 1 1 14 1 brazil1 2 1 1 1 14 1 bolivia1 1 1 1 1 6 chile1 1 1 1 1 6 colombia1 1 1 1 1 6 ecuador1 1 1 1 1 6 paraguay1 1 1 1 1 6 peru1 1 1 1 1 6 uruguay1 1 1 1 1 6 venezuela1 1 1 1 1 6 -4 8 2 26 Fase de grupos LEAGUE1 4 1 4 1 argentina1 4 1 1 1 14 brazil1 4 1 1 1 14 bolivia1 2 1 1 1 6 chile1 2 1 1 1 6 colombia1 2 1 1 1 6 ecuador1 2 1 1 1 6 paraguay1 2 1 1 1 6 peru1 2 1 1 1 6 uruguay1 2 1 1 1 6 venezuela1 2 1 1 1 6 mexico1 2 1 1 1 6 -3 -2 -1 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_libertadores.xml0000644000175000017500000001464411225071373030045 0ustar eliaselias Copa Libertadores CL wc_samerica.png libertadores 1 3 750 -1 25 1 international highlight1 -5 0 12 Pre Copa LEAGUE1 1 3 3 argentina1 2 1 1 1 14 1 brazil1 2 1 1 1 14 1 bolivia1 1 1 1 1 6 chile1 1 1 1 1 6 colombia1 1 1 1 1 6 ecuador1 1 1 1 1 6 paraguay1 1 1 1 1 6 peru1 1 1 1 1 6 uruguay1 1 1 1 1 6 venezuela1 1 1 1 1 6 -4 8 2 26 Fase de grupos LEAGUE1 2 1 2 1 argentina1 4 1 1 1 14 brazil1 4 1 1 1 14 bolivia1 2 1 1 1 6 chile1 2 1 1 1 6 colombia1 2 1 1 1 6 ecuador1 2 1 1 1 6 paraguay1 2 1 1 1 6 peru1 2 1 1 1 6 uruguay1 2 1 1 1 6 venezuela1 2 1 1 1 6 mexico1 2 1 1 1 6 -3 -2 -1 bygfoot-2.3.2/support_files/definitions/south_america/americas/cup_recopa.xml0000644000175000017500000000127111225071373026627 0ustar eliaselias Recopa Sudamericana Recopa recopa 45 50 international sudamericana 1 1 1 libertadores 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/peru/0000755000175000017500000000000011225071373023153 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/south_america/peru/cup_peru_elim.xml0000755000175000017500000000106711225071373026534 0ustar eliaselias peru_elim Copa Perú CPeruElim flag_peru.png 31 omit_from_history 8 2 3 Fase 1 peru3 bygfoot-2.3.2/support_files/definitions/south_america/peru/league_peru2.xml0000644000175000017500000000351211225071373026255 0ustar eliaselias peru2 2 Segunda División Segunda flag_peru.png 6000 peru 14 1 5 3 1 1 1 peru1 promotion 9 10 peru3 relegation A. Cochahuayco 6000 D. Aviación 6000 D. Municipal 6000 H. Acosvinchos 6000 Inti Gas 6000 L. P. Sporting 6000 S. Aguila 6000 T. Clean 6000 San Marcos 6000 U. T. C. 6000 bygfoot-2.3.2/support_files/definitions/south_america/peru/cup_cable_magico.xml0000644000175000017500000000152711225071373027136 0ustar eliaselias Copa Cable Mágico Cable Magico flag_peru.png cable_magico 47 48 1 national silent_on_fixture_error peru1 1 1 1 1 peru1 1 1 1 2 bygfoot-2.3.2/support_files/definitions/south_america/peru/league_peru1.xml0000644000175000017500000000704711225071373026263 0ustar eliaselias peru1 1 Primera División Primera flag_peru.png 7000 peru 7 1 1 2 5 6 9 10 14 15 18 19 22 23 28 29 32 33 36 37 40 41 44 45 49 50 5 4 1 1 27 13 14 peru2 relegation peru1 peru2 1 peru_final S. Martín 7000 C. Bolognesi 7000 Cienciano 7000 S. Ancash 7000 Universitario 7000 A. Lima 7000 S. Cristal 7000 Melgar 7000 S. Boys 7000 J. Aurich 7000 A. Atlético 7000 J. Gálvez 7000 C. Vallejo 7000 A. Minero 7000 bygfoot-2.3.2/support_files/definitions/south_america/peru/cup_peru_final.xml0000644000175000017500000000102011225071373026661 0ustar eliaselias peru_final Copa Perú CPeruFinal flag_peru.png promotion 43 45 peru 2 1 2 bygfoot-2.3.2/support_files/definitions/south_america/peru/cup_peru.xml0000644000175000017500000000147211225071373025523 0ustar eliaselias peru Copa Perú CPeru flag_peru.png 32 42 omit_from_history 4 2 Fase 2 peru_elim 16 1 16 Cuartos de final Semifinal bygfoot-2.3.2/support_files/definitions/south_america/peru/country_peru.xml0000644000175000017500000000070711225071373026437 0ustar eliaselias Perú flag_peru.png peru 5 peru1 peru2 peru3 peru_elim peru peru_final cable_magico libertadores sudamericana recopa mundial_clubes bygfoot-2.3.2/support_files/definitions/south_america/peru/league_peru3.xml0000644000175000017500000000721111225071373026256 0ustar eliaselias peru3 Copa Perú EqCPeru flag_peru.png 5200 peru 3 inactive omit_from_history A. Torino D. Pomalca S. Buenos Aires Higos U. Renovación P. Olimpia U. S. Sipán Agricobank D. Porvenir Amenaza V. S. Rosa Tarapoto S. Cayetano Comerciantes U. D. Huallaga C. Mannucci T. Chical C. N. I. Tecnológico S. Rosa Pucallpa A. D. O. O. Benavides A. Chalaco A. Pilsen U. Supe Bolognesi U. Huaral S. I. M. A. Cable Visión S. Huancayo M. Yanahuanca L. Huánuco A. Universidad Wanka U. Minas M. Acoria U. N. I. C. A. M. Huamanga S. Huamanga J. Guadalupe M. Acobamba Cobresol D. Piérola Dínamo I. D. U. N. S. A. A. Huracán Municipal Locumba Policial S. R. Garcilaso D. E. A. M. I. N. S. A. Diablos R. M. S. Jerónimo S. Rosa Quillabamba A. Ugarte J. La Joya Aurora bygfoot-2.3.2/support_files/definitions/asia/0000755000175000017500000000000011225071373020272 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/asia/japan/0000755000175000017500000000000011225071373021363 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-6.xml0000644000175000017500000000246111225071373024752 0ustar eliaselias japan4-6 Hokushinetsu League 1 Hokushinetsu 1 flag_japan.png 8 1 4900 japan 2 5 4 japan4-6 japan5-6 1 japan_prom5-6 8 8 japan5-6 relegation A. Niigata J.S.C. Matsumoto Yamaga Nagano E. Z. Kanazawa F. Ishikawa Niigata U. Ueda G. V. Toyama bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan2.xml0000644000175000017500000000477311225071373024615 0ustar eliaselias japan2 Division 2 J2 flag_japan.png 1 1 3 4 7 8 10 14 16 17 20 21 23 24 26 27 29 30 33 34 36 37 41 42 44 48 7000 japan 4 2 1 2 japan1 promotion 13 13 japan3 relegation Fukuoka C. Osaka Kyoto S. Tosu Sendai C. Sapporo Tokyo V. Yamagata Ehime Mito Hiratsuka S.B. Kusatsu Tokushima bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_nabisco.xml0000644000175000017500000000174411225071373025551 0ustar eliaselias League Cup L. Cup flag_japan.png japan_nabisco 25 2 national 5 1 3 japan1 18 1 18 japan2 2 1 2 0 1 bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_emperor.xml0000644000175000017500000000531511225071373025602 0ustar eliaselias Emperor's Cup Emp. Cup flag_japan.png japan_emperor -1 2 41 national weak_at_home 0 japan5-1 japan5-3 japan5-4a japan5-4b japan5-4c japan5-4d japan5-5a japan5-5b japan5-6 japan5-7 japan4-1 japan4-2 japan4-3 japan4-4 japan4-5 japan4-6 japan4-7 japan4-8 japan4-9 japan3 japan2 japan1 0 0 0 0 0 0 0 1 bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-5a.xml0000644000175000017500000000150011225071373025104 0ustar eliaselias japan5-5a Tohoku League 2 Block A Tohoku 2-A flag_japan.png 8 1 4000 japan 2 5 5 Akita C. Mizuzawa Tono Fuji V. Hachinohe Hokuto A. Aomori T. Shinwakai bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-4c.xml0000644000175000017500000000135311225071373025113 0ustar eliaselias japan5-4c Hokkaido League 2 Block C Hokkaido 2-C flag_japan.png 8 1 3975 japan 2 5 5 B. Kushiro C. Abashiri B.R. Kushiro K. Obihiro Ikeda A. D.A.K. Abashiri bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-4d.xml0000644000175000017500000000137011225071373025113 0ustar eliaselias japan5-4d Hokkaido League 2 Block D Hokkaido 2-D flag_japan.png 8 1 3975 japan 2 5 5 S. Hakodate N.S. Muroran W.K. R. Tomakomai Hakodate C.H. S. Tomakomai J.S.W. Muroran bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-4b.xml0000644000175000017500000000150311225071373025107 0ustar eliaselias japan5-4b Hokkaido League 2 Block B Hokkaido 2-B flag_japan.png 8 2 3975 japan 1 5 K. Ashikawa W. Dohoku K.S.C. Ashikawa M. Sorachi Sorachi N. Naie R. Sorachi R. Ashikawa bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-8.xml0000644000175000017500000000146211225071373024754 0ustar eliaselias japan4-8 Shikoku League Shikoku flag_japan.png 8 1 4750 japan 2 5 4 Kamatamare S. Nankoku K. Ehime S. S. Tokushima Ventana Showa Alex Sanwa bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-1.xml0000644000175000017500000000177611225071373024756 0ustar eliaselias japan5-1 Kansai League 2 Kansai 2 flag_japan.png 8 1 4100 japan 2 5 5 1 2 japan4-1 promotion Kyoto S. Takada H. Osaka Riseisha M. H.I. Kobe Kihoku R.G. Koka Kobe C. bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_prom5-4.xml0000644000175000017500000000320511225071373025330 0ustar eliaselias Hokkaido Promotion Playoff Hok. Playoff japan_prom5-4 flag_japan.png promotion highlight2 1000 1 1 0 1 2 japan5-4a 1 1 1 japan5-4b 1 1 1 japan5-4c 1 1 1 japan5-4d 1 1 1 1 0 1 2 japan4-4 2 7 8 bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_prom5-5.xml0000644000175000017500000000175511225071373025341 0ustar eliaselias Tohoku Promotion Playoff To. Playoff japan_prom5-5 flag_japan.png promotion highlight2 1000 1 0 japan5-5a 1 1 1 japan5-5b 1 1 1 japan4-5 1 8 8 bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-2.xml0000644000175000017500000000150211225071373024741 0ustar eliaselias japan4-2 Chugoku League Chugoku flag_japan.png 8 1 4750 japan 2 5 4 F. Okayama S. Chugoku C. Chugoku R. Yamaguchi Hiroshima F. J.F.E. S.N.N. H. Kasado Iwami bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_prom5-6.xml0000644000175000017500000000141011225071373025326 0ustar eliaselias Hoku-shin-etsu Promotion Playoff Ho. Playoff japan_prom5-6 flag_japan.png promotion highlight2 1000 1 japan4-6 1 7 7 japan5-6 1 2 2 bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_prom4.xml0000644000175000017500000000461511225071373025174 0ustar eliaselias Regional Promotion Playoff Reg. Playoff japan_prom4 flag_japan.png promotion highlight2 1000 1 1 0 6 1 japan4-1 2 1 2 japan4-2 2 1 2 japan4-3 2 1 2 japan4-4 2 1 2 japan4-5 2 1 2 japan4-6 2 1 2 japan4-7 2 1 2 japan4-8 2 1 2 japan4-9 2 1 2 japan3 2 17 18 bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-4a.xml0000644000175000017500000000133211225071373025106 0ustar eliaselias japan5-4a Hokkaido League 2 Block A Hokkaido 2-A flag_japan.png 8 1 3975 japan 2 5 5 Sapporo W. Sapporo H. Vankei Otaru Mikaho B.O. Sapporo bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-3.xml0000644000175000017500000000201411225071373024742 0ustar eliaselias japan5-3 Kanto League 2 Kanto 2 flag_japan.png 5 1 4100 japan 2 8 5 1 2 japan4-3 promotion M.S.D.F. Atsugi M. Hanno B. F. Chiba Nirasaki A. Ome Kanagawa T. Saitama Y. Ibaraki D. bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-7.xml0000644000175000017500000000171511225071373024755 0ustar eliaselias japan5-7 Tokai League 2 Tokai 2 flag_japan.png 8 1 4100 japan 2 5 5 1 2 japan4-7 promotion C.B. Fujieda K-M. Toyokawa M.H. T.C. Nagoya Fuyo Toyota M. Nagoya W. bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-5.xml0000644000175000017500000000216211225071373024747 0ustar eliaselias japan4-5 Tohoku League 1 Tohoku 1 flag_japan.png 8 1 4900 japan 2 5 4 japan4-5 japan5-5a japan5-5b 1 japan_prom5-5 G. Morioka N. Tokin Primeiro Sendai N. W. Shiogama Morioka Z. N.S. Kamaishi Furukawa bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_prom2.xml0000644000175000017500000000165011225071373025166 0ustar eliaselias J1|J2 Promotion Playoff J1|J2 Playoff japan_prom2 flag_japan.png promotion highlight2 1000 1 LEAGUE2 1 3 3 LEAGUE1 1 16 16 bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-7.xml0000644000175000017500000000201111225071373024742 0ustar eliaselias japan4-7 Tokai League 1 Tokai 1 flag_japan.png 8 1 4900 japan 2 5 4 7 8 japan5-7 relegation Shizuoka Y. Valente S.K. Chukyo M. Kogyo Fujieda C.H. H. Suzuka Kasugai Chukyo U. bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-6.xml0000644000175000017500000000202211225071373024744 0ustar eliaselias japan5-6 Hokushinetsu League 2 Hokushinetsu 2 flag_japan.png 8 1 4100 japan 2 5 5 1 1 japan4-6 promotion Teihens Kanazu T. Niigata Maruoka P. Antelope Toyama S. C. Niigata Nagano O.J. bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-9.xml0000644000175000017500000000167611225071373024764 0ustar eliaselias japan4-9 Kyushu League Kyushu flag_japan.png 8 1 4750 japan 2 1 4 H.L. Miyazaki V.V. Nagasaki N.S. Oita V. Kagoshima N.W. Kitakyushu Okinawa K.B. Okinawa K. M. Nagasaki Osumi N. Nanakuma T. bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-3.xml0000644000175000017500000000200611225071373024742 0ustar eliaselias japan4-3 Kanto League 1 Kanto 1 flag_japan.png 8 1 4900 japan 2 5 4 7 8 japan5-3 relegation Yokohama S.C.C. H.L. Sayama Yaita Saitama T. Fuchu Toho T. Machida Z. H. Tochigi bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan1.xml0000644000175000017500000000420611225071373024603 0ustar eliaselias japan1 Division 1 J1 flag_japan.png 1 1 4 8 9 15 16 19 20 22 23 7800 3 japan 1 japan1 japan2 1 japan_prom2 17 18 japan2 relegation Urawa Kawasaki G. Osaka Shimizu J. Iwata Kashima Nagoya G.E. Oita Yokohama F.M. Hiroshima J.U. Ichihara Chiba Omiya Tokyo Niigata Kofu Yokohama F.C. Kashiwa Kobe bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-4.xml0000644000175000017500000000222511225071373024746 0ustar eliaselias japan4-4 Hokkaido League 1 Hokkaido 1 flag_japan.png 8 1 4900 japan 2 5 4 japan4-4 japan5-4a japan5-4b japan5-4c japan5-4d 2 japan_prom5-4 N. Hokkaido B. Hokkaido Sapporo B. Hakodate T. Hokkaido Tokachi F.S. T. Kuriyama Ashikawa C.S.C. bygfoot-2.3.2/support_files/definitions/asia/japan/country_japan.xml0000644000175000017500000000177611225071373024774 0ustar eliaselias Japan 6 flag_japan.png japan japan1 japan2 japan3 japan4-1 japan4-2 japan4-3 japan4-4 japan4-5 japan4-6 japan4-7 japan4-8 japan4-9 japan5-1 japan5-3 japan5-4a japan5-4b japan5-4c japan5-4d japan5-5a japan5-5b japan5-6 japan5-7 japan_emperor japan_nabisco japan_supercup japan_prom2 japan_prom4 japan_prom5-4 japan_prom5-5 japan_prom5-6 bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan3.xml0000644000175000017500000000361311225071373024606 0ustar eliaselias japan3 Football League JFL flag_japan.png 4 1 6100 japan 2 3 1 1 japan2 promotion japan3 japan4-1 japan4-2 japan4-3 japan4-4 japan4-5 japan4-6 japan4-7 japan4-8 japan4-9 2 japan_prom4 Hamamatsu H.F.C. S.E. Shiga Y. Kurobe R. Kumamoto Y. Musashino Tochigi Toyama A.H. S.S. Tagajo A. Takasaki G. Tottori J.U. Ichihara Chiba C. Kariya F.C.R. Okinawa S.P. Muko R.K.U. Ryugasaki M.M. Mizushima Gifu T. Nikaho bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan5-5b.xml0000644000175000017500000000134011225071373025107 0ustar eliaselias japan5-5b Tohoku League 2 Block B Tohoku 2-B flag_japan.png 8 1 4000 japan 2 9 5 M. Matsushima N. Koriyama Kanai Shishigahama P. Fukushima Kureha bygfoot-2.3.2/support_files/definitions/asia/japan/league_japan4-1.xml0000644000175000017500000000200311225071373024735 0ustar eliaselias japan4-1 Kansai League 1 Kansai 1 flag_japan.png 8 1 4900 japan 2 5 4 7 8 japan5-1 relegation B. Kobe M.B. Kusatsu Kobe S. Sumoto A.S. L. Kyoto A.I.N. T. Osaka Kyoto B. bygfoot-2.3.2/support_files/definitions/asia/japan/cup_japan_supercup.xml0000644000175000017500000000140311225071373025771 0ustar eliaselias National Supercup Nat. Supercup japan_supercup 43 51 137 national 0 1 CUP1 1 1 1 LEAGUE1 1 1 2 bygfoot-2.3.2/support_files/definitions/australia/0000755000175000017500000000000011225071373021342 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/australia/aus_victoria/0000755000175000017500000000000011225071373024032 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic2nw.xml0000644000175000017500000000301311225071373030153 0ustar eliaselias aus_vic2nw Division 2 NW Div.2NW flag_aus_victoria.png 1 1 3800 australia 3 1 1 aus_vic1 promotion 11 12 aus_vic3nw relegation Banyule City Geelong Keilor Park Lalor U Moreland City Nth Geelong W Nth Sunshine E Pascoe Vale Thomastown D Westgate Williamstown Yarraville G bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic5nw.xml0000644000175000017500000000304411225071373030162 0ustar eliaselias aus_vic5nw Prov. Division 2 NW Prov.2NW flag_aus_victoria.png 1 1 3150 australia 6 1 2 aus_vic4nw promotion 11 12 aus_vic6nw relegation Brimbank City Collingwood City Melbourne City Melbourne U B Melton North City L Northern U Plenty Valley L Preston South South Yarra West Preston Whittlesea U bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic5se.xml0000644000175000017500000000302111225071373030140 0ustar eliaselias aus_vic5se Prov. Division 2 SE Prov.2SE flag_aus_victoria.png 1 1 3150 australia 6 1 2 aus_vic4se promotion 11 12 aus_vic6se relegation Dandenong W S Ashburton Beaumaris Brandon Park Dandenong W Lyndale U Melburnians O Mitcham U Noble Park Ringwood City Trinity G Xaverians O bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/cup_aus_vic_playoff2.xml0000644000175000017500000000153211225071373030657 0ustar eliaselias Playoffs Stage 2 Playoff2 flag_aus_victoria.png aus_vic_playoff2 1000 national highlight2 0 aus_vic1 1 10 10 aus_vic_playoff1 1 1 1 bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic4se.xml0000644000175000017500000000302711225071373030145 0ustar eliaselias aus_vic4se Prov. Division 1 SE Prov.1SE flag_aus_victoria.png 1 1 3300 australia 5 1 2 aus_vic3se promotion 11 12 aus_vic5se relegation Berwick City Carrum U Keysborough Monash U Noble Park U Riversdale Rowville E Seaford U Southern Suburbs Springvale City Templestowe E Warragul U bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vicprem.xml0000644000175000017500000000271211225071373030415 0ustar eliaselias aus_vicprem Premiership Prem. flag_aus_victoria.png 1 1 5200 australia 1 13 14 aus_vic1 relegation Altona M Bentleigh G Bulleen Z Essendon R Fawkner-Whittlesea Frankston P Green Gully C Heidelberg U Melbourne K Oakleigh C Preston L South Melbourne St. Albans S Sunshine G bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic3nw.xml0000644000175000017500000000277611225071373030173 0ustar eliaselias aus_vic3nw Division 3 NW Div.3NW flag_aus_victoria.png 1 1 3550 australia 4 1 2 aus_vic2nw promotion 11 12 aus_vic4nw relegation Albion R Altona City Ballarat Corio Darebin U Lalor Laverton Park Maribyrnong G Sunbury U Sydenham Park Werribee City Western E bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/cup_aus_vic_league.xml0000644000175000017500000000406611225071373030404 0ustar eliaselias League Cup League Cup flag_aus_victoria.png aus_vic_league 27 3 national 0 aus_vicprem aus_vic1 aus_vic2nw aus_vic2se aus_vic3nw aus_vic3se aus_vic4nw aus_vic4se aus_vic5nw aus_vic5se aus_vic6nw aus_vic6se 0 0 0 0 0 0 0 1 bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic6se.xml0000644000175000017500000000242111225071373030144 0ustar eliaselias aus_vic6se Prov. Division 3 SE Prov.3SE flag_aus_victoria.png 1 1 2900 australia 7 1 2 aus_vic5se promotion Berwick K Boroondara L Camberwell G Carey O Caulfield U Dandenong City Dandenong S Eltham North Endeavour Hills Mornington Scotch O B bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic6nw.xml0000644000175000017500000000250511225071373030164 0ustar eliaselias aus_vic6nw Prov. Division 3 NW Prov.3NW flag_aus_victoria.png 1 1 2900 australia 7 1 2 aus_vic5nw promotion Ascot Vale Bell Park Epping City Hallam Keon Park Meadow Park Melbourne T Northern F Reservoir U Thornbury U Watsonia Heights Youth U bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/cup_aus_vic_playoff1.xml0000644000175000017500000000152411225071373030657 0ustar eliaselias Playoffs Stage 1 Playoff1 flag_aus_victoria.png aus_vic_playoff1 1000 national highlight2 0 aus_vic2nw 1 2 2 aus_vic2se 1 2 2 bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/country_aus_victoria.xml0000644000175000017500000000127211225071373031031 0ustar eliaselias Aus_Victoria 3 flag_aus_victoria.png aus_victoria aus_vicprem aus_vic1 aus_vic2nw aus_vic2se aus_vic3nw aus_vic3se aus_vic4nw aus_vic4se aus_vic5nw aus_vic5se aus_vic6nw aus_vic6se aus_vic_league aus_vic_playoff1 aus_vic_playoff2 bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic1.xml0000644000175000017500000000367111225071373027617 0ustar eliaselias aus_vic1 Division 1 Div.1 flag_aus_victoria.png 1 1 4500 australia 2 1 2 aus_vicprem promotion 11 11 aus_vic2nw relegation 12 12 aus_vic2se relegation aus_vic1 aus_vic2nw aus_vic2se aus_vic_playoff2 Altona E Brunswick City Dandenong T Kingston City Knox City Langwarrin North Coburg U Northcote City Pt Melbourne S Richmond Western Suburbs Westvale bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic3se.xml0000644000175000017500000000302211225071373030137 0ustar eliaselias aus_vic3se Division 3 SE Div.3SE flag_aus_victoria.png 1 1 3550 australia 4 1 2 aus_vic2se promotion 11 12 aus_vic4se relegation Clayton Croydon City A Doveton Endeavour U Frankston S Heatherton U Monbulk Mooroolbark North Caulfield Nunawading City Sandringham City Waverley W bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic2se.xml0000644000175000017500000000303411225071373030141 0ustar eliaselias aus_vic2se Division 2 SE Div.2SE flag_aus_victoria.png 1 1 3800 australia 3 1 1 aus_vic1 promotion 11 12 aus_vic3se relegation Chelsea Clifton Hill U Cranbourne C Diamond Valley U Dingley City Doncaster R Eastern L Fitzroy City Morwell P South Springvale Springvale W.E. Stonnington City bygfoot-2.3.2/support_files/definitions/australia/aus_victoria/league_aus_vic4nw.xml0000644000175000017500000000302011225071373030153 0ustar eliaselias aus_vic4nw Prov. Division 1 NW Prov.1NW flag_aus_victoria.png 1 1 3300 australia 5 1 2 aus_vic3nw promotion 11 12 aus_vic5nw relegation Avondale Heights Brimbank Broadmeadows U Elwood City Geelong R Glenroy Hoppers Crossing Hume U La Trobe U Melbourne U Mill Park Moreland U bygfoot-2.3.2/support_files/definitions/australia/australia/0000755000175000017500000000000011225071373023327 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/australia/australia/country_australia.xml0000644000175000017500000000047111225071373027623 0ustar eliaselias Australia 5 flag_australia.png australia australia1 australia_a_league australia_playoffs bygfoot-2.3.2/support_files/definitions/australia/australia/league_australia1.xml0000644000175000017500000000154211225071373027443 0ustar eliaselias australia1 A-League A-Lg. flag_australia.png 1 1 5700 australia 3 Adelaide New Zealand K Queensland R Central Coast M Melbourne Newcastle Perth Sydney bygfoot-2.3.2/support_files/definitions/australia/australia/cup_australia_playoffs.xml0000644000175000017500000000136511225071373030615 0ustar eliaselias A-League Playoffs A-Lg. PO flag_australia.png australia_playoffs 1000 1 national highlight1 0 1 australia1 4 1 4 0 1 bygfoot-2.3.2/support_files/definitions/australia/australia/cup_australia_a_league.xml0000644000175000017500000000116311225071373030530 0ustar eliaselias A-League Cup A-League Cup flag_australia.png australia_a_league 24 5 national 0 australia1 0 0 bygfoot-2.3.2/support_files/definitions/miscellaneous/0000755000175000017500000000000011225071373022220 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/0000755000175000017500000000000011225071373023125 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/league_conmebol.xml0000644000175000017500000000423511225071373026773 0ustar eliaselias conmebol CONMEBOL CONMEBOL 9000 inactive 1 Argentina 8730 flag_argentina.png latinoamerica Brazil 9135 flag_brazil.png brazil Ecuador 8155 flag_ecuador.png latinoamerica Paraguay 8265 flag_paraguay.png latinoamerica Uruguay 8445 flag_uruguay.png latinoamerica Colombia 8405 flag_colombia.png latinoamerica Chile 7785 flag_chile.png latinoamerica Venezuela 7695 flag_venezuela.png latinoamerica Peru 7750 flag_peru.png peru Bolivia 7280 flag_bolivia.png latinoamerica bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_confederations_cup_qualifier.xml0000644000175000017500000000261211225071373032432 0ustar eliaselias Confederations Cup Qualifier Confederations Cup Qualifier confederations_cup_qualifier flag_fifa.png 2 55 23 1 international 1 2 4 0 1 copa_america 1 2 2 eurocup 1 2 2 cup_of_nations 1 2 2 asian_cup 1 2 2 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_eurocup_34.xml0000644000175000017500000000127611225071373026514 0ustar eliaselias EuroCup 3rd and 4th EuroCup 3rd and 4th eurocup_34 wc_europe.png 2 22 22 1 international 2 0 1 eurocup 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_eurocup.xml0000644000175000017500000000204311225071373026177 0ustar eliaselias EuroCup EuroCup eurocup wc_europe.png 2 22 15 1 international 4 2 16 1 0 1 eurocup_qualifiers 16 1 16 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/league_concacaf.xml0000644000175000017500000000442111225071373026727 0ustar eliaselias concacaf CONCACAF CONCACAF 7000 inactive 1 USA 8780 flag_usa.png usa Mexico 8790 flag_mexico.png latinoamerica Panama 7615 flag_panama.png Jamaica 8035 flag_jamaica.png usa El Salvador 6715 flag_el_salvador.png latinoamerica Costa Rica 8415 flag_costa_rica.png latinoamerica Guatemala 7825 flag_guatemala.png Honduras 8060 flag_honduras.png Canada 7575 flag_canada.png usa Trinidad and Tobago 8020 flag_tritob.png Nicaragua 6185 flag_nicaragua.png Dominican Republic 5755 flag_dominican.png bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_copa_america.xml0000644000175000017500000000262011225071373027121 0ustar eliaselias Copa América Copa América copa_america wc_samerica.png 2 13 7 1 international 3 2 2 12 1 0 1 conmebol gold_cup 1 2 2 gold_cup_34 1 1 1 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_cup_of_nations.xml0000644000175000017500000000207711225071373027532 0ustar eliaselias Cup of Nations Cup of Nations cup_of_nations wc_africa.png 2 21 13 1 international 4 2 16 1 0 1 cup_of_nations_qualifiers 16 1 16 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_samerica.xml0000644000175000017500000000127411225071373026777 0ustar eliaselias WC Qualification S. America WCQSAmerica wc_samerica wc_samerica.png 3 40 23 1 international 1 4 10 1 conmebol bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/league_caf.xml0000644000175000017500000001102311225071373025717 0ustar eliaselias caf CAF CAF 7000 inactive 1 Togo 7845 flag_togo.png Senegal 8395 flag_senegal.png Zambia 7905 flag_zambia.png Congo 6985 flag_congo.png Mali 7750 flag_mali.png Liberia 6520 flag_liberia.png Ghana 8000 flag_ghana.png Congo DR 7720 flag_congodr.png South Africa 7965 flag_rsa.png Burkina Faso 7500 flag_burkina_faso.png Cape Verde Islands 6800 flag_cpv.png Uganda 7340 flag_uganda.png Cameroon 8610 flag_cameroon.png Côte d'Ivoire 8345 flag_cdi.png Egypt 8540 flag_egypt.png Libya 7555 flag_libya.png Sudan 7340 flag_sudan.png Benin 6935 flag_benin.png Angola 7905 flag_angola.png Nigeria 8680 flag_nigeria.png Zimbabwe 7930 flag_zimbabwe.png Gabon 7240 flag_gabon.png Algeria 7525 flag_algeria.png Rwanda 7380 flag_rwanda.png Tunisia 8465 flag_tunisia.png Morocco 8230 flag_morocco.png Guinea 7985 flag_guinea.png Kenya 7355 flag_kenya.png Botswana 7270 flag_botswana.png Malawi 7180 flag_malawi.png bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_copa_america_34.xml0000644000175000017500000000132611225071373027431 0ustar eliaselias Copa América 3rd and 4th Copa América 3rd and 4th copa_america_34 wc_samerica.png 2 13 13 1 international 2 0 1 copa_america 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_cup_of_nations_qualifiers.xml0000644000175000017500000000132111225071373031745 0ustar eliaselias Cup of Nations Qualifiers Cup of Nations Qualifiers cup_of_nations_qualifiers wc_africa.png 3 12 0 1 international 8 2 30 1 caf bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_confederations_cup_34.xml0000644000175000017500000000135011225071373030675 0ustar eliaselias Confederations Cup 3rd and 4th Confederations Cup 3rd and 4th confederations_cup_34 wc_fifa.png 2 65 65 1 international 2 0 1 confederations_cup 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_gold_cup.xml0000644000175000017500000000177411225071373026323 0ustar eliaselias Gold Cup Gold Cup gold_cup wc_namerica.png 2 6 0 1 international 3 2 2 12 1 0 1 concacaf 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_asia_playoff.xml0000644000175000017500000000123511225071373027645 0ustar eliaselias WC Qualification Playoff Asia WCQAsiaPlayoff wc_asia_playoff wc_asia.png 3 44 41 international highlight2 2 wc_asia 2 5 6 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_africa.xml0000644000175000017500000000125311225071373026435 0ustar eliaselias WC Qualification Africa WCQAfrica wc_africa wc_africa.png 3 40 23 1 international 5 1 30 1 caf bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/league_ofc.xml0000644000175000017500000000345011225071373025742 0ustar eliaselias ofc OFC Oceania 6000 inactive 1 Australia 8060 flag_australia.png australia Solomon Islands 6465 flag_solomon.png New Zealand 6880 flag_nz.png australia Fiji 6525 flag_fiji.png Tahiti 6435 flag_tahiti.png Vanuatu 6285 flag_vanuatu.png Tonga 6100 Cook Islands 6100 New Caledonia 6100 Indonesia 6100 Samoa 6100 Papua New Guinea 6100 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_confederations_cup.xml0000644000175000017500000000414211225071373030371 0ustar eliaselias Confederations Cup Confederations Cup confederations_cup flag_fifa.png 2 65 56 1 international 2 8 0 1 2 confederations_cup_qualifier 2 1 2 copa_america 1 1 1 gold_cup 1 1 1 eurocup 1 1 1 nations_cup 1 1 1 cup_of_nations 1 1 1 asian_cup 1 1 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_final_34.xml0000644000175000017500000000126411225071373026611 0ustar eliaselias WC 3rd and 4th WC 3rd and 4th wc_final_34 wc_fifa.png 2 75 75 1 international 2 0 1 wc_final 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_nations_cup.xml0000644000175000017500000000162611225071373027045 0ustar eliaselias Nations Cup Nations Cup nations_cup wc_oceania.png 2 20 0 1 international 2 4 12 1 ofc 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_oceania_samerica.xml0000644000175000017500000000157411225071373030461 0ustar eliaselias WC Qualification Playoff Oceania/S. America WCQOceaniaSAmerica wc_oceania_samerica wc.png 3 41 44 1 international highlight2 2 wc_oceania 1 1 1 wc_samerica 1 5 5 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/league_afc.xml0000644000175000017500000001154611225071373025731 0ustar eliaselias afc AFC AFC 7000 inactive 1 Iran 8430 flag_iran.png Jordan 7565 flag_jordan.png Qatar 7665 flag_qatar.png Laos 5865 flag_laos.png Uzbekistan 7855 flag_uzbekistan.png Iraq 7975 flag_iraq.png Palestine 6920 flag_palestine.png Chinese Taipei 6195 flag_chtaipei.png Japan 8525 flag_japan.png Oman 7595 flag_oman.png India 6890 flag_india.png Singapore 7410 flag_singapore.png Kuwait 7690 flag_kuwait.png China PR 7725 flag_china.png Hong Kong 6905 flag_hongkong.png Malaysia 6730 flag_malaysia.png Korea DPR 7515 flag_korea_dpr.png United Arab Emirates 7695 flag_uae.png Thailand 7175 flag_thailand.png Yemen 6635 flag_yemen.png Bahrain 7940 flag_bahrain.png Syria 7480 flag_syria.png Tajikistan 6845 flag_tajikistan.png Kyrgyzstan 6365 flag_kyrgyzstan.png Korea Republic 8385 flag_korea.png Lebanon 6840 flag_lebanon.png Vietnam SR flag_vietnam.png Maldives 6575 flag_maldives.png Saudi Arabia 8255 flag_saudi_arabia.png Turkmenistan 6855 flag_turkmenistan.png Indonesia 7010 flag_indonesia.png Sri Lanka 6590 flag_sri_lanka.png bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_ncamerica.xml0000644000175000017500000000147311225071373027136 0ustar eliaselias WC Qualification N. + C. America WCNCAmerica wc_ncamerica wc_namerica.png 3 40 23 1 international 3 2 12 1 concacaf 1 3 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/league_uefa.xml0000644000175000017500000002142711225071373026117 0ustar eliaselias uefa UEFA UEFA flag_eu.png 9000 1 inactive Netherlands 8840 flag_netherlands.png netherlands Czech Republic 8860 flag_cz.png Romania 8425 flag_romania.png romania Finland 7995 flag_finland.png FYR Macedonia 7445 flag_macedonia.png Andorra 6715 flag_andorra.png Armenia 7080 flag_armenia.png Ukraine 8045 flag_ukraine.png Turkey 8630 flag_turkey.png Greece 8470 flag_greece.png Denmark 8680 flag_dk.png denmark Albania 7560 flag_albania.png Georgia 7295 flag_georgia.png Kazakhstan 6595 flag_kazakhstan.png Portugal 8750 flag_portugal.png brazil Slovakia 8065 flag_slovakia.png Russia 8225 flag_russia.png Latvia 7705 flag_latvia.png Estonia 7670 flag_estonia.png Liechtenstein 6800 flag_lie.png germany Luxembourg 6240 flag_lux.png belgium Switzerland 8240 flag_ch.png germany France 8745 flag_france.png france Israel 7995 flag_israel.png Republic of Ireland 8355 flag_ireland.png england Cyprus 7310 flag_cyprus.png Faroe Islands 6565 flag_fi.png Italy 8640 flag_italy.png italy Norway 8135 flag_norway.png Slovenia 7695 flag_slovenia.png Scotland 7880 flag_scotland.png scotland Belarus 7765 flag_belarus.png Moldova 7260 flag_moldova.png Poland 8385 flag_poland.png poland England 8705 flag_england.png england Austria 7655 flag_austria.png germany Northern Ireland 7345 flag_n_ireland.png england Azerbaijan 6960 flag_azerbaijan.png Wales 7690 flag_wales.png england Serbia and Montenegro 8050 flag_scg.png serbia Spain 8780 flag_spain.png brazil Bosnia-Herzegovina 7805 flag_bh.png serbia Belgium 7910 flag_belgium.png belgium Lithuania 7405 flag_lithuania.png San Marino 6145 flag_sm.png Sweden 8545 flag_sweden.png sweden Croatia 8430 flag_croatia.png Hungary 7675 flag_hungary.png hungary Bulgaria 8225 flag_bulgaria.png bulgaria Iceland 7315 flag_iceland.png Malta 6795 flag_malta.png Germany 8480 flag_germany.png germany bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_asia_ncamerica.xml0000644000175000017500000000161311225071373030127 0ustar eliaselias WC Qualification Playoff Asia/N. + C. America WCQAsiaNCAmericaPlayoff wc_asia_ncamerica wc.png 3 48 45 1 international highlight2 2 wc_asia_playoff 1 1 1 wc_ncamerica 1 4 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_cup_of_nations_34.xml0000644000175000017500000000133211225071373030031 0ustar eliaselias Cup of Nations 3rd and 4th Cup of Nations 3rd and 4th cup_of_nations_34 wc_africa.png 2 21 21 1 international 2 0 1 cup_of_nations 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_gold_cup_34.xml0000644000175000017500000000130211225071373026614 0ustar eliaselias Gold Cup 3rd and 4th Gold Cup 3rd and 4th gold_cup_34 wc_namerica.png 2 6 6 1 international 2 0 1 gold_cup 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_europe_playoffs.xml0000644000175000017500000000132411225071373030411 0ustar eliaselias WC Qualification Playoffs Europe WCQEurope PO wc_europe_playoffs wc_europe.png 3 41 44 1 international highlight2 4 0 wc_europe 4 13 16 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_eurocup_qualifiers.xml0000644000175000017500000000127511225071373030431 0ustar eliaselias EuroCup Qualifiers EuroCup Qualifiers eurocup_qualifiers wc_europe.png 3 14 0 1 international 8 2 52 1 uefa bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_asia.xml0000644000175000017500000000144011225071373026123 0ustar eliaselias WC Qualification Asia WCQAsia wc_asia wc_asia.png 3 40 23 1 international 8 1 32 1 afc 2 2 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_nations_cup_34.xml0000644000175000017500000000131711225071373027350 0ustar eliaselias Nations Cup 3rd and 4th Nations Cup 3rd and 4th nations_cup_34 wc_oceania.png 2 20 20 1 international 2 0 1 nations_cup 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_asian_cup_qualifiers.xml0000644000175000017500000000130011225071373030676 0ustar eliaselias Asian Cup Qualifiers Asian Cup Qualifiers asian_cup_qualifiers wc_asia.png 3 10 0 1 international 8 2 32 1 afc bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_europe.xml0000644000175000017500000000134611225071373026512 0ustar eliaselias WC Qualification Europe WCQEurope wc_europe wc_europe.png 3 40 23 1 international 8 1 4 52 1 uefa bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_oceania.xml0000644000175000017500000000127311225071373026611 0ustar eliaselias WC Qualification Oceania WCQOceania wc_oceania wc_oceania.png 3 40 23 1 international 0 12 1 ofc 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_asian_cup_34.xml0000644000175000017500000000130411225071373026764 0ustar eliaselias Asian Cup 3rd and 4th Asian Cup 3rd and 4th asian_cup_34 wc_asia.png 2 18 18 1 international 2 0 1 asian_cup 2 3 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_asian_cup.xml0000644000175000017500000000205111225071373026456 0ustar eliaselias Asian Cup Asian Cup asian_cup wc_asia.png 2 18 11 1 international 4 2 16 1 0 1 asian_cup_qualifiers 16 1 16 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/country_fifa.xml0000644000175000017500000000226511225071373026344 0ustar eliaselias Fifa -1 flag_fifa.png fifa 1 10 conmebol concacaf uefa ofc caf afc copa_america copa_america_34 gold_cup gold_cup_34 eurocup_qualifiers eurocup eurocup_34 nations_cup nations_cup_34 cup_of_nations_qualifiers cup_of_nations cup_of_nations_34 asian_cup_qualifiers asian_cup asian_cup_34 wc_samerica wc_ncamerica wc_oceania wc_oceania_samerica wc_europe wc_europe_playoffs wc_africa wc_asia wc_asia_playoff wc_asia_ncamerica confederations_cup_qualifier confederations_cup confederations_cup_34 wc_final wc_final_34 bygfoot-2.3.2/support_files/definitions/miscellaneous/fifa/cup_wc_final.xml0000644000175000017500000000460711225071373026307 0ustar eliaselias World Cup WC wc_final wc.png 2 75 50 1 international 0 1 32 8 2 wc_samerica 4 1 4 wc_asia 4 1 4 wc_ncamerica 3 1 3 wc_africa 5 1 5 wc_europe 12 1 12 wc_europe_playoffs 2 1 2 wc_oceania_samerica 1 1 1 wc_asia_ncamerica 1 1 1 0 1 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/euro08/0000755000175000017500000000000011225071373023342 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/euro08/league_euro08_europe_teams.xml0000644000175000017500000002100011225071372031270 0ustar eliaselias euro08_europe_teams Europe Europe flag_eu.png 9000 inactive 1 Portugal 8715 flag_portugal.png brazil Poland 8525 flag_poland.png poland Serbia and Montenegro 8005 flag_scg.png serbia Belgium 8040 flag_belgium.png belgium Finland 8145 flag_finland.png Armenia 7040 flag_armenia.png Azerbaijan 7055 flag_azerbaijan.png Austria 7665 flag_austria.png germany France 8850 flag_france.png france Italy 8625 flag_italy.png italy Ukraine 8180 flag_ukraine.png Scotland 7710 flag_scotland.png scotland Lithuania 7380 flag_lithuania.png Georgia 7305 flag_georgia.png Switzerland 8215 flag_ch.png germany Greece 8495 flag_greece.png Turkey 8655 flag_turkey.png Norway 8235 flag_norway.png Bosnia-Herzegovina 7775 flag_bh.png serbia Hungary 7785 flag_hungary.png hungary Moldova 7180 flag_moldova.png Malta 6805 flag_malta.png Czech Republic 8885 flag_cz.png Germany 8590 flag_germany.png germany Slovakia 8065 flag_slovakia.png Republic of Ireland 8470 flag_ireland.png england Wales 7605 flag_wales.png england Cyprus 7310 flag_cyprus.png San Marino 6140 flag_sm.png England 8690 flag_england.png england Croatia 8430 flag_croatia.png Russia 8345 flag_russia.png Israel 8080 flag_israel.png Estonia 7630 flag_estonia.png FYR Macedonia 7375 flag_macedonia.png Andorra 6840 flag_andorra.png Sweden 8700 flag_sweden.png sweden Spain 8750 flag_spain.png brazil Denmark 8605 flag_dk.png denmark Latvia 7820 flag_latvia.png Iceland 7465 flag_iceland.png Northern Ireland 7320 flag_n_ireland.png england Liechtenstein 6875 flag_lie.png germany Netherlands 8925 flag_netherlands.png netherlands Bulgaria 8065 flag_bulgaria.png bulgaria Slovenia 7950 flag_slovenia.png Romania 8300 flag_romania.png romania Albania 7570 flag_albania.png Belarus 7740 flag_belarus.png Luxembourg 6230 flag_lux.png belgium bygfoot-2.3.2/support_files/definitions/miscellaneous/euro08/cup_euro08_cup.xml0000644000175000017500000000465511225071372026735 0ustar eliaselias Euro 2008 Euro 2008 euro08_cup flag_euro08.png 3 1 international 25 50 7 2 2 0 euro08_europe_teams 8 1 8 euro08_europe_teams 7 9 15 euro08_europe_teams 7 16 22 euro08_europe_teams 7 23 29 euro08_europe_teams 7 30 36 euro08_europe_teams 7 37 43 euro08_europe_teams 7 44 50 2 0 1 4 2 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/euro08/country_euro08.xml0000644000175000017500000000051511225071372026771 0ustar eliaselias Euro 2008 -1 flag_euro08.png euro08 1 10 euro08_europe_teams euro08_cup bygfoot-2.3.2/support_files/definitions/miscellaneous/eu/0000755000175000017500000000000011225071373022631 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/eu/league_eu.xml0000644000175000017500000000667111225071373025320 0ustar eliaselias eu European Union EU flag_eu.png 9000 1 Vienna flag_austria.png germany Liège flag_belgium.png france Sofia flag_bulgaria.png bulgaria Famagusta flag_cyprus.png Prague flag_cz.png czech Aalborg flag_dk.png denmark Levadia flag_estonia.png Tampere flag_finland.png Lyon flag_france.png france B. München flag_germany.png germany Olympiacos flag_greece.png greece Budapest flag_hungary.png hungary Drogheda flag_ireland.png I. Milano flag_italy.png italy Ventspils flag_latvia.png Kaunas flag_lithuania.png Dudelange flag_lux.png Marsaxlokk flag_malta.png Eindhoven flag_netherlands.png W. Kraków flag_poland.png poland Porto flag_portugal.png brazil CFR Cluj flag_romania.png romania Bratislava flag_slovakia.png Domzale flag_slovenia.png R. Madrid flag_spain.png Göteborg flag_sweden.png sweden M. United flag_england.png england bygfoot-2.3.2/support_files/definitions/miscellaneous/eu/country_eu.xml0000644000175000017500000000032111225071373025543 0ustar eliaselias European Union 8 flag_eu.png eu eu bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/0000755000175000017500000000000011225071373022777 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/league_wc06_ncamerica_teams.xml0000644000175000017500000001416311225071372031021 0ustar eliaselias wc06_ncamerica_teams N. + C. America NCAmerica 7000 inactive 1 USA 8840 flag_usa.png usa Panama 7690 flag_panama.png Jamaica 8115 flag_jamaica.png El Salvador 6990 flag_el_salvador.png brazil Costa Rica 8500 flag_costa_rica.png brazil Guatemala 7855 flag_guatemala.png Honduras 8100 flag_honduras.png Canada 7580 flag_canada.png usa Mexico 8855 flag_mexico.png brazil Trinidad and Tobago 7885 flag_tritob.png St. Vincent and the Grenadines 6785 flag_vingren.png St. Kitts and Nevis 6865 flag_kittsnev.png bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_africa.xml0000644000175000017500000000301511225071372026452 0ustar eliaselias Qualification Africa QAfrica wc06_africa wc_africa.png 3 10 0 1 international 5 1 30 0 wc06_africa_teams 6 1 6 wc06_africa_teams 6 7 12 wc06_africa_teams 6 13 18 wc06_africa_teams 6 19 24 wc06_africa_teams 6 25 30 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/league_wc06_samerica_teams.xml0000644000175000017500000000426511225071372030665 0ustar eliaselias wc06_samerica_teams S. America SAmerica 9000 inactive 1 Argentina 8890 flag_argentina.png latinoamerica Brazil 9195 flag_brazil.png brazil Ecuador 8290 flag_ecuador.png latinoamerica Paraguay 8280 flag_paraguay.png latinoamerica Uruguay 8400 flag_uruguay.png latinoamerica Colombia 8385 flag_colombia.png latinoamerica Chile 7690 flag_chile.png latinoamerica Venezuela 7855 flag_venezuela.png latinoamerica Peru 7755 flag_peru.png latinoamerica Bolivia 7345 flag_bolivia.png latinoamerica bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_asia_playoff.xml0000644000175000017500000000124411225071372027664 0ustar eliaselias Qualification Playoff Asia QAsiaPlayoff wc06_asia_playoff wc_asia.png 3 1000 1 international highlight2 2 wc06_asia 2 5 6 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_oceania_samerica.xml0000644000175000017500000000155011225071372030472 0ustar eliaselias Qualification Playoff Oceania/S. America QOceaniaSAmerica wc06_oceania_samerica wc.png 3 1000 1 international highlight2 2 wc06_oceania 1 1 1 wc06_samerica 1 5 5 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_samerica.xml0000644000175000017500000000131211225071372027007 0ustar eliaselias Qualification S. America QSAmerica wc06_samerica wc_samerica.png 3 18 0 1 international 1 4 10 0 wc06_samerica_teams bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/country_wc06.xml0000644000175000017500000000150611225071372026064 0ustar eliaselias World Cup 2006 -1 flag_wc06.png wc06 1 10 wc06_europe_teams wc06_samerica_teams wc06_africa_teams wc06_asia_teams wc06_ncamerica_teams wc06_oceania_teams wc06_africa wc06_asia wc06_asia_playoff wc06_europe wc06_europe_playoffs wc06_ncamerica wc06_samerica wc06_oceania wc06_oceania_samerica wc06_asia_ncamerica wc06_final bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_europe.xml0000644000175000017500000000417511225071372026534 0ustar eliaselias Qualification Europe QEurope wc06_europe wc_europe.png 3 14 0 1 international 8 1 2 51 0 wc06_europe_teams 7 1 7 wc06_europe_teams 7 8 14 wc06_europe_teams 7 15 21 wc06_europe_teams 6 22 27 wc06_europe_teams 6 28 33 wc06_europe_teams 6 34 39 wc06_europe_teams 6 40 45 wc06_europe_teams 6 46 51 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_oceania.xml0000644000175000017500000000134211225071372026625 0ustar eliaselias Qualification Oceania QOceania wc06_oceania wc_oceania.png 3 12 0 1 international 1 2 6 0 wc06_oceania_teams bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/league_wc06_africa_teams.xml0000644000175000017500000001105211225071372030316 0ustar eliaselias wc06_africa_teams Africa Africa 7000 inactive 1 Togo 7925 flag_togo.png Senegal 8260 flag_senegal.png Zambia 7815 flag_zambia.png Congo 7075 flag_congo.png Mali 7890 flag_mali.png Liberia 6740 flag_liberia.png Ghana 7830 flag_ghana.png Congo DR 7725 flag_congodr.png South Africa 8110 flag_rsa.png Burkina Faso 7520 flag_burkina_faso.png Cape Verde Islands 6930 flag_cpv.png Uganda 7115 flag_uganda.png Cameroon 8440 flag_cameroon.png Côte d'Ivoire 7965 flag_cdi.png Egypt 8310 flag_egypt.png Libya 7660 flag_libya.png Sudan 7455 flag_sudan.png Benin 6825 flag_benin.png Angola 7810 flag_angola.png Nigeria 8360 flag_nigeria.png Zimbabwe 7990 flag_zimbabwe.png Gabon 7300 flag_gabon.png Algeria 7595 flag_algeria.png Rwanda 7280 flag_rwanda.png Tunisia 8435 flag_tunisia.png Morocco 8245 flag_morocco.png Guinea 7520 flag_guinea.png Kenya 7545 flag_kenya.png Botswana 7375 flag_botswana.png Malawi 7160 flag_malawi.png bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_ncamerica.xml0000644000175000017500000000245011225071372027151 0ustar eliaselias Qualification N. + C. America NCAmerica wc06_ncamerica wc_namerica.png 3 16 0 1 international 3 2 12 0 wc06_ncamerica_teams 4 1 4 wc06_ncamerica_teams 4 5 8 wc06_ncamerica_teams 4 9 12 1 3 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_asia_ncamerica.xml0000644000175000017500000000157211225071372030152 0ustar eliaselias Qualification Playoff Asia/N. + C. America QAsiaNCAmericaPlayoff wc06_asia_ncamerica wc.png 3 1000 1 international highlight2 2 wc06_asia_playoff 1 1 1 wc06_ncamerica 1 4 4 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_final.xml0000644000175000017500000000512311225071372026320 0ustar eliaselias World Cup 2006 W C2006 wc06_final wc.png 3 1000 1 international 0 1 32 8 2 wc06_samerica 4 1 4 wc06_asia 4 1 4 wc06_ncamerica 3 1 3 wc06_africa 5 1 5 wc06_europe 10 1 10 wc06_europe_playoffs 3 1 3 wc06_europe_teams 1 52 52 wc06_oceania_samerica 1 1 1 wc06_asia_ncamerica 1 1 1 0 1 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_europe_playoffs.xml0000644000175000017500000000127711225071372030437 0ustar eliaselias Qualification Playoffs Europe QEurope PO wc06_europe_playoffs wc_europe.png 3 1000 1 international highlight2 6 0 wc06_europe 6 11 16 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/cup_wc06_asia.xml0000644000175000017500000000425011225071372026144 0ustar eliaselias Qualification Asia QAsia wc06_asia wc_asia.png 3 12 0 1 international 8 1 32 0 wc06_asia_teams 4 1 4 wc06_asia_teams 4 5 8 wc06_asia_teams 4 9 12 wc06_asia_teams 4 13 16 wc06_asia_teams 4 17 20 wc06_asia_teams 4 21 24 wc06_asia_teams 4 25 28 wc06_asia_teams 4 29 32 2 2 bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/league_wc06_asia_teams.xml0000644000175000017500000001156611225071372030020 0ustar eliaselias wc06_asia_teams Asia Asia 7000 inactive 1 Iran 8510 flag_iran.png Jordan 7760 flag_jordan.png Qatar 7705 flag_qatar.png Laos 6055 flag_laos.png Uzbekistan 7855 flag_uzbekistan.png Iraq 7770 flag_iraq.png Palestine 6705 flag_palestine.png Chinese Taipei 6260 flag_chtaipei.png Japan 8580 flag_japan.png Oman 7685 flag_oman.png India 6720 flag_india.png Singapore 7370 flag_singapore.png Kuwait 7835 flag_kuwait.png China PR 7845 flag_china.png Hong Kong 6970 flag_hongkong.png Malaysia 7030 flag_malaysia.png Korea DPR 7575 flag_korea_dpr.png United Arab Emirates 7540 flag_uae.png Thailand 7425 flag_thailand.png Yemen 6755 flag_yemen.png Bahrain 7940 flag_bahrain.png Syria 7315 flag_syria.png Tajikistan 6570 flag_tajikistan.png Kyrgyzstan 6310 flag_kyrgyzstan.png Korea Republic 8385 flag_korea.png Lebanon 6990 flag_lebanon.png Vietnam SR flag_vietnam.png Maldives 6555 flag_maldives.png Saudi Arabia 8375 flag_saudi_arabia.png Turkmenistan 7140 flag_turkmenistan.png Indonesia 7375 flag_indonesia.png Sri Lanka 6555 flag_sri_lanka.png bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/league_wc06_europe_teams.xml0000644000175000017500000002152611225071372030377 0ustar eliaselias wc06_europe_teams Europe Europe flag_eu.png 9000 inactive 1 Netherlands 8925 flag_netherlands.png netherlands Czech Republic 8885 flag_czech.png czech Romania 8300 flag_romania.png romania Finland 8145 flag_finland.png FYR Macedonia 7375 flag_macedonia.png Andorra 6840 flag_andorra.png Armenia 7040 flag_armenia.png Ukraine 8180 flag_ukraine.png Turkey 8655 flag_turkey.png Greece 8495 flag_greece.png Denmark 8605 flag_dk.png denmark Albania 7570 flag_albania.png Georgia 7305 flag_georgia.png Kazakhstan 6520 flag_kazakhstan.png Portugal 8715 flag_portugal.png brazil Slovakia 8065 flag_slovakia.png Russia 8345 flag_russia.png Latvia 7820 flag_latvia.png Estonia 7630 flag_estonia.png Liechtenstein 6875 flag_lie.png germany Luxembourg 6230 flag_lux.png belgium Switzerland 8215 flag_ch.png germany France 8950 flag_france.png france Israel 8080 flag_israel.png Republic of Ireland 8470 flag_ireland.png england Cyprus 7310 flag_cyprus.png Faroe Islands 6720 flag_fi.png Italy 8625 flag_italy.png italy Norway 8235 flag_norway.png Slovenia 7950 flag_slovenia.png Scotland 7710 flag_scotland.png scotland Belarus 7740 flag_belarus.png Moldova 7180 flag_moldova.png Poland 8525 flag_poland.png poland England 8690 flag_england.png england Austria 7665 flag_austria.png germany Northern Ireland 7320 flag_n_ireland.png england Azerbaijan 7055 flag_azerbaijan.png Wales 7605 flag_wales.png england Serbia and Montenegro 8005 flag_scg.png serbia Spain 8750 flag_spain.png brazil Bosnia-Herzegovina 7775 flag_bh.png serbia Belgium 8040 flag_belgium.png belgium Lithuania 7380 flag_lithuania.png San Marino 6140 flag_sm.png Sweden 8700 flag_sweden.png sweden Croatia 8430 flag_croatia.png Hungary 7785 flag_hungary.png hungary Bulgaria 8065 flag_bulgaria.png bulgaria Iceland 7465 flag_iceland.png Malta 6805 flag_malta.png Germany 8590 flag_germany.png germany bygfoot-2.3.2/support_files/definitions/miscellaneous/wc06/league_wc06_oceania_teams.xml0000644000175000017500000000232211225071372030470 0ustar eliaselias wc06_oceania_teams Oceania Oceania 6000 inactive 1 Australia 7965 flag_australia.png australia Solomon Islands 6680 flag_solomon.png New Zealand 7100 flag_nz.png australia Fiji 6670 flag_fiji.png Tahiti 6685 flag_tahiti.png Vanuatu 6465 flag_vanuatu.png bygfoot-2.3.2/support_files/definitions/miscellaneous/misc/0000755000175000017500000000000011225071373023153 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/misc/cup_supercup_league_vs_cup.xml0000644000175000017500000000136111225071373031314 0ustar eliaselias National Supercup Nat. Supercup supercup_league_vs_cup 1000 137 national 0 1 CUP1 1 1 1 LEAGUE1 1 1 2 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/0000755000175000017500000000000011225071373023517 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa4.xml0000644000175000017500000007650211225071372027504 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa4 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 LEAGUE1 3 3 5 CUP1 1 1 6 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3g.xml0000644000175000017500000007650311225071372027653 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3g 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 LEAGUE1 2 4 5 CUP1 1 1 6 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa.xml0000644000175000017500000011366411225071372027421 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 1st qualifying round 74 CUP1 1 1 2 LEAGUE1 1 2 3 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3e.xml0000644000175000017500000007675211225071372027657 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3e 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 LEAGUE1 1 5 5 CUP1 1 1 6 CUP2 1 1 7 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootbygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_supercup_europe_intercontinental.xmlbygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_supercup_europe_intercontinental.xm0000644000175000017500000000164011225071372033621 0ustar eliaselias Intercontinental Cup Interc. Cup supercup_europe_intercontinental 1000 1200 international 0 1 2 europe_champ_league* 1 1 1 brazil1 argentina1 bolivia1 venezuela1 chile1 paraguay1 peru1 ecuador1 uruguay1 colombia1 mexico1 1 1 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3f.xml0000644000175000017500000007675211225071372027660 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3f 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 LEAGUE1 1 4 4 CUP1 1 1 5 CUP2 1 1 6 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league2s.xml0000644000175000017500000004335011225071372031352 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league2s 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 LEAGUE1 1 2 2 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 LEAGUE1 1 1 1 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3d.xml0000644000175000017500000007650311225071372027650 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3d 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 LEAGUE1 2 2 3 CUP1 1 1 4 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3a.xml0000644000175000017500000007652011225071372027644 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3a 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 LEAGUE1 2 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 CUP1 1 1 4 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3b.xml0000644000175000017500000007675411225071372027656 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3b 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 LEAGUE1 1 3 3 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 LEAGUE1 1 2 2 CUP1 1 1 4 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa1.xml0000644000175000017500000011316511225071372027476 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa1 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 CUP1 1 1 2 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league1b.xml0000644000175000017500000004307611225071372031335 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league1b 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 LEAGUE1 1 1 1 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa2g.xml0000644000175000017500000007650311225071372027652 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa2g 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 LEAGUE1 1 3 3 CUP1 1 1 4 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league2a.xml0000644000175000017500000004335011225071372031330 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league2a 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 LEAGUE1 1 2 2 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 LEAGUE1 1 1 1 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_supercup_europe_uefa.xml0000644000175000017500000000135111225071372031334 0ustar eliaselias UEFA Supercup UEFA SC supercup_europe_uefa 1000 international 0 1 europe_champ_league* 1 1 1 europe_uefa* 1 1 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league1a.xml0000644000175000017500000004614711225071372031336 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league1a 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 LEAGUE1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league.xml0000644000175000017500000004307511225071372031111 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 LEAGUE1 1 1 1 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league2.xml0000644000175000017500000004334711225071372031175 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league2 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 LEAGUE1 1 2 2 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 LEAGUE1 1 1 1 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa2a.xml0000644000175000017500000007650211225071372027643 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa2a 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 LEAGUE1 1 3 3 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 CUP1 1 1 4 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league4.xml0000644000175000017500000004335111225071372031172 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league4 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 LEAGUE1 2 3 4 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 LEAGUE1 2 1 2 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_uefa3i.xml0000644000175000017500000011343711225071372027653 0ustar eliaselias UEFA Cup UEFA Cup flag_eu.png europe_uefa3i 1 3 47 2 20 23 36 39 43 46 0 international league talents highlight1 74 bulgaria1 1 1 1 switzerland1 1 1 9 1 1 norway1 1 1 1 israel1 2 1 1 serbia1 2 1 1 denmark1 2 1 1 denmark1 #the cup winner here. 1 1 1 austria1 1 1 1 austria1 #the cup winner here. 1 1 1 poland1 1 1 1 poland1 #the cup winner here. 1 1 1 hungary1 1 1 1 hungary1 #the cup winner here. 1 1 1 slovakia1 1 1 1 slovakia1 #the cup winner here. 1 1 1 croatia1 1 1 1 croatia1 #the cup winner here. 1 1 1 cyprus1 1 1 1 cyprus1 #the cup winner here. 1 1 1 sweden_allsvenskan 1 1 1 sweden_allsvenskan #the cup winner here. 1 1 1 slovenia1 1 1 1 slovenia1 #the cup winner here. 1 1 1 bosnia_herzegovina1 1 1 1 bosnia_herzegovina1 #the cup winner here. 1 1 1 latvia1 1 1 1 latvia1 #the cup winner here. 1 1 1 lithuania1 1 1 1 lithuania1 #the cup winner here. 1 1 1 finland1 1 1 1 finland1 #the cup winner here. 1 1 1 moldova1 1 1 1 moldova1 #the cup winner here. 1 1 1 ireland1 1 1 1 ireland1 #the cup winner here. 1 1 1 georgia1 1 1 1 georgia1 #the cup winner here. 1 1 1 switzerland1 1 1 1 fyr_macedonia1 1 1 1 fyr_macedonia1 #the cup winner here. 1 1 1 iceland1 1 1 1 iceland1 #the cup winner here. 1 1 1 belarus1 1 1 1 belarus1 #the cup winner here. 1 1 1 albania1 1 1 1 albania1 #the cup winner here. 1 1 1 estonia1 1 1 1 estonia1 #the cup winner here. 1 1 1 armenia1 1 1 1 armenia1 #the cup winner here. 1 1 1 azerbaijan1 1 1 1 azerbaijan1 #the cup winner here. 1 1 1 kazakhstan1 1 1 1 kazakhstan1 #the cup winner here. 1 1 1 n_ireland1 1 1 1 n_ireland1 #the cup winner here. 1 1 1 wales1 1 1 1 wales1 #the cup winner here. 1 1 1 faroe_islands1 1 1 1 faroe_islands1 #the cup winner here. 1 1 1 luxembourg1 1 1 1 luxembourg1 #the cup winner here. 1 1 1 malta1 1 1 1 malta1 #the cup winner here. 1 1 1 andorra1 #the national cup winner here. 1 1 1 san_marino_group_a san_marino_group_b #the national cup winner here. 1 1 1 montenegro1 1 1 1 montenegro1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 3 1 1 0 -6 27 russia1 1 1 1 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 greece1 #the cup winner here. 1 1 1 bulgaria1 1 1 1 bulgaria1 #the cup winner here. 1 1 1 switzerland1 1 1 1 switzerland1 #the cup winner here. 1 1 1 norway1 1 1 1 norway1 #the cup winner here. 1 1 1 israel1 #the cup winner here. 1 1 1 serbia1 #the cup winner here. 1 1 1 albania1 andorra1 armenia1 austria1 azerbaijan1 belarus1 belgium1 bosnia_herzegovina1 bulgaria1 croatia1 cyprus1 czech1 denmark1 england1 estonia1 faroe_islands1 finland1 france1 fyr_macedonia1 georgia1 germany1 greece1 hungary1 iceland1 ireland1 israel1 italy1 kazakhstan1 latvia1 lithuania1 luxembourg1 malta1 moldova1 montenegro1 netherlands1 n_ireland1 norway1 poland1 portugal1 romania1 russia1 san_marino_group_a san_marino_group_b serbia1 scotland1 slovakia1 slovenia1 spain1 sweden_allsvenskan switzerland1 turkey1 ukraine1 wales1 11 1 1 0 -6 0 48 LEAGUE1 2 5 6 CUP1 1 1 7 spain1 2 1 1 spain1 #the cup winner here. 1 1 1 england1 1 1 1 england1 #the cup winner here. 1 1 1 england1 #the league cup winner here. 1 1 1 italy1 2 1 1 italy1 #the cup winner here. 1 1 1 france1 1 1 1 france1 #the cup winner here. 1 1 1 france1 #the league cup winner here. 1 1 1 germany1 2 1 1 germany1 #the cup winner here. 1 1 1 portugal1 2 1 1 portugal1 #the cup winner here. 1 1 1 romania1 3 1 1 romania1 #the cup winner here. 1 1 1 netherlands1 3 1 1 netherlands1 #the cup winner here. 1 1 1 russia1 #the cup winner here. 1 1 1 scotland1 #the cup winner here. 1 1 1 ukraine1 #the cup winner here. 1 1 1 belgium1 #the cup winner here. 1 1 1 czech1 #the cup winner here. 1 1 1 turkey1 #the cup winner here. 1 1 1 europe_champ_league* europe_champ_league* 1 0 16 17 32 0 -6 8 3 0 -5 8 europe_champ_league* 1 0 8 17 24 3 2 2 1 0 1 bygfoot-2.3.2/support_files/definitions/miscellaneous/europe/cup_europe_champ_league3.xml0000644000175000017500000004334711225071372031176 0ustar eliaselias UEFA Champions League UCL flag_eu.png europe_champ_league3 1 3 48 0 2 5 6 7 8 15 20 43 46 international league_talents highlight1 1st qualifying round 28 slovakia1 1 1 1 croatia1 1 1 1 cyprus1 1 1 1 sweden_allsvenskan 1 1 1 slovenia1 1 1 1 bosnia_herzegovina1 1 1 1 latvia1 1 1 1 lithuania1 1 1 1 finland1 1 1 1 moldova1 1 1 1 ireland1 1 1 1 georgia1 1 1 1 fyr_macedonia1 1 1 1 iceland1 1 1 1 belarus1 1 1 1 albania1 1 1 1 estonia1 1 1 1 armenia1 1 1 1 azerbaijan1 1 1 1 kazakhstan1 1 1 1 n_ireland1 1 1 1 wales1 1 1 1 faroe_islands1 1 1 1 luxembourg1 1 1 1 malta1 1 1 1 andorra1 1 1 1 san_marino_group_a san_marino_group_b 1 1 1 montenegro1 1 1 1 0 -9 2nd qualifying round 14 scotland1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 switzerland1 1 1 1 norway1 1 1 1 israel1 1 1 1 serbia1 1 1 1 denmark1 1 1 1 austria1 1 1 1 poland1 1 1 1 hungary1 1 1 1 0 -10 3rd qualifying round 18 LEAGUE1 1 3 3 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 1 1 1 germany1 1 1 1 portugal1 1 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 ukraine1 1 1 1 belgium1 1 1 1 czech1 1 1 1 turkey1 1 1 1 greece1 1 1 1 bulgaria1 1 1 1 -12 Group stage 8 2 16 LEAGUE1 2 1 2 spain1 2 1 1 england1 2 1 1 italy1 2 1 1 france1 2 1 1 germany1 2 1 1 portugal1 2 1 1 romania1 1 1 1 netherlands1 1 1 1 russia1 1 1 1 scotland1 1 1 1 -13 -1 1 0 1 bygfoot-2.3.2/support_files/definitions/north_america/0000755000175000017500000000000011225071373022170 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/north_america/usa/0000755000175000017500000000000011225071373022760 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_pdl_southern.xml0000644000175000017500000000237211225071373027733 0ustar eliaselias Southern Development Playoffs S. Dev. Playoffs flag_usa.png usa_pdl_southern 1000 1 national highlight1 0 usa_pdl_ms 1 1 1 usa_pdl_se 1 2 2 usa_pdl_se 1 1 1 usa_pdl_ms 1 2 2 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_se.xml0000644000175000017500000000165011225071373027144 0ustar eliaselias usa_pdl_se Southeast Development S.E.D.L. flag_usa.png 7 1 6100 4 2 10 14 5 usa Atlanta U. Bradenton Carolina C. Florida Cocoa Nashville Palm Beach Raleigh bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_sw.xml0000644000175000017500000000205111225071373027162 0ustar eliaselias usa_pdl_sw Southwest Development N.W.D.L. flag_usa.png 7 1 6100 4 2 5 18 5 usa Bakersfield Fresno Lancaster Los Angeles S. Orange County San Fernando San Francisco San Jose S. California Ventura bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_pdl_cup.xml0000644000175000017500000000240411225071373026647 0ustar eliaselias Development Cup Dev Cup flag_usa.png usa_pdl_cup 1000 1 national 0 1 usa_pdl_central 1 1 1 usa_pdl_eastern 1 1 1 usa_pdl_southern 1 1 1 usa_pdl_western 1 1 1 0 1 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_nw.xml0000644000175000017500000000154411225071373027163 0ustar eliaselias usa_pdl_nw Northwest Development N.W.D.L. flag_usa.png 7 1 6100 4 2 11 14 5 usa Abbotsford Provo Cascade Ogden Spokane Tacoma Yakima bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_mls.xml0000644000175000017500000000256511225071373026477 0ustar eliaselias usa_mls Major League ML flag_usa.png 1 1 7600 1 3 7 8 10 11 25 28 5 usa C.D. Los Angeles Chicago Colorado Columbus Washington D.C. Dallas Kansas City Los Angeles G. New York New England Salt Lake Houston Toronto bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_no.xml0000644000175000017500000000165211225071373027153 0ustar eliaselias usa_pdl_no Northeast Development N.Ea.D.L. flag_usa.png 7 1 6100 4 2 10 14 5 usa Albany Brooklyn Cape Cod Long Island Ottawa Rhode Island Vermont Westchester bygfoot-2.3.2/support_files/definitions/north_america/usa/country_usa.xml0000644000175000017500000000242611225071373026061 0ustar eliaselias United States 5 flag_usa.png usa usa_econf usa_wconf usa_first usa_second usa_pdl_gl usa_pdl_hl usa_pdl_ma usa_pdl_no usa_pdl_ms usa_pdl_se usa_pdl_nw usa_pdl_sw usa_eplayoff usa_wplayoff usa_mls_cup usa_open_cup usa_first_cup usa_second_cup usa_pdl_central usa_pdl_eastern usa_pdl_southern usa_pdl_western usa_pdl_cup usa_concacaf usa_superliga bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_pdl_central.xml0000644000175000017500000000236111225071373027512 0ustar eliaselias Central Development Playoffs C. Dev. Playoffs flag_usa.png usa_pdl_central 1000 29 1 national highlight1 0 usa_pdl_gl 1 1 1 usa_pdl_hl 1 2 2 usa_pdl_hl 1 1 1 usa_pdl_gl 1 2 2 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_sa.xml0000644000175000017500000000125511225071373027141 0ustar eliaselias usa_pdl_sa South-Atlantic Development S.A.D.L. flag_usa.png 7 1 6100 4 3 5 usa Carolina D. Augusta Atlanta U23 Nashville Raleigh bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_ms.xml0000644000175000017500000000156411225071373027160 0ustar eliaselias usa_pdl_ms Mid-South Development M.S.D.L. flag_usa.png 7 1 6100 4 2 11 14 5 usa Austin Baton Rouge Fort Worth El Paso Laredo Mississippi New Orleans bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_second.xml0000644000175000017500000000204111225071373027144 0ustar eliaselias usa_second Second Division 2nd Div flag_usa.png 3 1 6500 3 2 13 18 5 usa Richmond Charlotte New Hampshire Cincinnati W. Massachusetts Wilmington Harrisburg Baltimore Bermuda Cleveland C. bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_hl.xml0000644000175000017500000000160111225071373027134 0ustar eliaselias usa_pdl_hl Heartland Development H.L.D.L. flag_usa.png 7 1 6100 4 2 11 14 5 usa Boulder Des Moines Kansas City B. Saint Louis Sioux Falls Springfield Thunder Bay bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_pdl_western.xml0000644000175000017500000000237011225071373027551 0ustar eliaselias Western Development Playoffs W. Dev. Playoffs flag_usa.png usa_pdl_western 1000 1 national highlight1 0 usa_pdl_nw 1 1 1 usa_pdl_sw 1 2 2 usa_pdl_sw 1 1 1 usa_pdl_nw 1 2 2 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_pdl_eastern.xml0000644000175000017500000000237011225071373027523 0ustar eliaselias Eastern Development Playoffs E. Dev. Playoffs flag_usa.png usa_pdl_eastern 1000 1 national highlight1 0 usa_pdl_ma 1 1 1 usa_pdl_no 1 2 2 usa_pdl_no 1 1 1 usa_pdl_ma 1 2 2 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_concacaf.xml0000644000175000017500000000345311225071373026763 0ustar eliaselias CONCACAF Champions' Cup CONCACAF usa_concacaf 250 1 3 0 12 2 international 8 LEAGUE1 1 1 1 LEAGUE2 1 1 1 costa_rica1_short 2 1 1 honduras1_short 1 1 1 jamaica1_short 1 1 1 mexico1 2 1 1 bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_eplayoff.xml0000644000175000017500000000121711225071373027027 0ustar eliaselias Eastern Conference Playoffs EC Playoffs flag_usa.png usa_eplayoff 1000 1 national highlight1 usa_econf 4 1 4 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_ma.xml0000644000175000017500000000177011225071373027135 0ustar eliaselias usa_pdl_ma Mid-Atlantic Development M.A.D.L. flag_usa.png 7 1 6100 4 2 5 18 5 usa Delaware Fredericksburg N. Virginia Ocean City Reading Richmond F. Virginia Beach West Virginia Williamsburg bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_wplayoff.xml0000644000175000017500000000121711225071373027051 0ustar eliaselias Western Conference Playoffs WC Playoffs flag_usa.png usa_wplayoff 1000 1 national highlight1 usa_wconf 4 1 4 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_open_cup.xml0000644000175000017500000001631211225071373027034 0ustar eliaselias US Open Cup Open Cup flag_usa.png usa_open_cup 4 34 national weak_at_home 0 0 usa_first 3 11 13 usa_second 4 7 10 usa_pdl_gl 6 2 7 usa_pdl_hl 6 2 7 usa_pdl_ma 8 2 9 usa_pdl_ms 6 2 7 usa_pdl_no 7 2 8 usa_pdl_nw 6 2 7 usa_pdl_se 7 2 8 usa_pdl_sw 9 2 10 0 0 usa_econf 1 7 7 0 0 0 usa_econf 2 5 6 usa_wconf 2 5 6 usa_first 10 1 10 usa_second 6 1 6 usa_pdl_gl 1 1 1 usa_pdl_hl 1 1 1 usa_pdl_ma 1 1 1 usa_pdl_ms 1 1 1 usa_pdl_no 1 1 1 usa_pdl_nw 1 1 1 usa_pdl_se 1 1 1 usa_pdl_sw 1 1 1 0 0 usa_econf 1 4 4 usa_wconf 1 4 4 0 usa_econf 3 1 3 usa_wconf 3 1 3 0 0 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_mls_cup.xml0000644000175000017500000000272411225071373026670 0ustar eliaselias MLS Cup MLS Cup flag_usa.png usa_mls_cup 1000 36 1 national 0 1 usa_eplayoff 1 1 1 usa_wplayoff 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_econf.xml0000644000175000017500000000151311225071373026766 0ustar eliaselias usa_econf Eastern Conference EC flag_usa.png 1 1 7600 1 4 5 usa Chicago Columbus Washington D.C. Kansas City New England New York Toronto bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_ne.xml0000644000175000017500000000124511225071373027137 0ustar eliaselias usa_pdl_ne New England Development N.En.D.L. flag_usa.png 7 1 6100 4 3 5 usa Cape Cod Albany Rhode Island Ottawa Vermont bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_superliga.xml0000644000175000017500000000271111225071373027215 0ustar eliaselias USA/Mexico SuperLiga SuperLiga usa_superliga 100 2 3 0 18 1 international 0 1 2 2 8 LEAGUE1 2 1 2 LEAGUE2 2 1 2 mexico1 4 1 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_first.xml0000644000175000017500000000272311225071373027027 0ustar eliaselias usa_first First Division 1st Div flag_usa.png 3 1 6800 2 2 7 8 10 17 20 21 23 24 5 usa Vancouver Montreal Rochester Portland Puerto Rico Virginia Beach Miami Charleston Atlanta Seattle Minnesota North Carolina California bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_wconf.xml0000644000175000017500000000156011225071373027012 0ustar eliaselias usa_wconf Western Conference WC flag_usa.png 1 1 7600 1 6 27 30 5 usa C.D. Los Angeles Colorado Dallas Los Angeles G. Salt Lake Houston bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_first_cup.xml0000644000175000017500000000130211225071373027213 0ustar eliaselias First Division Playoffs 1st Div Playoffs flag_usa.png usa_first_cup 1000 1 national highlight1 usa_first 8 1 8 0 bygfoot-2.3.2/support_files/definitions/north_america/usa/league_usa_pdl_gl.xml0000644000175000017500000000157711225071373027147 0ustar eliaselias usa_pdl_gl Great Lakes Development G.L.D.L. flag_usa.png 7 1 6100 4 2 11 14 5 usa Chicago P. Cleveland I. Fort Wayne Indiana Michigan B. Toronto L. W. Michigan bygfoot-2.3.2/support_files/definitions/north_america/usa/cup_usa_second_cup.xml0000644000175000017500000000130411225071373027341 0ustar eliaselias Second Division Playoffs 2nd Div Playoffs flag_usa.png usa_second_cup 1000 1 national highlight1 usa_second 4 1 4 0 0 bygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/0000755000175000017500000000000011225071373032261 5ustar eliaselias././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootbygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/league_jamaica1_short.xmlbygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/league0000644000175000017500000000044211225071373033446 0ustar eliaselias jamaica1_short flag_jamaica.png england Portmore U. Kingston W. ././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootbygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/league_costa_rica1_short.xmlbygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/league0000644000175000017500000000151711225071373033452 0ustar eliaselias costa_rica1_short flag_costa_rica.png latinoamerica Alajuelense Saprissa Santa Bárbara Herediano Santos Pérez Zeledón Cartaginés Carmelita Puntarenas San Carlos Limonense Osa ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootbygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/league_honduras1_short.xmlbygfoot-2.3.2/support_files/definitions/north_america/short_leagues_north_and_central_america/league0000644000175000017500000000055211225071373033450 0ustar eliaselias honduras1_short flag_honduras.png latinoamerica Tegucigalpa O. San Pedro Sula M. Ceiba V. bygfoot-2.3.2/support_files/definitions/north_america/mexico/0000755000175000017500000000000011225071373023454 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_prom_games_mexico1.xml0000644000175000017500000000132311225071373030622 0ustar eliaselias Campeon de Primera "a" 1a Promocion prom_games_mexico1 promotion 54 1 55 CUP4 1 1 1 CUP2 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico3-2.xml0000644000175000017500000000213311225071373027225 0ustar eliaselias mexico3-2 Segunda Division Zona Norte 2a Norte flag_mexico.png 3 5 1 6000 3 2 latinoamerica 15 Altamira B. Nuevo Laredo Monterey Durango T. Madero Delicias F.C. Excelsior Santos L. Vaqueros A. U.A. Tamaulipas Cachorros U.A.N.L. A. Lagunero bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico3-3.xml0000644000175000017500000000250211225071373027226 0ustar eliaselias mexico3-3 Segunda Division Zona Centro 2a Centro flag_mexico.png 3 1 1 6000 3 2 latinoamerica 11 P. Anahuac Cuautitlan Pachuca J. R. de La Plata U.A. de Hidalgo P. Naucalpan Cuautla Mexico D.F. P.P. A. Coapa Tecamachalco A. Cuernavaca Puebla F. U.A.E. Mexico Pachuca T. Zecatepel A. Tapatio bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_apertura.xml0000644000175000017500000000000011225071373026656 0ustar eliaseliasbygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_prom_games_mexico2.xml0000644000175000017500000000414511225071373030630 0ustar eliaselias Segunda Division Torneo Clausura 2a Clausura prom_games_mexico2 promotion highlight2 1620 1000 1 48 mexico3-5 3 1 3 mexico3-3 4 1 4 mexico3-1 1 3 3 mexico3-4 3 1 3 mexico3-2 3 1 3 mexico3-1 2 1 2 1 1 1 1 mexico2 1 24 24 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/country_mexico.xml0000644000175000017500000000120511225071373027243 0ustar eliaselias México 5 mexico1 mexico2 mexico3-1 mexico3-2 mexico3-3 mexico3-4 mexico3-5 mexico1_apertura mexico1_clausura mexico2_apertura mexico2_clausura mexico3_apertura mexico3_clausura mexico_concacaf mexico_libertadores mexico_superliga prom_games_mexico2 bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico2_apertura.xml0000644000175000017500000000133411225071373030317 0ustar eliaselias Primera "a" Division Torneo Apertura 1a "a" Apertura mexico2_apertura national 17 1 19 mexico2 8 1 8 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico2_clausura.xml0000644000175000017500000000137511225071373030320 0ustar eliaselias Primera "a" Division Torneo Clausura 1a "a" Clausura mexico2_clausura national highlight3 42 1 44 mexico2 8 1 8 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico1_clausadura.xml0000644000175000017500000000147311225071373030623 0ustar eliaselias México Liga Primera Torneo Clausadura México Clausadura mexico1_clausadura national 22 46 1 3 1 5 3 mexico1 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico3-5.xml0000644000175000017500000000205011225071373027226 0ustar eliaselias mexico3-5 Segunda Division Zona Sur 2a Sur flag_mexico.png 3 5 1 6000 3 2 latinoamerica 15 Coatzacoalcos Inter Playa del C. J. Tabasco Orizaba Ocelotes U.N.A.Ch. Cordoba F.C. Itzaes U. del Golfo T.B. de Xalapa L. Rio Grande P. Cancun bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico_libertadores.xml0000644000175000017500000001220611225071373031071 0ustar eliaselias Copa Libertadores CL mexico_libertadores 500 3 0 51 2 1505 international highlight1 12 0 argentina1 1 1 1 brazil1 2 1 1 colombia1_short 1 1 1 ecuador1_short 1 1 1 paraguay1_short 1 1 1 venezuela1_short 1 1 1 chile1_short 1 1 1 uruguay1_short 1 1 1 bolivia1_short 1 1 1 peru1_short 1 1 1 mexico1 1 5 5 26 8 2 argentina1 4 1 1 brazil1 4 1 1 mexico1 2 3 4 colombia1_short 2 1 1 ecuador1_short 2 1 1 paraguay1_short 2 1 1 venezuela1_short 2 1 1 chile1_short 2 1 1 uruguay1_short 2 1 1 bolivia1_short 2 1 1 peru1_short 2 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico1.xml0000644000175000017500000000370211225071373027067 0ustar eliaselias mexico1 Primera Division 1a Division flag_mexico.png 1 1 1 7400 3 2 latinoamerica 11 3 6 20 21 23 24 18 18 mexico2 relegation C.A. México City Pachuca C.F.A. México City Toluca Monterrey J. C. Tuxtla Gutierrez N. Aguascalientes U.A.G. Zapopán Monterrey T. Morelia México City A. C.D. Guadalajara C.F.A. Guadalajara San Luis Potosí S.L. Torreón México City P. Veracruz Querétaro bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico_concacaf.xml0000644000175000017500000000347311225071373030155 0ustar eliaselias CONCACAF Copa de Campeones CONCACAF mexico_concacaf -500 3 40 2 1507 international highlight1 8 LEAGUE1 2 1 2 costa_rica1_short 2 1 1 honduras1_short 1 1 1 jamaica1_short 1 1 1 mexico1 2 1 1 usa_econf 1 1 1 usa_wconf 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico1_clausura.xml0000644000175000017500000000147411225071373030317 0ustar eliaselias Primera Division Torneo Clausura 1a Clausura mexico1_clausura national highlight3 41 1 44 mexico1 10 1 10 1 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico_superliga.xml0000644000175000017500000000242011225071373030402 0ustar eliaselias USA/Mexico SuperLiga SuperLiga mexico_superliga 100 1505 3 18 51 1 international 0 1 2 2 8 LEAGUE1 4 1 7 usa_econf 2 1 1 usa_wconf 2 1 1 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico3-4.xml0000644000175000017500000000234711225071373027236 0ustar eliaselias mexico3-4 Segunda Division Zona Occidente 2a Occidente flag_mexico.png 3 3 1 6000 3 2 latinoamerica 13 F.S. Manzanillo Autlan Tecoman J. de Zamora Hermosillo C.U. de Guadalajara V. de Ixtlan R. La Piedad C.F.A. Guadalajara F. Delfines F.C. Morelia C.D. Guadalajara F. Jersy Nay Zapotlanejo bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico3-1.xml0000644000175000017500000000234111225071373027225 0ustar eliaselias mexico3-1 Segunda Division Zona Bajio 2a Bajio flag_mexico.png 3 3 1 6000 3 2 latinoamerica 13 C.A. Hidalgo P. Salamanca C.D. Irapuato F.C. Celaya T. Naucalpan A.C. Aguascalientes Apatzingan Necaxa R. A.C. Leon A.R. Tantoyuca Toluca F. C. Leon H. San Juan del Río M. Jalpan de Serra bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico3_apertura.xml0000644000175000017500000000326611225071373030326 0ustar eliaselias Segunda Division Torneo Apertura 2a Apertura mexico3_apertura national 16 1 19 mexico3-5 3 1 3 mexico3-3 4 1 4 mexico3-1 1 3 3 mexico3-4 3 1 3 mexico3-2 3 1 3 mexico3-1 2 1 2 1 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico3_clausura.xml0000644000175000017500000000332711225071373030320 0ustar eliaselias Segunda Division Torneo Clausura 2a Clausura mexico3_clausura national highlight3 41 1 44 mexico3-5 3 1 3 mexico3-3 4 1 4 mexico3-1 1 3 3 mexico3-4 3 1 3 mexico3-2 3 1 3 mexico3-1 2 1 2 1 1 1 1 bygfoot-2.3.2/support_files/definitions/north_america/mexico/league_mexico2.xml0000644000175000017500000000475511225071373027101 0ustar eliaselias mexico2 Primera "a" Division 1a "a" flag_mexico.png 2 1 1 6700 3 2 latinoamerica 10 3 16 26 39 mexico2 mexico3-1 mexico3-2 mexico3-3 mexico3-4 mexico3-5 1 prom_games_mexico2 1 1 mexico1 promotion Zapotlanejo A. Culiacán D.S. Durango León Morelia M.A. P.R. Colima Celaya P. Salamanca Torreón S.L.A. Guadalajara T. U.A.G. Zapopán A. T. Los Mochis Toluca A.M. C.A. Hidalgo I. Ciudad Juárez Puebla L.B. Monterrey R.A. Puebla Cuernavaca P.M. Tijuana X.C. Tampico M.F. Coatzacoalcos T.R. Ciudad Victoria C. México City S.A. bygfoot-2.3.2/support_files/definitions/north_america/mexico/cup_mexico1_apertura.xml0000644000175000017500000000143211225071373030315 0ustar eliaselias Primera Division Torneo Apertura 1a Apertura mexico1_apertura national 16 1 19 mexico1 10 1 10 1 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/0000755000175000017500000000000011225071373020654 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/latvia/0000755000175000017500000000000011225071373022134 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia3b.xml0000644000175000017500000000173111225071372025706 0ustar eliaselias latvia3b 2. liga Zemgales/Kurzemes zona 2. L. Z/K. flag_latvia.png 1 1 5100 5 latvia inactive 3 E. KuldÄ«ga Saldus B. V. Ķekava Ozolnieki V. LiepÄja Bauska Dobele Ka. JÅ«rmala Olaine bygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia3e.xml0000644000175000017500000000143311225071372025710 0ustar eliaselias latvia3e 2. liga Latgales zona 2. L. L. flag_latvia.png 1 1 5100 5 latvia inactive 3 B. RÄ“zekne II RÄ“zekne r. Malta Preiļi LÄ«vÄni Dagda KrÄslava bygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia3d.xml0000644000175000017500000000124611225071372025711 0ustar eliaselias latvia3d 2. liga Ziemeļaustrumu zona 2. L. Zi. flag_latvia.png 1 1 5100 5 latvia inactive 3 Madona/Kvarcs Balvi Pļaviņas D. Aizkraukle bygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia1.xml0000755000175000017500000000231111225071372025540 0ustar eliaselias latvia1 Virsliga VL flag_latvia.png 1 1 6500 3 5 latvia 10 10 latvia2 relegation B. Rezekne Daugava D. Daugavpils JÅ«rmala LiepÄjas M. O. Riga F. RÄ«ga S. Riga Ventspils V. Ventspils bygfoot-2.3.2/support_files/definitions/europe/latvia/cup_latvia_promotion1.xml0000755000175000017500000000132411225071372027176 0ustar eliaselias Latvia Promotion 1 L. Prom. 1 flag_latvia.png latvia_promotion1 1000 national highlight2 3 latvia2 1 2 2 latvia1 1 9 9 bygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia2.xml0000755000175000017500000000327611225071372025554 0ustar eliaselias latvia2 1. liga 1. L. flag_latvia.png 1 1 5800 5 latvia 1 1 latvia1 promotion latvia1 latvia_promotion1 latvia2 A. Smiltene A. RÄ«ga D. RÄ«ga Gulbene J. RÄ«ga JÄ“kabpils Jelgava K. JÅ«rmala LiepÄjas M. II M-L. U. RÄ«ga S. JÅ«rmala T. Ventspils Tukums Valmiera Z. IlÅ«kste bygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia3c.xml0000644000175000017500000000200711225071372025704 0ustar eliaselias latvia3c 2. liga Vidzemes zona 2. L. V. flag_latvia.png 1 1 5100 5 latvia inactive 3 Ogre Staicele B. Upesciems V. A. Riga Valka Ropaži Priekuļi Ä€daži Vangaži A. Smiltene II bygfoot-2.3.2/support_files/definitions/europe/latvia/country_latvia.xml0000755000175000017500000000115411225071372025724 0ustar eliaselias Latvia flag_latvia.png latvia 5 latvia1 latvia2 latvia3a latvia3b latvia3c latvia3d latvia3e latvia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental latvia_promotion1 bygfoot-2.3.2/support_files/definitions/europe/latvia/cup_latvia_cup.xml0000644000175000017500000000414611225071372025660 0ustar eliaselias Latvijas kauss Lat. kauss flag_latvia.png latvia_cup 18 3 national 0 latvia3a 3 1 10 1 latvia3b 2 1 9 1 latvia3c 2 1 10 1 latvia3d 1 1 4 1 latvia3e 1 1 6 1 latvia2 0 0 0 0 latvia1 0 0 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/latvia/league_latvia3a.xml0000644000175000017500000000202111225071372025676 0ustar eliaselias latvia3a 2. liga RÄ«gas zona 2. L. R. flag_latvia.png 1 1 5100 5 latvia inactive 3 Fl. RÄ«ga Vie. RÄ«ga D-R. RÄ«ga L. U. RÄ«ga RF. RÄ«ga L/F. RÄ«ga Of. RÄ«ga S/M. RÄ«ga RÄ«ga S. A/A. RÄ«ga bygfoot-2.3.2/support_files/definitions/europe/czech/0000755000175000017500000000000011225071373021750 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/czech/league_czech2.xml0000644000175000017500000000344411225071372025176 0ustar eliaselias czech2 2. Gambrinus liga 2. Gam flag_czech.png 6 1 23 6600 czech 5 1 2 czech1 promotion 15 16 czech3a czech3b relegation Slovácko Opava Boh. Praha 1905 H. Králové F. Fulnek Z. Čáslav B. Sokolov V. Jihlava H. Olomouc Vítkovice Ústí nad Labem Duk. Praha Most F. TÅ™inec M. Karviná Spa. Praha II bygfoot-2.3.2/support_files/definitions/europe/czech/cup_czech_cup.xml0000644000175000017500000000244711225071372025312 0ustar eliaselias Pohár ÄŒMFS Pohár flag_czech.png czech_cup 48 3 national 0 czech3a czech3b 30 -20 0 czech2 czech1 -17 0 -17 0 -15 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/czech/league_czech3b.xml0000644000175000017500000000317511225071372025342 0ustar eliaselias czech3b 3. Ligy Moravskoslezská fotbalová liga 3. L. MSFL flag_czech.png 6 1 23 6000 czech 5 3 1 1 czech2 promotion Blansko B. Knínicky Breclav B. Ostrava II F. F. Místek Brno II H. S. Kromeríz Hlucín Mutenice Slovácko II S. Olomouc II Unicov V. Jihlava II Zábreh Zlín II Znojmo bygfoot-2.3.2/support_files/definitions/europe/czech/country_czech.xml0000644000175000017500000000076311225071372025356 0ustar eliaselias Czech Republic flag_czech.png czech 7 czech1 czech2 czech3a czech3b czech_cup europe_uefa2a europe_champ_league2 supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/czech/league_czech3a.xml0000644000175000017500000000342311225071372025335 0ustar eliaselias czech3a 3. Ligy ÄŒeská fotbalová liga 3. L. CFL flag_czech.png 6 1 23 6000 czech 5 3 1 1 czech2 promotion K. Dvur O. Letohrad B. Karlovy Vary S. Liberec II N. DeÅ¡tné Jablonec II D. Ceské Budejovice II Hlavice M. Boleslav II V. Plzen II Písek Sl. Praha II S. Krc S. Varnsdorf S. VyÅ¡ehrad S. Sezimovo Ústí VlaÅ¡im V. Zizkov II bygfoot-2.3.2/support_files/definitions/europe/czech/league_czech1.xml0000644000175000017500000000342511225071372025174 0ustar eliaselias czech1 1. Gambrinus liga 1. Gam. flag_czech.png 6 1 10 15 23 39 7400 czech 5 3 4 15 16 czech2 relegation Sl. Praha Spa. Praha Teplice B. Ostrava Brno V. Plzeň Zlín ÄŒ. BudÄ›jovice S. Olomouc M. Boleslav S. Liberec Kladno V. Žižkov Jablonec B. Praha M. Pribram bygfoot-2.3.2/support_files/definitions/europe/lithuania/0000755000175000017500000000000011225071373022632 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/lithuania/league_lithuania1.xml0000755000175000017500000000206711225071372026744 0ustar eliaselias lithuania1 A Lyga A L. flag_lithuania.png 1 1 6400 4 5 8 8 lithuania2 relegation A. Klaipeda E. Panevezys Kaunas Å iauliai Å ilutÄ— S. Marijampole V. Vilnius Ž. Vilnius bygfoot-2.3.2/support_files/definitions/europe/lithuania/country_lithuania.xml0000755000175000017500000000075411225071372027125 0ustar eliaselias Lithuania flag_lithuania.png lithuania 5 lithuania1 lithuania2 lithuania_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental lithuania_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/lithuania/league_lithuania2.xml0000644000175000017500000000307111225071372026736 0ustar eliaselias lithuania2 1 Lyga 1 L. flag_lithuania.png 1 1 5700 5 1 1 lithuania1 promotion lithuania1 lithuania_prom_games1 lithuania2 A. Alytus F. Anyksciai B. Gargzdai L. Jonava K. j. Kaunas R. Kaunas L. T. Kaunas N. Kedainiai G. Klaipeda K. Pakruojis T. Taurage U. Utena F. Vilnius bygfoot-2.3.2/support_files/definitions/europe/lithuania/cup_lithuania_cup.xml0000644000175000017500000000336711225071372027060 0ustar eliaselias Lithuanian Cup Cup flag_lithuania.png lithuania_cup 44 3 national 0 lithuania2 9 5 13 -16 0 lithuania2 4 1 4 lithuania1 4 5 8 0 -13 0 0 -13 0 lithuania1 4 1 4 -14 0 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/lithuania/cup_lithuania_prom_games1.xml0000644000175000017500000000141411225071372030472 0ustar eliaselias 1. Lyga Promotion Games 1. L. Prom. flag_lithuania.png lithuania_prom_games1 1000 national highlight2 3 lithuania2 1 2 2 lithuania1 1 7 7 bygfoot-2.3.2/support_files/definitions/europe/georgia/0000755000175000017500000000000011225071373022271 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/georgia/league_georgia1.xml0000755000175000017500000000263711225071372026045 0ustar eliaselias georgia1 Umaglesi Liga Umaglesi L. flag_georgia.png 6 1 10 15 27 39 6000 3 5 10 11 georgia2a georgia2b relegation Borjomi D. Tbilisi G. Tbilisi L. Tbilisi M. Tbilisi M. Zugdidi O. Rustavi S. Bolnisi S. Tskhinvali W. G. Tbilisi Zestafoni bygfoot-2.3.2/support_files/definitions/europe/georgia/cup_georgia_prom_games1.xml0000644000175000017500000000200211225071372027562 0ustar eliaselias Pirveli Liga Promotion Games Pir. L. Prom. flag_georgia.png georgia_prom_games1 1000 national highlight2 3 georgia2a 1 2 2 georgia2b 1 2 2 georgia1 1 9 9 bygfoot-2.3.2/support_files/definitions/europe/georgia/league_georgia2b.xml0000644000175000017500000000252611225071372026202 0ustar eliaselias georgia2b Pirveli Liga West Pirveli L. W flag_georgia.png 6 1 10 27 5400 3 5 2 1 1 georgia1 promotion B. Zugdidi Samtredia Martvili K. Poti K. Khobi Tchaitura T. Kutaisi G. Lantchkhuti Batumi M. Tkibuli Zestafoni II bygfoot-2.3.2/support_files/definitions/europe/georgia/cup_georgia_cup.xml0000644000175000017500000000305711225071372026152 0ustar eliaselias Georgian Cup Cup flag_georgia.png georgia_cup 48 2 8 national georgia2a 9 1 11 1 georgia2b 9 1 11 1 georgia1 8 4 11 0 -26 georgia1 3 1 3 -27 -20 -3 0 1 bygfoot-2.3.2/support_files/definitions/europe/georgia/country_georgia.xml0000755000175000017500000000077711225071372026230 0ustar eliaselias Georgia flag_georgia.png georgia 5 georgia1 georgia2a georgia2b georgia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental georgia_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/georgia/league_georgia2a.xml0000644000175000017500000000313011225071372026171 0ustar eliaselias georgia2a Pirveli Liga East Pirveli L. E flag_georgia.png 6 1 10 27 5400 3 5 2 georgia1 georgia_prom_games1 georgia2a georgia2b 1 1 georgia1 promotion C. Satchkhere A. Tbilisi D. Tbilisi II F. Tbilisi G. Tbilisi II D. Gori K. Telavi S. Bolnisi II N. D. Tbilisi H. Lagodekhi W. G. Tbilisi II bygfoot-2.3.2/support_files/definitions/europe/ireland/0000755000175000017500000000000011225071373022272 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/ireland/cup_ireland_league.xml0000644000175000017500000000343211225071372026624 0ustar eliaselias League Cup League C. flag_ireland.png ireland_league 25 4 national 0 ireland3a 1 1 8 1 ireland3b 1 1 8 1 ireland2 ireland1 8 5 12 1 4 -6 0 ireland1 4 1 4 1 0 -7 0 -4 0 -2 0 bygfoot-2.3.2/support_files/definitions/europe/ireland/cup_ireland_prom_games2.xml0000644000175000017500000000135011225071372027572 0ustar eliaselias A Championship Promotion Games A Champ. Prom. flag_ireland.png ireland_prom_games2 1000 national highlight2 3 ireland3a 1 1 1 ireland3b 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/ireland/league_ireland2.xml0000644000175000017500000000263511225071372026043 0ustar eliaselias ireland2 FAI First Division Div. 1 flag_ireland.png 1 1 4 5500 england 5 1 1 ireland1 promotion 10 10 ireland3a ireland3b relegation Athlone Dundalk Kildare Limerick Longford Monaghan Shelbourne S. Fingal Waterford Wexford Y. bygfoot-2.3.2/support_files/definitions/europe/ireland/league_ireland3b.xml0000644000175000017500000000160111225071372026176 0ustar eliaselias ireland3b FAI A Championship Group 2 A Champ. G2 flag_ireland.png 1 1 5000 england 5 3 Bray II Cobh R. II Cork II Galway II Limerick II St P. Dublin II Tullamore U.C.D. II bygfoot-2.3.2/support_files/definitions/europe/ireland/league_ireland1.xml0000644000175000017500000000250111225071372026032 0ustar eliaselias ireland1 FAI Premier Division Prem. D. flag_ireland.png 1 1 3 6200 england 5 12 12 ireland2 relegation Bohemians Bray Cobh R. Cork Derry Drogheda Finn H. Galway Shamrock R. Sligo St. P. Dublin U.C.D. bygfoot-2.3.2/support_files/definitions/europe/ireland/country_ireland.xml0000644000175000017500000000117111225071372026214 0ustar eliaselias Ireland 4 flag_ireland.png ireland ireland1 ireland2 ireland3a ireland3b ireland_cup ireland_league ireland_setanta europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental ireland_prom_games ireland_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/ireland/cup_ireland_setanta.xml0000644000175000017500000000410011225071372027012 0ustar eliaselias Setanta Sports Cup Setanta Cup map_ireland.png ireland_setanta 38 4 international 500 101 0 2 2 8 ireland_cup 1 1 1 1 ireland_league 1 1 1 1 ireland1 2 1 4 1 n_ireland1 1 1 12 1 1 n_ireland1 3 1 4 1 1 -1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/ireland/cup_ireland_prom_games.xml0000644000175000017500000000152111225071372027510 0ustar eliaselias Promotion Play-Off Play-Off flag_ireland.png ireland_prom_games 1000 national highlight2 1 ireland1 1 11 11 ireland2 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/ireland/league_ireland3a.xml0000644000175000017500000000221211225071372026174 0ustar eliaselias ireland3a FAI A Championship Group 1 A Champ. G1 flag_ireland.png 1 1 5000 england 5 3 ireland2 ireland_prom_games2 ireland3a ireland3b Bohemians II Derry II Drogheda II Finn H. II Mervue U. Salthill D. Shamrock R. II Sligo II bygfoot-2.3.2/support_files/definitions/europe/ireland/cup_ireland_cup.xml0000644000175000017500000000254611225071372026156 0ustar eliaselias FAI Ford Cup FAI Cup flag_ireland.png ireland_cup 39 6 national 0 ireland3a ireland3b 4 -1 0 ireland1 ireland2 0 -1 0 1 0 1 -1 0 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/croatia/0000755000175000017500000000000011225071373022276 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/croatia/league_croatia3b.xml0000644000175000017500000000337711225071372026222 0ustar eliaselias croatia3b Treća Hrvatska Liga Istok Treća HNL I flag_croatia.png 5 1 24 6000 serbia 5 3 1 1 croatia2 promotion Belišće Bjelovar C. Äakovo N. Äakovo G. V. Osijek G. Županja Koprivnica Križevci M. Slavonski Brod M. Cernik M. Prelog N. NaÅ¡ice Nedelišće O. Osijek S. Pleternica Virovitica Visnjevac Vukovar bygfoot-2.3.2/support_files/definitions/europe/croatia/league_croatia3a.xml0000644000175000017500000000335211225071372026212 0ustar eliaselias croatia3a Treća Hrvatska Liga Zapad Treća HNL Z flag_croatia.png 5 1 24 6000 serbia 5 3 1 1 croatia2 promotion G. ÄŒavle H. Zagreb N. I. Pula J. PoreÄ Lu. Zagreb Ma. Zagreb Medulin N. Senj Novalja O. Rijeka P. BuÅ¡evec R. Velika Gorica Rovinj R. Labin Ru. Zagreb Samobor Vr. Zagreb Vrbovec bygfoot-2.3.2/support_files/definitions/europe/croatia/cup_croatia_prom_games1.xml0000644000175000017500000000133211225071372027601 0ustar eliaselias HNL Promotion Games HNL Prom. flag_croatia.png croatia_prom_games1 1000 national highlight2 3 croatia2 1 2 2 croatia1 1 11 11 bygfoot-2.3.2/support_files/definitions/europe/croatia/league_croatia1.xml0000755000175000017500000000303511225071372026050 0ustar eliaselias croatia1 HNL Prva Liga 1. HNL flag_croatia.png 5 1 10 15 24 7400 3 serbia 5 29 30 12 12 croatia2 relegation Cibalia C. Sesvete D. Zagreb H. Split I. ZapreÅ¡ic Osijek Rijeka Å ibenik S. B. Koprivnica V. Varazdin Zadar N. Zagreb bygfoot-2.3.2/support_files/definitions/europe/croatia/league_croatia2.xml0000755000175000017500000000400511225071372026047 0ustar eliaselias croatia2 Druga Liga Druga HNL flag_croatia.png 5 1 24 6700 serbia 5 1 1 croatia1 promotion croatia1 croatia_prom_games1 croatia2 14 16 croatia3a croatia3b croatia3c relegation H. Dragovoljac Imotski Is. Pula J. Sinj Karlovac Lo. Zagreb MeÄ‘imurje Moslavina M. Zrnovnica P. Kostrena S. Sisak S. Stari Perkovci Solin Suhopolje Trogir Vinogradar bygfoot-2.3.2/support_files/definitions/europe/croatia/country_croatia.xml0000755000175000017500000000113311225071372026225 0ustar eliaselias Croatia flag_croatia.png croatia 6 croatia1 croatia2 croatia3a croatia3b croatia3c croatia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental croatia_supercup croatia_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/croatia/cup_croatia_supercup.xml0000644000175000017500000000141411225071372027236 0ustar eliaselias Croatian Supercup Supercup flag_croatia.png croatia_supercup 4 national 154 0 1 croatia_cup 1 1 1 croatia1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/croatia/cup_croatia_cup.xml0000644000175000017500000000372611225071372026167 0ustar eliaselias Hrvatski nogometni kup Hrv. kup flag_croatia.png croatia_cup 48 3 national 0 croatia2 8 5 16 1 croatia3a 8 1 18 1 croatia3b 8 1 18 1 croatia3c 8 1 18 1 -15 0 croatia1 croatia2 4 1 4 1 -14 0 -12 -13 -3 bygfoot-2.3.2/support_files/definitions/europe/croatia/league_croatia3c.xml0000644000175000017500000000342411225071372026214 0ustar eliaselias croatia3c Treća Hrvatska Liga Jug Treća HNL J flag_croatia.png 5 1 24 6000 serbia 5 3 1 1 croatia2 promotion Dugopolje G. Dubrovnik A. KaÅ¡tel Gomilica J. KaÅ¡tel SuÄurac J. L. PloÄe N. Split K. ÄŒilipi N. Metković OmiÅ¡ P. Biograd na moru P. StobreÄ Hrvace Rastane V. KaÅ¡tel Stari V. Benkovac N. Opuzen Z. UneÅ¡ić Z. Makarska bygfoot-2.3.2/support_files/definitions/europe/kazakhstan/0000755000175000017500000000000011225071373023013 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/kazakhstan/league_kazakhstan1.xml0000755000175000017500000000310611225071372027301 0ustar eliaselias kazakhstan1 Premier League Pr. League flag_kazakhstan.png 2 1 5900 russia 5 15 16 kazakhstan2 relegation A. Lento Almaty Astana Atyrau E. Pavlodar I. Pavlodar K. Almaty K. Kyzylorda M. Almaty O. Kokshetau O. Shymkent S. Karagandy T. Kostanay V. Oskemen E. B. Petropavl Z. Taldykorgan bygfoot-2.3.2/support_files/definitions/europe/kazakhstan/cup_kazakhstan_supercup.xml0000644000175000017500000000143211225071372030470 0ustar eliaselias Kazakhstan Supercup Supercup flag_kazakhstan.png kazakhstan_supercup 1 national 163 0 1 kazakhstan_cup 1 1 1 kazakhstan1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/kazakhstan/country_kazakhstan.xml0000755000175000017500000000075611225071372027471 0ustar eliaselias Kazakhstan flag_kazakhstan.png kazakhstan 4 kazakhstan1 kazakhstan2 kazakhstan_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental kazakhstan_supercup bygfoot-2.3.2/support_files/definitions/europe/kazakhstan/cup_kazakhstan_cup.xml0000644000175000017500000000166011225071372027414 0ustar eliaselias Kazakhstan Cup Cup flag_kazakhstan.png kazakhstan_cup 31 3 national 0 kazakhstan2 kazakhstan1 2 -10 0 -11 -12 2 0 1 bygfoot-2.3.2/support_files/definitions/europe/kazakhstan/league_kazakhstan2.xml0000755000175000017500000000270311225071372027304 0ustar eliaselias kazakhstan2 First Division 1. Div flag_kazakhstan.png 2 1 5300 russia 5 1 2 kazakhstan1 promotion A. Petropavl A. Zhas A. Stepnogorsk A. Zhetygara A. Uralsk A. Shimkent B. Temirtau C. Aktau G. Khromtau I. S. Iliyskiy K. Sarbazdary K. Satpaev S. Semey Taraz bygfoot-2.3.2/support_files/definitions/europe/russia/0000755000175000017500000000000011225071373022162 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/russia/league_russia3d.xml0000644000175000017500000000332211225071372025762 0ustar eliaselias russia3d Second Division Ural-Povolzhye 2. Div. U-P. flag_russia.png 1 1 6300 russia 5 3 1 1 russia2 promotion V. Nizhny Novgorod Gazovik F. Nizhnij Novgorod G. Uchali Lada K. Dzerzinsk Z. Chelyabinsk F. Tolliati R. Kazan II Tyumen SOYUZ G. Sokol Alnas Neftekhimik D. Kirov E. Uren Yunit K. S. Samara SOK bygfoot-2.3.2/support_files/definitions/europe/russia/cup_russia_cup.xml0000644000175000017500000000407111225071372025731 0ustar eliaselias Kubok Rossii KP flag_russia.png russia_cup 36 3 national 0 russia3a russia3b russia3c russia3d russia3e 65 -2 0 6 -2 0 0 -3 0 0 -4 0 russia2 0 -4 0 russia1 0 -2 0 1 0 1 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/russia/league_russia3e.xml0000644000175000017500000000234211225071372025764 0ustar eliaselias russia3e Second Division East 2. Div. E flag_russia.png 1 1 6300 russia 5 3 3 1 1 russia2 promotion Chita Smena Irtysh S. Novosibirsk II Sibiryak M. Krasnoyarsk Okean K. Kemerovo Amur Sakhalin bygfoot-2.3.2/support_files/definitions/europe/russia/league_russia3a.xml0000644000175000017500000000343111225071372025760 0ustar eliaselias russia3a Second Division West 2. Div. W flag_russia.png 1 1 6300 russia 5 3 1 1 russia2 promotion M. R. Moscow T. Vladimir Sheksna S. Kostroma Volga S. Murmansk D. St. Petersburg Dmytrov Reutov Pskov S. Shchyolkovo Ze. Moscow Volochanin-Ratmir Istra Torpedo R. G. D. Vologda Nara-Desna Tekstilshchik T. Z. St. Petersburg II bygfoot-2.3.2/support_files/definitions/europe/russia/cup_russia_supercup.xml0000644000175000017500000000141111225071372027003 0ustar eliaselias Superkubok Rossii Superkubok flag_russia.png russia_supercup 1 national 169 0 1 russia_cup 1 1 1 russia1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/russia/country_russia.xml0000644000175000017500000000115411225071372025775 0ustar eliaselias Russia flag_russia.png russia 7 russia1 russia2 russia3a russia3b russia3c russia3d russia3e russia_cup europe_uefa2a europe_champ_league2a supercup_europe_uefa supercup_europe_intercontinental russia_supercup bygfoot-2.3.2/support_files/definitions/europe/russia/league_russia3c.xml0000644000175000017500000000325711225071372025770 0ustar eliaselias russia3c Second Division Center 2. Div. C flag_russia.png 1 1 6300 russia 5 3 1 1 russia2 promotion M. Lipetsk A. Kursk Lukhovitsy Gubkin Z. Serpukhov D. Voronezh M. Saransk Ryazan Yelets Z. Penza L. Liski S. Tambov R. Orel S. Oskol Sat. Moskva II Z. Truda Nika Voronez bygfoot-2.3.2/support_files/definitions/europe/russia/league_russia3b.xml0000644000175000017500000000327411225071372025766 0ustar eliaselias russia3b Second Division South 2. Div. S flag_russia.png 1 1 6300 russia 5 3 1 1 russia2 promotion Volgar Bataysk F. Krasnodar Olimpia D. Stavropol Z. Sochi D. Kaspijsk Kavkaztransgaz E. Volzhsky Druzhba K. Sulin Taganrog R. Volgograd Sudostroitel Krasnodar Sochi Spartak U. Avtodor bygfoot-2.3.2/support_files/definitions/europe/russia/league_russia2.xml0000644000175000017500000000431111225071372025614 0ustar eliaselias russia2 First Division 1. Div. flag_russia.png 1 1 6900 russia 5 1 2 russia1 promotion 18 22 russia3a russia3b russia3c russia3d russia3e relegation A. Vladikavkaz A. Makhachkala B. Kaliningrad Chernomorets N. D. Barnaul D. Bryansk K. N. Chelny K. Krasnodar M. Pyatigorsk M. Novokuznetsk N. Novotroitsk Rostov S. E. Belgorod S. Novosibirsk S. Rostov-on-Don S. E. Khabarovsk Spo. Moscow Tor. Moscow U. Sverdlovsk V. Podolsk V. Ulyanovsk Z. Irkutsk bygfoot-2.3.2/support_files/definitions/europe/russia/league_russia1.xml0000644000175000017500000000306611225071372025621 0ustar eliaselias russia1 Premier-Liga Prem. L. flag_russia.png 2 1 7800 russia 5 15 16 russia2 relegation A. Perm C. Moskva D. Moskva Khimki K. S. Samara L. Moskva L. E. Vladivostok F. Moskva R. Kazan Sat. Moskva S. Yaroslavl Sp. Moskva Sp. Nalchik T. Grozny T. Tomsk Z. St. Petersburg bygfoot-2.3.2/support_files/definitions/europe/iceland/0000755000175000017500000000000011225071373022253 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/iceland/cup_iceland_cup.xml0000644000175000017500000000226311225071372026114 0ustar eliaselias VISA-bikar V-b. flag_iceland.png iceland_cup 23 3 national 0 iceland3 iceland2 16 0 iceland1 -1 0 0 -2 0 -2 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/iceland/league_iceland1.xml0000755000175000017500000000245011225071372026002 0ustar eliaselias iceland1 Urvalsdeild Urvlsd. flag_iceland.png 1 1 6000 5 11 12 iceland2 relegation Breidablik Fj. Reykjavik Fr. Reykjavík Fy. Reykjavik Grindavík Hafnarfjördur Akranes Keflavík Kópavogs K. Reykjavík T. Reykjavík V. Reykjavík bygfoot-2.3.2/support_files/definitions/europe/iceland/league_iceland2.xml0000755000175000017500000000274111225071372026006 0ustar eliaselias iceland2 1. deild karla 1. d. flag_iceland.png 1 1 5500 5 1 2 iceland1 promotion 11 12 iceland3 relegation Haukar Vestmannaeyjar K. Akureyri Fjarðabyggð Leiftur Le. Reykjavík Njarðvík Selfoss Stjarnan V. Ólafsvík Ví. Reykjavík Þ. Akureyri bygfoot-2.3.2/support_files/definitions/europe/iceland/country_iceland.xml0000755000175000017500000000073111225071372026162 0ustar eliaselias Iceland flag_iceland.png iceland 4 iceland1 iceland2 iceland3 iceland_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/iceland/league_iceland3.xml0000644000175000017500000000237511225071372026007 0ustar eliaselias iceland3 2. deild karla 2. d. flag_iceland.png 1 1 5000 5 1 2 iceland2 promotion Afturelding Ãþ. Reykjavíkur Víðir Höttur Tindastóll Grótta Reynir S. Magni ÃH Hamar Hvöt Völsungur bygfoot-2.3.2/support_files/definitions/europe/scotland/0000755000175000017500000000000011225071373022463 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/scotland/country_scotland.xml0000644000175000017500000000114711225071372026601 0ustar eliaselias Scotland 7 flag_scotland.png scotland scotland1 scotland2 scotland3 scotland4 scotland_fa scotland_league europe_uefa2a europe_champ_league2s supercup_europe_uefa supercup_europe_intercontinental scotland_prom_games2 scotland_prom_games3 bygfoot-2.3.2/support_files/definitions/europe/scotland/league_scotland3.xml0000644000175000017500000000316011225071372026420 0ustar eliaselias scotland3 Scottish Division Two SD2 flag_scotland.png 6 1 6300 4 scotland 5 scotland2 scotland3 scotland_prom_games2 1 1 scotland2 promotion 10 10 scotland4 relegation Alloa Arbroath Ayr Brechin East Fife Peterhead Queen’s Park Raith Stirling Stranraer bygfoot-2.3.2/support_files/definitions/europe/scotland/league_scotland4.xml0000644000175000017500000000267011225071372026426 0ustar eliaselias scotland4 Scottish Division Three SD3 flag_scotland.png 6 1 5900 4 scotland 5 scotland3 scotland4 scotland_prom_games3 1 1 scotland3 promotion Albion Annan Berwick Cowdenbeath Dumbarton East Stirlingshire Elgin Forfar Montrose Stenhousemuir bygfoot-2.3.2/support_files/definitions/europe/scotland/cup_scotland_prom_games3.xml0000644000175000017500000000154211225071372030160 0ustar eliaselias Play-Off for Division Two Play-Off D2. flag_scotland.png scotland_prom_games3 1000 national highlight2 scotland3 1 9 9 scotland4 3 2 4 bygfoot-2.3.2/support_files/definitions/europe/scotland/league_scotland1.xml0000644000175000017500000000276711225071372026432 0ustar eliaselias scotland1 Scottish Premier League SPL flag_scotland.png 6 1 10 15 28 39 7700 3 scotland 5 12 12 scotland2 relegation Glasgow C. Glasgow R. Aberdeen Falkirk Dundee U. Hamilton H. M. Edinburgh Hi. Edinburgh Inverness Kilmarnock Motherwell St Mirren bygfoot-2.3.2/support_files/definitions/europe/scotland/cup_scotland_fa.xml0000644000175000017500000000324611225071372026335 0ustar eliaselias Scottish FA Cup FA Cup flag_scotland.png scotland_fa 48 4 national 0 1 scotland4 scotland3 scotland2 6 5 10 1 6 -6 0 1 scotland2 4 1 4 1 scotland1 -4 0 1 -4 0 1 -4 0 1 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/scotland/cup_scotland_prom_games2.xml0000644000175000017500000000154211225071372030157 0ustar eliaselias Play-Off for Division One Play-Off D1. flag_scotland.png scotland_prom_games2 1000 national highlight2 scotland2 1 9 9 scotland3 3 2 4 bygfoot-2.3.2/support_files/definitions/europe/scotland/league_scotland2.xml0000644000175000017500000000262511225071372026424 0ustar eliaselias scotland2 Scottish Division One SD1 flag_scotland.png 6 1 7000 4 scotland 5 1 1 scotland1 promotion 10 10 scotland3 relegation Airdrie Clyde Dundee Dunfermline Livingston Morton Partick Queen of S. Ross C. St Johnstone bygfoot-2.3.2/support_files/definitions/europe/scotland/cup_scotland_league.xml0000644000175000017500000000354511225071372027213 0ustar eliaselias CIS Insurance Cup League Cup flag_scotland.png scotland_league 45 6 national 0 scotland4 scotland3 scotland2 8 3 10 1 -2 0 0 scotland2 2 1 2 1 scotland1 8 5 12 1 0 0 scotland1 4 1 4 1 0 0 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/spain/0000755000175000017500000000000011225071373021766 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_rfef.xml0000644000175000017500000000265011225071372025475 0ustar eliaselias Copa RFEF Copa RFEF flag_spain.png spain_rfef 38 3 national spain3a 15 1 15 spain3b 15 1 15 spain3c 15 1 15 spain3d 15 1 15 0 1 bygfoot-2.3.2/support_files/definitions/europe/spain/league_spain1.xml0000644000175000017500000000375011225071372025231 0ustar eliaselias spain1 Primera División La Liga flag_spain.png 9 1 10 15 26 8500 spain 5 4 5 18 20 spain2 relegation A. Madrid Barcelona R. Madrid Sevilla Valencia Villarreal Almería A. Bilbao B. Sevilla D. La Coruna E. Barcelona G. Madrid Málaga Mallorca Numancia Osasuna R. Santander R. Huelva S. Gijon Valladolid bygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_prom_games_4.xml0000644000175000017500000000247111225071372027130 0ustar eliaselias Liguilla de ascenso IV Lig. de asc. IV flag_spain.png spain_prom_games_4 1000 national highlight2 1 1 spain3d 1 1 1 spain3a 1 2 2 spain3b 1 3 3 spain3c 1 4 4 bygfoot-2.3.2/support_files/definitions/europe/spain/league_spain2.xml0000644000175000017500000000422311225071372025226 0ustar eliaselias spain2 Segunda División Segunda flag_spain.png 9 1 26 7600 spain 5 2 1 3 spain1 promotion 19 22 spain3a spain3b spain3c spain3d relegation Alavés Albacete Alicante Castellón C. Vigo Córdoba Eibar Elche Gimnàstic Girona Hércules Huesca Las Palmas L. Valencia Murcia R. V. Madrid Salamanca Sevilla A. R. Sociedad Tenerife Zaragoza Xerez bygfoot-2.3.2/support_files/definitions/europe/spain/league_spain3c.xml0000644000175000017500000000346511225071372025401 0ustar eliaselias spain3c Segunda División B G3 2ª Div. B G3 flag_spain.png 9 1 26 6800 spain 5 3 spain2 spain_prom_games_3 Alcoyano Alzira A. Baleares Badalona Barcelona A. Benidorm Dénia Eivissa-Ibiza Gavà Gramenet Lleida Ontinyent Orihuela Osasuna B Sabadell S. Eulalia S. Andreu Terrassa Valencia M. Villarreal B bygfoot-2.3.2/support_files/definitions/europe/spain/country_spain.xml0000644000175000017500000000134611225071372025410 0ustar eliaselias Spain 10 flag_spain.png spain spain1 spain2 spain3a spain3b spain3c spain3d spain_cdr spain_rfef europe_uefa3i europe_champ_league4 supercup_europe_uefa supercup_europe_intercontinental spain_supercopa spain_prom_games_1 spain_prom_games_2 spain_prom_games_3 spain_prom_games_4 bygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_prom_games_3.xml0000644000175000017500000000247311225071372027131 0ustar eliaselias Liguilla de ascenso III Lig. de asc. III flag_spain.png spain_prom_games_3 1000 national highlight2 1 1 spain3c 1 1 1 spain3d 1 2 2 spain3a 1 3 3 spain3b 1 4 4 bygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_supercopa.xml0000644000175000017500000000135011225071372026550 0ustar eliaselias Supercopa de España Supercopa flag_spain.png spain_supercopa 7 1 national 172 spain_cdr 1 1 1 spain1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_prom_games_1.xml0000644000175000017500000000246711225071372027132 0ustar eliaselias Liguilla de ascenso I Lig. de asc. I flag_spain.png spain_prom_games_1 1000 national highlight2 1 1 spain3a 1 1 1 spain3b 1 2 2 spain3c 1 3 3 spain3d 1 4 4 bygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_cdr.xml0000644000175000017500000000447111225071372025326 0ustar eliaselias Copa del Rey Copa del Rey flag_spain.png spain_cdr 45 2 national 0 spain3a 10 1 20 1 spain3b 10 1 20 1 spain3c 10 1 20 1 spain3d 10 1 20 1 4 -14 0 spain2 21 1 22 1 3 -14 0 1 -12 spain1 -11 -6 -7 -7 0 1 bygfoot-2.3.2/support_files/definitions/europe/spain/league_spain3b.xml0000644000175000017500000000351411225071372025373 0ustar eliaselias spain3b Segunda División B G2 2ª Div. B G2 flag_spain.png 9 1 26 6800 spain 5 3 spain2 spain_prom_games_2 Ãguilas Alcorcón Alfaro A. Madrid B Cartagena Castilla Atl. Ciudad Fuerteventura Las Palmas A. Lanzarote Leganés Lorca D. Mérida Murcia I. Navalcarnero P. Playas Sangonera A. U. Las Palmas Vecindario V.S. Brígida bygfoot-2.3.2/support_files/definitions/europe/spain/cup_spain_prom_games_2.xml0000644000175000017500000000247111225071372027126 0ustar eliaselias Liguilla de ascenso II Lig. de asc. II flag_spain.png spain_prom_games_2 1000 national highlight2 1 1 spain3b 1 1 1 spain3c 1 2 2 spain3d 1 3 3 spain3a 1 4 4 bygfoot-2.3.2/support_files/definitions/europe/spain/league_spain3a.xml0000644000175000017500000000350111225071372025366 0ustar eliaselias spain3a Segunda División B G1 2ª Div. B G1 flag_spain.png 9 1 26 6800 spain 5 3 spain2 spain_prom_games_1 Barakaldo Bilbao A. C. Vigo B C. Santiago C. Leonesa D. La Coruna B Guijuelo Lemona Lugo Marino Ponferradina Pontevedra R. Santander B R. Ferrol Sestao S. Gijon B R. Sociedad B R. Unión Valladolid B Zamora bygfoot-2.3.2/support_files/definitions/europe/spain/league_spain3d.xml0000644000175000017500000000345311225071372025377 0ustar eliaselias spain3d Segunda División B G4 2ª Div. B G4 flag_spain.png 9 1 26 6800 spain 5 3 spain2 spain_prom_games_4 Antequera Cádiz Ceuta Conquense Écija Granada Granada 74 Guadalajara Jaén Linares Linense Lucena Marbella Melilla Poli Ejido Portuense Puertollano Roquetas San Fernando B. Sevilla B bygfoot-2.3.2/support_files/definitions/europe/bosnia_herzegovina/0000755000175000017500000000000011225071373024530 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/bosnia_herzegovina/league_bosnia_herzegovina2b.xml0000755000175000017500000000323611225071372032702 0ustar eliaselias bosnia_herzegovina2b Prva Liga Sprska Prva L. Sp. flag_bosnia_herzegovina.png 6 1 23 6100 serbia 2 5 1 1 bosnia_herzegovina1 promotion B. Å amac F. Banja Luka D. HE ViÅ¡egrad D. Zvornik F. Vojkovići G. Sokolac J. BrÄko K. GradiÅ¡ka S. Foca L. Prnjavor M. Gacko R. Bijeljina R. Prijedor P. Teslic S. Novi Grad S. Doboj bygfoot-2.3.2/support_files/definitions/europe/bosnia_herzegovina/league_bosnia_herzegovina2a.xml0000755000175000017500000000320011225071372032670 0ustar eliaselias bosnia_herzegovina2a Prva Liga Prva L. flag_bosnia_herzegovina.png 6 1 23 6100 serbia 2 5 1 1 bosnia_herzegovina1 promotion B. Visoko B. Gracanica B. Banovići G. Gabela Vitez J. Bihac Krajina C. I. Bugojno O. Mionica Capljina R. Kakanj S. Napredak O. Sarajevo T. Livno Žepce O. Semizovac bygfoot-2.3.2/support_files/definitions/europe/bosnia_herzegovina/cup_bosnia_herzegovina_cup.xml0000644000175000017500000000237611225071372032653 0ustar eliaselias Kup Bosne i Hercegovine Kup B. i H. flag_bosnia_herzegovina.png bosnia_herzegovina_cup 44 3 national 0 bosnia_herzegovina2a 8 1 16 1 bosnia_herzegovina2b 8 1 16 1 bosnia_herzegovina1 -11 -13 -14 0 1 bygfoot-2.3.2/support_files/definitions/europe/bosnia_herzegovina/country_bosnia_herzegovina.xml0000755000175000017500000000105111225071372032710 0ustar eliaselias Bosnia-Herzegovina flag_bosnia_herzegovina.png bosnia_herzegovina 5 bosnia_herzegovina1 bosnia_herzegovina2a bosnia_herzegovina2b bosnia_herzegovina_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/bosnia_herzegovina/league_bosnia_herzegovina1.xml0000755000175000017500000000332511225071372032536 0ustar eliaselias bosnia_herzegovina1 Premijer Liga Prem. L. flag_bosnia_herzegovina.png 6 1 10 15 23 6900 serbia 5 15 16 bosnia_herzegovina2a bosnia_herzegovina2b relegation B. Banja Luka ÄŒ. Zenica LaktaÅ¡i L. Trebinje M. Maxima OraÅ¡je PosuÅ¡je Sarajevo S. Lukavica S. Tuzla Å . Brijeg V. Mostar Z. Mostar Travnik Z. Sarajevo Z. GradaÄac bygfoot-2.3.2/support_files/definitions/europe/n_ireland/0000755000175000017500000000000011225071373022607 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/n_ireland/cup_n_ireland_prom_games1.xml0000644000175000017500000000134511225071372030427 0ustar eliaselias IFA Promotion Games Prom. Games flag_n_ireland.png n_ireland_prom_games1 1000 national highlight2 3 n_ireland2 1 2 2 n_ireland1 1 11 11 bygfoot-2.3.2/support_files/definitions/europe/n_ireland/cup_n_ireland_setanta.xml0000644000175000017500000000350511225071372027654 0ustar eliaselias Setanta Sports Cup Setanta Cup map_ireland.png n_ireland_setanta 19 4 international 500 101 0 2 2 8 ireland1 2 1 12 1 1 ireland1 2 1 4 1 1 n_ireland_cup 1 1 1 1 n_ireland1 3 1 4 1 2 0 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/n_ireland/country_n_ireland.xml0000755000175000017500000000106411225071372027052 0ustar eliaselias Northern Ireland flag_n_ireland.png n_ireland 5 n_ireland1 n_ireland2 n_ireland3 n_ireland_cup n_ireland_setanta europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental n_ireland_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/n_ireland/cup_n_ireland_cup.xml0000644000175000017500000000253111225071372027002 0ustar eliaselias The Irish Cup I. Cup flag_n_ireland.png n_ireland_cup 45 3 national 0 n_ireland2 n_ireland3 11 -9 0 1 n_ireland1 0 -9 0 1 -3 0 1 -3 0 1 -2 0 1 bygfoot-2.3.2/support_files/definitions/europe/n_ireland/league_n_ireland1.xml0000755000175000017500000000252711225071372026677 0ustar eliaselias n_ireland1 IFA Premiership IFA Prem. flag_n_ireland.png 7 1 3 6000 england 5 12 12 n_ireland2 relegation Ballymena Bangor Cliftonville Coleraine Crusaders Dungannon Glenavon Glentoran Institute Linfield Lisburn D. Newry C. bygfoot-2.3.2/support_files/definitions/europe/n_ireland/league_n_ireland2.xml0000755000175000017500000000400111225071372026665 0ustar eliaselias n_ireland2 IFA Championship IFA Champ. flag_n_ireland.png 7 1 5400 england 5 1 1 n_ireland1 promotion n_ireland1 n_ireland_prom_games1 n_ireland2 16 17 n_ireland3 relegation Ards Armagh Ballinamallard Ballyclare Ballymoney Banbridge Carrick Coagh Dergview Donegal Glebe Killymoon Larne Limavady Loughgall Portadown Tobermore bygfoot-2.3.2/support_files/definitions/europe/n_ireland/league_n_ireland3.xml0000644000175000017500000000250711225071372026674 0ustar eliaselias n_ireland3 IFA Interim Intermediate League IFA I. L. flag_n_ireland.png 7 1 5000 england 5 1 2 n_ireland2 promotion Annagh Brantwood Chimney C. Dundela Harland and Wolff Lurgan C. Moyola P. Oxford U. S. PSNI Portstewart Queen's U. Wakehurst bygfoot-2.3.2/support_files/definitions/europe/cyprus/0000755000175000017500000000000011225071373022201 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/cyprus/cup_cyprus_cup.xml0000644000175000017500000000161111225071372025764 0ustar eliaselias Cypriot Cup C. Cup flag_cyprus.png cyprus_cup 46 3 national cyprus2 cyprus1 4 -13 -10 -3 0 -2 0 1 bygfoot-2.3.2/support_files/definitions/europe/cyprus/country_cyprus.xml0000755000175000017500000000072411225071372026040 0ustar eliaselias Cyprus flag_cyprus.png cyprus 5 cyprus1 cyprus2 cyprus_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental cyprus_supercup bygfoot-2.3.2/support_files/definitions/europe/cyprus/cup_cyprus_supercup.xml0000644000175000017500000000140411225071372027043 0ustar eliaselias LTV Super Cup Super Cup flag_cyprus.png cyprus_supercup 8 national 155 0 1 cyprus1 1 1 1 cyprus_cup 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/cyprus/league_cyprus2.xml0000755000175000017500000000264111225071372025661 0ustar eliaselias cyprus2 Division B Div. B flag_cyprus.png 9 1 6200 greece 5 1 2 cyprus1 promotion Ar. Limassol A. Lysi Ayia Napa D. Morphou Lakatamia E. Aradippou E. Assia C. Idaliou M. Nisou N. Salamis Olympiakos Omonia A. O. Sotira PAEEK bygfoot-2.3.2/support_files/definitions/europe/cyprus/league_cyprus1.xml0000755000175000017500000000300311225071372025651 0ustar eliaselias cyprus1 Division A Div. A flag_cyprus.png 9 1 10 14 6900 greece 5 13 14 cyprus2 relegation A. Larnaca A. Limassol A. Paphos Al. Larnaca A. Famagusta A. Kyperounda A. Nikosia Ap. Limassol A. Peyias A. Yeroskipou D. Katokopia E. Paralimni E. Achnas Omonia bygfoot-2.3.2/support_files/definitions/europe/serbia/0000755000175000017500000000000011225071373022121 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/serbia/country_serbia.xml0000644000175000017500000000112011225071372025664 0ustar eliaselias Serbia 7 flag_serbia.png serbia serbia1 serbia2 serbia3a serbia3b serbia3c serbia3d serbia_cup europe_uefa3a europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental serbia_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/serbia/cup_serbia_prom_games1.xml0000644000175000017500000000160011225071372027245 0ustar eliaselias Srbija Promotion S. Prom. flag_serbia.png serbia_prom_games1 1000 national highlight2 3 serbia2 4 3 6 1 serbia1 1 10 10 bygfoot-2.3.2/support_files/definitions/europe/serbia/league_serbia2.xml0000755000175000017500000000416611225071372025525 0ustar eliaselias serbia2 Prva Liga Srbija PLS flag_serbia.png 7 1 25 6700 serbia 5 1 2 serbia1 promotion 15 18 serbia3a serbia3b serbia3c serbia3d relegation serbia1 serbia_prom_games1 serbia2 Bežanija BorÄa C. Pivara D. Vranje H. Beograd InÄ‘ija K. Lazarevac M. G. Milanovac M. Radnik M. Apatin M. LuÄani Novi Pazar Novi Sad Sevojno Smederevo Srem Voždovac Subotica bygfoot-2.3.2/support_files/definitions/europe/serbia/cup_serbia_cup.xml0000644000175000017500000000541111225071372025626 0ustar eliaselias Lav Kup Srbije Lav Kup flag_serbia.png serbia_cup 3 44 5 national 0 serbia3a 2 1 16 1 serbia3b 1 1 16 1 serbia3c 1 1 16 1 serbia3d 2 1 16 1 0 -9 0 serbia3a 1 1 16 1 serbia3b 1 1 16 1 serbia3c 1 1 16 1 serbia3d 1 1 16 1 serbia2 13 1 18 1 serbia1 0 -11 0 -9 0 0 2 0 1 bygfoot-2.3.2/support_files/definitions/europe/serbia/league_serbia1.xml0000644000175000017500000000272011225071372025513 0ustar eliaselias serbia1 Super Liga Srbije Superl. flag_serbia.png 7 1 10 15 25 7400 3 serbia 5 11 12 serbia2 relegation B. Zrenjanin B. ÄŒaÄak ÄŒ. Belgrade H. Kula J. Ivanjica Jagodina N. KruÅ¡evac O. Beograd P. Beograd R. Beograd C. Z. Beograd V. Novi Sad bygfoot-2.3.2/support_files/definitions/europe/serbia/league_serbia3a.xml0000755000175000017500000000316211225071372025662 0ustar eliaselias serbia3a Srpska Liga Istok S. L. I. flag_serbia.png 7 1 25 6100 serbia 5 3 1 1 serbia2 promotion B. Dimitrovgrad C. Konstantin D. Leskovac H. Veljko J. Paraćin K. Brus R. Surdulica R. NiÅ¡ R. Pirot S. NiÅ¡ Svrljig T. ZajeÄar TopliÄanin V. Vlasotince Z. NiÅ¡ Z. Aleksandrovac bygfoot-2.3.2/support_files/definitions/europe/serbia/league_serbia3c.xml0000755000175000017500000000313611225071372025665 0ustar eliaselias serbia3c Srpska Liga Vojvodina S. L. V. flag_serbia.png 7 1 25 6100 serbia 5 3 1 1 serbia2 promotion BaÄka B. B. BaÄinci Kikinda M. Futog M. B. Jarak Palić P. Novi Sad R. Nova Pazova R. Sombor R. Å id Senta S. Temerin S. Ruma S. DebeljaÄa T. Ites VrÅ¡ac bygfoot-2.3.2/support_files/definitions/europe/serbia/league_serbia3b.xml0000755000175000017500000000315411225071372025664 0ustar eliaselias serbia3b Srpska Liga Beograd S. L. B. flag_serbia.png 7 1 25 6100 serbia 5 3 1 1 serbia2 promotion B. Beograd F. Beograd Dorćol Lisović O. Mladenovac P. P. Skela Palilulac R. Jugopetrol R. Obrenovac Si. Beograd Sopot Sr. Beograd Å . Jagnjilo Teleoptik Zemun Ž. Beograd bygfoot-2.3.2/support_files/definitions/europe/serbia/league_serbia3d.xml0000755000175000017500000000315611225071372025670 0ustar eliaselias serbia3d Srpska Liga Zapad S. L. Z. flag_serbia.png 7 1 25 6100 serbia 5 3 1 1 serbia2 promotion B. Valjevo F. Valjevo J. Ub Loznica M. Å abac M. Kraljevo Pozarevac Priboj R. Klupci R. Kragujevac S. ÄŒaÄak S. Užice S. Kraljevo S. Požega S. Petrovac na Mlavi Ž. Lajkovac bygfoot-2.3.2/support_files/definitions/europe/andorra/0000755000175000017500000000000011225071373022302 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/andorra/country_andorra.xml0000755000175000017500000000077711225071372026252 0ustar eliaselias Andorra flag_andorra.png andorra 4 andorra1 andorra2 andorra_cup europe_uefa1 europe_champ_league supercup_europe_uefa supercup_europe_intercontinental andorra_supercup andorra_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/andorra/cup_andorra_supercup.xml0000644000175000017500000000141511225071372027247 0ustar eliaselias Andorran Supercup Supercup flag_andorra.png andorra_supercup 11 national 151 0 1 andorra_cup 1 1 1 andorra1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/andorra/cup_andorra_prom_games1.xml0000644000175000017500000000133611225071372027615 0ustar eliaselias Andorra Promotion Games And. Prom. flag_andorra.png andorra_prom_games1 1000 national highlight2 3 andorra2 1 2 2 andorra1 1 7 7 bygfoot-2.3.2/support_files/definitions/europe/andorra/cup_andorra_cup.xml0000644000175000017500000000262511225071372026174 0ustar eliaselias Copa Constitució Copa C. flag_andorra.png andorra_cup 48 4 national 0 andorra2 1 -2 0 andorra1 4 5 8 1 -5 0 andorra1 4 1 4 1 -7 0 3 0 1 bygfoot-2.3.2/support_files/definitions/europe/andorra/league_andorra2.xml0000644000175000017500000000263311225071372026061 0ustar eliaselias andorra2 Segona Divisió Segona flag_andorra.png 12 1 15 20 25 35 4800 4 spain 5 1 1 andorra1 promotion andorra1 andorra_prom_games1 andorra2 Encamp A. C. d'Escaldes Lusitans II Principat II Extremenya E. Casa Del Benfica Jenlai bygfoot-2.3.2/support_files/definitions/europe/andorra/league_andorra1.xml0000755000175000017500000000236511225071372026065 0ustar eliaselias andorra1 Primera Divisió Primera flag_andorra.png 12 1 15 20 25 35 5300 4 spain 5 8 8 andorra2 relegation Engordany I. C. d'Escaldes Lusitans Principat Ranger's S. Coloma UE S. Coloma S. Julià bygfoot-2.3.2/support_files/definitions/europe/italy/0000755000175000017500000000000011225071373021776 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/italy/country_italy.xml0000644000175000017500000000165711225071372025435 0ustar eliaselias Italy 10 flag_italy.png italy italy1 italy2 italy3a italy3b italy4a italy4b italy4c italy_coppa europe_uefa3i europe_champ_league4 supercup_europe_uefa supercup_europe_intercontinental italy_supercoppa italy_prom_games_2_1 italy_prom_games_2_3 italy_prom_games_3a_2 italy_prom_games_3b_2 italy_prom_games_3a_4 italy_prom_games_3b_4 italy_prom_games_4a_3 italy_prom_games_4b_3 italy_prom_games_4c_3 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_4c_3.xml0000644000175000017500000000130611225071372027531 0ustar eliaselias Seconda Divisione C Promotion S. Div. C Prom. flag_italy.png italy_prom_games_4c_3 1000 national highlight2 promotion 1 italy4c 4 2 5 1 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_4b_3.xml0000644000175000017500000000130611225071372027530 0ustar eliaselias Seconda Divisione B Promotion S. Div. B Prom. flag_italy.png italy_prom_games_4b_3 1000 national highlight2 promotion 1 italy4b 4 2 5 1 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_3a_4.xml0000644000175000017500000000120611225071372027526 0ustar eliaselias Prima Divisione A Relegation Pr. Div. A Rel. flag_italy.png italy_prom_games_3a_4 1000 national highlight2 promotion 1 italy3a 4 14 17 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_3a_2.xml0000644000175000017500000000130511225071372027524 0ustar eliaselias Prima Divisione A Promotion Pr. Div. A Prom. flag_italy.png italy_prom_games_3a_2 1000 national highlight2 promotion 1 italy3a 4 2 5 1 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_2_3.xml0000644000175000017500000000117011225071372027363 0ustar eliaselias Serie B Relegation Serie B Rel. flag_italy.png italy_prom_games_2_3 1000 national highlight2 promotion 1 italy2 2 18 19 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_3b_2.xml0000644000175000017500000000130511225071372027525 0ustar eliaselias Prima Divisione B Promotion Pr. Div. B Prom. flag_italy.png italy_prom_games_3b_2 1000 national highlight2 promotion 1 italy3b 4 2 5 1 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_supercoppa.xml0000644000175000017500000000136011225071372026751 0ustar eliaselias Supercoppa Italiana Supercoppa flag_italy.png italy_supercoppa 8 national 162 0 italy1 1 1 1 italy_coppa 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_coppa.xml0000644000175000017500000000515111225071372025674 0ustar eliaselias Coppa Italia Coppa flag_italy.png italy_coppa 45 3 national 0 italy3a 9 1 9 1 italy3b 9 1 9 1 italy4a 6 1 18 1 italy4b 6 1 18 1 italy4c 6 1 18 1 0 -14 0 italy2 0 -16 0 italy1 12 9 20 1 0 -18 0 0 -18 0 italy1 8 1 8 1 -13 0 -6 -3 0 1 bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy4b.xml0000644000175000017500000000357611225071372025424 0ustar eliaselias italy4b Pro Seconda Divisione Girone B Seconda Div. B flag_italy.png 9 1 3 6300 italy 5 4 1 1 italy3a italy3b promotion italy3a italy3b italy_prom_games_4b_3 Bassano Bellaria Carrara Celano C. Roma Colligiana C. Cappiano Figline Giacomense Giulianova Gubbio Poggibonsi Prato Rovigo San Giovanni San Giusto San Marino Viareggio bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_4a_3.xml0000644000175000017500000000130611225071372027527 0ustar eliaselias Seconda Divisione A Promotion S. Div. A Prom. flag_italy.png italy_prom_games_4a_3 1000 national highlight2 promotion 1 italy4a 4 2 5 1 bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy2.xml0000644000175000017500000000560011225071372025246 0ustar eliaselias italy2 Serie B Serie B flag_italy.png 9 1 26 7500 italy 5 5 6 11 12 26 27 31 32 italy1 italy_prom_games_2_1 italy2 italy3a italy3b italy_prom_games_2_3 1 2 italy1 promotion 20 22 italy3a italy3b relegation Albinoleffe Ancona Ascoli Avellino Bari Brescia Cittadella Empoli Frosinone Grosseto Livorno Mantova Modena Parma Piacenza Pisa Rimini Salernitana Sassuolo Treviso Triestina Vicenza bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy3b.xml0000644000175000017500000000454111225071372025414 0ustar eliaselias italy3b Pro Prima Divisione Girone B Prima Div. B flag_italy.png 9 1 3 6700 italy 5 3 italy2 italy_prom_games_3b_2 italy3b italy4a italy4b italy4c italy_prom_games_3b_4 2 1 1 italy2 promotion 18 18 italy4a italy4b italy4c relegation Arezzo Benevento Cavese Crotone Foggia Foligno Gallipoli Juve Stabia Lanciano Marcianese Paganese Perugia Pescara Pistoiese Potenza Sorrento Taranto Ternana bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_2_1.xml0000644000175000017500000000126611225071372027367 0ustar eliaselias Serie B Promotion Serie B Prom. flag_italy.png italy_prom_games_2_1 1000 national highlight2 promotion 1 italy2 4 3 6 1 bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy4c.xml0000644000175000017500000000361011225071372025412 0ustar eliaselias italy4c Pro Seconda Divisione Girone C Seconda Div. C flag_italy.png 9 1 3 6300 italy 5 4 1 1 italy3a italy3b promotion italy3a italy3b italy_prom_games_4c_3 Andria Aversa Barletta Cassino Catanzaro Cosenza Gela I. V. Barcellona Isola del Liri Manfredonia Melfi Monopoli Noicattaro Pescina Scafati Val di Sangro Vibo Valentia V. Lamezia bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy3a.xml0000644000175000017500000000454011225071372025412 0ustar eliaselias italy3a Pro Prima Divisione Girone A Prima Div. A flag_italy.png 9 1 3 6700 italy 5 3 italy2 italy_prom_games_3a_2 italy3a italy4a italy4b italy4c italy_prom_games_3a_4 2 1 1 italy2 promotion 18 18 italy4a italy4b italy4c relegation Cesena Cremona Lecco Legnano Lumezzane Monza Novara Padova Pergocrema Portosummaga Pro Patria Pro Sesto Ravenna Reggiana Sambenedettese SPAL Venezia Verona bygfoot-2.3.2/support_files/definitions/europe/italy/cup_italy_prom_games_3b_4.xml0000644000175000017500000000120611225071372027527 0ustar eliaselias Prima Divisione B Relegation Pr. Div. B Rel. flag_italy.png italy_prom_games_3b_4 1000 national highlight2 promotion 1 italy3b 4 14 17 bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy4a.xml0000644000175000017500000000361111225071372025411 0ustar eliaselias italy4a Pro Seconda Divisione Girone A Seconda Div. A flag_italy.png 9 1 3 6300 italy 5 4 1 1 italy3a italy3b promotion italy3a italy3b italy_prom_games_4a_3 Alessandria Alghero A. Adige Canavese Carpenedolo Como I. San Marco Ivrea Mezzocorona Montichiari Olbia Pavia Pizzighettone P. Vercelli Rodengo-Saiano Sambonifacese Valenza Varese bygfoot-2.3.2/support_files/definitions/europe/italy/league_italy1.xml0000644000175000017500000000424411225071372025250 0ustar eliaselias italy1 Serie A Serie A flag_italy.png 9 1 10 15 26 39 8400 italy 5 4 5 9 10 21 22 18 20 italy2 relegation Roma A. Milano I. Milano J. Torino L. Roma A. Bergamo Bologna Catania Cagliari C. Verona F. Firenze Genoa Lecce Napoli Palermo Reggina S. Genoa Siena Torino U. Udine bygfoot-2.3.2/support_files/definitions/europe/estonia/0000755000175000017500000000000011225071373022316 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/estonia/cup_estonia_supercup.xml0000644000175000017500000000141511225071372027277 0ustar eliaselias Estonian SuperCup SuperCup flag_estonia.png estonia_supercup 1000 national 157 0 1 estonia_cup 1 1 1 estonia1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia1.xml0000755000175000017500000000226611225071372026115 0ustar eliaselias estonia1 Meistriliiga ML flag_estonia.png 1 1 5900 4 5 10 10 estonia2 relegation F. Tallinn L. Tallinn M. T. Tartu N. Kalju K. Sillamäe K. Tallinn T. Narva T. Viljandi T. Tallinn V. Pärnu bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia4d.xml0000644000175000017500000000241211225071372026252 0ustar eliaselias estonia4d Third League West 3. L. W flag_estonia.png 1 1 4300 5 4 1 1 estonia3a estonia3b promotion Toompea Rummu Risti Muhumaa Alti Haiba Püsivus Kärdla Balteco Lelle Klooga Haapsalu bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia4b.xml0000644000175000017500000000243711225071372026257 0ustar eliaselias estonia4b Third League South 3. L. S flag_estonia.png 1 1 4300 5 4 1 1 estonia3a estonia3b promotion Metec Premium Kotkad Lootos V. Pärnu III Põltsamaa Koeru Liverpool P. Fauna Noorus Elva II Järva-Jaani bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia3a.xml0000644000175000017500000000317111225071372026251 0ustar eliaselias estonia3a Second League Ida 2. L. I flag_estonia.png 1 1 4900 5 3 1 1 estonia2 promotion 13 14 estonia4a estonia4b estonia4c estonia4d relegation Lootus Legion Orbiit N. Kalju II A. Lasnamäe II Alko Tallinna K. II Ararat Anži T. Narva II Dünamo Kaitseliit K. C. Audentes Elva bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia3b.xml0000644000175000017500000000317511225071372026256 0ustar eliaselias estonia3b Second League Lõuna 2. L. L flag_estonia.png 1 1 4900 5 3 1 1 estonia2 promotion 13 14 estonia4a estonia4b estonia4c estonia4d relegation Nõmme U. Santos T. Viljandi II HÜJK V. Pärnu II M. T. Tartu III Võru Tabasalu Tarvastu Sörve Ganvix Kalevi S. Warrior II Kadakas bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia2.xml0000755000175000017500000000314311225071372026111 0ustar eliaselias estonia2 Esiliiga EL flag_estonia.png 1 1 5300 4 5 1 1 estonia1 promotion estonia1 estonia_prom_games1 estonia2 9 10 estonia3a estonia3b relegation F. Tallinn II F. Paide F. Rakvere Kuressaare A. Lasnamäe L. Tallinn II M. T. Tartu II Tamme Auto T. Tallinn II Warrior bygfoot-2.3.2/support_files/definitions/europe/estonia/country_estonia.xml0000755000175000017500000000127011225071372026267 0ustar eliaselias Estonia flag_estonia.png estonia 4 estonia1 estonia2 estonia3a estonia3b estonia4a estonia4b estonia4c estonia4d estonia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental estonia_supercup estonia_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia4c.xml0000644000175000017500000000233411225071372026254 0ustar eliaselias estonia4c Third League East 3. L. E flag_estonia.png 1 1 4300 5 4 1 1 estonia3a estonia3b promotion M.C. Oper Esteve T. Tallinn III Kotkas Atletik Kuusalu Ühinenud D. Å trommi Dnipro Tempori bygfoot-2.3.2/support_files/definitions/europe/estonia/cup_estonia_cup.xml0000644000175000017500000000340011225071372026214 0ustar eliaselias Eesti Karikas E. Karikas flag_estonia.png estonia_cup 45 3 national 0 estonia4a estonia4b estonia4c estonia4d estonia3a estonia3b 13 -23 0 estonia2 estonia1 -23 0 -23 0 -22 0 1 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/estonia/league_estonia4a.xml0000644000175000017500000000242211225071372026250 0ustar eliaselias estonia4a Third League North 3. L. N flag_estonia.png 1 1 4300 5 4 1 1 estonia3a estonia3b promotion Keskerakond Piraaja Legion II Ajax V. Olympic Tondi LiVal Sport Saue EBS Kuuse Saku Eurouniv bygfoot-2.3.2/support_files/definitions/europe/estonia/cup_estonia_prom_games1.xml0000644000175000017500000000133511225071372027644 0ustar eliaselias Estonia Promotion Games Est. Prom. flag_estonia.png estonia_prom_games1 1000 national highlight2 3 estonia2 1 2 2 estonia1 1 9 9 bygfoot-2.3.2/support_files/definitions/europe/finland/0000755000175000017500000000000011225071373022267 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/finland/country_finland.xml0000755000175000017500000000110111225071372026202 0ustar eliaselias Finland 5 flag_finland.png finland finland1 finland2 finland3a finland3b finland3c finland_suomen_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental finland_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/finland/league_finland2.xml0000755000175000017500000000355111225071372026036 0ustar eliaselias finland2 Ykkönen 1. Div. flag_finland.png 1 1 6100 5 finland 1 1 finland1 promotion finland1 finland_prom_games1 finland2 12 14 finland3a finland3b finland3c relegation A. Helsinki I. Grankulla Hämeenlinna Joensuu Jyväskylä Kemi Kokkola K. Helsinki A. Oulu P. Helsinki T. Seinäjoki T. Tampere I. Vasa V. Helsinki bygfoot-2.3.2/support_files/definitions/europe/finland/league_finland3c.xml0000755000175000017500000000271211225071372026200 0ustar eliaselias finland3c Kakkonen - Lohko C 2 C flag_finland.png 1 1 5400 5 finland 3 1 1 finland2 promotion G. Kokkola J. Jakobstad K. Kuopio Ki. Vaasa Närpes K. N. VörÃ¥ OL. Oulu F. O. Oulu OP. Oulu P. Iisalmi Seinäjoki T. Kruunupyy V-j. Vaasa Ylivieska bygfoot-2.3.2/support_files/definitions/europe/finland/cup_finland_suomen_cup.xml0000755000175000017500000000332511225071372027535 0ustar eliaselias Suomen Cup Cup flag_finland.png finland_suomen_cup 28 3 national 0 finland3a finland3b finland3c finland2 finland1 10 5 14 1 -3 46 0 -4 0 0 finland1 4 1 4 1 -6 0 -7 0 -5 0 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/finland/league_finland1.xml0000755000175000017500000000266611225071372026043 0ustar eliaselias finland1 Veikkausliiga VL flag_finland.png 1 1 6800 5 finland 14 14 finland2 relegation H. Valkeakoski H. Espoo Helsinki J. Pietarsaari Kuopio Lahti K. Kotka I. Turku I. Mariehamn M. Anjalankoski R. Rovaniemi Tampere U. T. Turku V. Vaasa bygfoot-2.3.2/support_files/definitions/europe/finland/cup_finland_prom_games1.xml0000644000175000017500000000133511225071372027566 0ustar eliaselias Veikkausliigan karsinta VL kars. flag_finland.png finland_prom_games1 1000 national highlight2 3 finland2 1 2 2 finland1 1 13 13 bygfoot-2.3.2/support_files/definitions/europe/finland/league_finland3a.xml0000755000175000017500000000273611225071372026204 0ustar eliaselias finland3a Kakkonen - Lohko A 2 A flag_finland.png 1 1 5400 5 finland 3 1 1 finland2 promotion C. S. Lahti G. Helsinki I. Helsinki H. Hyvinkää F. Jyväskylä Kl. Helsinki Kon. Helsinki Kuusankoski K. Kotka K-Uusimaa L. Helsinki Mikkeli R. Lappeenranta W. Varkaus bygfoot-2.3.2/support_files/definitions/europe/finland/league_finland3b.xml0000755000175000017500000000266011225071372026201 0ustar eliaselias finland3b Kakkonen - Lohko B 2 B flag_finland.png 1 1 5400 5 finland 3 1 1 finland2 promotion I. Ekenäs Espoo Forssa H. Äänekoski I. Finström I. Tampere Kaarina Lohja P. Rauma Pori P. Tampere Salo S. Turku I. Ã…bo bygfoot-2.3.2/support_files/definitions/europe/denmark/0000755000175000017500000000000011225071373022275 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark4c.xml0000644000175000017500000000277111225071372026217 0ustar eliaselias denmark4c Denmarksserien Group 3 DS G3 flag_denmark.png 4 1 24 5500 5 denmark 4 1 2 denmark3a denmark3b promotion Vejle II Silkeborg II Horsens f. Haderslev Aarhus F. II Tjørring Lindholm Holstebro Grenaa Odder Aalborg F. Aabyhøj Viborg II Fredericia K. bygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark1.xml0000755000175000017500000000340311225071372026045 0ustar eliaselias denmark1 SAS Ligaen SAS L. flag_denmark.png 4 1 10 15 24 39 7400 5 denmark 3 23 24 26 27 30 31 11 12 denmark2 relegation B. København København Odense Aarhus Aalborg Midtjylland Randers Horsens Vejle Nordsjælland Esbjerg SønderjyskE bygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark3a.xml0000644000175000017500000000402711225071372026210 0ustar eliaselias denmark3a Second Division West 2. Div. W flag_denmark.png 4 1 24 6000 5 denmark 3 1 1 denmark2 promotion denmark2 denmark_prom_games2 denmark3a denmark3b 14 16 denmark4a denmark4b denmark4c relegation Aalborg II Brabrand Aarhus II Blokhus Esbjerg II Fyn Aarhus F. Hobro Ikast Næsby Odense II Randers F. Hjørring Svendborg Varde Skovbakken bygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark3b.xml0000644000175000017500000000352711225071372026215 0ustar eliaselias denmark3b Second Division East 2. Div. E flag_denmark.png 4 1 24 6000 5 denmark 3 1 1 denmark2 promotion 14 16 denmark4a denmark4b denmark4c relegation Avarta Søllerød Vedbæk Boldklubben B. København II Brønshøj B. Greve F. Glostrup Hellerup København B. Værløse Ølstykke Skjold Skovlunde Stenløse Vanløse Vestsjælland bygfoot-2.3.2/support_files/definitions/europe/denmark/cup_denmark_cup.xml0000644000175000017500000000375711225071372026171 0ustar eliaselias Ekstra Bladet Cup Landspokal flag_denmark.png denmark_cup 47 4 national 0 denmark4a denmark4b denmark4c denmark3a denmark3b denmark2 6 -12 0 denmark1 8 5 12 0 -14 0 denmark1 4 1 4 0 -14 0 -13 0 -15 0 1 bygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark4a.xml0000644000175000017500000000276011225071372026213 0ustar eliaselias denmark4a Denmarksserien Group 1 DS G1 flag_denmark.png 4 1 24 5500 5 denmark 4 1 2 denmark3a denmark3b promotion B. 1908 Allerød E. Helsingør B. 1903 Amager B. Herlev Lyngby II G. Vangede Avedøre Kastrup N. Kokkedal Skjold B. Frem II Virum S. bygfoot-2.3.2/support_files/definitions/europe/denmark/cup_denmark_prom_games2.xml0000644000175000017500000000135211225071372027602 0ustar eliaselias Denmark 2nd Division Promotion 2. Div. Prom. flag_denmark.png denmark_prom_games2 1000 national highlight2 3 denmark3a 1 2 2 denmark3b 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark4b.xml0000644000175000017500000000276711225071372026223 0ustar eliaselias denmark4b Denmarksserien Group 2 DS G2 flag_denmark.png 4 1 24 5500 5 denmark 4 1 2 denmark3a denmark3b promotion Næstved I. Otterup B. Nykøbing Nordvest Middelfart Herfølge II B. 1909 Dalum Svebølle B. 1913 F. Sakskøbing Odense K. Køge II Nakskov bygfoot-2.3.2/support_files/definitions/europe/denmark/league_denmark2.xml0000755000175000017500000000342411225071372026051 0ustar eliaselias denmark2 Viasat Sport Division S. Div. flag_denmark.png 4 1 24 6700 5 denmark 1 2 denmark1 promotion 14 16 denmark3a denmark3b relegation A. Copenhagen Amager Fredericia Frem Herfølge Hvidovre Kolding Køge Lolland-Falster Lyngby Næstved Roskilde Silkeborg Skive Thisted Viborg bygfoot-2.3.2/support_files/definitions/europe/denmark/country_denmark.xml0000755000175000017500000000117511225071372026231 0ustar eliaselias Denmark flag_denmark.png denmark 6 denmark1 denmark2 denmark3a denmark3b denmark4a denmark4b denmark4c denmark_cup europe_uefa3d europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental denmark_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/belgium/0000755000175000017500000000000011225071373022300 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium3a.xml0000644000175000017500000000401511225071372026213 0ustar eliaselias belgium3a Derde klasse A 3de kl. A flag_belgium.png 7 1 8 6000 5 3 belgium 15 16 belgium4a belgium4b relegation 1 1 belgium2 promotion belgium2 belgium_eindronde3 belgium3a belgium3b Diegem F. Borains Gent-Zeehaven La Louvière Oudenaarde Sint-Niklaas Péruwelz Union S. Wetteren Sottegem Waregem Wielsbeke U. Centre Woluwé E. Aalst Woluwé-Z. bygfoot-2.3.2/support_files/definitions/europe/belgium/cup_belgium.xml0000644000175000017500000000271511225071372025321 0ustar eliaselias Beker van België Beker v. Belg. flag_belgium.png belgium 3 35 3 national 0 belgium1 belgium2 belgium3a belgium3b belgium4a belgium4b belgium4c belgium4d 0 0 0 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/belgium/cup_belgium_supercup.xml0000644000175000017500000000136111225071372027243 0ustar eliaselias Belgian Supercup Supercup flag_belgium.png belgium_supercup 6 national 152 0 belgium1 1 1 1 belgium_beker 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium1.xml0000644000175000017500000000347111225071372026055 0ustar eliaselias belgium1 Jupiler Pro League Jupiler L. flag_belgium.png 7 1 10 15 26 39 7400 5 belgium 18 18 belgium2 relegation Ce. Brugge A. Brussels S. Liege R. Genk Gent Charleroi Westerlo Dender Lokeren Cl. Brugge Kortrijk Mons G. Beerschot E. Moeskroen Tubize K. Mechelen Z. Waregem Roeselare bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium4d.xml0000644000175000017500000000310211225071372026213 0ustar eliaselias belgium4d Vierde klasse D 4de kl. D flag_belgium.png 7 1 8 5100 3 4 belgium 1 1 belgium3b promotion Bertrix Bleid Spa Hoei Malmundaria Hannuit L. Aarlen Ciney Aische R. J. Waver Sprimont-Com. Faymonville Walhain Bioul Andenne-Seilles Vaux bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium4b.xml0000644000175000017500000000307511225071372026222 0ustar eliaselias belgium4b Vierde klasse B 4de kl. B flag_belgium.png 7 1 8 5100 3 4 belgium 1 1 belgium3a promotion Berchem Dilbeek Grimbergen Bornem Ternat St.-P.-Opwijk Duffel Londerzeel Meldert Opstal Berlare Borgerhout Schoten Temse Zele Wilrijk bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium3b.xml0000644000175000017500000000345111225071372026217 0ustar eliaselias belgium3b Derde klasse B 3de kl. B flag_belgium.png 7 1 8 6000 5 3 belgium 15 16 belgium4c belgium4d relegation 1 1 belgium2 promotion Cappellen Dessel S. Tongeren La Calamine Hamoir Hoogstraten Verviers R. Mechelen Mol-Wezel Rupel B. Sérésien Bocholt Turnhout Veldwezelt Visé Willebroek-Meerhof bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium2.xml0000644000175000017500000000421411225071372026052 0ustar eliaselias belgium2 EXQI League 2de L. flag_belgium.png 6 1 4 6700 5 belgium 18 19 belgium3a belgium3b relegation 1 1 belgium1 promotion belgium1 belgium_eindronde2 belgium2 Oostende Beveren R. S. Waasland Ronse Charleroi-M. Antwerpen Lierse Tienen R. Liège Virton Deinze Overpelt-Lommel Hamme Brussels Sint-Truiden Eupen Leuven Namur Tournai bygfoot-2.3.2/support_files/definitions/europe/belgium/cup_belgium_eindronde3.xml0000644000175000017500000000215611225071372027432 0ustar eliaselias eindronde 3de klasse eindr. 3de kl. flag_belgium.png belgium_eindronde3 1000 national highlight2 3 0 belgium3a 3 2 4 belgium3b 3 2 4 belgium2 1 17 17 0 1 bygfoot-2.3.2/support_files/definitions/europe/belgium/cup_belgium_eindronde4.xml0000644000175000017500000000315611225071372027434 0ustar eliaselias eindronde 4de klasse eindr. 4de kl. flag_belgium.png belgium_eindronde4 1000 national highlight2 3 0 0 belgium4a 3 2 4 belgium4b 3 2 4 belgium4c 3 2 4 belgium4d 3 2 4 2 1 belgium3a 1 14 14 belgium3b 1 14 14 bygfoot-2.3.2/support_files/definitions/europe/belgium/cup_belgium_beker.xml0000644000175000017500000000360511225071372026470 0ustar eliaselias Beker van België Beker v. Belg. flag_belgium.png belgium_beker 3 45 3 national 0 26 belgium4a belgium4b belgium4c belgium4d -8 0 0 belgium3a belgium3b -8 0 0 belgium2 -8 0 0 -7 0 belgium1 -7 0 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium4c.xml0000644000175000017500000000314711225071372026223 0ustar eliaselias belgium4c Vierde klasse C 4de kl. C flag_belgium.png 7 1 8 5100 3 4 belgium 1 1 belgium3b promotion Lyra Hasselt Leopoldsburg St. Lenaarts Geel-Meerhout Witg. Des. Neerpelt Heist V. Maasmechelen Thes S. Lille Heusden-Zolder Seraing Spouwen Mopertingen P.Maasmechelen Wijgmaal bygfoot-2.3.2/support_files/definitions/europe/belgium/cup_belgium_eindronde2.xml0000644000175000017500000000154211225071372027427 0ustar eliaselias eindronde 2de klasse eindr. 2de kl. flag_belgium.png belgium_eindronde2 1000 national highlight2 3 1 1 belgium2 3 2 4 belgium1 1 17 17 bygfoot-2.3.2/support_files/definitions/europe/belgium/country_belgium.xml0000644000175000017500000000137611225071372026237 0ustar eliaselias Belgium 7 flag_belgium.png belgium belgium1 belgium2 belgium3a belgium3b belgium4a belgium4b belgium4c belgium4d belgium_beker europe_uefa2a europe_champ_league2 supercup_europe_uefa supercup_europe_intercontinental belgium_supercup belgium_eindronde2 belgium_eindronde3 belgium_eindronde4 bygfoot-2.3.2/support_files/definitions/europe/belgium/league_belgium4a.xml0000644000175000017500000000364611225071372026225 0ustar eliaselias belgium4a Vierde klasse A 4de kl. A flag_belgium.png 7 1 8 5100 3 4 belgium 1 1 belgium3a promotion 2 belgium3a belgium3b belgium_eindronde4 belgium4a belgium4b belgium4c belgium4d Tamines Izegem Heppignies Koksijde Ieper Diksmuide Petegem Torhout Couillet Lauwe Olsa Brakel Sint-Eloois-Winkel Paturage Couvin-Mar. Beloeil Oostende bygfoot-2.3.2/support_files/definitions/europe/luxembourg/0000755000175000017500000000000011225071373023045 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/luxembourg/league_luxembourg3b.xml0000644000175000017500000000301111225071372027521 0ustar eliaselias luxembourg3b Division 1 Group 2 Div. 1. G2 flag_luxembourg.png 6 1 24 4700 belgium 5 3 1 1 luxembourg2 promotion U. Kayl-Tétange C. Obercorn Cessange B. G. Mondorf-les-Bains Una Strassen Rodange Ehlerange U. Esch Bettembourg Munsbach S. Mensdorf Sandweiler S. Bertrange Bous bygfoot-2.3.2/support_files/definitions/europe/luxembourg/league_luxembourg1.xml0000755000175000017500000000316611225071372027373 0ustar eliaselias luxembourg1 Division Nationale Div. Nat. flag_luxembourg.png 6 1 10 15 24 39 5700 belgium 5 12 14 luxembourg2 relegation A. Beggen Differdange Dudelange E. Ettelbrück F. Esch Grevenmacher J. Esch K. Bascharage P. Niedercorn R. U. Luxembourg R. H. B. Luxembourg Rumelange S. Steinfort S. Hesperange bygfoot-2.3.2/support_files/definitions/europe/luxembourg/cup_luxembourg_cup.xml0000644000175000017500000000277611225071372027511 0ustar eliaselias Coupe de Luxembourg Coupe flag_luxembourg.png luxembourg_cup 48 3 national 0 luxembourg3a luxembourg3b 16 -11 0 luxembourg2 0 -10 0 luxembourg1 0 -2 0 2 0 2 0 2 0 1 bygfoot-2.3.2/support_files/definitions/europe/luxembourg/league_luxembourg3a.xml0000644000175000017500000000302311225071372027523 0ustar eliaselias luxembourg3a Division 1 Group 1 Div. 1. G1 flag_luxembourg.png 6 1 24 4700 belgium 5 3 1 1 luxembourg2 promotion Y. B. Diekirch Mamer J. Schieren Wincrange Bastendorf Harlange-Tarchamps Hobscheid Eischen J. Gilsdorf D. C. Echternach Kehlen Ell Lorentzweiler B. B. Muhlenbach O. Vianden bygfoot-2.3.2/support_files/definitions/europe/luxembourg/country_luxembourg.xml0000755000175000017500000000102111225071372027537 0ustar eliaselias Luxembourg flag_luxembourg.png luxembourg 4 luxembourg1 luxembourg2 luxembourg3a luxembourg3b luxembourg_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/luxembourg/league_luxembourg2.xml0000755000175000017500000000331011225071372027363 0ustar eliaselias luxembourg2 Division Honour Div. Hon. flag_luxembourg.png 6 1 24 5100 belgium 5 1 3 luxembourg1 promotion 13 14 luxembourg3a luxembourg3b relegation A. Bissen J. Canach Colmarberg Erpeldange Hostert M. Lintgen U. Mertert-Wasserbillig S. Mertzig Mondercange Pétange V. Rosport F. B. Udinesina Wiltz K. Wormeldange bygfoot-2.3.2/support_files/definitions/europe/norway/0000755000175000017500000000000011225071373022173 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/norway/league_norway3b.xml0000644000175000017500000000271011225071372026002 0ustar eliaselias norway3b 2. divisjon avd. 2 2.2 flag_norway.png 1 1 5800 5 norway 3 1 1 norway2 promotion B. Trondheim Gr. Oslo Hemne Kj. Oslo Ko. Oslo Kristiansund Levanger L. Oslo II Ra. Trondheim S. Ã…lesund Sk. Oslo Steinkjær Str. Trondheim V. Oslo II bygfoot-2.3.2/support_files/definitions/europe/norway/cup_norway_nm.xml0000644000175000017500000000266411225071372025604 0ustar eliaselias Norgesmesterskap NM flag_norway.png norway_nm 3 31 4 national 0 norway1 norway2 norway3a norway3b norway3c norway3d 42 0 0 0 0 0 -1 0 -3 0 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/norway/league_norway2.xml0000644000175000017500000000371111225071372025641 0ustar eliaselias norway2 Adeccoligaen 1. div. flag_norway.png 1 1 6400 5 norway 1 1 norway1 promotion norway1 norway_kvalik norway2 13 16 norway3a norway3b norway3c norway3d relegation Alta Bryne Haugesund Hødd Hønefoss Kongsvinger L-Ham Moss Notodden Nybergsund O. Grenland S. Sarpsborg Sandefjord Sandnes Ulf Sogndal Start bygfoot-2.3.2/support_files/definitions/europe/norway/country_norway.xml0000644000175000017500000000111311225071372026012 0ustar eliaselias Norway 6 flag_norway.png norway norway1 norway2 norway3a norway3b norway3c norway3d norway_nm europe_uefa3b europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental norway_kvalik bygfoot-2.3.2/support_files/definitions/europe/norway/league_norway3c.xml0000644000175000017500000000272211225071372026006 0ustar eliaselias norway3c 2. divisjon avd. 3 2.3 flag_norway.png 1 1 5800 5 norway 3 1 1 norway2 promotion Fa. Bergen Flekkerøy Fy. Bergen Lillestrøm II Mandal N-S. Ã…gotnes O. Osøyro Randaberg Stavanger V. Haugesund V. Vennesla V. Stavanger II Ã…lgÃ¥rd Ã…. Bergen bygfoot-2.3.2/support_files/definitions/europe/norway/cup_norway_kvalik.xml0000644000175000017500000000142111225071372026441 0ustar eliaselias Opprykkskvalik Opp.kv. flag_norway.png norway_kvalik 3 1000 national highlight2 1 norway1 1 13 13 norway2 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/norway/league_norway3d.xml0000644000175000017500000000270411225071372026007 0ustar eliaselias norway3d 2. divisjon avd. 4 2.4 flag_norway.png 1 1 5800 5 norway 3 1 1 norway2 promotion Asker Bærum Eidsvoll L. Svolvær Mo P. G. Porsgrunn R. Trondheim II S. Silsand Sk. Tromsø Skjetten Tromsdalen Tromsø II Tønsberg U. K. Jessheim bygfoot-2.3.2/support_files/definitions/europe/norway/league_norway1.xml0000644000175000017500000000265311225071372025644 0ustar eliaselias norway1 Tippeligaen tippel. flag_norway.png 1 1 7200 5 norway 14 14 norway2 relegation Aalesund Bodø/Glimt B. Bergen Fredrikstad Ham-Kam Lillestrøm L. Oslo Molde R. Trondheim S. Bærum S. Drammen Tromsø V. Oslo V. Stavanger bygfoot-2.3.2/support_files/definitions/europe/norway/league_norway3a.xml0000644000175000017500000000272211225071372026004 0ustar eliaselias norway3a 2. divisjon avd. 1 2.1 flag_norway.png 1 1 5800 5 norway 3 1 1 norway2 promotion Drøbak-Frogn F. Ski Fredrikstad II Lørenskog M. S. Oslo Mjøndalen M. Ã…mot Raufoss S. Jeløy S. II Bærum Strømmen S. II Drammen V. Fagernes Ø. Fredrikstad bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/0000755000175000017500000000000011225071373023454 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/country_fyr_macedonia.xml0000755000175000017500000000134611225071372030567 0ustar eliaselias FYR Macedonia flag_fyr_macedonia.png fyr_macedonia 5 fyr_macedonia1 fyr_macedonia2 fyr_macedonia3a fyr_macedonia3b fyr_macedonia3c fyr_macedonia3d fyr_macedonia3e fyr_macedonia3f fyr_macedonia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental fyr_macedonia_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3d.xml0000644000175000017500000000261611225071372030553 0ustar eliaselias fyr_macedonia3d Makedonska Treta Liga Istok Treta L. I. flag_fyr_macedonia.png 1 1 5500 serbia 5 3 inactive Astibo B. DelÄevo Filip II Karbinci MaleÅ¡ Mak-Meso M. Murtino M. Orizari N. PehÄevo Osogovo PlaÄkovica Rudar Tiverija Vasilevo Zletovica Zrnovka bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3c.xml0000644000175000017500000000224211225071372030545 0ustar eliaselias fyr_macedonia3c Makedonska Treta Liga Југ Treta L. J. flag_fyr_macedonia.png 1 1 5500 serbia 5 3 inactive 11 Oktomvri Babuna Borec D. Ezero G. Konjari I. Basino M. KrivogaÅ¡tani Partizan P. Valandovo Prevalec TikveÅ¡ V. Tabak bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia2.xml0000644000175000017500000000366511225071372030413 0ustar eliaselias fyr_macedonia2 Makedonska Vtora Liga Vtora L. flag_fyr_macedonia.png 6 1 25 6000 serbia 5 1 2 fyr_macedonia1 promotion fyr_macedonia1 2 fyr_macedonia_prom_games1 fyr_macedonia2 B. Strumica Bregalnica Å tip Ce. Skopje F. Miravci D. Bogovinje L. Skopje F. Ohrid Å . Tetovo S. J. Skopje K. Gevgelija F. Skopje F. Novaci N. M. Susica V. Dekamel T. Tetovo M. Solidarnost bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/cup_fyr_macedonia_prom_games1.xml0000644000175000017500000000144311225071372032140 0ustar eliaselias FYR Macedonia Promotion Mac. Prom. flag_fyr_macedonia.png fyr_macedonia_prom_games1 1000 national highlight2 3 2 fyr_macedonia2 2 3 4 fyr_macedonia1 2 8 9 bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/cup_fyr_macedonia_cup.xml0000644000175000017500000000403111225071372030511 0ustar eliaselias Kup na Makedonija Kup n. Mak. flag_fyr_macedonia.png fyr_macedonia_cup 45 3 national 0 fyr_macedonia3a 1 1 9 1 fyr_macedonia3b 1 1 8 1 fyr_macedonia3c 1 1 12 1 fyr_macedonia3d 1 1 16 1 fyr_macedonia3e 1 1 14 1 fyr_macedonia2 fyr_macedonia1 0 -13 -10 -11 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3a.xml0000644000175000017500000000176511225071372030554 0ustar eliaselias fyr_macedonia3a Makedonska Treta Liga Север Division A Treta L. C. Div A flag_fyr_macedonia.png 1 1 5500 serbia 5 3 inactive Fortuna G. Delcev Ilinden Kadino Lojane Marino Mladina N. Kolonija Å . AraÄinovo bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3b.xml0000644000175000017500000000165711225071372030555 0ustar eliaselias fyr_macedonia3b Makedonska Treta Liga Север Division B Treta L. C. Div B flag_fyr_macedonia.png 1 1 5500 serbia 5 3 inactive Besa DraÄevo G. Lisice Lepenec Mladinec Slavija Treska Volkovo bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia1.xml0000755000175000017500000000326211225071372030406 0ustar eliaselias fyr_macedonia1 Prva Liga Prva L. flag_fyr_macedonia.png 6 1 10 15 25 6700 serbia 3 5 13 14 23 24 28 29 10 11 fyr_macedonia2 relegation Ma. Skopje Me. Skopje Milano N. Kicevo P. Bitola P. Prilep R. Skopje R. Cepciste S. Kratovo Turnovo V. Skopje bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3e.xml0000644000175000017500000000241511225071372030551 0ustar eliaselias fyr_macedonia3e Makedonska Treta Liga Zapad Treta L. Z. flag_fyr_macedonia.png 1 1 5500 serbia 5 3 inactive Fljamurtari Gostivar Gradec Kamenjane Lirija Ljuboten PalÄiÅ¡te Pirok Rinija Rufeja V. Brvenica V. Forino V. Slatino Zajas bygfoot-2.3.2/support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3f.xml0000644000175000017500000000132311225071372030547 0ustar eliaselias fyr_macedonia3f Makedonska Treta Liga Југозапад Treta L. Jz. flag_fyr_macedonia.png 1 1 5500 serbia 5 3 inactive #incomplete team list Korab P. G. KruÅ¡evo Prespa R. Bitola bygfoot-2.3.2/support_files/definitions/europe/san_marino/0000755000175000017500000000000011225071373023002 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/san_marino/cup_san_marino_coppa.xml0000755000175000017500000000202611225071372027705 0ustar eliaselias Coppa Titano Coppa flag_san_marino.png san_marino_coppa 45 2 national 3 2 2 1 1 san_marino_group_a san_marino_group_b -7 0 1 0 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/san_marino/cup_san_marino_supercoppa.xml0000755000175000017500000000145211225071372030766 0ustar eliaselias Supercoppa San Marino Supercoppa flag_san_marino.png san_marino_supercoppa 10 national 17 0 1 san_marino_playoffs 1 1 1 san_marino_coppa 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/san_marino/league_san_marino_group_b.xml0000755000175000017500000000163511225071372030720 0ustar eliaselias san_marino_group_b Campionato Gruppo B B flag_san_marino.png 2 2 5300 5 italy 1 Cailungo Cosmos Faetano Fiorentino Folgore Murata San Giovanni Tre Fiori bygfoot-2.3.2/support_files/definitions/europe/san_marino/country_san_marino.xml0000755000175000017500000000111111225071372027431 0ustar eliaselias San Marino flag_san_marino.png san_marino 4 san_marino_group_a san_marino_group_b san_marino_coppa san_marino_playoffs europe_uefa1 europe_champ_league san_marino_supercoppa supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/san_marino/league_san_marino_group_a.xml0000755000175000017500000000164411225071372030717 0ustar eliaselias san_marino_group_a Campionato Gruppo A A flag_san_marino.png 1 2 5300 italy 5 1 san_marino_group_b Domagnano Juvenes-Dogana La Fiorita Libertas Pennarossa Tre Penne Virtus bygfoot-2.3.2/support_files/definitions/europe/san_marino/cup_san_marino_playoffs.xml0000755000175000017500000000337111225071372030432 0ustar eliaselias Campionato Playoffs Camp. Pl. flag_san_marino.png san_marino_playoffs 3 1000 national highlight2 0 1 san_marino_group_a 1 2 2 san_marino_group_b 1 3 3 san_marino_group_b 1 2 2 san_marino_group_a 1 3 3 0 1 san_marino_group_a 1 1 1 san_marino_group_b 1 1 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/azerbaijan/0000755000175000017500000000000011225071373022762 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/azerbaijan/cup_azerbaijan_cup.xml0000644000175000017500000000200411225071372027323 0ustar eliaselias Azerbaijan Cup Cup flag_azerbaijan.png azerbaijan_cup 45 3 national azerbaijan2 4 1 8 1 -10 azerbaijan1 -9 -1 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/azerbaijan/league_azerbaijan1.xml0000755000175000017500000000310111225071372027212 0ustar eliaselias azerbaijan1 Yuksek Liqa Yuksek flag_azerbaijan.png 7 1 10 15 23 39 6200 russia 5 13 14 azerbaijan2 relegation F. Bakı F. Bakili İ. Bakı K. Evlakh K. Lankaran M. Bakı N. Salyan N. Bakı O. Bakı Q. Agdam Qäbälä S. Zaqatala S. Bakı T. Tovuz bygfoot-2.3.2/support_files/definitions/europe/azerbaijan/country_azerbaijan.xml0000755000175000017500000000071511225071372027402 0ustar eliaselias Azerbaijan flag_azerbaijan.png azerbaijan 4 azerbaijan1 azerbaijan2 azerbaijan_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/azerbaijan/league_azerbaijan2.xml0000644000175000017500000000221111225071372027211 0ustar eliaselias azerbaijan2 Birinci Dasta Birinci flag_azerbaijan.png 7 1 23 5600 russia 4 5 1 2 azerbaijan1 promotion G. Gazakh A. Barda Ad. Bakı S. Gusar E. Mingechaur A. P. Neftchala S. Guba Qafgaz U. bygfoot-2.3.2/support_files/definitions/europe/france/0000755000175000017500000000000011225071373022112 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/france/league_france5d.xml0000644000175000017500000000317411225071372025651 0ustar eliaselias france5d CFA2 Groupe D CFA2 D flag_france.png 6 1 8 5700 france 5 5 1 1 france4a france4b france4c france4d promotion B. Péronnas Échirolles Grenoble B Andrézieux B A. Ajaccio B Chambéry Clermont B Gueugnon B Minguettes V. Chalon-sur-Saone Thiers Pontarlier Monts d'Or Azergues Sud Nivernais Imphy Dijon B Montceau B bygfoot-2.3.2/support_files/definitions/europe/france/league_france5e.xml0000644000175000017500000000315711225071372025653 0ustar eliaselias france5e CFA2 Groupe E CFA2 E flag_france.png 6 1 8 5700 france 5 5 1 1 france4a france4b france4c france4d promotion Le Pontet O. Marseille B Raphaël L. C. Rocheville R. de Menton Nice B Marseille E. C. Nîmes B Manosque Valettoise S. Bastia B Corte G. C. Marseille E. U. Pont du Gard Gardanne La Trinité bygfoot-2.3.2/support_files/definitions/europe/france/league_france4a.xml0000644000175000017500000000366011225071372025645 0ustar eliaselias france4a CFA1 Groupe A CFA1 A flag_france.png 6 1 6 6200 france 5 4 1 1 france3 promotion 17 18 france5a france5b france5c france5d france5e france5f france5g france5h relegation Auxerre B Besançon Colmar Compiègne Dunkerque Lens B Lille B Metz B Moissy Montceau Mulhouse Nancy B Noisy-le-Sec Raon-l'Étape Sainte-Geneviève Sochaux B Strasbourg B Vesoul bygfoot-2.3.2/support_files/definitions/europe/france/league_france5b.xml0000644000175000017500000000307411225071372025646 0ustar eliaselias france5b CFA2 Groupe B CFA2 B flag_france.png 6 1 8 5700 france 5 5 1 1 france4a france4b france4c france4d promotion Feignies J. A. de Drancy Troyes B Reims B Arras Avion Reims S. A. Sedan B Valenciennes B Levallois Sens Les Lilas Ivry Lesquin Roye Chauny bygfoot-2.3.2/support_files/definitions/europe/france/league_france5h.xml0000644000175000017500000000313411225071372025651 0ustar eliaselias france5h CFA2 Groupe H CFA2 H flag_france.png 6 1 8 5700 france 5 5 1 1 france4a france4b france4c france4d promotion Brest B Nantes B Lorient B Carquefou Angers B Avranches Montagnarde Inzinzac Vertou Laval B Concarneau Changé Mondeville La Tour d'A. Rennes Dives Fléchois B. Les Laval bygfoot-2.3.2/support_files/definitions/europe/france/league_france4c.xml0000644000175000017500000000365511225071372025653 0ustar eliaselias france4c CFA1 Groupe C CFA1 C flag_france.png 6 1 6 6200 france 5 4 1 1 france3 promotion 17 18 france5a france5b france5c france5d france5e france5f france5g france5h relegation Albi Anglet Aurillac Balma Bergerac Bordeaux B Bordelais Châtellerault Colomiers Fontenay Le Mans B Luçon Luzenac Montluçon Moulins Pau Romorantin Yzeure bygfoot-2.3.2/support_files/definitions/europe/france/cup_france_coupe.xml0000644000175000017500000000511411225071372026134 0ustar eliaselias Coupe de France Coupe flag_france.png france_coupe 45 3 national weak_at_home 0 france5a france5b france5c france5d france5e france5f france5g france5h 98 -6 0 france4a france4b france4c france4d 46 -7 0 france3 0 -8 0 france2 0 -6 0 france1 0 -3 0 -3 0 0 -1 0 0 bygfoot-2.3.2/support_files/definitions/europe/france/league_france5c.xml0000644000175000017500000000312611225071372025645 0ustar eliaselias france5c CFA2 Groupe C CFA2 C flag_france.png 6 1 8 5700 france 5 5 1 1 france4a france4b france4c france4d promotion I. Modenheim St-Louis N. Épinal Selongey Amnéville Jarville Chaumont Thaon Vesoul B Belfort Besançon B Haguenau P. V. Strasbourg Saint-Dié Saint-Dizier Algrange bygfoot-2.3.2/support_files/definitions/europe/france/cup_france_supercup.xml0000644000175000017500000000137411225071372026673 0ustar eliaselias Le Trophée des Champions Trop. d. Cham. flag_france.png france_supercup 5 national 158 0 france1 1 1 1 france_coupe 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/france/league_france5g.xml0000644000175000017500000000325311225071372025652 0ustar eliaselias france5g CFA2 Groupe G CFA2 G flag_france.png 6 1 5 5700 france 5 5 1 1 france4a france4b france4c france4d promotion Blois Cognac Niort B O. Saumur Auxerre C Le Poiré-sur-Vie Vendée Saint-Pryve Saint-Hilaire Herbiers Tours B Arménienne Alencon Châteauroux B Thouars Malesherbes Buxerolles Choisy le Roi Chartres bygfoot-2.3.2/support_files/definitions/europe/france/league_france1.xml0000644000175000017500000000357511225071372025506 0ustar eliaselias france1 Ligue 1 L1 flag_france.png 6 1 10 15 26 39 8100 france 5 18 20 france2 relegation Auxerre Bordeaux Caen Grenoble Le Havre Le Mans Lille Lorient Lyon Marseille Monaco Nancy Nantes Nice Paris SG Rennes Saint-Etienne Sochaux Toulouse Valenciennes bygfoot-2.3.2/support_files/definitions/europe/france/country_france.xml0000644000175000017500000000157011225071372025657 0ustar eliaselias France 9 flag_france.png france france1 france2 france3 france4a france4b france4c france4d france5a france5b france5c france5d france5e france5f france5g france5h france_coupe france_ligue europe_uefa3f europe_champ_league3 supercup_europe_uefa supercup_europe_intercontinental france_supercup bygfoot-2.3.2/support_files/definitions/europe/france/league_france3.xml0000644000175000017500000000377611225071372025513 0ustar eliaselias france3 Championnat de France National Ntl flag_france.png 6 1 4 6700 france 5 1 3 france2 promotion 17 20 france4a france4b france4c france4d relegation Arles Bayonne Beauvais Calais Cannes Cassis-Carnoux Cherbourg Créteil Croix-de-Savoie Entente SSG Gueugnon Istres Laval Libourne Louhans-Cuiseaux Niort Pacy Paris Rodez Sète bygfoot-2.3.2/support_files/definitions/europe/france/cup_france_ligue.xml0000644000175000017500000000406011225071372026125 0ustar eliaselias Coupe de la Ligue C. Ligue flag_france.png france_ligue 43 4 national 0 france2 5 16 20 1 france3 5 1 5 0 -9 0 france2 15 1 15 1 0 -12 0 france1 18 3 20 1 0 -14 0 france1 2 1 2 1 -11 0 -6 0 -7 0 bygfoot-2.3.2/support_files/definitions/europe/france/league_france2.xml0000644000175000017500000000366311225071372025505 0ustar eliaselias france2 Ligue 2 L2 flag_france.png 6 1 4 7300 france 5 1 3 france1 promotion 18 20 france3 relegation Ajaccio Amiens Angers Bastia Boulogne Brest Châteauroux Clermont Dijon Guingamp Lens Metz Montpellier Nîmes Reims Sedan Strasbourg Tours Troyes Vannes bygfoot-2.3.2/support_files/definitions/europe/france/league_france5a.xml0000644000175000017500000000320611225071372025642 0ustar eliaselias france5a CFA2 Groupe A CFA2 A flag_france.png 6 1 6 5700 france 5 5 1 1 france4a france4b france4c france4d promotion Drouais Amiens A. Dieppe Oissel Mantes Marck Hazebrouck Poissy Trouville Deauville Amiens B Entente SSG B Créteil B Gravelines Pacy B Wasquehal Armentières Ifs bygfoot-2.3.2/support_files/definitions/europe/france/league_france5f.xml0000644000175000017500000000313711225071372025652 0ustar eliaselias france5f CFA2 Groupe F CFA2 F flag_france.png 6 1 8 5700 france 5 5 1 1 france4a france4b france4c france4d promotion Toulouse B Trélissac Toulouse F. Tarbes P. R. Toulouse Sète B Bayonnais B Bassin d'Arcachon Montois Brive Saint-Alban Blagnac Aurillac B L. Saint-Seurin B Agen P. C. Sète bygfoot-2.3.2/support_files/definitions/europe/france/league_france4b.xml0000644000175000017500000000367411225071372025653 0ustar eliaselias france4b CFA1 Groupe B CFA1 B flag_france.png 6 1 6 6200 france 5 4 1 1 france3 promotion 17 18 france5a france5b france5c france5d france5e france5f france5g france5h relegation Agde Andrézieux C. Bastia Fréjus Gap Gazélec Hyères Jura S. A. Lyon Lyon B Marignane Martigues Monaco B Montpellier B Saint-Étienne B Saint-Priest Toulon Villefranche bygfoot-2.3.2/support_files/definitions/europe/france/league_france4d.xml0000644000175000017500000000367711225071372025660 0ustar eliaselias france4d CFA1 Groupe D CFA1 D flag_france.png 6 1 6 6200 france 5 4 1 1 france3 promotion 17 18 france5a france5b france5c france5d france5e france5f france5g france5h relegation Alfortville Caen B Guingamp B Le Havre B Orléans Paris SG B Plabennec Pontivy Quevilly Quimper R. Paris Red Star Rennes B Rouen Villemomble Viry-Châtillon Vitré Vitréenne bygfoot-2.3.2/support_files/definitions/europe/ukraine/0000755000175000017500000000000011225071373022312 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/ukraine/league_ukraine1.xml0000644000175000017500000000331111225071372026072 0ustar eliaselias ukraine1 Premier League Pr. L. flag_ukraine.png 3 1 10 15 23 39 7500 ukraine 5 15 16 ukraine2 relegation A. Kyiv C. Odesa D. Dnipropetrovsk D. Kyiv I. Mariupil K. Lviv Kharkiv K. Kryvyi Rih Lviv M. Kharkiv M. Donetsk M. Zaporizhya S. Donetsk T. Simferopol V. Poltava Z. Luhansk bygfoot-2.3.2/support_files/definitions/europe/ukraine/cup_ukraine_supercup.xml0000644000175000017500000000141511225071372027267 0ustar eliaselias Ukrainian Supercup Supercup flag_ukraine.png ukraine_supercup 2 national 175 0 1 ukraine_cup 1 1 1 ukraine1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/ukraine/league_ukraine3a.xml0000644000175000017500000000330711225071372026242 0ustar eliaselias ukraine3a Druha Liha A DL A flag_ukraine.png 3 1 23 6000 ukraine 5 3 1 1 ukraine2 promotion K. Schaslyve II PodÑ–llya-Khmelnytskyi N. Ternopil B. Chernivtsi O. Kyiv II B. Illichivsk D. Cherkasy A. Bila Tserkva N. Vinnytsia Korosten N. Brovary V. Rivne CS. Kyiv R. Bila Tserkva K. Lviv II M. Mykolaiv Y. Plysky bygfoot-2.3.2/support_files/definitions/europe/ukraine/cup_ukraine_cup.xml0000644000175000017500000000333211225071372026210 0ustar eliaselias UkraÑ—na Kubok YK flag_ukraine.png ukraine_cup 44 4 national 0 ukraine3a 13 1 17 1 ukraine3b 13 1 18 1 2 -17 0 ukraine2 1 -18 0 ukraine1 0 -17 0 -14 0 1 -16 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/ukraine/league_ukraine2.xml0000644000175000017500000000360211225071372026076 0ustar eliaselias ukraine2 Persha Liha Persha L. flag_ukraine.png 3 1 23 6700 ukraine 5 1 2 ukraine1 promotion 16 17 ukraine3a ukraine3b relegation D. Chernihiv D. Ovidiopol D. Kyiv II E. Burshtyn F. I. Kalinine H. Kharkiv I. Simferopol K. Schaslyve K. Molodizhne N. U. Okhtyrka O. Kyiv Oleksandria P. Ivano-Frankivsk S. Alchevsk V. Lutsk Z. Uzhhorod Sevastopol bygfoot-2.3.2/support_files/definitions/europe/ukraine/league_ukraine3b.xml0000644000175000017500000000343211225071372026242 0ustar eliaselias ukraine3b Druha Liha B DL B flag_ukraine.png 3 1 23 6000 ukraine 5 3 1 1 ukraine2 promotion T. Armyansk A. Kharkiv D. 75 Dnipropetrovsk H. Kryvyi Rih S. Sverdlovsk P. Sevastopol II O. Melitopol S. Donetsk III K. Kremenchuk I. Mariupil II Poltava T. Donetsk H. Komsomolsk S. Dniprodzerzhynsk Sumy M. Zaporizhzhya II O. Donetsk Z. Kirovohrad bygfoot-2.3.2/support_files/definitions/europe/ukraine/country_ukraine.xml0000644000175000017500000000103211225071372026250 0ustar eliaselias Ukraine flag_ukraine.png ukraine 7 ukraine1 ukraine2 ukraine3a ukraine3b ukraine_cup europe_uefa2a europe_champ_league2 supercup_europe_uefa supercup_europe_intercontinental ukraine_supercup bygfoot-2.3.2/support_files/definitions/europe/england/0000755000175000017500000000000011225071373022264 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/england/cup_england_league.xml0000644000175000017500000000227511225071372026614 0ustar eliaselias League Cup League Cup flag_england.png england_league 48 4 national 0 0 england2 england3 england4 0 8 england1 0 0 0 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/england/cup_england_prom_games2.xml0000644000175000017500000000126211225071372027560 0ustar eliaselias Promotion Games FLC Prom. Gam. flag_england.png england_prom_games2 1000 national highlight2 1 england2 4 3 6 0 1 bygfoot-2.3.2/support_files/definitions/europe/england/league_england4.xml0000644000175000017500000000605011225071372026024 0ustar eliaselias england4 Football League Two League Two flag_england.png 6 1 6200 england 5 11 12 17 18 22 23 25 26 31 32 36 37 43 44 england3 england_prom_games4 1 3 england3 promotion 23 24 england5 relegation Accrington Aldershot Barnet Bournemouth Bradford Brentford Bury Chester Chesterfield Dagenham and R. Darlington Exeter Gillingham Grimsby Lincoln Luton Macclesfield Morecambe Notts C. P. V. Stoke Rochdale Rotherham Shrewsbury Wycombe bygfoot-2.3.2/support_files/definitions/europe/england/cup_england_fa.xml0000644000175000017500000000327311225071372025737 0ustar eliaselias FA Cup FA Cup flag_england.png england_fa 48 4 national 0 1 8 england3 england4 england5 -1 0 1 0 -2 0 1 england1 england2 -1 0 1 -2 0 1 -3 0 1 -4 0 1 1 -3 0 1 bygfoot-2.3.2/support_files/definitions/europe/england/league_england5.xml0000644000175000017500000000552611225071372026034 0ustar eliaselias england5 National Conference Conference flag_england.png 6 1 5800 england 5 11 12 17 18 22 23 25 26 31 32 36 37 43 44 england4 england_prom_games5 1 1 england4 promotion Altrincham Barrow Burton Cambridge Crawley Eastbourne Ebbsfleet Forest Green Grays Histon Kettering Kidderminster Lewes Mansfield Northwich Oxford Rushden and D. Salisbury Stevenage B. Torquay Weymouth Woking Wrexham York bygfoot-2.3.2/support_files/definitions/europe/england/cup_england_prom_games5.xml0000644000175000017500000000126411225071372027565 0ustar eliaselias Promotion Games Conf. Prom. Gam. flag_england.png england_prom_games5 1000 national highlight2 1 england5 4 2 5 0 1 bygfoot-2.3.2/support_files/definitions/europe/england/cup_england_prom_games3.xml0000644000175000017500000000126511225071372027564 0ustar eliaselias Promotion Games FL One Prom. Gam. flag_england.png england_prom_games3 1000 national highlight2 1 england3 4 3 6 0 1 bygfoot-2.3.2/support_files/definitions/europe/england/cup_england_league_vs_cup.xml0000755000175000017500000000135611225071372030175 0ustar eliaselias Community Shield Com. Shield england_league_vs_cup 6 national 156 0 1 england_fa 1 1 1 england1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/england/country_england.xml0000644000175000017500000000134511225071372026203 0ustar eliaselias England 10 flag_england.png england england1 england2 england3 england4 england5 england_fa england_league europe_uefa3e europe_champ_league4 supercup_europe_uefa supercup_europe_intercontinental england_league_vs_cup england_prom_games2 england_prom_games3 england_prom_games4 england_prom_games5 bygfoot-2.3.2/support_files/definitions/europe/england/league_england1.xml0000644000175000017500000000402311225071372026017 0ustar eliaselias england1 Premiership Prem. flag_england.png 7 1 10 15 27 39 8500 england 5 18 19 18 20 england2 relegation Chelsea Manchester U. Liverpool A. London A. V. Birmingham Blackburn Bolton Everton Fulham Hull Manchester C. Middlesbrough Newcastle Portsmouth Stoke Sunderland Tottenham W. B. Birmingham West Ham Wigan bygfoot-2.3.2/support_files/definitions/europe/england/league_england2.xml0000644000175000017500000000606411225071372026027 0ustar eliaselias england2 Football League Championship Championship flag_england.png 6 1 7600 england 5 11 12 17 18 21 22 24 25 31 32 36 37 43 44 england1 england_prom_games2 1 2 england1 promotion 22 24 england3 relegation Barnsley Birmingham Blackpool Bristol C. Burnley Cardiff Charlton Coventry C. P. London Derby Doncaster Ipswich Nottingham Norwich Plymouth Preston Q. London Reading Sheffield U. Sheffield W. Southampton Swansea Watford Wolverhampton bygfoot-2.3.2/support_files/definitions/europe/england/cup_england_prom_games4.xml0000644000175000017500000000126511225071372027565 0ustar eliaselias Promotion Games FL Two Prom. Gam. flag_england.png england_prom_games4 1000 national highlight2 1 england4 4 4 7 0 1 bygfoot-2.3.2/support_files/definitions/europe/england/league_england3.xml0000644000175000017500000000554311225071372026031 0ustar eliaselias england3 Football League One League One flag_england.png 6 1 6800 england 5 7 8 13 14 24 25 31 32 36 37 england2 england_prom_games3 1 2 england2 promotion 21 24 england4 relegation Brighton Bristol R. Carlisle Cheltenham Colchester Crewe Hartlepool Hereford Huddersfield Leeds Leicester Leyton O. Millwall Milton Keynes Northampton Oldham Peterborough Scunthorpe Southend Stockport Swindon Tranmere Walsall Yeovil bygfoot-2.3.2/support_files/definitions/europe/armenia/0000755000175000017500000000000011225071373022270 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/armenia/country_armenia.xml0000755000175000017500000000074111225071372026215 0ustar eliaselias Armenia flag_armenia.png armenia 5 armenia1 armenia2 armenia_cup europe_uefa europe_champ_league supercup_league_vs_cup supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/armenia/league_armenia1.xml0000755000175000017500000000214311225071372026033 0ustar eliaselias armenia1 Bardzraguyn khumb Bard. kh. flag_armenia.png 1 1 6200 4 russia 5 8 8 armenia2 relegation A. Yerevan B. Yerevan G. Kapan K. Yerevan M. Ashtarak Py. Yerevan S. Gyumri U. Yerevan bygfoot-2.3.2/support_files/definitions/europe/armenia/cup_armenia_cup.xml0000644000175000017500000000126111225071372026143 0ustar eliaselias Armenian Cup Arm. Cup flag_armenia.png armenia_cup 40 4 national armenia1 armenia2 0 1 bygfoot-2.3.2/support_files/definitions/europe/armenia/league_armenia2.xml0000644000175000017500000000215511225071372026034 0ustar eliaselias armenia2 First League 1. L. flag_armenia.png 1 1 5600 4 russia 5 1 1 armenia1 promotion A. Yerevan II B. Yerevan II G. Kapan II Pa. Yerevan M. Ashtarak II Py. Yerevan II S. Gyumri II Sh. Yerevan bygfoot-2.3.2/support_files/definitions/europe/bulgaria/0000755000175000017500000000000011225071373022442 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria3c.xml0000644000175000017500000000430211225071372026520 0ustar eliaselias bulgaria3c V PFG Group Southeast V PFG SE flag_bulgaria.png 6 1 25 6000 5 bulgaria 3 8 9 14 15 26 27 34 35 1 1 bulgaria2b promotion Pomorie L. S. Zagora C. Nesebar Br. Plovdiv Asenovac R. dolina Kazanlak H. Harmanli G. Rudozem K. Burgas G. Saedinie T. Jambol B. Galabovo F. Strambolovo M. Sopot L. Karlovo A. Kardzhali Sozopol Haskovo S. M. Sredec bygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria2a.xml0000644000175000017500000000376211225071372026526 0ustar eliaselias bulgaria2a B PFG East B PFG E flag_bulgaria.png 7 1 23 6700 5 bulgaria 2 1 1 bulgaria1 promotion 14 15 bulgaria3a bulgaria3b relegation bulgaria1 bulgaria_prom_games2 bulgaria2a bulgaria2b B. S. Zagora N. Burgas R. Smolian Sp. Plovdiv L. S. Zagora S. Targoviste D. Rousse K. Kavarna Lubimets Nesebar Svilengrad M. Radnevo Ma. Plovdiv C. Balchik Shumen bygfoot-2.3.2/support_files/definitions/europe/bulgaria/cup_bulgaria_national.xml0000644000175000017500000000512511225071372027510 0ustar eliaselias Kupata na Balgariya К. na Balgariya flag_bulgaria.png bulgaria_national 3 45 3 national 0 bulgaria3a 1 1 19 1 bulgaria3b 1 1 16 1 bulgaria3c 1 1 19 1 bulgaria3d 1 1 20 1 bulgaria2a 1 1 15 1 bulgaria2b 2 1 16 1 1 -5 0 bulgaria2a 14 1 15 1 bulgaria2b 14 1 16 1 -6 0 bulgaria1 -7 0 -6 1 0 bygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria2b.xml0000644000175000017500000000354011225071372026521 0ustar eliaselias bulgaria2b B PFG West B PFG W flag_bulgaria.png 7 1 23 6700 5 bulgaria 2 1 1 bulgaria1 promotion 15 16 bulgaria3c bulgaria3d relegation Montana F. P. Blagoevgrad R. S. Samokov C. Etropole Ak. Sofia S. Svoge P. G. Delchev B. Botevgrad R. Sevlievo B. Krivodol S. Pleven K. M. Draganitsa C. B. Slatina E. V. Tarnovo B. orli Pleven M. Dupnitsa bygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria3b.xml0000644000175000017500000000317611225071372026527 0ustar eliaselias bulgaria3b V PFG Group Northwest V PFG NW flag_bulgaria.png 7 1 23 6000 5 bulgaria 3 1 1 bulgaria2a promotion B. Vraca B. Vidin L. Drjanovo J. Gabrovo L. G. Orjahovica G. Belene M. Luiza O. Levski Pavlikeni B. Debelec S. Nikopol Bo. Dimonovo St. Pleven Ak. Svishhov Trjavna C. Elena bygfoot-2.3.2/support_files/definitions/europe/bulgaria/cup_supercup_bulgaria.xml0000644000175000017500000000143611225071372027552 0ustar eliaselias Superkupata na Balgariya Superkupata flag_bulgaria.png supercup_bulgaria 6 153 national 0 1 bulgaria1 1 1 1 bulgaria_national 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria3a.xml0000644000175000017500000000425411225071372026524 0ustar eliaselias bulgaria3a V PFG Group Northeast V PFG NE flag_bulgaria.png 6 1 25 6000 5 bulgaria 3 8 9 14 15 26 27 34 35 1 1 bulgaria2a promotion O. Pobeda B. Bjala D. Silistra A. Ruse Aksakovo Razgrad C. Bjala S. sila Medrevo Preslav S. Tervel R. Shumen S. G. Toshevo D. Mogili Shabla C. Popovo E. Carev brod Suvorovo O. Devnya D. Dobrich bygfoot-2.3.2/support_files/definitions/europe/bulgaria/cup_bulgaria_prom_games2.xml0000644000175000017500000000141511225071372030114 0ustar eliaselias Bulgaria Promotion Games Prom. Games flag_bulgaria.png bulgaria_prom_games2 1000 national highlight2 3 bulgaria2a 1 2 2 bulgaria2b 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria1.xml0000644000175000017500000000323611225071372026360 0ustar eliaselias bulgaria1 A PFG Ð flag_bulgaria.png 7 1 10 15 23 7500 5 bulgaria 14 16 bulgaria2a bulgaria2b relegation C. Sofia Le. Sofia L. Lovech Sliven Lo. Sofia C. M. Varna L. Mezdra C. Burgas S. Sofia M. Pernik P. Blagoevgrad L. Plovdiv B. Plovdiv Vihren S. Varna B. Petrich bygfoot-2.3.2/support_files/definitions/europe/bulgaria/league_bulgaria3d.xml0000644000175000017500000000445011225071372026525 0ustar eliaselias bulgaria3d V PFG Group Southwest V PFG SW flag_bulgaria.png 6 1 25 6000 5 bulgaria 3 8 9 14 15 26 27 34 35 1 1 bulgaria2b promotion M. Mikrevo L. Elin Pelin M. Bobob dol H. Pazardzhik Se. Simitli Bansko Ge. Sapareva b. St. Radomir V. Bistrica L. Dolna banja P. Razlog S. geroj Slivnica V. Kjustendil P. V. Kj. Kjustendil B. Ihtiman M. Hadzhidimovo Lj. Sofia Mi. Pernik Pi. Blagoevgrad C. Velingrad bygfoot-2.3.2/support_files/definitions/europe/bulgaria/country_bulgaria.xml0000644000175000017500000000125611225071372026540 0ustar eliaselias Bulgaria 6 flag_bulgaria.png bulgaria bulgaria1 bulgaria2a bulgaria2b bulgaria3a bulgaria3b bulgaria3c bulgaria3d bulgaria_national europe_uefa3b europe_champ_league1b supercup_bulgaria supercup_europe_uefa supercup_europe_intercontinental bulgaria_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/austria/0000755000175000017500000000000011225071373022324 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/austria/league_austria2.xml0000644000175000017500000000314311225071372026122 0ustar eliaselias austria2 Erste Liga 1. Liga flag_austria.png 2 1 23 3 6200 germany 5 1 1 austria1 promotion 10 12 austria3a austria3b austria3c relegation W. Innsbruck Gratkorn A. Lustenau Lustenau A. Wien Am. R. B. Jun. Salzburg M. Wiener Neustadt Leoben Trenkwalder St. Pölten Grödig Vöcklabruck bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria3c.xml0000644000175000017500000000352711225071372026274 0ustar eliaselias austria3c Regionalliga West ÖRW flag_austria.png 2 1 23 5600 germany 3 5 1 1 austria2 promotion 14 16 austria4a austria4b austria4c austria4d austria4e austria4f austria4g austria4h austria4i relegation St. Johann Kufstein Hard Anif Hall Axams Wattens Rankweil Feldkirch Seekirchen Reichenau Höchst Dornbirn Bregenz Hohenems Schwaz bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4f.xml0000644000175000017500000000322211225071372026270 0ustar eliaselias austria4f Landesliga Steiermark LL St. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion Fürstenfeld F. Solva Kalsdorf Wildon Gleinstätten Gratkorn II Köflach Großklein Gleisdorf Graz A. II Bruck an der Mur Fehring Kapfenberg II Deutschlandsberg Irdning Hartberg II bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4h.xml0000644000175000017500000000276711225071372026307 0ustar eliaselias austria4h Landesliga Vorarlberg LL V. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion R. Altach II Röthis Andelsbuch Koblach Bizau Schwarzach Egg V. Bregenz Wolfurt A. Lustenau II Mäder Lauterach R. Bludenz Nenzing bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4e.xml0000644000175000017500000000305511225071372026273 0ustar eliaselias austria4e Landesliga Oberösterreich LL OÖ. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion F. Pasching U. Vöcklamarkt Grieskirchen Gmunden Sattledt G-W. Micheldorf U. Weißkirchen Schwanenstadt Bad Schallerbach Sierning A. Donau Linz U. Mondsee U. Rohrbach Berg Traun bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4d.xml0000644000175000017500000000320511225071372026267 0ustar eliaselias austria4d Landesliga Kärnten LL K. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion St. Stefan A. Kärnten II Bleiburg Völkermarkt A. Ferlach Villach Lendorf St. Andrä II R. Lienz Nußdorf D. Sittersdorf Landskron St. Michael Treibach Griffen Wolfsberg bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4g.xml0000644000175000017500000000320711225071372026274 0ustar eliaselias austria4g Landesliga Tirol LL T. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion W. Innsbruck II Kundl Innsbruck A. Fügen Jenbach Kirchberg Reichenau U. II Matrei und Umgebung Längenfeld S. Innsbruck Kolsass Weer Telfs Kirchbichl Wörgl Oberperfuss Absam bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4i.xml0000644000175000017500000000321211225071372026272 0ustar eliaselias austria4i Landesliga Wien LL W. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion Schwechat C. Floridsdorf P. Wien Stadlau Rennweg D. Fortuna I. Favoriten A. Landhaus Mannswörth D. Wien A. Monte Laa Favoriten A. Gersthof S. Hütteldorf G. Stammersdorf S. Donau bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria3a.xml0000644000175000017500000000355311225071372026271 0ustar eliaselias austria3a Regionalliga Ost ÖRO flag_austria.png 2 1 23 5600 germany 3 5 1 1 austria2 promotion 14 16 austria4a austria4b austria4c austria4d austria4e austria4f austria4g austria4h austria4i relegation Ostbahn TF Wien R. Wien II F. Vienna Wien S. Horn Neusiedl Parndorf Würmla Admira II Wienerberg Mattersburg II Zwettl Waidhofen Amstetten Stegersbach bygfoot-2.3.2/support_files/definitions/europe/austria/cup_austria_cup.xml0000644000175000017500000000665211225071372026244 0ustar eliaselias ÖFB-Cup Cup flag_austria.png austria_cup 45 4 national 0 austria4a 3 1 16 1 austria4b 3 1 14 1 austria4c 3 1 16 1 austria4d 3 1 16 1 austria4e 3 1 14 1 austria4f 3 1 16 1 austria4g 3 1 16 1 austria4h 3 1 14 1 austria4i 4 1 16 1 austria3a austria3b austria3c -17 0 0 austria1 austria2 -18 0 -18 0 -15 0 -1 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria1.xml0000644000175000017500000000266711225071372026133 0ustar eliaselias austria1 Bundesliga BL flag_austria.png 2 1 10 15 25 39 7000 germany 4 5 17 18 10 10 austria2 relegation A. Wien R. B. Salzburg R. Wien Linz S. Graz Ried A. Kärnten Mattersburg Kapfenberg Altach bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria3b.xml0000644000175000017500000000356511225071372026275 0ustar eliaselias austria3b Regionalliga Mitte ÖRM flag_austria.png 2 1 23 5600 germany 3 5 1 1 austria2 promotion 14 16 austria4a austria4b austria4c austria4d austria4e austria4f austria4g austria4h austria4i relegation Bad Aussee Feldkirchen Graz A. S. Graz II St. Veit Allerheiligen Hartberg Klagenfurt Wels F. Kärnten B. W. Linz St. Florian Spittal St. Andrä Voitsberg Weiz bygfoot-2.3.2/support_files/definitions/europe/austria/country_austria.xml0000644000175000017500000000146111225071372026302 0ustar eliaselias Austria flag_austria.png austria 6 austria1 austria2 austria3a austria3b austria3c austria4a austria4b austria4c austria4d austria4e austria4f austria4g austria4h austria4i austria_cup europe_uefa europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4c.xml0000644000175000017500000000320411225071372026265 0ustar eliaselias austria4c Landesliga Niederösterreich LL NÖ. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion Gaflenz Sollenau Leobendorf Kottingbrunn Schrems Ardagger Götzendorf Retz Langenrohr Vösendorf Herzogenburg Mistelbach Ortmann Haitzendorf Kremsen Stockerau bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4a.xml0000644000175000017500000000323611225071372026270 0ustar eliaselias austria4a Landesliga Burgenland LL B. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion Oberwart A. Baumgarten Kohfidisch Güssingen E. Parndorf II Forchtenstein Neudörfl Oberpullendorf Purbach Klingenbach Schattendorf H. Unterpetersdorf Jennersdorf Neuberg St. Margarethen Tadten bygfoot-2.3.2/support_files/definitions/europe/austria/league_austria4b.xml0000644000175000017500000000301011225071372026257 0ustar eliaselias austria4b Landesliga Salzburg LL S. flag_austria.png 2 1 23 5000 germany 4 5 1 1 austria3a austria3b austria3c promotion Neumarkt Eugendorf Hallein Hallwang Salzburg A. Puch P. Saalfelden Straßwalchen Zell am See Bischofshofen AS. Salzburg Henndorf Anthering Piesendorf bygfoot-2.3.2/support_files/definitions/europe/montenegro/0000755000175000017500000000000011225071373023031 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/montenegro/cup_montenegro_prom_games1.xml0000644000175000017500000000143611225071372031074 0ustar eliaselias Montenegro Promotion Games Mont. Prom. flag_montenegro.png montenegro_prom_games1 1000 national highlight2 3 2 montenegro2 2 2 3 montenegro1 2 10 11 bygfoot-2.3.2/support_files/definitions/europe/montenegro/league_montenegro1.xml0000755000175000017500000000324311225071372027337 0ustar eliaselias montenegro1 Prva crnogorska liga Prva crn. flag_montenegro.png 6 1 10 15 24 6800 serbia 3 5 8 9 24 25 12 12 montenegro2 relegation B. Podgorica D. Tuzi G. Radanovići J. Bijelo Polje J. Plav K. Podgorica L. Cetinje M. Budva Petrovac R. Pljevlja S. NikÅ¡ić Z. Golubovci bygfoot-2.3.2/support_files/definitions/europe/montenegro/league_montenegro2.xml0000755000175000017500000000326611225071372027345 0ustar eliaselias montenegro2 Druga crnogorska Liga Druga crn. flag_montenegro.png 6 1 24 6000 serbia 3 5 1 1 montenegro1 promotion montenegro1 2 montenegro_prom_games1 montenegro2 A. Tivat Berane B. Kotor B. Cijevna C. S. ToloÅ¡i ÄŒ. NikÅ¡ić M. Bar I. Rožaje M. Podgorica O. Ulcinj R. Konik Z. Podgorica bygfoot-2.3.2/support_files/definitions/europe/montenegro/country_montenegro.xml0000755000175000017500000000076311225071372027523 0ustar eliaselias Montenegro flag_montenegro.png montenegro 5 montenegro1 montenegro2 montenegro_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental montenegro_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/montenegro/cup_montenegro_cup.xml0000644000175000017500000000162011225071372027444 0ustar eliaselias Crnogorski fudbalski kup Cr. kup flag_montenegro.png montenegro_cup 44 3 national 0 montenegro2 montenegro1 8 -12 -9 -10 0 1 bygfoot-2.3.2/support_files/definitions/europe/poland/0000755000175000017500000000000011225071373022131 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/poland/cup_poland_puchar.xml0000644000175000017500000000311711225071372026342 0ustar eliaselias Puchar Polski flag_poland.png poland_puchar 47 3 national 0 poland3a 14 1 18 1 poland3b 14 1 18 1 0 -16 0 poland2 0 -17 0 poland1 0 -16 0 -14 1 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/poland/cup_poland_prom_games2.xml0000644000175000017500000000200711225071372027270 0ustar eliaselias Baraże o II ligÄ™ flag_poland.png poland_prom_games2 1000 national highlight2 1 poland2 2 13 14 poland3a 1 3 3 poland3b 1 3 3 bygfoot-2.3.2/support_files/definitions/europe/poland/league_poland3b.xml0000644000175000017500000000372411225071372025704 0ustar eliaselias poland3b II liga, grupa e flag_poland.png 6 1 24 5700 poland 5 3 15 16 20 21 1 2 poland2 promotion S. Otwock G. Wieliczka W. SuwaÅ‚ki K. Stróże Ostrowiec ÅšwiÄ™tokrzyski P. Åowicz S. S. Aleksandrów Åódzki F. R. Wysokie Mazowieckie S. Nowy SÄ…cz P. Wolbrom H. Zamość J. IÅ‚awa O. Olsztyn C. Piotrków Trybunalski P. N. PiÅ„czów O. K. Brzesko Åomża S. Poniatowa bygfoot-2.3.2/support_files/definitions/europe/poland/league_poland1.xml0000644000175000017500000000355611225071372025543 0ustar eliaselias poland1 Idea Ekstraklasa flag_poland.png 6 1 10 15 24 39 7200 poland 5 13 14 18 19 15 16 poland2 relegation A. Gdynia C. Kraków BeÅ‚chatów G. Zabrze J. BiaÅ‚ystok L. PoznaÅ„ L. GdaÅ„sk L. Warszawa Åódź O. WodzisÅ‚aw P. Gliwice P. Bytom P. Warszawa R. Chorzów Åš. WrocÅ‚aw W. Kraków bygfoot-2.3.2/support_files/definitions/europe/poland/country_poland.xml0000644000175000017500000000113311225071372025710 0ustar eliaselias Poland 6 flag_poland.png poland poland1 poland2 poland3a poland3b poland_puchar europe_uefa europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental poland_superpuchar poland_prom_games1 poland_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/poland/cup_poland_prom_games1.xml0000644000175000017500000000127111225071372027271 0ustar eliaselias Baraże o I ligÄ™ flag_poland.png poland_prom_games1 1000 national highlight2 poland2 1 3 3 poland1 1 14 14 bygfoot-2.3.2/support_files/definitions/europe/poland/cup_poland_superpuchar.xml0000644000175000017500000000142211225071372027416 0ustar eliaselias Superpuchar Polski Superpuchar flag_poland.png poland_superpuchar 4 national 166 0 1 poland_puchar 1 1 1 poland1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/poland/league_poland2.xml0000644000175000017500000000452411225071372025540 0ustar eliaselias poland2 1. Liga 1. L. flag_poland.png 6 1 24 6400 poland 5 15 16 20 21 1 2 poland1 promotion poland1 poland_prom_games1 poland2 15 18 poland3a poland3b relegation D. ZÄ…bki F. ÅšwinoujÅ›cie JastrzÄ™bie-Zdrój Katowice G. ÅÄ™czna Gorzów Wielkopolski K. Zabierzów K. Kielce M. Lublin O. Opole P. Bielsko-BiaÅ‚a S. Stalowa Wola T. Turek Wa. PoznaÅ„ W. Åódź W. PÅ‚ock Z. Lubin Z. Pruszków bygfoot-2.3.2/support_files/definitions/europe/poland/league_poland3a.xml0000644000175000017500000000432111225071372025675 0ustar eliaselias poland3a II liga, grupa w flag_poland.png 6 1 24 5700 poland 5 3 15 16 20 21 1 2 poland2 promotion poland2 2 poland_prom_games2 poland3a poland3b G. Królewska Wola Kluczbork U. Janikowo K. KoÅ‚obrzeg N. WÄ…growiec Tychy L. Zielona Góra Z. Bydgoszcz Ch. Police J. Jarocin P. Szczecin E. ToruÅ„ V. Koronowo R. CzÄ™stochowa C. Å»agaÅ„ Z. Sosnowiec M. Legnica P. SÅ‚ubice bygfoot-2.3.2/support_files/definitions/europe/greece/0000755000175000017500000000000011225071373022106 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/greece/country_greece.xml0000644000175000017500000000106511225071372025646 0ustar eliaselias Greece 7 flag_greece.png greece greece1 greece2 greece3a greece3b greece_cup europe_uefa2g europe_champ_league2 supercup_europe_uefa supercup_europe_intercontinental greece_supercup greece_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/greece/cup_greece_cup.xml0000644000175000017500000000257711225071372025612 0ustar eliaselias Greek Cup Cup flag_greece.png greece_cup 44 3 national 0 greece3a greece3b 0 -8 0 greece2 0 -8 0 14 -10 0 greece1 -8 0 1 2 2 0 1 bygfoot-2.3.2/support_files/definitions/europe/greece/league_greece3b.xml0000644000175000017500000000334011225071372025630 0ustar eliaselias greece3b Gamma Ethniki North G. E. N flag_greece.png 9 1 2 6400 greece 5 3 1 1 greece2 promotion A. Artas A. Giannitsa E. Katerini Lamia Fokikos D. Dramas E. Ptolemaida E. Alexandroupoli E. Filippiades N. Volos O. Anagennisi M. Neapolis N. Epivates P. Agrinio P. Grevena P. Preveza T. Thermis Zakynthos bygfoot-2.3.2/support_files/definitions/europe/greece/league_greece1.xml0000644000175000017500000000331511225071372025466 0ustar eliaselias greece1 Super League Super L. flag_greece.png 9 1 10 15 26 39 7900 greece 5 14 16 greece2 relegation A. Athena P. Athena Ergotelis I. Thessaloniki Larissa Levadiakos OFI O. Piraeus Panionios Panserraikos Panthrakikos A. Thessaloniki P. Thessaloniki Thrasyvoulos A. Tripolis S. Xanthi bygfoot-2.3.2/support_files/definitions/europe/greece/cup_greece_prom_games2.xml0000644000175000017500000000143011225071372027221 0ustar eliaselias Gamma Ethniki Promotion G. E. Prom. flag_greece.png greece_prom_games2 1000 national highlight2 3 greece3a 1 2 2 greece3b 1 2 2 0 1 bygfoot-2.3.2/support_files/definitions/europe/greece/league_greece2.xml0000644000175000017500000000356511225071372025476 0ustar eliaselias greece2 Beta Ethniki B' flag_greece.png 9 1 2 7100 greece 5 1 3 greece1 promotion 16 18 greece3a greece3b relegation A. Asteras A. Karditsa A. Kalamaria At. Athena D. Rodos E. Asteras E. Piraeus I. Zografou I. Nikaias Kalamata Kallithea Kastoria Kavala Kerkyra O.Volou P. Giannina P. Katerini Veria bygfoot-2.3.2/support_files/definitions/europe/greece/league_greece3a.xml0000644000175000017500000000365511225071372025640 0ustar eliaselias greece3a Gamma Ethniki South G. E. S flag_greece.png 9 1 2 6400 greece 5 3 1 1 greece2 promotion greece2 greece_prom_games2 greece3a greece3b A. Dimitrios A. Paraskevi A. Salaminas Atsalenios Chaidari Chersonissos Egaleo F. Tavros Ilioupoli Koropi K. Keratea Korinthos P. Agros Panachaiki Rodos A. Rethymno E. Mytilini Vyzas bygfoot-2.3.2/support_files/definitions/europe/greece/cup_greece_supercup.xml0000644000175000017500000000140311225071372026654 0ustar eliaselias Greek Supercup Supercup flag_greece.png greece_supercup 8 national 160 0 1 greece1 1 1 1 greece_cup 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/slovakia/0000755000175000017500000000000011225071373022465 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/slovakia/league_slovakia3a.xml0000644000175000017500000000324411225071372026570 0ustar eliaselias slovakia3a Slovak Second League West 2. L. W flag_slovakia.png 3 1 23 5800 czech 5 3 1 1 slovakia2 promotion A. Petržalka II B. J. Bohunice Du. Bratislava I. Petržalka Moravany nad Váhom Nitra II Nové Mesto nad Váhom Púchov R. Bratislava Senec S. Bratislava II S. NemÅ¡ová S. Trnava II S. Vráble T. TopoľÄany Vrbové bygfoot-2.3.2/support_files/definitions/europe/slovakia/league_slovakia3b.xml0000644000175000017500000000325311225071372026571 0ustar eliaselias slovakia3b Slovak Second League East 2. L. E flag_slovakia.png 3 1 23 5800 czech 5 3 1 1 slovakia2 promotion ÄŒadca D. Kubín D. Banska Bystrica II G. S. Ľubovňa J. Bánová O. Lipany Poprad S. TrebiÅ¡ov S. Nová Ves Å . Podbrezová II T. Liptovský Mikuláš T. PreÅ¡ov II T. Teplice Vranov nad Topľou Žiar nad Hronom Žilina II bygfoot-2.3.2/support_files/definitions/europe/slovakia/league_slovakia2.xml0000755000175000017500000000315111225071372026426 0ustar eliaselias slovakia2 Slovak First League 1. L. flag_slovakia.png 3 1 23 6300 czech 3 5 1 1 slovakia1 promotion 11 12 slovakia3a slovakia3b relegation D. Streda II Humenné I. Bratislava L. LuÄenec KoÅ¡ice II Prievidza Ružomberok II R. Sobota S. Duslo Å aľa Å . Podbrezová A. TrenÄín Z. Michalovce bygfoot-2.3.2/support_files/definitions/europe/slovakia/cup_slovakia_cup.xml0000644000175000017500000000320511225071372026535 0ustar eliaselias Slovenský Pohár Slov. Pohár flag_slovakia.png slovakia_cup 44 3 national 0 slovakia3a 14 1 16 1 slovakia3b 14 1 16 1 slovakia2 9 1 12 1 1 -17 0 slovakia1 1 -15 0 -16 -14 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/slovakia/league_slovakia1.xml0000755000175000017500000000305511225071372026430 0ustar eliaselias slovakia1 Corgoň Liga C. Liga flag_slovakia.png 3 1 10 15 23 7000 czech 3 5 29 30 12 12 slovakia2 relegation A. Petržalka D. Banska Bystrica D. Streda Dubnica KoÅ¡ice Nitra Ružomberok S. Bratislava S. Trnava T. PreÅ¡ov V. Z. Moravce Žilina bygfoot-2.3.2/support_files/definitions/europe/slovakia/country_slovakia.xml0000755000175000017500000000077611225071372026617 0ustar eliaselias Slovakia flag_slovakia.png slovakia 6 slovakia1 slovakia2 slovakia3a slovakia3b slovakia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/portugal/0000755000175000017500000000000011225071373022511 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/portugal/cup_portugal_leaguecup.xml0000644000175000017500000000324111225071372027770 0ustar eliaselias Taça da Liga Taça da L. flag_portugal.png portugal_leaguecup 38 2 national portugal2 0 -14 0 6 1 portugal1 10 7 16 1 0 -14 0 3 1 1 portugal1 6 1 6 1 0 -3 0 -2 0 1 bygfoot-2.3.2/support_files/definitions/europe/portugal/cup_portugal_cup.xml0000644000175000017500000000474511225071372026617 0ustar eliaselias Taça de Portugal Taça de P. flag_portugal.png portugal_cup 45 4 national 0 portugal3a portugal3b portugal3c portugal3d portugal4a portugal4ac portugal4b portugal4c portugal4d portugal4e portugal4f 20 -8 0 portugal2 0 -10 0 portugal1 0 -9 0 0 -9 0 -9 0 -6 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4c.xml0000644000175000017500000000276611225071372026653 0ustar eliaselias portugal4c III Divisão Group C III Div. C flag_portugal.png 8 1 7 5900 5 portugal 4 1 2 portugal3a portugal3b portugal3c portugal3d promotion Fiaes A. Viseu Anadia Milheiroense Cinfaes Agueda Tondela Satao Avanca Fornos Algodres U. Lamas da Tocha Valecambrense Joao Ver bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal2.xml0000644000175000017500000000371011225071372026474 0ustar eliaselias portugal2 Liga Vitalis L. Vitalis flag_portugal.png 8 1 10 15 26 29 39 7000 5 portugal 1 2 portugal1 promotion 15 16 portugal3a portugal3b portugal3c portugal3d relegation Beira-Mar Boavista Estoril das Aves Feirense Freamunde G. Vicente Gondomar Olhanense Oliveirense Portimonense Santa Clara Covilhã Leiria Varzim Vizela bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal1.xml0000644000175000017500000000336011225071372026474 0ustar eliaselias portugal1 Liga Sagres Liga S. flag_portugal.png 8 1 10 15 26 29 39 7900 5 portugal 15 16 portugal2 relegation Porto S. Lisboa B. Lisboa N. da Madeira E. Amadora Leixões Naval V. Guimarães V. Setúbal A. de Coimbra Rio Ave Maritimo S. Braga Belenenses Paços Ferreira Trofense bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal3c.xml0000644000175000017500000000333211225071372026640 0ustar eliaselias portugal3c II Divisão Serie C II Div. C flag_portugal.png 8 1 9 11 16 26 6400 5 portugal 3 portugal2 portugal_prom_games3 portugal3c portugal3d 9 11 portugal4a portugal4ac portugal4b portugal4c portugal4d portugal4e portugal4f relegation Fatima Tourizense Pampilhosa da Serra Operario R. de Monsanto Electrico O. do Bairro P. do Castelo Nelas Praiense bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4f.xml0000644000175000017500000000302511225071372026643 0ustar eliaselias portugal4f III Divisão Group F III Div. F flag_portugal.png 8 1 7 5900 5 portugal 4 1 2 portugal3a portugal3b portugal3c portugal3d promotion Cova Piedade Louletano J. Évora Costa Caparica Reguengos L. Évora Quarteirense S. Farense Fabril Barreiro Castrense Barreirense Messinense Campinense Silves bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal3d.xml0000644000175000017500000000307611225071372026646 0ustar eliaselias portugal3d II Divisão Serie D II Div. D flag_portugal.png 8 1 9 11 16 26 6400 5 portugal 3 10 12 portugal4a portugal4ac portugal4b portugal4c portugal4d portugal4e portugal4f relegation Mafra Lagoa Pinhalnovense Real S. Torreense M. Aljustrelense Odivelas A. do Portugal Carregado B-M. Algarve Olivais e Moscavide C. O. Lisboa bygfoot-2.3.2/support_files/definitions/europe/portugal/cup_portugal_prom_games3.xml0000644000175000017500000000140611225071372030233 0ustar eliaselias II Divisão Promotion 2 II Div. Prom. 2 flag_portugal.png portugal_prom_games3 1000 national highlight2 3 1 portugal3c 1 1 1 portugal3d 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4ac.xml0000644000175000017500000000244111225071372027002 0ustar eliaselias portugal4ac III Divisão Group Acores III Div. Ac. flag_portugal.png 8 1 6 5900 5 portugal 4 1 1 portugal3a portugal3b portugal3c portugal3d promotion Madalena Angrense Capelense B. de Sao Mateus S. Lusitania V. do Pico Maritimo S. Micalense Vilanovense R. de Peixe bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal3a.xml0000644000175000017500000000343111225071372026636 0ustar eliaselias portugal3a II Divisão Serie A II Div. A flag_portugal.png 8 1 9 11 16 26 6400 5 portugal 3 portugal2 portugal_prom_games2 portugal3a portugal3b 10 12 portugal4a portugal4ac portugal4b portugal4c portugal4d portugal4e portugal4f relegation Chaves Maritimo II Moreirense Ribeirao Ribeira B. Tirsense Valdevez Pontassolense Canical Vianense Maria da Fonte Mirandela bygfoot-2.3.2/support_files/definitions/europe/portugal/country_portugal.xml0000644000175000017500000000165611225071372026662 0ustar eliaselias Portugal flag_portugal.png portugal 8 portugal1 portugal2 portugal3a portugal3b portugal3c portugal3d portugal4a portugal4ac portugal4b portugal4c portugal4d portugal4e portugal4f portugal_cup portugal_leaguecup europe_uefa3g europe_champ_league3 supercup_europe_uefa supercup_europe_intercontinental portugal_supercup portugal_prom_games2 portugal_prom_games3 bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal3b.xml0000644000175000017500000000304011225071372026633 0ustar eliaselias portugal3b II Divisão Serie B II Div. B flag_portugal.png 8 1 9 11 16 26 6400 5 portugal 3 10 12 portugal4a portugal4ac portugal4b portugal4c portugal4d portugal4e portugal4f relegation Penafiel Un. Madeira Espinho A. Lordelo Esmoriz Arouca Amarante Sanjoanense Lousada L. Lourosa Santana Infesta bygfoot-2.3.2/support_files/definitions/europe/portugal/cup_portugal_supercup.xml0000644000175000017500000000143011225071372027662 0ustar eliaselias Supertaça Cândido de Oliveira Supertaça flag_portugal.png portugal_supercup 7 national 167 0 1 portugal1 1 1 1 portugal_cup 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4b.xml0000644000175000017500000000271311225071372026642 0ustar eliaselias portugal4b III Divisão Group B III Div. B flag_portugal.png 8 1 7 5900 5 portugal 4 1 1 portugal3a portugal3b portugal3c portugal3d promotion Coimbroes Vila Mea A. Oliveirense Rebordosa Torre de Moncorvo Paredes Oliveira Douro Leca Vila Real Serzedelo Padroense Alpendorada Lixa bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4e.xml0000644000175000017500000000277511225071372026655 0ustar eliaselias portugal4e III Divisão Group E III Div. E flag_portugal.png 8 1 7 5900 5 portugal 4 1 2 portugal3a portugal3b portugal3c portugal3d promotion Camacha Rio Maior Casa Pia Igreja Nova Portosantense Machico 1. Dezembro C. de Lobos C. Benfica Crato O Elvas Sintrense Cacém Cartaxo bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4d.xml0000644000175000017500000000301411225071372026637 0ustar eliaselias portugal4d III Divisão Group D III Div. D flag_portugal.png 8 1 7 5900 5 portugal 4 1 2 portugal3a portugal3b portugal3c portugal3d promotion Sertanense B. Castelo Branco V. Mocidade Lousanense Marinhense Peniche Gandara Sourense Caldas Torres Novas Pombal da Serra Penamacorense A. do Campo bygfoot-2.3.2/support_files/definitions/europe/portugal/league_portugal4a.xml0000644000175000017500000000276511225071372026650 0ustar eliaselias portugal4a III Divisão Group A III Div. A flag_portugal.png 8 1 7 5900 5 portugal 4 1 2 portugal3a portugal3b portugal3c portugal3d promotion Vieira Braganca Limianos Fafe Joane M. de Cavaleiros Merelinense Fao Marinhas Prado Vilaverdense Amares Mondinense Mae de Agua bygfoot-2.3.2/support_files/definitions/europe/portugal/cup_portugal_prom_games2.xml0000644000175000017500000000140611225071372030232 0ustar eliaselias II Divisão Promotion 1 II Div. Prom. 1 flag_portugal.png portugal_prom_games2 1000 national highlight2 3 1 portugal3a 1 1 1 portugal3b 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/germany/0000755000175000017500000000000011225071373022316 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_8.xml0000644000175000017500000000275311225071372026346 0ustar eliaselias germany5_8 Oberliga Südwest OL Südwest flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4c promotion Saarbrücken Pirmasens Homburg S. Wirges Mechtersheim Hauenstein Elversberg II Mettlach Neunkirchen Hasborn Mayen Niederauerbach Betzdorf Bad Breisig A. Waldalgesheim Rossbach Köllerbach Idar Oberstein bygfoot-2.3.2/support_files/definitions/europe/germany/cup_germany_dfb.xml0000644000175000017500000001003711225071372026164 0ustar eliaselias DFB-Pokal DFB-Pokal flag_germany.png germany_dfb 48 6 national 0 germany1 germany2 germany3 4 1 19 1 germany4a 4 1 17 1 germany4b 4 2 18 1 germany4c 4 2 18 1 germany5_1 1 1 18 1 germany5_2 1 1 18 1 germany5_3 1 1 18 1 germany5_4 1 1 16 1 germany5_5 1 1 16 1 germany5_6 1 1 18 1 germany5_7 1 1 16 1 germany5_8 1 1 18 1 germany5_9 1 1 18 1 germany5_10 1 1 18 1 germany5_11 1 1 18 1 germany5_12 1 1 18 1 0 -11 0 -12 0 1 0 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany1.xml0000644000175000017500000000431111225071372026103 0ustar eliaselias germany1 Bundesliga BL flag_germany.png 7 1 10 15 25 39 8300 germany 5 9 10 32 33 germany1 germany_prom_games1 germany2 17 18 germany2 relegation Schalke W. Bremen B. München B. Leverkusen Bielefeld Stuttgart Hamburg Bochum M'gladbach B. Dortmund Wolfsburg H. Berlin Köln E. Frankfurt Hannover Cottbus Karlsruhe Hoffenheim bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_7.xml0000644000175000017500000000263711225071372026346 0ustar eliaselias germany5_7 Oberliga Bremen OL Bremen flag_germany.png 7 1 24 5400 germany 5 5 1 1 germany4b promotion Brinkum F. Bremerhaven Bremen S. Blumenthal O. Bremerhaven W. Bremen III Habenhausen T. Bremen A. Vegasack B. Melchiorshausen V. Bremen Wulsdorf Schwachhausen V. Blockdiek Osterholz V. S. Bremen bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_9.xml0000644000175000017500000000334211225071372026342 0ustar eliaselias germany5_9 Oberliga Nordrhein-Westfalen OL NRW flag_germany.png 6 1 6 5400 germany 5 5 29 30 35 36 1 1 germany4b promotion Bonn Herne Gütersloh Delbrück A. Aachen II F. Düsseldorf II Oestrich A. Bielefeld II Duisburg II S. F. Köln Hüls Wattenscheid S. W. Essen G. Dattenfeld S. Siegen Schermbeck R. W. Essen II Hammer Velbert bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany4b.xml0000755000175000017500000000367511225071372026267 0ustar eliaselias germany4b Regionalliga West RL West flag_germany.png 7 1 8 6100 germany 5 4 1 1 germany3 promotion 15 18 germany5_7 germany5_9 germany5_11 germany5_12 relegation Bochum II Cloppenburg B. Dortmund II Elversberg Essen Kaiserslautern II Kleve Köln II B. Leverkusen II S. Lotte Mainz II M'gladbach II P. Münster Oggersheim Schalke II E. Trier Verl Worms bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_12.xml0000644000175000017500000000276711225071372026426 0ustar eliaselias germany5_12 Oberliga Niedersachsen Ost OL N O flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4b promotion Goslar E. Braunschweig II H. Lüneburg T. Ottersberg Heeslingen Gifhorn D. Assel O. Scharmbeck Celle E. Northeim Maschen Ölper F. Braunschweig W. Göttingen B. W. Bornreihe Güldenstern S. Rotenburg Vorsfelde bygfoot-2.3.2/support_files/definitions/europe/germany/cup_germany_prom_games2.xml0000755000175000017500000000133711225071372027652 0ustar eliaselias 3. Liga Promotion Games 3. L. Prom. flag_germany.png germany_prom_games2 1000 national highlight2 3 germany3 1 3 3 germany2 1 16 16 bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_1.xml0000644000175000017500000000305411225071372026332 0ustar eliaselias germany5_1 Oberliga Baden-Württemberg OL Baden-Württemberg flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4c promotion Balingen Crailsheim V. Mannheim Bahling Freiberg Villingen Nöttingen Gmünd Großaspach Illertissen Kehl Durlach Stuttgarter K. II Hoffenheim II Kirchheim A. Walldorf Offenburg Au Iller bygfoot-2.3.2/support_files/definitions/europe/germany/cup_germany_prom_games1.xml0000644000175000017500000000134511225071372027645 0ustar eliaselias 2. Bundesliga Promotion Games 2. BL Prom. flag_germany.png germany_prom_games1 1000 national highlight2 3 germany2 1 3 3 germany1 1 16 16 bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_4.xml0000644000175000017500000000262711225071372026342 0ustar eliaselias germany5_4 Oberliga Nordost-Nord OL NOFV Nord flag_germany.png 7 1 24 5400 germany 5 5 1 1 germany4a promotion D. Berlin Ludwigsfeld Lichterfeld Greif P. Berlin Neustrelitz Schöneiche Falkensee F. Berlin An. Spandau Rathenow Greifswald Reinickendorf Bentwisch T. B. Berlin Brandenburg S. bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_5.xml0000644000175000017500000000263211225071372026337 0ustar eliaselias germany5_5 Oberliga Nordost-Süd OL NOFV Süd flag_germany.png 7 1 24 5400 germany 5 5 1 1 germany4a promotion Eilenburg Meuselwitz L. Leipzig B. Dresden R. W. Erfurt II B. Bautzen G. Halberstadt Pößneck Zwickau C. Z. Jena II E. Aue II Markranstädt V. Auerbach Gera F. Magdeburg II Wolfen bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_10.xml0000644000175000017500000000272311225071372026414 0ustar eliaselias germany5_10 Oberliga Schleswig-Holstein OL S-H flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4a promotion H. Rhen H. Kiel II E. Büdelsdorf Itzehoe Schleswig S. Neumunster Heid Kropp V. Lübeck II Heikendorf Flensburg Eckernförd V. Horst C. Kiel Altenholz Husum Kilia N. Strand bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_11.xml0000644000175000017500000000276411225071372026422 0ustar eliaselias germany5_11 Oberliga Niedersachsen West OL N W flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4b promotion Meppen E. Nordhorn VB. Oldenburg Bavenstedt VL. Oldenburg G. Leer Havelse B. Rothenfelde Langenhagen V. Osnabrück II Pewsum P. Hameln B. Hildesheim S. W. Rehden A. Hannover Lingen Heessel Wilhelmshaven II bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany3.xml0000755000175000017500000000517311225071372026117 0ustar eliaselias germany3 3. Liga 3. L flag_germany.png 5 1 10 15 26 6600 germany 5 12 13 29 30 35 36 germany2 germany_prom_games2 germany3 1 2 germany2 promotion 18 20 germany4a germany4b germany4c relegation Paderborn F. Düsseldorf U. Berlin K. Emden Erfurt K. Offenbach B. München II Stuttgart II Sandhausen Unterhaching C. Z. Jena Aalen E. Aue E. Braunschweig Wuppertal D. Dresden W. Burghausen J. Regensburg Stuttgarter K. W. Bremen II bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany4a.xml0000755000175000017500000000366611225071372026266 0ustar eliaselias germany4a Regionalliga Nord RL Nord flag_germany.png 7 1 8 6100 germany 5 4 1 1 germany3 promotion 15 18 germany5_4 germany5_5 germany5_6 germany5_10 relegation Altona Babelsberg Chemnitz Cottbus II Halle Hamburg II Hannover II H. Berlin II H. Kiel Lübeck Magdeburg Oberneuland Plauen Rostock II S. Leipzig T. Berlin Wilhelmshaven Wolfsburg II bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany4c.xml0000755000175000017500000000373611225071372026266 0ustar eliaselias germany4c Regionalliga Süd RL Süd flag_germany.png 7 1 8 6100 germany 5 4 1 1 germany3 promotion 15 18 germany5_1 germany5_2 germany5_3 germany5_8 relegation V. Aschaffenburg E. Bamberg Darmstadt E. Frankfurt II Freiburg II G. Fürth II Großbardorf Heidenheim Karlsruhe II H. Kassel W. Mannheim T. München II Nürnberg II Pfullendorf Reutlingen Ulm Unterhaching II W. Wiesbaden II bygfoot-2.3.2/support_files/definitions/europe/germany/country_germany.xml0000644000175000017500000000204411225071372026264 0ustar eliaselias Deutschland 9 flag_germany.png germany germany1 germany2 germany3 germany4a germany4b germany4c germany5_1 germany5_2 germany5_3 germany5_4 germany5_5 germany5_6 germany5_7 germany5_8 germany5_9 germany5_10 germany5_11 germany5_12 germany_dfb europe_uefa3g europe_champ_league3 supercup_europe_uefa supercup_europe_intercontinental germany_supercup germany_prom_games1 germany_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/germany/cup_germany_supercup.xml0000644000175000017500000000141111225071372027273 0ustar eliaselias T-Home Supercup Supercup flag_germany.png germany_supercup 5 national 159 0 1 germany1 1 1 1 germany_dfb 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_2.xml0000644000175000017500000000274411225071372026340 0ustar eliaselias germany5_2 Oberliga Bayern OL Bayern flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4c promotion Bayreuth Aindling Weiden Buchbach Memmingen Bad Kötzting B. Hof Seligenporten Würzburg F. Ismaning Frohnlach Würzburger K. Ingolstadt II Schweinfurt Ansbach Rain am Lech Erlangen-Bruck Thannhausen bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_6.xml0000644000175000017500000000275111225071372026342 0ustar eliaselias germany5_6 Oberliga Hamburg OL Hamburg flag_germany.png 7 1 7 5400 germany 5 5 1 1 germany4a promotion C. Hamburg Vi. Hamburg C. Neuengamme E. Norderstedt Bergedorf Egenbüttel St. Pauli II V. Ohe Buchholz Meiendorf Vorwärts W. L. Hamburg Condor B. Uhlenhorst H. Rellingen Vf. Hamburg Uhlenhorst Niendorf bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany2.xml0000644000175000017500000000426411225071372026113 0ustar eliaselias germany2 2. Bundesliga 2. BL flag_germany.png 7 1 10 15 25 39 7400 germany 5 9 10 32 33 1 2 germany1 promotion 17 18 germany3 relegation Aachen Ahlen Augsburg Duisburg F. Frankfurt Freiburg G. Fürth Ingolstadt Kaiserslautern Koblenz Mainz T. München Nürnberg Oberhausen Osnabrück Rostock St. Pauli W. Wiesbaden bygfoot-2.3.2/support_files/definitions/europe/germany/league_germany5_3.xml0000644000175000017500000000333011225071372026331 0ustar eliaselias germany5_3 Oberliga Hessen OL Hessen flag_germany.png 6 1 6 5400 germany 5 5 29 30 35 36 1 1 germany4c promotion Waldgirmes Klein-Karben Alzenau B. Fulda B. Flieden Wörsdorf R. W. Frankfurt Eschborn Würges Baunatal Hünfeld Fernwald E. Stadtallendorf Vellmar K. Offenbach II Ober-Roden V. Uberach H. Kassel II Lohfelden bygfoot-2.3.2/support_files/definitions/europe/turkey/0000755000175000017500000000000011225071373022177 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/turkey/cup_turkey_prom_games1.xml0000755000175000017500000000122311225071372027405 0ustar eliaselias Super Lig Promotion Super L. Prom. flag_turkey.png turkey_prom_games1 1000 national highlight2 turkey2 4 3 6 0 1 bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey3b.xml0000644000175000017500000000213211225071372026010 0ustar eliaselias turkey3b TFF Second League Group 2 2. Lig. G2 flag_turkey.png 8 1 6200 turkey 5 3 inactive Adana D. Afyon Ak. Manisa Al. Antalya Al. İzmir Bu. İzmir Denizli B. F. Mugla M. B. Mugla T. I. Y. Mersin Tu. Manisa bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey3d.xml0000644000175000017500000000212011225071372026007 0ustar eliaselias turkey3d TFF Second League Group 4 2. Lig. G4 flag_turkey.png 8 1 6200 turkey 5 3 inactive A. S. Trabzon Ar. Trabzon Çankırı B. Çorum Erzurum Kars S. O. Trabzon P. Rize Tokat Trabzon K. Y. Yozgat bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey3c.xml0000644000175000017500000000216711225071372026021 0ustar eliaselias turkey3c TFF Second League Group 3 2. Lig. G3 flag_turkey.png 8 1 6200 turkey 5 3 inactive Al. İstanbul B. S. İstanbul E. Åž. Ankara İstanbul S. Konya Åž. Mal. İstanbul Mersin I. Y. Kırıkkale T. T. Ankara Y. KırÅŸehir Ze. İstanbul bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey1.xml0000644000175000017500000000340411225071372025647 0ustar eliaselias turkey1 Super Lig flag_turkey.png 8 1 10 15 26 39 7700 turkey 5 16 18 turkey2 relegation Ga. İstanbul F. İstanbul Be. İstanbul Kayseri Ge. Ankara Konya Sivas Trabzon M. Ankara Istanbul B. Bursa Gaziantep Ankara S. Antalya Kocaeli Denizli EskiÅŸehir H. Ankara bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey3a.xml0000644000175000017500000000217011225071372026011 0ustar eliaselias turkey3a TFF Second League Group 1 2. Lig. G1 flag_turkey.png 8 1 6200 turkey 5 3 inactive Bey. İstanbul B. Bilecik Bu. Ankara D. Çanakkale D. G. Kocaeli E. İstanbul G.O.P. İstanbul Ge. Kocaeli Kö. Kocaeli Pe. İstanbul Sar. İstanbul bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey3e.xml0000644000175000017500000000204211225071372026013 0ustar eliaselias turkey3e TFF Second League Group 5 2. Lig. G5 flag_turkey.png 8 1 6200 turkey 5 3 inactive Adıyaman B. Van D. Diyarbakır Elazığ Gas. Gaziantep İ. Hatay Malatya Be. Mardin Åžanlıurfa B. Åžanlıurfa S. bygfoot-2.3.2/support_files/definitions/europe/turkey/league_turkey2.xml0000644000175000017500000000366511225071372025661 0ustar eliaselias turkey2 TFF First League 1. Lig. flag_turkey.png 8 1 26 39 6900 turkey 5 1 2 turkey1 promotion turkey1 turkey_prom_games1 turkey2 Adana A. İzmir Bolu Diyarbakır Gaziantep B. Giresun Gü. İstanbul Karabük Ka. İzmir Kar. İstanbul Kas. İstanbul Kayseri Malatya Manisa Ordu Rize Sakarya Samsun bygfoot-2.3.2/support_files/definitions/europe/turkey/cup_turkey_kupasi.xml0000644000175000017500000000467411225071372026501 0ustar eliaselias Türkiye Kupasi Kupa flag_turkey.png turkey_kupasi 45 2 national 0 turkey3a 4 1 11 1 turkey3b 4 1 11 1 turkey3c 4 1 11 1 turkey3d 3 1 11 1 turkey3e 3 1 10 1 turkey2 0 -13 0 turkey1 14 5 18 1 0 -12 4 2 0 4 turkey1 4 1 4 1 -8 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/turkey/cup_turkey_supercup.xml0000644000175000017500000000141411225071372027040 0ustar eliaselias Turkish Super Cup Super Cup flag_turkey.png turkey_supercup 7 national 174 0 1 turkey_kupasi 1 1 1 turkey1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/turkey/country_turkey.xml0000644000175000017500000000122011225071372026021 0ustar eliaselias Turkey 7 flag_turkey.png turkey turkey1 turkey2 turkey3a turkey3b turkey3c turkey3d turkey3e turkey_kupasi europe_uefa2a europe_champ_league2 supercup_europe_uefa supercup_europe_intercontinental turkey_supercup turkey_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/wales/0000755000175000017500000000000011225071373021767 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/wales/cup_wales_welsh.xml0000644000175000017500000000232311225071372025674 0ustar eliaselias FAW Welsh Cup Welsh Cup flag_wales.png wales_welsh 44 4 national 0 wales1 wales2a wales2b 11 -9 0 0 -9 0 0 -1 0 0 1 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/wales/cup_wales_premier.xml0000644000175000017500000000257111225071372026222 0ustar eliaselias FAW Premier Cup Prem Cup flag_wales.png wales_premier 36 7 international 101 2000 0 CUP1 1 1 1 LEAGUE1 9 1 10 0 0 3 wales_english 3 1 1 1 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/wales/cup_wales_challenge.xml0000644000175000017500000000216511225071372026500 0ustar eliaselias Challenge Cup Chall. Cup flag_wales.png wales_challenge 32 5 national 0 wales1 4 15 18 0 wales1 14 1 14 0 -1 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/wales/league_wales_english.xml0000644000175000017500000000050311225071372026654 0ustar eliaselias wales_english flag_england.png Cardiff Swansea Wrexham bygfoot-2.3.2/support_files/definitions/europe/wales/country_wales.xml0000644000175000017500000000105311225071372025405 0ustar eliaselias Wales 4 flag_wales.png wales wales1 wales2a wales2b wales_welsh wales_challenge wales_premier europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/wales/league_wales2b.xml0000644000175000017500000000314111225071372025370 0ustar eliaselias wales2b Cymru Alliance C. All. flag_wales.png 7 1 5500 england 5 2 1 1 wales1 promotion Bala Buckley Denbigh Flint Glantraeth Gresford Guilsfield Holyhead Lex XI Llandudno Llandyrnog Llanfairpwll Llangefni Mold A. Mynydd I. Penrhyncoch Ruthin bygfoot-2.3.2/support_files/definitions/europe/wales/league_wales1.xml0000644000175000017500000000343011225071372025226 0ustar eliaselias wales1 Welsh Premier League WPL flag_wales.png 7 1 10 15 39 6000 england 5 17 18 wales2a wales2b relegation Aberystwyth A. U. Broughton Bangor Caernarfon Caersws Carmarthen Connah's Quay Haverfordwest Llanelli Neath Newi Cefn New S. Newtown Port Talbot Porthmadog Prestatyn Rhyl Welshpool bygfoot-2.3.2/support_files/definitions/europe/wales/league_wales2a.xml0000644000175000017500000000327411225071372025376 0ustar eliaselias wales2a Welsh League Div. 1 Welsh D1 flag_wales.png 7 1 5500 england 5 2 1 1 wales1 promotion Afan Lido Barry Bettws Bridgend Bryntirion Caerleon Caldicot Cardiff Co. Cambrian and Clydach Croesyceiliog Cwmbran Dinas Powys E. Aberaman Goytre Newport Pontardawe Taffs Well Ton Pentre bygfoot-2.3.2/support_files/definitions/europe/netherlands/0000755000175000017500000000000011225071373023163 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands3e.xml0000644000175000017500000000241211225071372027764 0ustar eliaselias netherlands3e Zondag Hoofdklasse B Zon. hoofdkl.b flag_netherlands.png 9 1 8 6100 5 netherlands 3 D. Kaatsheuvel Deurne Gemert B. Breda Schijndel U. Veldhoven D. B. Helmond L. Tilburg Rosmalen Cuijk Meerssen Papendrecht E. Echt Venray bygfoot-2.3.2/support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie2.xml0000644000175000017500000000436611225071372031716 0ustar eliaselias Nacompetitie nacompetitie flag_netherlands.png netherlands_nacompetitie2 3 1000 national highlight2 netherlands2 1 7 7 netherlands2 1 8 8 netherlands2 1 6 6 netherlands2 1 9 9 netherlands1 1 16 16 netherlands1 1 17 17 netherlands2 1 3 3 netherlands2 1 4 4 netherlands2 1 2 2 netherlands2 1 5 5 bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands3f.xml0000644000175000017500000000244011225071372027766 0ustar eliaselias netherlands3f Zondag Hoofdklasse C Zon. hoofdkl.c flag_netherlands.png 9 1 8 6100 5 netherlands 3 Sneek Q. Oldenzaal A. Groesbeek A. Meppel W. Apeldoorn H. Haaksbergen D. B. Gendt B. Q. Haren gn Babberich W. Emmen D. T. Groesbeek Lienden G. Groesbeek Joure bygfoot-2.3.2/support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie5.xml0000644000175000017500000000210611225071372031707 0ustar eliaselias Nacompetitie Zon. Hoofdklasse nacompetitie5 flag_netherlands.png netherlands_nacompetitie5 3 1000 national highlight2 1 1 1 netherlands3d 1 1 1 netherlands3e 1 1 1 netherlands3f 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/netherlands/cup_netherlands_supercup.xml0000644000175000017500000000144311225071372031012 0ustar eliaselias Johan Cruijff Schaal J. C. Schaal flag_netherlands.png netherlands_supercup 8 national 165 0 1 netherlands_cup 1 1 1 netherlands1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie4.xml0000644000175000017500000000210611225071372031706 0ustar eliaselias Nacompetitie Zat. Hoofdklasse nacompetitie4 flag_netherlands.png netherlands_nacompetitie4 3 1000 national highlight2 1 1 1 netherlands3a 1 1 1 netherlands3b 1 1 1 netherlands3c 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands3d.xml0000644000175000017500000000246211225071372027770 0ustar eliaselias netherlands3d Zondag Hoofdklasse A Zon. hoofdkl.a flag_netherlands.png 9 1 8 6100 5 netherlands 3 V. Noordwijkerhout A. Mijdrecht Hilversum D. Amsterdam O. Almere II W. Naaldwijk A. Heemskerk E. Utrecht H. Den Haag T. Amsterdam H. Hoorn H. Rijswijk V. Den Haag AF. Amsterdam bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands3a.xml0000644000175000017500000000250011225071372027756 0ustar eliaselias netherlands3a Zaterdag Hoofdklasse A Zat. hoofdkl.a flag_netherlands.png 9 1 8 6100 5 netherlands 3 Alphen a. d. Rijn A. Hendrik Ido Ambacht Barendrecht Capelle a. d. IJssel D. Pernis E. Maassluis Heerjansdam Katwijk Lisse Noordwijk Q. B. Katwijk Rijnsburg B. S. Den Haag T. L. Sassenheim bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands3c.xml0000644000175000017500000000244311225071372027766 0ustar eliaselias netherlands3c Zaterdag Hoofdklasse C Zat. hoofdkl. c flag_netherlands.png 9 1 8 6100 5 netherlands 3 B. Q. Zwolle B. Zwolle E. Rijssen F. B. Emmeloord Genemuiden G. A. Kampen Harkema B. Hardenberg Nunspeet O. Sneek O. N. Groningen P. Groningen Staphorst Wezep bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands1.xml0000644000175000017500000000450711225071372027624 0ustar eliaselias netherlands1 Eredivisie erediv. flag_netherlands.png 9 1 10 15 27 39 7600 5 netherlands 8 9 21 22 18 18 netherlands2 relegation netherlands1 2 netherlands_nacompetitie2 netherlands2 A. Amsterdam Alkmaar Breda De Graafschap Den Haag F. Rotterdam Groningen Heerenveen H. Almelo Nijmegen P. Eindhoven R. Kerkrade S. Rotterdam T. Enschede Utrecht V. Arnhem Volendam W. II Tillburg bygfoot-2.3.2/support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie6.xml0000644000175000017500000000155311225071372031715 0ustar eliaselias Nacompetitie Hoofdklasse nacompetitie6 flag_netherlands.png netherlands_nacompetitie6 3 1000 national highlight2 0 1 netherlands_nacompetitie4 1 1 1 netherlands_nacompetitie5 1 1 1 bygfoot-2.3.2/support_files/definitions/europe/netherlands/cup_netherlands_cup.xml0000644000175000017500000000273111225071372027734 0ustar eliaselias KNVB Cup Cup flag_netherlands.png netherlands_cup 46 3 3 national 0 netherlands3a netherlands3b netherlands3c 10 -19 0 netherlands1 netherlands2 0 -18 0 -14 0 -7 0 -4 0 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands2.xml0000644000175000017500000000363711225071372027630 0ustar eliaselias netherlands2 Jupiler League 1e div. flag_netherlands.png 6 1 26 6800 5 netherlands 7 8 1 1 netherlands1 promotion Apeldoorn Cambuur Den Bosch Dordrecht Eindhoven Emmen Excelsior F. Sittard G. A. Eagles Haarlem Helmond Maastricht O. Almere Roosendaal R. Waalwijk Telstar T. Oss Veendam Venlo Zwolle bygfoot-2.3.2/support_files/definitions/europe/netherlands/league_netherlands3b.xml0000644000175000017500000000247611225071372027773 0ustar eliaselias netherlands3b Zaterdag Hoofdklasse B Zat. hoofdkl. b flag_netherlands.png 9 1 8 6100 5 netherlands 3 A. Amsterdam II Bennekom D. Veenendaal G. Nieuwegein G. Veenendaal Hoek J. B. Gouda K. B. Werkendam Putten Bunschoten-Spakenburg S. Nijkerk R. Volendam I. Bunschoten-Spakenburg Z. Hoorn bygfoot-2.3.2/support_files/definitions/europe/netherlands/country_netherlands.xml0000644000175000017500000000155611225071372030005 0ustar eliaselias Netherlands 8 flag_netherlands.png netherlands netherlands1 netherlands2 netherlands3a netherlands3b netherlands3c netherlands3d netherlands3e netherlands3f netherlands_cup europe_uefa4 europe_champ_league2a supercup_europe_uefa supercup_europe_intercontinental netherlands_supercup netherlands_nacompetitie2 netherlands_nacompetitie4 netherlands_nacompetitie5 netherlands_nacompetitie6 bygfoot-2.3.2/support_files/definitions/europe/belarus/0000755000175000017500000000000011225071373022311 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/belarus/league_belarus1.xml0000755000175000017500000000306611225071372026102 0ustar eliaselias belarus1 Vysshaya Liga Vysshaya flag_belarus.png 1 1 6700 russia 5 14 16 belarus2 relegation B. Borisov D. Zhdanovichi D. Brest D. Minsk D. Mogilev Gomel G. Mikashevichi L. Minsk M. R. Minsk N. Novopolotsk N. Grodno S. Mogilev S. Soligorsk Smorgon T. Zhodino Vitebsk bygfoot-2.3.2/support_files/definitions/europe/belarus/country_belarus.xml0000755000175000017500000000067311225071372026263 0ustar eliaselias Belarus flag_belarus.png belarus 5 belarus1 belarus2 belarus_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/belarus/league_belarus2.xml0000644000175000017500000000265711225071372026105 0ustar eliaselias belarus2 First Division 1. Div. flag_belarus.png 1 1 5900 russia 5 1 3 belarus1 promotion Baranovichi B. Bobruisk P. Postavy F. Minsk D. Grodno F. Mozyr K. Slonim K. Svetlogorsk Lida F. Polotsk S. Shklov V. Nesvizh V. Rechitsa V. Pinsk bygfoot-2.3.2/support_files/definitions/europe/belarus/cup_belarus_cup.xml0000644000175000017500000000201711225071372026205 0ustar eliaselias Belarusian Cup Cup flag_belarus.png belarus_cup 44 3 national 0 belarus2 -15 0 belarus1 -13 0 -10 2 1 0 1 bygfoot-2.3.2/support_files/definitions/europe/malta/0000755000175000017500000000000011225071373021752 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/malta/cup_malta_cup.xml0000644000175000017500000000257211225071372025315 0ustar eliaselias U Bet FA Trophy FA Trophy flag_malta.png malta_cup 48 3 national 0 malta2 malta1 6 5 10 1 0 -18 0 0 -20 0 malta1 4 1 4 1 -10 0 -9 0 1 bygfoot-2.3.2/support_files/definitions/europe/malta/cup_malta_supercup.xml0000644000175000017500000000140011225071372026361 0ustar eliaselias Malta Supercup Supercup flag_malta.png malta_supercup 6 national 164 0 1 malta1 1 1 1 malta_cup 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/malta/league_malta2.xml0000755000175000017500000000247711225071372025212 0ustar eliaselias malta2 First Division 1. Div. flag_malta.png 8 1 10 15 26 36 5000 3 5 1 1 malta1 promotion Mosta Dingli S. Mqabba Pietà H. Rabat A. San Gwann Senglea A. S. G. Cospicua S. P. Zabbar V. S. Birgu bygfoot-2.3.2/support_files/definitions/europe/malta/league_malta1.xml0000755000175000017500000000250311225071372025177 0ustar eliaselias malta1 BOV Premier League Prem. Lg. flag_malta.png 8 1 10 15 26 36 5600 3 5 10 10 malta2 relegation Birkirkara Floriana Hamrun S. H. Paola Marsaxlokk Msida S. J. Qormi Sliema W. Tarxien R. Valletta bygfoot-2.3.2/support_files/definitions/europe/malta/country_malta.xml0000755000175000017500000000071311225071372025360 0ustar eliaselias Malta flag_malta.png malta 4 malta1 malta2 malta_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental malta_supercup bygfoot-2.3.2/support_files/definitions/europe/faroe_islands/0000755000175000017500000000000011225071373023465 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/faroe_islands/country_faroe_islands.xml0000755000175000017500000000100311225071372030577 0ustar eliaselias Faroe Islands flag_faroe_islands.png faroe_islands 4 faroe_islands1 faroe_islands2 faroe_islands3 faroe_islands_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/faroe_islands/cup_faroe_islands_cup.xml0000644000175000017500000000236311225071372030541 0ustar eliaselias Faroe Islands Cup Cup flag_faroe_islands.png faroe_islands_cup 18 3 national 0 faroe_islands3 4 1 10 1 0 faroe_islands2 4 1 10 1 faroe_islands1 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/faroe_islands/league_faroe_islands1.xml0000755000175000017500000000236211225071372030430 0ustar eliaselias faroe_islands1 Formuladeildin Formld. flag_faroe_islands.png 1 1 5500 denmark 3 5 9 10 faroe_islands2 relegation B. Tórshavn B. Toftir B. Sandur Streymur H. Tórshavn Fuglafjørdur K. Klaksvík N. Runavík Skála I. V. Gotu bygfoot-2.3.2/support_files/definitions/europe/faroe_islands/league_faroe_islands3.xml0000644000175000017500000000237411225071372030432 0ustar eliaselias faroe_islands3 2. Deild 2. Deild flag_faroe_islands.png 1 1 4500 denmark 3 5 1 2 faroe_islands2 promotion A. Argir II B. Tórshavn II K. Klaksvik III Ã. Fram Fuglafjørdur II Miðvágur Skála II Tvoroyri II V. Sorvagur II V. Gotu III bygfoot-2.3.2/support_files/definitions/europe/faroe_islands/league_faroe_islands2.xml0000644000175000017500000000267711225071372030437 0ustar eliaselias faroe_islands2 1 Deild Menn 1. Deild flag_faroe_islands.png 1 1 5000 denmark 3 5 1 2 faroe_islands1 promotion 9 10 faroe_islands3 relegation A. Argir B. Toftir II K. Klaksvik II Streymur II H. Tórshavn II N. Runavik II S. Vagur Tvoroyri V. Sorvagur V. Gotu II bygfoot-2.3.2/support_files/definitions/europe/slovenia/0000755000175000017500000000000011225071373022474 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/slovenia/league_slovenia3b.xml0000644000175000017500000000271111225071372026605 0ustar eliaselias slovenia3b Treća Liga Zapad 3. SNL Z flag_slovenia.png 4 1 23 5800 serbia 5 3 1 1 slovenia2 promotion A. Miren Brda Dob J. Dekani Kamnik Korte Kranj Krka Sava Radomlje S. Å encur Sl. Ljubljana Tolmin T. Sežana bygfoot-2.3.2/support_files/definitions/europe/slovenia/country_slovenia.xml0000755000175000017500000000110311225071372026616 0ustar eliaselias Slovenia flag_slovenia.png slovenia 6 slovenia1 slovenia2 slovenia3a slovenia3b slovenia_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental slovenia_supercup slovenia_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/slovenia/cup_slovenia_cup.xml0000644000175000017500000000326411225071372026560 0ustar eliaselias Pokal Hervis Pokal H. flag_slovenia.png slovenia_cup 48 3 national 0 slovenia2 7 1 10 1 slovenia3a 7 1 14 1 slovenia3b 7 1 14 1 1 -22 0 1 -23 0 slovenia1 0 -24 0 -22 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/slovenia/cup_slovenia_prom_games1.xml0000644000175000017500000000133511225071372030200 0ustar eliaselias SNL Promotion Games SNL Prom. flag_slovenia.png slovenia_prom_games1 1000 national highlight2 3 slovenia2 1 2 2 slovenia1 1 9 9 bygfoot-2.3.2/support_files/definitions/europe/slovenia/cup_slovenia_supercup.xml0000644000175000017500000000142011225071372027627 0ustar eliaselias Slovenian Supercup Supercup flag_slovenia.png slovenia_supercup 2 national 171 0 1 slovenia_cup 1 1 1 slovenia1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/slovenia/league_slovenia3a.xml0000644000175000017500000000275211225071372026611 0ustar eliaselias slovenia3a Treća Liga Istok 3. SNL I flag_slovenia.png 4 1 23 5800 serbia 5 3 1 1 slovenia2 promotion C. Martjanci Crensovci Dravinja K. Dravograd Malecnik M. C. Rogatec Odranci S. Vrh S. pri Jelsah Å . ob Paki Store Stojnci S. Celje S. Verzej bygfoot-2.3.2/support_files/definitions/europe/slovenia/league_slovenia2.xml0000644000175000017500000000353211225071372026444 0ustar eliaselias slovenia2 Druga Liga 2. SNL flag_slovenia.png 4 1 24 6400 4 serbia 5 28 29 33 34 1 1 slovenia1 promotion slovenia1 slovenia_prom_games1 slovenia2 9 10 slovenia3a slovenia3b relegation Aluminij B. Krajina B. Izola KrÅ¡ko O. Ljubljana I. Gorica Mura T. Kranj Å entjur Zagorje bygfoot-2.3.2/support_files/definitions/europe/slovenia/league_slovenia1.xml0000755000175000017500000000307011225071372026443 0ustar eliaselias slovenia1 Prva Liga 1. SNL flag_slovenia.png 4 1 10 24 7000 4 serbia 5 26 27 32 33 35 36 10 10 slovenia2 relegation Celje B. Domžale Drava H. Gorica I. Ljubljana Koper Maribor N. Lendava P. Ajdovscina R. Velenje bygfoot-2.3.2/support_files/definitions/europe/hungary/0000755000175000017500000000000011225071373022331 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary2b.xml0000644000175000017500000000356011225071372026301 0ustar eliaselias hungary2b Nemzeti Bajnokság II-Keleti NB2-K flag_hungary.png 5 1 21 6400 hungary 5 2 1 1 hungary1 promotion 14 16 hungary3a hungary3b hungary3c hungary3d hungary3e hungary3f relegation Baktalórántháza BÅ‘cs B. E. Budapest Cegléd Vác Fe. Budapest Jászberény Kazincbarcika Makó Békéscsaba Debrecen II Szolnok E. Budapest Tököl M. Budapest II Vecsés bygfoot-2.3.2/support_files/definitions/europe/hungary/country_hungary.xml0000644000175000017500000000126711225071372026320 0ustar eliaselias Hungary flag_hungary.png hungary 6 hungary1 hungary2a hungary2b hungary3a hungary3b hungary3c hungary3d hungary3e hungary3f hungary_cup europe_uefa europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental hungary_supercup bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary3b.xml0000644000175000017500000000316411225071372026302 0ustar eliaselias hungary3b Nemzeti Bajnokság III Bakony NB3-B flag_hungary.png 5 1 21 5800 hungary 5 3 1 1 hungary2a hungary2b promotion Veszprem Heviz Lipot Celldomolki Sarvar Csesztreg S. Haladás II Mosonmagyaróvári Repcelak A. Padragkut Buk Soproni Badacsonytomaji Csornai H. Tapolca Vepi bygfoot-2.3.2/support_files/definitions/europe/hungary/cup_hungary_supercup.xml0000644000175000017500000000135011225071372027323 0ustar eliaselias Magyar Szuperkupa SzuperK_HU hungary_supercup 4 national 161 0 1 hungary1 1 1 1 hungary_cup 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary1.xml0000644000175000017500000000343211225071372026134 0ustar eliaselias hungary1 Nemzeti Bajnokság I NBI flag_hungary.png 5 1 10 15 21 7200 hungary 5 1 2 15 16 hungary2a hungary2b relegation M. H. Budapest H. Budapest R. Budapest Ú. Budapest V. Budapest Debrecen GyÅ‘r Kaposvár D. Miskolc Paks S. Haladás F. Székesfehérvár Kecskemét Zalaegerszeg N. Spartacus Siófok bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary3a.xml0000644000175000017500000000317511225071372026303 0ustar eliaselias hungary3a Nemzeti Bajnokság III Alföld NB3-A flag_hungary.png 5 1 21 5800 hungary 5 3 1 1 hungary2a hungary2b promotion Kecskemét II B. Lombard Algyo H. Budapest II Erdi Szolnoki S. Orosháza Tisza V. Hodmezovasarhely Gyulai T. Dabas Monori Izsaki S. Ujbuda Kiskunfelegyhazi Jaszapati bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary3c.xml0000644000175000017500000000317211225071372026302 0ustar eliaselias hungary3c Nemzeti Bajnokság III Dráva NB3-Dr flag_hungary.png 5 1 21 5800 hungary 5 3 1 1 hungary2a hungary2b promotion Szentlõrinc Pecs V. Nagykanizsai Paks II Kaposvár II Szekszardi Komlói B. Bogad Mohacs Dombovar Pecsvarad S. Nagyatad Marcali Beremend E. Bonyhad V. Nagybajomi bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary2a.xml0000644000175000017500000000355211225071372026301 0ustar eliaselias hungary2a Nemzeti Bajnokság II-Nyugati NB2-N flag_hungary.png 5 1 21 6400 hungary 5 2 1 1 hungary1 promotion 14 16 hungary3a hungary3b hungary3c hungary3d hungary3e hungary3f relegation Barcs Budaörs Dunaújváros Bajai Ajka Felcsút Gyirmót Százhalombattai I. D. GyÅ‘r K. Nagyberki GyÅ‘r II Kozármisleny L. Pápa Tatabánya P. Pécs Zalaegerszeg II bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary3f.xml0000644000175000017500000000320711225071372026304 0ustar eliaselias hungary3f Nemzeti Bajnokság III Tisza NB3-T flag_hungary.png 5 1 21 5800 hungary 5 3 1 1 hungary2a hungary2b promotion Nagyecsed Nyirmadai Hajduboszormenyi Varda D. Miskolc II Kemecse N. Spartacus II Ibrany Berettyoujfalui Letavertes Tiszalok Tuzsér Hajduszoboszloi Tiszakanyar V. Senyo Balkanyi bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary3d.xml0000644000175000017500000000321311225071372026277 0ustar eliaselias hungary3d Nemzeti Bajnokság III Duna NB3-Du flag_hungary.png 5 1 21 5800 hungary 5 3 1 1 hungary2a hungary2b promotion Szigetszentmiklosi Soroksár Velence Siófok II Mori Kerületi Penzugyor Dunaharaszti Csepel Dorogi Sarisapi B. Torokbalinti Kornye F. Székesfehérvár II Balatonlelle Csillaghegyi bygfoot-2.3.2/support_files/definitions/europe/hungary/cup_hungary_cup.xml0000644000175000017500000000445011225071372026250 0ustar eliaselias Magyar Kupa MagyarK flag_hungary.png hungary_cup 45 2 national 0 hungary3a hungary3b hungary3c hungary3d hungary3e hungary3f 20 -18 0 hungary2a hungary2b 0 -18 0 hungary1 13 4 16 1 0 -19 0 hungary1 3 1 3 1 0 -19 -18 0 1 bygfoot-2.3.2/support_files/definitions/europe/hungary/league_hungary3e.xml0000644000175000017500000000321111225071372026276 0ustar eliaselias hungary3e Nemzeti Bajnokság III Mátra NB3-M flag_hungary.png 5 1 21 5800 hungary 5 3 1 1 hungary2a hungary2b promotion Ú. Budapest II S. Baglyasalja Tura Mezokövesdi Gyongyos Balmazujvarosi V. Budapest II Maglodi Putnok Egri Ozd RA. Budapest Balassagyarmat Tiszafuredi Tiszaújváros Veresegyhaz bygfoot-2.3.2/support_files/definitions/europe/romania/0000755000175000017500000000000011225071373022302 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/romania/league_romania3c.xml0000644000175000017500000000340611225071372026224 0ustar eliaselias romania3c Liga III Seria 3 L3S3 flag_romania.png 5 1 23 6000 romania 5 3 1 1 romania2a promotion C. PloieÅŸti A. Berceni T. Breaza E. Titu J. BucureÅŸti R. BraÅŸov V. BrăneÅŸti V. Bod C. Brazi U. Târlungeni P. Videle FilipeÅŸtii de Pădure P. K. BoldeÅŸti P. PloieÅŸti II C. Predeal P. BucureÅŸti II C. Ilfov F. Săcele bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania3d.xml0000644000175000017500000000400111225071372026215 0ustar eliaselias romania3d Liga III Seria 4 L3S4 flag_romania.png 5 1 23 6000 romania 5 3 1 1 romania2b promotion romania2b romania_prom_games4 romania3d romania3e romania3f F. Caracal G. M. Craiova E. Rovinari A. Slatina O. Râmnicu Vâlcea V. Pucioasa Pr. Craiova J. Rovinari M. Motru F. PiteÅŸti II P. Corabia C. C. Craiova P. C. Craiova F. BalÅŸ A. Craiova M. C. Muscel V. A. Copăceni M. J. Mătăsari bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania3a.xml0000644000175000017500000000366711225071372026233 0ustar eliaselias romania3a Liga III Seria 1 L3S1 flag_romania.png 5 1 23 6000 romania 5 3 1 1 romania2a promotion romania2a romania_prom_games3 romania3a romania3b romania3c Ae. Bacău W. Bacău L. M. Eminescu P. IaÅŸi II R. Suceava O. GalaÅ£i II C. PaÅŸcani F. Bârlad F. Bacău II C. Piatra NeamÅ£ II C. Panciu C. FocÅŸani C. Târgu NeamÅ£ L. Roman C. Moldovenesc R. Sărat P. Berca bygfoot-2.3.2/support_files/definitions/europe/romania/country_romania.xml0000644000175000017500000000137611225071372026243 0ustar eliaselias Romania 7 flag_romania.png romania romania1 romania2a romania2b romania3a romania3b romania3c romania3d romania3e romania3f romania_coupe europe_uefa4 europe_champ_league2a supercup_europe_uefa supercup_europe_intercontinental romania_supercup romania_prom_games3 romania_prom_games4 bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania3f.xml0000644000175000017500000000340411225071372026225 0ustar eliaselias romania3f Liga III Seria 6 L3S6 flag_romania.png 5 1 23 6000 romania 5 3 1 1 romania2b promotion F. Zalău A. Reghin Baia Mare G. M. Târgu MureÅŸ L. Salonta II G. BistriÅ£a II S. Iara U. Dej A. U. Ungheni B. BeiuÅŸ S. S. P. Cluj E. I. FăgăraÅŸ M. Sighet C. SebeÅŸ C. Cluj II S. S. Silvaniei B. Oradea II F. Cisnădie bygfoot-2.3.2/support_files/definitions/europe/romania/cup_romania_prom_games4.xml0000644000175000017500000000211411225071372027613 0ustar eliaselias Liga III Baraj promovare B L. III Prom. B flag_romania.png romania_prom_games4 3 1000 national highlight2 0 1 1 1 romania3d 1 2 2 romania3e 1 2 2 romania3f 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/romania/cup_romania_coupe.xml0000644000175000017500000000435711225071372026524 0ustar eliaselias Cupa României Cupa flag_romania.png romania_coupe 50 3 national 0 romania3a romania3b romania3c romania3d romania3e romania3f 53 -18 0 0 -19 0 0 -20 0 romania2a 17 1 18 1 romania2b 1 -21 0 0 -22 0 romania1 0 -22 0 -21 0 -3 0 -3 0 1 bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania3e.xml0000644000175000017500000000343011225071372026223 0ustar eliaselias romania3e Liga III Seria 5 L3S5 flag_romania.png 5 1 23 6000 romania 5 3 1 1 romania2a promotion U. Sânicolau Mare D. Orăştie N. SebiÅŸ B. Vânju Mare M. M. Valea Copcii G. Arad P. Gătaia F. Covaci V. Sânandrei A. G. Albina M. Simeria C. Ineu F. TimiÅŸoara II N. M. M. Bechicerecul Mic C. Vulcan C. TimiÅŸoara F. ReÅŸiÅ£a C. Hunedoara bygfoot-2.3.2/support_files/definitions/europe/romania/cup_romania_supercup.xml0000644000175000017500000000142011225071372027243 0ustar eliaselias Supercupa României SuperC_RO flag_romania.png romania_supercup 4 national 168 0 1 romania_coupe 1 1 1 romania1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania3b.xml0000644000175000017500000000342511225071372026224 0ustar eliaselias romania3b Liga III Seria 2 L3S2 flag_romania.png 5 1 23 6000 romania 5 3 1 1 romania2b promotion Ra. BucureÅŸti II I. G. BucureÅŸti C. Eforie S. BucureÅŸti II Ro. BucureÅŸti C. Brăila C. Năvodari C. Ovidiu P. ConstanÅ£a C. Medgidia U. Slobozia D. CălăraÅŸi C. Mangalia V. ÃŽnsurăţei F. ConstanÅ£a II P. GalaÅ£i Câmpina S. Stejaru bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania2a.xml0000644000175000017500000000372111225071372026221 0ustar eliaselias romania2a Liga II Seria 1 L2S1 flag_romania.png 5 1 23 6700 romania 5 2 1 2 romania1 promotion 15 18 romania3a romania3c romania3e relegation C. Piatra NeamÅ£ C. Suceava P. PloieÅŸti C. Chiajna C. Buftea C. PloieÅŸti D. BucureÅŸti II D. Tulcea BotoÅŸani S. S. BucureÅŸti D. Giurgiu P. BucureÅŸti S. Bacău F. Bacău D. GalaÅ£i Snagov F. BraÅŸov P. Modelu bygfoot-2.3.2/support_files/definitions/europe/romania/cup_romania_prom_games3.xml0000644000175000017500000000211411225071372027612 0ustar eliaselias Liga III Baraj promovare A L. III Prom. A flag_romania.png romania_prom_games3 3 1000 national highlight2 0 1 1 1 romania3a 1 2 2 romania3b 1 2 2 romania3c 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania2b.xml0000644000175000017500000000373511225071372026227 0ustar eliaselias romania2b Liga II Seria 2 L2S2 flag_romania.png 5 1 23 6700 romania 5 2 1 2 romania1 promotion 15 18 romania3b romania3d romania3f relegation I. Curtea de ArgeÅŸ U. Alba Iulia C. Râmnicu Vâlcea D. Mioveni Drobeta-Turnu Severin M. Lupeni M. Deva L. Oradea B. Oradea TârgoviÅŸte Târgu MureÅŸ J. PetroÅŸani U. Cluj A. Turda A. Arad C. TimiÅŸoara U. Arad I. Câmpia Turzii bygfoot-2.3.2/support_files/definitions/europe/romania/league_romania1.xml0000644000175000017500000000341311225071372026055 0ustar eliaselias romania1 Liga I L1 flag_romania.png 5 1 10 23 7500 romania 5 15 18 romania2a romania2b relegation C. Cluj S. BucureÅŸti Ra. BucureÅŸti D. BucureÅŸti U. Urziceni G. M. MediaÅŸ S. Vaslui O. GalaÅ£i U. Craiova G. BistriÅ£a P. IaÅŸi P. Târgu Jiu F. ConstanÅ£a G. Buzău F. PiteÅŸti TimiÅŸoara BraÅŸov C. Otopeni bygfoot-2.3.2/support_files/definitions/europe/albania/0000755000175000017500000000000011225071373022243 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/albania/league_albania3a.xml0000644000175000017500000000255311225071372026126 0ustar eliaselias albania3a Kategoria e Dyte A Kat. D. A flag_albania.png 8 1 27 5400 3 5 3 1 1 albania2 promotion Gramshi A. Mamurrasi P. Kukes E. Shijak V. Koplik C. Fier A. Patos K. Peshkop Ol. Tirane Luzi I. F. Krujë E. Rrogozhine bygfoot-2.3.2/support_files/definitions/europe/albania/league_albania2.xml0000644000175000017500000000404711225071372025764 0ustar eliaselias albania2 Albania First Division 1st Div. flag_albania.png 8 1 27 5900 5 1 2 albania1 promotion albania1 2 albania_prom_games1 albania2 15 16 albania3a albania3b relegation A. Velipojë Burreli B. Lezhë Bilisht S. D. Kamzë G. Ersekë Laci S. Korcë K. Krujë L. Gjirokastër Pogradeci T. Pukë S. Librazhd T. Cërrik N. Kucovë Skrapari bygfoot-2.3.2/support_files/definitions/europe/albania/cup_albania_supercup.xml0000644000175000017500000000141411225071372027150 0ustar eliaselias Albanian Supercup Supercup flag_albania.png albania_supercup 7 national 150 0 1 albania_cup 1 1 1 albania1 1 1 2 bygfoot-2.3.2/support_files/definitions/europe/albania/cup_albania_prom_games1.xml0000644000175000017500000000141411225071372027514 0ustar eliaselias Albania Promotion Games Alb. Prom. flag_albania.png albania_prom_games1 1000 national highlight2 3 2 albania2 2 3 4 albania1 2 9 10 bygfoot-2.3.2/support_files/definitions/europe/albania/cup_albania_cup.xml0000644000175000017500000000274411225071372026100 0ustar eliaselias Kupa e Shqipërisë Kupa flag_albania.png albania_cup 45 3 national 0 albania3a 8 1 12 1 albania3b 8 1 13 1 -2 0 -4 albania2 albania1 0 -3 -4 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/albania/league_albania3b.xml0000644000175000017500000000262611225071372026130 0ustar eliaselias albania3b Kategoria e Dyte B Kat. D. B flag_albania.png 8 1 27 5400 3 5 3 1 1 albania2 promotion Memaliaj Vlora B. Sarande T. Berat D. Prrenjas Delvina Himare Permet Tepelena Maliqi Kelcyra P. Korcë Policani bygfoot-2.3.2/support_files/definitions/europe/albania/country_albania.xml0000755000175000017500000000122211225071372026136 0ustar eliaselias Albania flag_albania.png albania 5 albania1 albania2 albania3a albania3b albania_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental albania_supercup albania_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/albania/league_albania1.xml0000755000175000017500000000265111225071372025765 0ustar eliaselias albania1 Superliga Superl. flag_albania.png 8 1 10 15 27 39 5 6500 3 11 12 albania2 relegation Apolonia Besa Bylis D. Tirana Elbasani Flamurtari Lushnja Partizani Shkumbini Teuta Tirana Vllaznia bygfoot-2.3.2/support_files/definitions/europe/moldova/0000755000175000017500000000000011225071373022315 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/moldova/league_moldova1.xml0000644000175000017500000000314211225071372026102 0ustar eliaselias moldova1 Divizia Nationala Div. Nat. flag_moldova.png 1 1 10 15 22 6000 romania 3 5 2 3 10 11 11 11 moldova2 relegation C. R. ChiÅŸinău A. ChiÅŸinău D. ChiÅŸinău D. Bender I-S. Ribnita N. Otaci O. Balti S. Tiraspol T. Tiraspol F. Tiraspol Z. ChiÅŸinău bygfoot-2.3.2/support_files/definitions/europe/moldova/league_moldova2.xml0000644000175000017500000000324111225071372026103 0ustar eliaselias moldova2 Divizia A Div. A flag_moldova.png 1 1 10 15 22 5400 romania 5 1 1 moldova1 promotion S. Tiraspol II P. Inesti I. Ratus C. Buiucani L. Balti S. Gheorghe Cahul V. Orhei Gagauziya D. Bender II Eikomena P. ChiÅŸinău I. Aroma Z. ChiÅŸinău II O. Ungheni M. ChiÅŸinău bygfoot-2.3.2/support_files/definitions/europe/moldova/league_moldova3b.xml0000644000175000017500000000163511225071372026253 0ustar eliaselias moldova3b Divizia B Sud DivBSud flag_moldova.png 1 1 4900 romania 3 inactive ViiÅŸoara Cantemir Victoria Sinteza Kolos Cahul II Congaz Maiak Locomotiva bygfoot-2.3.2/support_files/definitions/europe/moldova/league_moldova3a.xml0000644000175000017500000000164111225071372026247 0ustar eliaselias moldova3a Divizia B Nord DivBNord flag_moldova.png 1 1 4900 romania 3 inactive PodiÅŸ Cricova Flacăra FloreÅŸti TeleneÅŸti Glodeni Volna Sculeni SperanÅ£a bygfoot-2.3.2/support_files/definitions/europe/moldova/country_moldova.xml0000644000175000017500000000100311225071372026254 0ustar eliaselias Republic of Moldova flag_moldova.png moldova 5 moldova1 moldova2 moldova3a moldova3b moldova_cup europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental bygfoot-2.3.2/support_files/definitions/europe/moldova/cup_moldova_cup.xml0000644000175000017500000000362411225071372026222 0ustar eliaselias Cupa Republicii Moldova CupaRM flag_moldova.png moldova_cup 45 3 national 0 moldova3a moldova3b 6 -12 0 moldova2 12 2 16 1 2 -12 0 moldova1 3 9 11 1 0 -13 0 moldova1 8 1 8 1 -13 -14 0 1 bygfoot-2.3.2/support_files/definitions/europe/israel/0000755000175000017500000000000011225071373022133 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/israel/country_israel.xml0000755000175000017500000000106211225071372025720 0ustar eliaselias Israel flag_israel.png israel 5 israel1 israel2 israel3 israel4a israel4b israel_cup europe_uefa3a europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental israel_prom_games1 bygfoot-2.3.2/support_files/definitions/europe/israel/cup_israel_cup.xml0000644000175000017500000000317411225071372025656 0ustar eliaselias State Cup S. Cup flag_israel.png israel_cup 48 3 national 0 israel4a israel4b 0 -7 0 israel3 0 -4 0 3 -5 0 israel2 israel1 0 -3 0 -3 0 0 0 1 bygfoot-2.3.2/support_files/definitions/europe/israel/league_israel1.xml0000755000175000017500000000273111225071372025544 0ustar eliaselias israel1 Ligat Ha'Al Ha'Al flag_israel.png 9 1 10 15 26 6900 3 israel 5 12 12 israel2 relegation Ashdod B. Jerusalem B. Sakhnin B. Y. Tel Aviv H. Ramat Gan H. I. Kiryat Shmona H. Petach Tikva H. Tel Aviv M. Haifa M. Netanya M. Petach Tikva M. Tel Aviv bygfoot-2.3.2/support_files/definitions/europe/israel/league_israel2.xml0000644000175000017500000000345511225071372025546 0ustar eliaselias israel2 Liga Leumit L. Leumit flag_israel.png 9 1 26 6100 3 israel 5 1 1 israel1 promotion israel1 israel_prom_games1 israel2 11 12 israel3 relegation H. Acre H. Be'er Sheva H. Bnei Lod H. Haifa H. Jerusalem H. Kfar Saba H. Ra'anana H. Ramat Gan I. Ramat HaSharon M. Ahi Nazareth M. Kiryat Ata M. Herzliya bygfoot-2.3.2/support_files/definitions/europe/israel/cup_israel_prom_games1.xml0000644000175000017500000000133311225071372027274 0ustar eliaselias Israel Promotion Games Isr. Prom. flag_israel.png israel_prom_games1 1000 national highlight2 3 israel2 1 2 2 israel1 1 11 11 bygfoot-2.3.2/support_files/definitions/europe/israel/league_israel3.xml0000644000175000017500000000315511225071372025544 0ustar eliaselias israel3 Liga Artzit L. Artzit flag_israel.png 9 1 26 5600 3 israel 5 1 2 israel2 promotion 11 12 israel4a israel4b relegation B./S. Tel Aviv B. Tamra H. Ashkelon H. Bnei Jadeidi H. Marmorek H. Nazareth Illit H. Umm al-Fahm I. Bat Yam I. Rishon LeZion M. Kafr Kanna M. Tirat HaCarmel S. Nes Tziona bygfoot-2.3.2/support_files/definitions/europe/israel/league_israel4a.xml0000644000175000017500000000301311225071372025677 0ustar eliaselias israel4a Liga Alef North L. Alef N flag_israel.png 9 1 6 5100 israel 5 4 1 1 israel3 promotion A. Arraba B. Ihud Mashhad B. Safed H. Afula H. Asi Gilboa H. Herzliya H. Kafr Kanna I. Sayid Umm al-Fahm I. Tiberias M. HaShikma/Ramat Hen M. Ironi Shlomi/Nahariya M. Kafr Qara M. Tamra M. Tzur Shalom bygfoot-2.3.2/support_files/definitions/europe/israel/league_israel4b.xml0000644000175000017500000000302311225071372025701 0ustar eliaselias israel4b Liga Alef South L. Alef S flag_israel.png 9 1 6 5100 israel 5 4 1 1 israel3 promotion B. Kfar Saba Shlomi H. Arad H. Hadera H. Kfar Shalem H. Mashush Shaqib al-Salam H. Katamon H. Nahlat Yehuda I. Ramla M. Be'er Sheva M. Ironi Kfar Yona M. Ironi Netivot M. Kiryat Gat M. Kiryat Malakhi M. Yavne bygfoot-2.3.2/support_files/definitions/europe/switzerland/0000755000175000017500000000000011225071373023222 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/switzerland/league_switzerland2.xml0000755000175000017500000000406511225071372027725 0ustar eliaselias switzerland2 Challenge League Chal. L. flag_switzerland.png 3 1 12 25 6500 germany 5 1 1 switzerland1 promotion switzerland1 switzerland_prom_games1 switzerland2 15 16 switzerland3a switzerland3b switzerland3c relegation Biel La Chaux-de-Fonds C. Basel Gossau Lausanne Locarno Lugano St. Gallen Schaffhausen S. Geneve Nyon Thun Wil Winterthur Wohlen Yverdon bygfoot-2.3.2/support_files/definitions/europe/switzerland/country_switzerland.xml0000755000175000017500000000121611225071372030077 0ustar eliaselias Switzerland flag_switzerland.png switzerland 6 switzerland1 switzerland2 switzerland3a switzerland3b switzerland3c switzerland_cup europe_uefa3b europe_champ_league1a supercup_europe_uefa supercup_europe_intercontinental switzerland_prom_games1 switzerland_prom_games2 bygfoot-2.3.2/support_files/definitions/europe/switzerland/league_switzerland1.xml0000755000175000017500000000303111225071372027714 0ustar eliaselias switzerland1 Superliga SL flag_switzerland.png 3 1 10 12 15 25 7300 4 germany 5 2 3 28 29 10 10 switzerland2 relegation Aarau Basel Bellinzona G. Zürich Luzern X. Neuchâtel Sion Y. B. Bern Zürich Vaduz bygfoot-2.3.2/support_files/definitions/europe/switzerland/cup_switzerland_prom_games1.xml0000644000175000017500000000135511225071372031456 0ustar eliaselias Superliga Promotion Games S. Prom. flag_switzerland.png switzerland_prom_games1 1000 national highlight2 3 switzerland2 1 2 2 switzerland1 1 9 9 bygfoot-2.3.2/support_files/definitions/europe/switzerland/league_switzerland3a.xml0000644000175000017500000000345611225071372030067 0ustar eliaselias switzerland3a 1. Liga Gruppe 1 1. L. G1 flag_switzerland.png 3 1 12 25 6000 germany 5 3 switzerland2 2 switzerland_prom_games2 switzerland3a switzerland3b switzerland3c Baulmes Bulle Chênois Düdingen Echallens Etoile-Carouge Fribourg La Tour/Le Pâquier L. M. Lausanne M. Lausanne Martigny-Sports Meyrin Naters Sion II U. Genève Y. B. Bern II bygfoot-2.3.2/support_files/definitions/europe/switzerland/league_switzerland3c.xml0000644000175000017500000000272511225071372030067 0ustar eliaselias switzerland3c 1. Liga Gruppe 3 1. L. G3 flag_switzerland.png 3 1 12 25 6000 germany 5 3 Baden Biaschesi Chiasso Eschen/Mauren G. Zürich II Höngg Kreuzlingen Mendrisio-Stabio Rapperswil-Jona R. S. Zürich St. Gallen II S. Schaffhausen Tuggen Winterthur II Y. F. Juventus Zürich II bygfoot-2.3.2/support_files/definitions/europe/switzerland/cup_switzerland_prom_games2.xml0000644000175000017500000000177211225071372031462 0ustar eliaselias 1. Liga Promotion Games 1. L. Prom. flag_switzerland.png switzerland_prom_games2 1000 national highlight2 3 2 1 switzerland3a 2 1 2 switzerland3b 2 1 2 switzerland3c 2 1 2 bygfoot-2.3.2/support_files/definitions/europe/switzerland/league_switzerland3b.xml0000644000175000017500000000264511225071372030067 0ustar eliaselias switzerland3b 1. Liga Gruppe 2 1. L. G2 flag_switzerland.png 3 1 12 25 6000 germany 5 3 Basel II Cham Delémont Emmenbrücke Grenchen Kriens Luzern II Münsingen Muttenz O. B. Bern Olten Schötz Solothurn Wangen bei Olten Zofingen Zug bygfoot-2.3.2/support_files/definitions/europe/switzerland/cup_switzerland_cup.xml0000644000175000017500000000356011225071372030033 0ustar eliaselias Swisscom Cup S. Cup flag_switzerland.png switzerland_cup 48 4 national 0 switzerland3a 13 1 16 1 switzerland3b 13 1 16 1 switzerland3c 13 1 16 1 switzerland2 switzerland1 9 1 9 1 0 -16 0 -16 0 -15 0 -4 0 -1 0 1 bygfoot-2.3.2/support_files/definitions/europe/sweden/0000755000175000017500000000000011225071373022141 5ustar eliaseliasbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_1_norra.xml0000644000175000017500000000350511225071372031021 0ustar eliaselias sweden_division_1_norra Division 1 Norra Div 1 N flag_sweden.png 1 1 5900 sweden 5 3 1 1 sweden_superettan promotion 12 14 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland relegation Arameiska/S. Boden Brage Ersboda Falu Forward Gröndal Sylvia Syrianska UmeÃ¥ V. Syrianska Vasalund/Essinge VästerÃ¥s Östersund bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_1_sodra.xml0000644000175000017500000000351511225071372031011 0ustar eliaselias sweden_division_1_sodra Division 1 Södra Div 1 S flag_sweden.png 1 1 5900 sweden 5 3 1 1 sweden_superettan promotion 12 14 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland relegation Husqvarna Karlstad U. Lindome I. Malmö Malmö A. Motala Norrby Skärhamn Skövde Torslanda Trollhättan Värnamo V. F. Göteborg Öster bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_superettan.xml0000644000175000017500000000453611225071372027753 0ustar eliaselias sweden_superettan Superettan Super flag_sweden.png 1 1 6400 sweden 5 1 2 sweden_allsvenskan promotion sweden_allsvenskan sweden_prom_games_allsvenskan sweden_superettan sweden_superettan 2 sweden_prom_games_superettan sweden_division_1_sodra sweden_division_1_norra 15 16 sweden_division_1_sodra sweden_division_1_norra relegation Assyriska Brommapojkarna Bunkeflo Degerfors Enköping Falkenberg Häcken Jönköping Landskrona Mjällby Qviding Sirius Väsby Ängelholm Ã…tvidaberg Örgryte bygfoot-2.3.2/support_files/definitions/europe/sweden/cup_sweden_fa.xml0000644000175000017500000001145211225071372025467 0ustar eliaselias Svenska Cupen Cupen flag_sweden.png sweden_cupen 47 4 national 0 0 sweden_division_1_sodra 7 1 7 sweden_division_1_norra 7 1 7 sweden_division_2_mellerstagotaland 5 1 5 sweden_division_2_norrasvealand 5 1 5 sweden_division_2_norrland 5 1 5 sweden_division_2_ostrasvealand 5 1 5 sweden_division_2_sodragotaland 5 1 5 sweden_division_2_vastragotaland 5 1 5 sweden_division_3_mellerstagotaland 2 1 2 sweden_division_3_mellerstanorrland 2 1 2 sweden_division_3_nordostrasvealand 2 1 2 sweden_division_3_nordvastragotaland 2 1 2 sweden_division_3_norranorrland 2 1 2 sweden_division_3_norrasvealand 2 1 2 sweden_division_3_ostrasvealand 2 1 2 sweden_division_3_sodragotaland 2 1 2 sweden_division_3_sodranorrland 2 1 2 sweden_division_3_sydostragotaland 2 1 2 sweden_division_3_sydvastragotaland 2 1 2 sweden_division_3_vastrasvealand 2 1 2 0 sweden_allsvenskan sweden_superettan 0 0 0 0 0 bygfoot-2.3.2/support_files/definitions/europe/sweden/cup_sweden_prom_games_allsvenskan.xml0000644000175000017500000000141011225071372031624 0ustar eliaselias Promotion Games Allsvenskan Prom. Gam. flag_sweden.png sweden_prom_games_allsvenskan 1000 national highlight2 sweden_allsvenskan 1 14 14 sweden_superettan 1 3 3 ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_mellerstagotaland.xmlbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_mellerstagotaland.xml0000644000175000017500000000303311225071372033400 0ustar eliaselias sweden_division_3_mellerstagotaland Division 3 Mellersta Götaland Div 3 MG flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Sandared GrimsÃ¥s Byttorp Heimer I. Falköping I. Mariestad Skara UlvÃ¥ker Gauthiod Tibro Mariedal Ã…sarp/Trädet bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_norrasvealand.xml0000644000175000017500000000373211225071372032542 0ustar eliaselias sweden_division_2_norrasvealand Division 2 Norra Svealand Div 2 NS flag_sweden.png 1 1 5500 sweden 5 4 1 1 sweden_division_1_norra sweden_division_1_sodra promotion 11 12 sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand relegation Brynäs Frej Grönaberg Heby Hudiksvall RÃ¥sunda Sandviken Skiljebo Sollentuna U. Söderhamn Vallentuna VästerÃ¥s I. bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_sodrasvealand.xml0000755000175000017500000000302111225071372032524 0ustar eliaselias sweden_division_3_sodrasvealand Division 3 Södra Svealand Div 3 SS flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion F. Farsta Huddinge Bagarmossen Viljan Tellus Konyaspor Rotebro SpÃ¥rvägen Tyresö Vagnhärad Värmdö Saturnus bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_norrland.xml0000644000175000017500000000371211225071372031520 0ustar eliaselias sweden_division_2_norrland Division 2 Norrland Div 2 N flag_sweden.png 1 1 5500 sweden 5 4 1 1 sweden_division_1_norra sweden_division_1_sodra promotion 11 12 sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand relegation Anundsjö Friska Viljor Holmsund Infjärden Kiruna LuleÃ¥ Mariehem PiteÃ¥ Robertsfors SkellefteÃ¥ TimrÃ¥ Umedalen bygfoot-2.3.2/support_files/definitions/europe/sweden/cup_sweden_supercupen.xml0000644000175000017500000000143211225071372027267 0ustar eliaselias Svenska Supercupen Supercupen flag_sweden.png sweden_supercupen 1 national 173 0 1 sweden_cupen 1 1 1 sweden_allsvenskan 1 1 2 ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_mellerstanorrland.xmlbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_mellerstanorrland.xml0000644000175000017500000000305411225071372033431 0ustar eliaselias sweden_division_3_mellerstanorrland Division 3 Mellersta Norrland Div 3 MN flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Lycksele Stugun Frösö I. Östersund Junsele Krokom/Dvärsätt Kubikenborg SandÃ¥kern SollefteÃ¥ I. Sundsvall Ytterhogdal Älgarna bygfoot-2.3.2/support_files/definitions/europe/sweden/cup_sweden_cupen.xml0000644000175000017500000001215311225071372026212 0ustar eliaselias Svenska Cupen Cupen flag_sweden.png sweden_cupen 24 3 national 0 sweden_division_1_norra 7 1 7 sweden_division_1_sodra 7 1 7 sweden_division_2_mellerstagotaland 5 1 5 sweden_division_2_norrasvealand 5 1 5 sweden_division_2_norrland 5 1 5 sweden_division_2_ostrasvealand 5 1 5 sweden_division_2_sodragotaland 5 1 5 sweden_division_2_vastragotaland 5 1 5 sweden_division_3_mellerstagotaland 2 1 2 sweden_division_3_mellerstanorrland 2 1 2 sweden_division_3_nordostragotaland 2 1 2 sweden_division_3_nordvastragotaland 2 1 2 sweden_division_3_norranorrland 2 1 2 sweden_division_3_norrasvealand 2 1 2 sweden_division_3_sodragotaland 2 1 2 sweden_division_3_sodranorrland 2 1 2 sweden_division_3_sodrasvealand 2 1 2 sweden_division_3_sydostragotaland 2 1 2 sweden_division_3_sydvastragotaland 2 1 2 sweden_division_3_vastrasvealand 2 1 2 0 -4 0 sweden_allsvenskan sweden_superettan 14 1 16 1 0 -3 0 0 -4 0 -2 0 -3 0 -1 0 bygfoot-2.3.2/support_files/definitions/europe/sweden/cup_sweden_prom_games_div3_2.xml0000644000175000017500000000765311225071372030410 0ustar eliaselias Promotion Games Div. 2 Prom. Gam. flag_sweden.png sweden_prom_games_div3_2 1000 national highlight2 6 1 sweden_division_2_mellerstagotaland 1 10 10 sweden_division_2_norrasvealand 1 10 10 sweden_division_2_norrland 1 10 10 sweden_division_2_ostrasvealand 1 10 10 sweden_division_2_sodragotaland 1 10 10 sweden_division_2_vastragotaland 1 10 10 sweden_division_3_mellerstagotaland 1 2 2 sweden_division_3_mellerstanorrland 1 2 2 sweden_division_3_nordostragotaland 1 2 2 sweden_division_3_nordvastragotaland 1 2 2 sweden_division_3_norranorrland 1 2 2 sweden_division_3_norrasvealand 1 2 2 sweden_division_3_sodrasvealand 1 2 2 sweden_division_3_sodragotaland 1 2 2 sweden_division_3_sodranorrland 1 2 2 sweden_division_3_sydostragotaland 1 2 2 sweden_division_3_sydvastragotaland 1 2 2 sweden_division_3_vastrasvealand 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_ostrasvealand.xml0000644000175000017500000000374411225071372032554 0ustar eliaselias sweden_division_2_ostrasvealand Division 2 Östra Svealand Div 2 ÖS flag_sweden.png 1 1 5500 sweden 5 4 1 1 sweden_division_1_norra sweden_division_1_sodra promotion 11 12 sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand relegation Akropolis Enskede I. Eskilstuna Eskilstuna C. Hammarby T. Karlskoga Karlslund Panellinios Rynninge Visby I. Värmbol Älvsjö ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_nordostragotaland.xmlbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_nordostragotaland.xml0000755000175000017500000000305311225071372033430 0ustar eliaselias sweden_division_3_nordostragotaland Division 3 Nordöstra Götaland Div 3 NÖG flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Katrineholm Assyriska F. Derby Ö. Lambohov LSW Gullringen RÃ¥slätt Hagapojkarna Mjölby AI Nässjö Söderköping Vimmerby bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_norrasvealand.xml0000644000175000017500000000302511225071372032536 0ustar eliaselias sweden_division_3_norrasvealand Division 3 Norra Svealand Div 3 NS flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Assyri Rinkeby Bälinge Gimo Järfälla Gamla Upsala Karlberg B. Norrtälje Värtan Strömsberg Täby SpÃ¥nga Ängby bygfoot-2.3.2/support_files/definitions/europe/sweden/country_sweden.xml0000644000175000017500000000323111225071372025731 0ustar eliaselias Sweden 6 flag_sweden.png sweden sweden_allsvenskan sweden_superettan sweden_division_1_norra sweden_division_1_sodra sweden_division_2_vastragotaland sweden_division_2_sodragotaland sweden_division_2_ostrasvealand sweden_division_2_norrland sweden_division_2_norrasvealand sweden_division_2_mellerstagotaland sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand sweden_cupen europe_uefa europe_champ_league supercup_europe_uefa supercup_europe_intercontinental sweden_supercupen sweden_prom_games_allsvenskan sweden_prom_games_superettan sweden_prom_games_div3_2 ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_sydvastragotaland.xmlbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_sydvastragotaland.xml0000644000175000017500000000302211225071372033426 0ustar eliaselias sweden_division_3_sydvastragotaland Division 3 Sydvästra Götaland Div 3 SVG flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Örby Dalen/KFF FjärÃ¥s Hinneryd Lerkil Halmia Torekov Skene Slottskog/Godh Tvååker Ã…storp Väster bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_sydostragotaland.xml0000644000175000017500000000304711225071372033265 0ustar eliaselias sweden_division_3_sydostragotaland Division 3 Sydöstra Götaland Div 3 SÖG flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Älmeboda/Linneryd Älmhult Ifö/Bromölla Kalmar A. Gransholm Nosaby Oskarshamn Rydaholm Rödeby Saxemara VMA Växjö Norra ././@LongLink0000000000000000000000000000014500000000000011565 Lustar rootrootbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_mellerstagotaland.xmlbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_mellerstagotaland.xml0000644000175000017500000000547311225071372033411 0ustar eliaselias sweden_division_2_mellerstagotaland Division 2 Mellersta Götaland Div 2 MG flag_sweden.png 1 1 5500 sweden 5 4 sweden_prom_games_div3_2 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand 6 1 1 sweden_division_1_norra sweden_division_1_sodra promotion 11 12 sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand relegation Kenty Lindsdal Lindö Linköping Ljungby Myresjö Nybro Nyköping Sleipner Smedby Tenhult Tord bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_vastrasvealand.xml0000644000175000017500000000304111225071372032713 0ustar eliaselias sweden_division_3_vastrasvealand Division 3 Västra Svealand Div 3 VS flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Arboga Södra Kumla Adolfsberg I. Örebro E. Örebro F. Karlstad Karlstad B. Köping Ölme Ludvika Örebro Syr. Örebro S. U. bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_sodragotaland.xml0000644000175000017500000000374611225071372032532 0ustar eliaselias sweden_division_2_sodragotaland Division 2 Södra Götaland Div 2 SG flag_sweden.png 1 1 5500 sweden 5 4 1 1 sweden_division_1_norra sweden_division_1_sodra promotion 11 12 sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand relegation Asmundtorp Helsingborg S. Hässleholm Högaborg Höllviken Karlskrona Klagshamn Kristianstad Lund Markaryd N. Lomma Sölvesborg ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_nordvastragotaland.xmlbygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_nordvastragotaland.xm0000644000175000017500000000303311225071372033417 0ustar eliaselias sweden_division_3_nordvastragotaland Division 3 Nordvästra Götaland Div 3 NVG flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Stenungsund Gerdsken Holmalund Kongahälla Lilla Edet Ã…mÃ¥l Viken Warta Sävedalen Skoftebyn Ytterby Ã…sebro bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_2_vastragotaland.xml0000644000175000017500000000372511225071372032717 0ustar eliaselias sweden_division_2_vastragotaland Division 2 Västra Götaland Div 2 VG flag_sweden.png 1 1 5500 sweden 5 4 1 1 sweden_division_1_norra sweden_division_1_sodra promotion 11 12 sweden_division_3_mellerstagotaland sweden_division_3_mellerstanorrland sweden_division_3_nordostragotaland sweden_division_3_nordvastragotaland sweden_division_3_norranorrland sweden_division_3_norrasvealand sweden_division_3_sodrasvealand sweden_division_3_sodragotaland sweden_division_3_sodranorrland sweden_division_3_sydostragotaland sweden_division_3_sydvastragotaland sweden_division_3_vastrasvealand relegation Ahlafors Annelund Gunnilse Oddevold Jonsered Kinna Fässberg Lärje-Angered Laholm Mellerud Utsikten Varberg bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_allsvenskan.xml0000644000175000017500000000306711225071372030100 0ustar eliaselias sweden_allsvenskan Allsvenskan Allsv. flag_sweden.png 2 1 7000 sweden 5 15 16 sweden_superettan relegation A. Solna D. Stockholm Elfsborg G. Göteborg Gefle I. Göteborg Halmstad H. Stockholm Helsingborg Kalmar Ljungskile Malmö Norrköping Sundsvall Trelleborg Örebro bygfoot-2.3.2/support_files/definitions/europe/sweden/cup_sweden_prom_games_superettan.xml0000644000175000017500000000204111225071372031476 0ustar eliaselias Promotion Games Superettan Prom. Gam. flag_sweden.png sweden_prom_games_superettan 1000 national highlight2 1 2 sweden_superettan 2 13 14 sweden_division_1_sodra 1 2 2 sweden_division_1_norra 1 2 2 bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_norranorrland.xml0000644000175000017500000000303311225071372032557 0ustar eliaselias sweden_division_3_norranorrland Division 3 Norra Norrland Div 3 NN flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Alvik Assi BureÃ¥ Gällivare/Malmberget Hemmingsmark LuleÃ¥ F. Älvsby Sävast Morön Notviken Ohtanajärvi/Aapua SunnanÃ¥ bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_sodranorrland.xml0000644000175000017500000000271511225071372032554 0ustar eliaselias sweden_division_3_sodranorrland Division 3 Södra Norrland Div 3 SN flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Bollnäs Dala-Järna Dalkurd Delsbo Tunabro Huge Järbo Medskogsbron Kvarnsveden Rengsjö Valbo bygfoot-2.3.2/support_files/definitions/europe/sweden/league_sweden_division_3_sodragotaland.xml0000644000175000017500000000303211225071372032517 0ustar eliaselias sweden_division_3_sodragotaland Division 3 Södra Götaland Div 3 SG flag_sweden.png 1 1 5000 sweden 5 5 1 1 sweden_division_2_mellerstagotaland sweden_division_2_norrasvealand sweden_division_2_norrland sweden_division_2_ostrasvealand sweden_division_2_sodragotaland sweden_division_2_vastragotaland promotion Gantofta Höganäs Kirseberg Eslöv Lödde Lilla Torg Sjöbo Stavsten/Ymor I. Trelleborg Tomelilla Veberöd Hässleholm bygfoot-2.3.2/support_files/names/0000755000175000017500000000000011225071373016145 5ustar eliaseliasbygfoot-2.3.2/support_files/names/player_names_usa.xml0000644000175000017500000005435511225071372022231 0ustar eliaselias James John Robert Michael William David Richard Charles Joseph Thomas Christopher Daniel Paul Mark Donald George Kenneth Steven Edward Brian Ronald Anthony Kevin Jason Matthew Gary Timothy Jose Larry Jeffrey Frank Scott Eric Stephen Andrew Raymond Gregory Joshua Jerry Dennis Walter Patrick Peter Harold Douglas Henry Carl Arthur Ryan Roger Joe Juan Jack Albert Jonathan Justin Terry Gerald Keith Samuel Willie Ralph Lawrence Nicholas Roy Benjamin Bruce Brandon Adam Harry Fred Wayne Billy Steve Louis Jeremy Aaron Randy Howard Eugene Carlos Russell Bobby Victor Martin Ernest Phillip Todd Jesse Craig Alan Shawn Clarence Sean Philip Chris Johnny Earl Jimmy Antonio Danny Bryan Tony Luis Mike Stanley Leonard Nathan Dale Manuel Rodney Curtis Norman Allen Marvin Vincent Glenn Jeffery Travis Jeff Chad Jacob Lee Melvin Alfred Kyle Francis Bradley Jesus Herbert Frederick Ray Joel Edwin Don Eddie Ricky Troy Randall Barry Alexander Bernard Mario Leroy Francisco Marcus Micheal Theodore Clifford Miguel Oscar Jay Jim Tom Calvin Alex Ronnie Bill Lloyd Tommy Leon Derek Warren Darrell Jerome Floyd Leo Alvin Tim Wesley Gordon Dean Greg Jorge Dustin Pedro Derrick Jon Dan Lewis Zachary Corey Herman Maurice Vernon Roberto Clyde Glen Hector Shane Ricardo Sam Rick Lester Brent Ramon Charlie Tyler Gilbert Gene Smith Johnson Williams Jones Brown Davis Miller Wilson Moore Taylor Anderson Thomas Jackson White Harris Martin Thompson Garcia Martinez Robinson Clark Rodriguez Lewis Lee Walker Hall Allen Young Hernandez King Wright Lopez Hill Scott Green Adams Baker Gonzalez Nelson Carter Mitchell Perez Roberts Turner Phillips Campbell Parker Evans Edwards Collins Stewart Sanchez Morris Rogers Reed Cook Morgan Bell Murphy Bailey Rivera Cooper Richardson Cox Howard Ward Torres Peterson Gray Ramirez James Watson Brooks Kelly Sanders Price Bennett Wood Barnes Ross Henderson Coleman Jenkins Perry Powell Long Patterson Hughes Flores Washington Butler Simmons Foster Gonzales Bryant Alexander Russell Griffin Diaz Hayes Myers Ford Hamilton Graham Sullivan Wallace Woods Cole West Jordan Owens Reynolds Fisher Ellis Harrison Gibson Mcdonald Cruz Marshall Ortiz Gomez Murray Freeman Wells Webb Simpson Stevens Tucker Porter Hunter Hicks Crawford Henry Boyd Mason Morales Kennedy Warren Dixon Ramos Reyes Burns Gordon Shaw Holmes Rice Robertson Hunt Black Daniels Palmer Mills Nichols Grant Knight Ferguson Rose Stone Hawkins Dunn Perkins Hudson Spencer Gardner Stephens Payne Pierce Berry Matthews Arnold Wagner Willis Ray Watkins Olson Carroll Duncan Snyder Hart Cunningham Bradley Lane Andrews Ruiz Harper Fox Riley Armstrong Carpenter Weaver Greene Lawrence Elliott Chavez Sims Austin Peters Kelley Franklin Lawson Fields Gutierrez Ryan Schmidt Carr Vasquez Castillo Wheeler Chapman Oliver Montgomery Richards Williamson Johnston Banks Meyer Bishop Mccoy Howell Alvarez Morrison Hansen Fernandez Garza Harvey Little Burton Stanley Nguyen George Jacobs Reid Kim Fuller Lynch Dean Gilbert Garrett Romero Welch Larson Frazier Burke Hanson Day Mendoza Moreno Bowman Medina Fowler Brewer Hoffman Carlson Silva Pearson Holland Douglas Fleming Jensen Vargas Byrd Davidson Hopkins May Terry Herrera Wade Soto Walters Curtis Neal Caldwell Lowe Jennings Barnett Graves Jimenez Horton Shelton Barrett Obrien Castro Sutton Gregory Mckinney Lucas Miles Craig Rodriquez Chambers Holt Lambert Fletcher Watts Bates Hale Rhodes Pena Beck Newman Haynes Mcdaniel Mendez Bush Vaughn Parks Dawson Santiago Norris Hardy Love Steele Curry Powers Schultz Barker Guzman Page Munoz Ball Keller Chandler Weber Leonard Walsh Lyons Ramsey Wolfe Schneider Mullins Benson Sharp Bowen Daniel Barber Cummings Hines Baldwin Griffith Valdez Hubbard Salazar Reeves Warner Stevenson Burgess Santos Tate Cross Garner Mann Mack Moss Thornton Dennis Mcgee Farmer Delgado Aguilar Vega Glover Manning Cohen Harmon Rodgers Robbins Newton Todd Blair Higgins Ingram Reese Cannon Strickland Townsend Potter Goodwin Walton Rowe Hampton Ortega Patton Swanson Joseph Francis Goodman Maldonado Yates Becker Erickson Hodges Rios Conner Adkins Webster Norman Malone Hammond Flowers Cobb Moody Quinn Blake Maxwell Pope Floyd Osborne Paul Mccarthy Guerrero Lindsey Estrada Sandoval Gibbs Tyler Gross Fitzgerald Stokes Doyle Sherman Saunders Wise Colon Gill Alvarado Greer Padilla Simon Waters Nunez Ballard Schwartz Mcbride Houston Christensen Klein Pratt Briggs Parsons Mclaughlin Zimmerman French Buchanan Moran Copeland Roy Pittman Brady Mccormick Holloway Brock Poole Frank Logan Owen Bass Marsh Drake Wong Jefferson Park Morton Abbott Sparks Patrick Norton Huff Clayton Massey Lloyd Figueroa Carson Bowers Roberson Barton Tran Lamb Harrington Casey Boone Cortez Clarke Mathis Singleton Wilkins Cain Bryan Underwood Hogan Mckenzie Collier Luna Phelps Mcguire Allison Bridges Wilkerson Nash Summers Atkins bygfoot-2.3.2/support_files/names/player_names_portugal.xml0000755000175000017500000003066511225071372023277 0ustar eliaselias Adolfo Adriano Adrien Afonso Alberto Alessandro Alex Alexandre Alfredo André Ângelo António Arnaldo Augusto Bernardo Beto Bruno Carlos César Chico Cícero Cosme Cristiano Daniel David Diego Dimas Diogo Domingos Dudú Edgar Edmilson Edmundo Edson Eduardo Emanuel Emiliano Ernesto Eurico Fabiano Fábio Fabricio Fausto Feliciano Felipe Félix Fernando Filipe Flávio Geraldo Germano Gilberto Gonçalo Gustavo Helder Helio Henrique Hilário Hugo Humberto Ivan Iván Ivanildo Ivo Jacinto Jaime João Joãozinho Joaquim Jorge José Julio Luís Manuel Marcelo Marcio Marco Mariano Mario Mauro Miguel Nélson Nino Nuno Octávio Oscar Paulinho Paulo Pedrinho Pedro Rafael Raúl Renato Rene Ricardo Roberto Roger Rogério Romeu Ronaldo Ruben Rui Serginho Sergio Silvinho Silvio Simão Thiago Tiago Totó Vasco Vicente Vítor Vitorino Zé Maria Zé Pedro Zé Roberto Abreu Afonso Ãguas Aguiar Alhinho Almeida Alves Amoreirinha Amorim Andrade André Antunes Anunciação Areias Assis Assunção Azevedo Baía Bandeirinha Baptista Barbosa Barrigana Barros Basto Bastos Batista Bento Bessa Beto Boa Morte Boas Botelho Branco Brandão Cabral Cabrita Cadete Calado Calapes Calisto Caneira Capucho Carneiro Carreira Carriço Carvalhas Carvalho Casimiro Castro Cavém Cerqueira Chaínho Chalana Chevela Claro Coelho Coentrão Coimbra Coluna Conceição Condesso Correia Costa Couto Cruz Cunha Custódio da Mota da Silva Damas Damião de Lucena de Sousa Delgado Dias Dinis Diogo Dolores Dominguez Duarte Espinha Esteves Estrela Fajardo Fallardo Faria Felgueiras Felício Felipe Fernandes Ferraz Ferreira Figo Figueiredo Folha Fonte Frasco Frechaut Furtado Futre Garcia Gomes Gonçalves Graça Hélder Hilário Inácio Injai Jordão Jorge Leal Leão Leitão Leite Lemos Lima Lopes Lourenco Lourenço Lucas Luís Luz Machado Madeira Madjer Madureira Magalhães Mamede Manú Maquemba Marafona Marcelino Marques Martins Matias Matos Medeiros Meira Meireles Mendes Milhazes Monteiro Morais Morato Moreira Moreiro Mota Mourinho Moutinho Nascimento Nélson Nené Nereu Neto Nunes Olim Oliveira Pacheco Paciência Paím Paiva Paneira Pataca Patacas Pedroso Pedroto Peixe Peixoto Pereira Pereirinha Peres Pestana Peyroteo Pietra Pimenta Pimparel Pinga Pintassilgo Pinto Pires Porfírio Postiga Quaresma Queirós Queiroz Ramalho Ramos Ribeiro Rita Rocha Rodrigues Roque Rosa Rosário Russiano Saavedra Sabrosa Santana Santos Secretário Semedo Sereno Severo Silva Simões Sobrinho Sociedade Sousa Taborda Tábuas Targino Tavares Teixeira Tininho Tomás Torrão Torres Travassos Valdir Vale Valente Varela Vargas Vasconcelos Veloso Verissimo Viana Vidigal Vieira Vilela Vingada Vinha Zuela bygfoot-2.3.2/support_files/names/player_names_general.xml0000644000175000017500000106445011225071372023054 0ustar eliaselias Aaron Aarón Abdullah Abe Ãbel Achille Adair Adam Adam Adolfo Adolphe Adrian Adrián Adriano Afirstair Afonso Agustín Ahmad Ahmed Ahmet Aidan Aidan Aimé Aitor Al Alain Alan Albert Alberto Aldo Alec Alejandro Aleksandar Aleksander Aleksandr Aleksandro Aleksei Ales Alessandro Alessio Alex Alexander Alexandr Alexandros Alexandru Alexei Alexis Alf Alfons Alfonso Alfred Alfredo Ali Alois Alphonse Alphonso Alphonsus Alun Ãlvaro Alvin Amadeo Amadeus Amédée Amedeo Amedeus Amerigo Anastasio Anastasios Anastasius Anatole Anatoli Anatolius Anatoly Anders Andras András André Andrea Andreas Andrej Andrés Andrew Andris Andriy Andrzej Andy Angel Angelos Angus Antanas Ante Anthony Antoine Anton Antoni Antonino Antonio Antono Antony Archie Ariel Aristide Aristides Aristodemos Arisztid Arjan Arkadi Arkady Arlen Arlie Armin Arnaldo Arnaud Arne Arnie Arrigo Arsenios Arthur Artur Artúr Arturo Arvid Athanasios Atilio Attila Attilio Auguste Augustijn Augustin Aureliano Aurelien Aurelio Austin Avi Axel Baltazar Bart Bartlomiej Bartolomé Basil Basilio Bastiaan Bastian Bastien Bedrich Béla Ben Benedetto Benedict Benedito Bengt Beniamino Benito Benjamin Benjy Bennie Benny Beppe Bernard Bernardo Bernd Bernhard Bernie Bert Bertie Bettino Bill Billy Bjarne Bjoern Bjorne Blake Bo Boaz Bob Bobbi Bobbie Bobby Bogdan Bojan Boleslaw Bonifacio Boris Borislav Börje Brad Brandon Branislav Branko Brendan Brenden Bret Brett Brian Bronislav Bruce Bryan Bryce Bud Buddy Burghardt Burkhard Caetano Cal Caleb Calum Cameron Camilo Carl Carles Carlo Carlos Carmelo Carmine Carsten Casimir Cassius Cätälin Cecil Cecilio Cedric Célestin Celestino Celso Ceri César Cesare Chad Charles Charlie Chase Chris Christer Christian Christoffer Christoph Christophe Christopher Christos Chrysanthos Chuck Ciriaco Ciril Ciro Claude Claudio Claudiu Claudius Cliff Clive Clyde Cody Cole Colin Conan Connor Conrado Constantijn Corentin Corey Cornélio Cornelius Corrado Cory Cosmo Costantino Cristian Cristián Cristiano Cristobal Cristoforo Cristóvão Cuauhtemoc Curro Curt Cy Cyrano Cyril Cyrille Cyrus Dag Dagfinn Dale Damian Damiano Damien Dan Dana Dane Daniel Daniele Daniil Danilo Dannie Danny Darell Daren Darin Dario Darius Darrel Darrell Darrin Darryl Dave Davey David Dávid Davide Davy Demetrio Demetrios Demetrius Denis Deniz Denny Derick Derrick Deryck Detlef Devan Devin Dick Didi Didier Diego Dieter Dietmar Dimitar Dimitri Dino Diogo Dionisio Dionysius Dionysus Dirk Dmitri Dmitrii Dmitriy Dmitry Domenico Domingo Dominic Dominick Dominik Dominique Don Donnie Donny Doug Dragan Dragomir Drew Duane Duilio Dusan Dustin Dwayne Dwight Dylan Ebbe Ed Eddie Eddy Edgar Edgardo Edmund Edoardo Édouard Edson Eduard Eduardo Edvard Edward Edwyn Egil Einar Eirik Eleftherios Eleutherius Eli Elijah Eliseo Elmo Elton Emánuel Emanuele Emil Émile Emiliano Emilio Emmanuel Emmett Ennio Enric Enrico Enzo Eoin Eric Erich Erick Erik Ermanno Ernest Ernesto Ernie Estéban Ethan Ethan Étienne Ettore Eugen Eugène Eugenio Eugênio Eusebios Eusebius Eustathios Evan Evander Evangelos Evaristo Evaristus Evgeni Evgeny Evstathios Ewald Ezekiel Ezra Fabian Fábián Fabien Fabio Fabius Fabrice Fabricio Fabrizio Fareed Faruq Fausto Federico Federigo Fedya Felice Feliciano Felicien Felipe Felix Félix Feodor Ferdinand Ferdinando Fergie Fergus Fernand Filiberto Filipe Filippo Fitz Flavian Flavio Franc Francisco Franck François Frank Frankie Frans Frantisek Franz Fred Freddie Freddy Frédéric Frederico Fredo Fredrick Fulvio Fyodor Gabe Gabi Gábor Gabriel Gábriel Gabriele Gaétan Gaetano Gareth Garret Garrett Garry Garth Gary Gaspar Gaston Gavin Geert Gene Gennadi Gennadius Gennadiy Gennady Gennaro Geoff Geoffrey Geoffroi Geordie Georg Georges Georgi Georgie Georgios Georgiy Geraint Gerard Gérard Gerardo Gerasimos Géraud Gerhard German Germano Gerry Gert Gheorghe Ghislain Giacinto Giacobbe Giacomo Giambattista Giampaolo Giancarlo Gianfranco Gianluca Gianluigi Gianmarco Gianmaria Gianni Giannino Gianpaolo Gianpiero Gil Gilberto Giles Gilles Gino Gioacchino Gioachino Giorgino Giorgio Giovanni Giuliano Giulio Giuseppe Glaucio Glen Glyn Godfried Gonçalo Gonzalo Goran Göran Gord Gottfrid Gotthold Gottlieb Graeme Greg Gregg Gregorios Grigor Grigore Grzegorz Guido Guillaume Guillermo Gunnar Günter Günther Gus Gustaf Gustav Gustavo Gusztáv Guy György Gyözö Haakon Hakan Hákan HÃ¥kon Hal Hamid Hank Hans Harald Harold Harry Hasan Hassan HÃ¥vard Hayden Hector Heiko Helfried Helmut Helmuth Hendrik Henk Henri Henrik Herb Herberto Herbie Heriberto Herman Hernán Hernando Hippolytos Hiroshi Hjalmar Holger Horace Horacio Horatius Horst Howie Hubert Hugh Hugo Hugues Hunter Iain Ian Ibraheem Ibrahim Ichiro Ignacio Ignatius Ignazio Igor Ilario Ilia Ilya Imre Inácio Iñaki Ingmar Ingvar Inigo Ioan Ioann Ioannes Ioannis Ionatán Iosif Ira Isaac Isaiah Isaias Ishmael Isiah Ismael Isma'il István Italo Iulian Ivan Ivar Ivo Jaan Jaap Jacek Jacinto Jack Jackie Jackson Jacob Jacobo Jacques Jaden Jaime Jake Jakob Jákob Jakov Jakub Jamal Jameel James Jamey Jamie Jan Janek János Janus Janusz Jared Jareth Jarod Jaromil Jaromir Jaron Jaroslav Jarred Jarrod Jason Javier Jay Jaycob Jaye Jayson Jean-Baptiste Jean-marie Jeb Jed Jedrzej Jeff Jeffry Jens Jeremiah Jérémie Jeremiel Jeremy Jermaine Jeroen Jerry Jerzy Jesper Jesse Jesús Jim Jimmie Jimmy Jirí Jiro Jo Joachim Joakim João Joaquim Joaquin Joby Jocelyn Jochem Jochen Jody Joe Joel Joël Joey Johan Jóhann John Johnathon Johnie Johnnie Jon Jón Jonah Jonas Jónas Jonatan Jónatan Jonathan Jonny Joop Joos Jordan Jordi Jörg Jorge Jörgen Jørgen Joris Jørn Jos Jose José Josef Josep Joseph Josh Joshua Josif Josip Josue Joze Jozefo József Juan Juanito Judah Judas Julian Julián Julio Julius Juliusz Julyan Juraj Jürgen Jurij Justin Justyn Kaj Kaleb Kamil Kareem Karel Karim Karl Karol Karolis Károly Kasey Kasimir Kasper Kazimierz Kazimir Keith Ken Kenji Kennet Kenny Kevan Kevin Khaleel Khalid Khalil Khaliq Kieran Kieron Kip Kiril Kirill Kirk Kjell Kjetil Klaus Knut Kofi Konstantin Konstantinos Konstantyn Korey Kory Kris Krister Kristian Kristjan Kristóf Kristoffer Kristopher Krisztián Krystof Krzysztof Kurt Kurtis Kyle Kyriakos Kyros Ladislao Ladislas Ladislav Lajos Lanny Larry Lars Lárus László Laurenço Laurent Laurentiu Laurentius Laurie Leandro Leif Lemmy Len Lennard Lennart Lennie Lenny Leo Léonard Leoncio Leonid Leonidas Leopoldo Lev Levi Liam Libor Lionel Livio Livius Ljubomir Lodovico Logan Loic Lonnie Lonny Lorenzo Lothar Lothario Lou Louie Louis Lubomierz Lubomir Luc Luca Lucas Lucian Luciano Lucien Lucio Lucius Ludovic Ludoviko Ludvig Ludwik Luigi Luigino Luis Luiz Luka Lukács Luke Lyle Maarten Maciej Mads Magnus Mahmud Maksimilian Malcolm Malcom Manfred Manfredo Manny Manolo Manu Manuel Marc Marcel Marcelino Marcellin Marcellino Marcello Marcelo Marco Marcos Marek Marian Marianus Mario Marius Mariusz Mark Márk Marten MÃ¥rten Martijn Márton Marty Marvin Marvyn Mason Massimiliano Massimo Mat Matej Mateo Mateusz Mathew Mathias Matias Matija Matjaz Mats Matt Matthew Matthias Mattia Matty Mátyás Maurice Mauricio Maurizio Mauro Maxim Maxime Maximilian Maximilien Maximillian Maxine Mehmed Mehmet Mel Melvin Melvyn Merv Micah Micaiah Michael Michaël Michal Micheal Mícheál Michel Michelangelo Mick Mickey Miguel Mihael Mihai Mihajlo Mihály Mihhaelo Mikael Mike Mikel Mikhail Mikhailo Mikkel Miklós Mikolaj Mikolás Milan Milo Milos Miloslav Miloslaw Milosz Miquel Mirko Miroslav Miroslaw Misha Mitch Mo Modeste Mohamed Moisés Monty Moritz Morten Morty Moses Mostafa Muhammad Muhammed Mustafa Mykhailo Nacho Naldo Nat Nathan Nathanael Nathaniel Ned Nerio Nestor Nestore Niall Nic Niccolò Nicholas Nicholas Nick Nicky Nico Nicodemo Nicodemus Nicola Nicolao Nicolaos Nicolas Nicolás Nicolau Nicolò Niels Nigel Nikita Niklas Nikodemos Nikola Nikolaas Nikolai Nikolao Nikolaos Nikolas Nikolaus Nikomachos Nikomedes Nils Nino Noah Noam Nuno Octavio Ola Olaf Olav Oldrich Ole Oleg Oleksander Ollie Olof Olov Omar Ondrej Örjan Oskar Óskar Osvaldo Oszkár Otakar Otávio Ottaviano Ottavio Otto Ottó Ove Owen Ozan Ozzie Pablo Paco Paddy Pádraig Pàl PÃ¥l Panagiotis Panayiotis Pancho Pankratios Paolo Pascal Paschal Pascual Pasquale Pasqualino Pat Patrice Patricio Patrick Patrik Patrizio Pauley Paulino Paulo Pavel Pawel Pedro Pepe Per Pete Peter Péter Petr Petro Petter Phil Philipp Philippe Phillip Piero Pierre Pieter Pietro Piotr Placido Pontius Pontus Primo Pyotr Quique Radek Radim Radimir Radko Radomil Radomir Radoslav Radoslaw Radovan Radzimierz Rafa Rafael Rafe Raffaele Raffaello Rafiq Ragnar Ragnvald Raimondo Raimund Raimundo Rajiv Ralf Ralphie Ramiro Ramon Randolf Randy Raoul Raphael Raphaël Rashad Rashid Raul Ravi Ray Raymund Raymundo Razvan Reg Reggie Reginald Reinaldo Rémi René Reto Reuben Rex Reynaldo Rhett Rhodri Ricardo Riccardo Rich Richard Richárd Richie Rick Rickey Rickie Rico Rik Rikhard Riley Rino Rio Rob Robbie Robby Robert Róbert Roberto Robin Rocco Rod Roddy Roderic Rodney Rodolf Rodolfo Rodolph Rodolphe Roger Rogerio Roland Rolando Rolf Romain Roman Romano Romeo Ron Ronald Ronaldo Rónán Ronnie Ronny Roque Rory Rostislav Royston Ruben Rubén Rudi Rüdiger Rudolf Rudolph Rudy Rudyard Rufus Rui Rune Rupert Rurik Ruslan Russ Rusty Rutger Ruuben Ruud Ryan Sacha Sal Salvador Salvatore Sam Sammy Samuel Sámuel Samuele Samuil Sándor Sandro Sandy Santiago Sascha Saul Scottie Scotty Séamus Sean Seán Sebastiaan Sebastian Sebastián Sepp Serge Sergei Sergio Seth Seve Severiano Severino Shafiq Shane Shareef Shaun Shay Sheldon Shimon Sid Siegfried Siegmund Sigfrid Sigi Sigismund Sigurd Silvano Silvio Silviu Simão Simone Slavomir Slawomir Socrates Sonny Søren Sotirios Sotiris Spike Stan Stanislas Stanislav Stanislaw Stavros Steaphan Stefano Stefanos Steffen Sten Stepan Stephan Stéphane Stephanos Stephen Steven Stevie Stig Stijn Stu Stylianos Süleiman Sven Svyatoslav Swietoslaw Sylvain Szabolcs Szilárd Szymon Tadeo Tadeusz Takeshi Tamás Tarek Tariq Taro Ted Teddy Teodor Teodoro Terence Tex Thaddeus Theo Théo Theodor Théodore Theodoros Thiago Thierry Thomas Thorbjörn Thorstein Tiago Tiberius Tibor Tim Timmy Timofei Timotei Timotej Timoteo Timothy Tiziano Tobiah Toby Todd Tom Tomas Tomás Tòmas Tomasz Tomaz Tomislav Tommaso Tommie Tommy Toni Tonio Tony Torben Torbjörn Tore Torger Torkel Torsten Torvald Trevor Troy Ty Tyler Tymoteusz Tyrone Udo Ugo Ulf Umberto Urbano Urs Uwe Václav Vadim Valdemar Valentín Valentine Valentino Valerian Valerio Valeriu Valter Vasil Vasile Vasili Vasilios Vasily Vassily Vern Vic Vicente Victor Víctor Vidar Viktor Vilem Vilfred Vilhelm Vilmos Vince Vincenc Vincente Vincenzo Vinnie Vinzenz Virgil Virgilio Vitali Vito Vitor Vittore Vittorio Vjekoslav Vlad Vladimir Vojtech Volkan Volodymyr Vsevolod Vyacheslav Waclaw Waldemar Waldo Walenty Wally Walt Walther Wayne Wendel Wendell Wieslaw Wilfredo Wilfried Will William Willy Wim Winfred Wladyslaw Wlodek Wlodzimierz Wlodzislaw Wojciech Wojtek Wolfgang Wolodymyr Xaver Xavier Yan Yanick Yann Yannic Yannick Yannis Yaroslav Yasser Yevgeni Yevgeny Yitzhak Yoel Yonatan Yorick Yosef Yoshi Yoshiro Yousef Youssef Yuri Yuriy Yusef Yusuf Yves Yvo Yvon Zacarías Zach Zachariah Zacharias Zacharie Zachary Zack Zackery Zavier Zbigniew Zdenek Zdislav Zdzislaw Zé Zeke Zenon Zlatan Zlatko Zoltán Zoran Zsigmond Zsolt Zvonimir Aaren Abaddon Abbán 'abbas Abd-al-aziz Abd-allah Abd-al-malik Abd-al-qadir Abd-al-rahman Abdul Abdul-aziz Abdul-rahman Abednego Abel Aberg Abhay Abiah Abidan Abidemi Abiel Abihu Abijah Abimael Abiram Abisai Abishai Abner Abney Abraham Abram Abrehart Abrey Absalom Absolon Acacius Achaicus Achan Acheson Achew Achim Acke Ackrill Acraman Adair Adalbert Adalberto Adalia Ãdám Adamo Adams Adán Adão Adcock Addicott Addison Addy Adel Adelmar Adem Aden Adil Adina Adino Adisa Aditya Adlai Adnams Adolphus Adonai Adonijah Adonis Adorján Adrastos Adriaan Æðelbert Æðelfrid Æðelmær Æðelred Æðelstan Ælfwine Ælred Aeneas Aengus Aeolus Aeron Aeschylus Aeson Aesop Afanasi Afanasy Afolabi Afon Agamemnon Agapios Agathon Ager Agerton Agostinho Agostino Ãgoston Agrippa Ahab Aharon Ahriman Ahtahkakoop Ahura Aias Aiden Ailbhe Ailill Ailín Ailpein Aindrea Aindréas Aindriú Ainsley Ainslie Aiolos Ajeet Ajit Ajith Akakios Akam Akamu Akeem Akehurst Akhil Akhurst Akim Akio Akira Akiva Akoni Akroyd Alaois Alaric Alasdair Alastar Alban Alberic Albiston Albrecht Albry Alby Alcaeus Alcox Alden Alderson Aldous Aldred Aldrich Aldrick Aldridge Alebon Alechjo Aled Alejo Alexander Alexius Alfeo Algar Alger Algernon Alibocus Alin Alinek Alison Alister Alix Allan Allanson Allemn Allen Allgood Allon Allotey Allsebrook Allsop Allum Allyn Almond Aloisio Alojz Alon Alonso Aloysius Alp Alpha Alphaeus Alphonzo Alpin Alsop Altan Alter Alton Altree Alva Alvah Alvis Alwyn Alyusha Amadi Amal Amalric Amando Amar Amardad Amariah Amato Amaury Ambler Ambrick Ambrogino Ambroise Ambrose Ambrosio Ambrus Ambury Amenhotep Americo Amery Ames Amhlaidh Amhlaoibh Amias Amilcar Amin Amir Amiss Amittai Ammiel Ammon Amon Amos Amrit Amyas Anacleto Anacletus Anakin Anakoni Anan Anand Anani Ananias Ananta Ananth Anantha Anargyros Anaru Anas Anass Anastas Anasztáz Anath Anaxagoras Anchjo Ander Andersen Anderson Anderton Andor Andreu Andrews Andries Andrija Andro Androcles Andronikos Aneirin Aneurin Angel Angelo Angley Anibal Anicetus Aniketos Aniruddha Anisim Anker Ankur Annable Annas Anraí Ansel Ansell Anselme Ansgar Anshel Ansley Anson Antal Antey Antigonus Antipater Anto Antonello Antonius Antun Antwan Anubis Anupam Anwar Anwer Aodh Aodhán Aonghas Aonghus Aphrodisios Apolinar Apollinaire Apollinaris Apollo Apollodoros Apollonios Apostolis Apostolos Appius Appleby Aquila Aragorn Aras Arata Aravinda Arber Arbon Arcangelo Archbold Archelaus Archer Archibald Archimedes Archippos Ardal Ardashir Arden Ardghal Ardley Ardren Arduino Areli Ares Argeson Argus Argyris Argyros Aric Aries Arik Ariston Arjun Arjuna Arkadios Arkell Arkins Armand Arme Armel Armfield Armitage Armstrong Arn Arnau Arndt Aroldo Aron Ãron Ãrpád Arron Arsen Arseni Artair Artemidoros Artemisios Arter Artis Arvel Asad As'ad Asaf Asaph Asbjörn Asbury Asdrubal Aseem Ash Ashbridge Ashe Ashenhurst Asher Ashley Ashmore Ashok Ashoka Ashtad Ashton Ashurst Ashworth Asim Askett Askew Askey Asklepiades Asklepios Askren Aspinall Asquith Astle Astley Aston Astor Astrophel Ata Atallah Ataullah Athanas Athanasius Athearn Athelstan Atherton Atkins Atkinson Atmore Attew Atticus Attwood Atwood Auberon Aubery Aubrey Aucote Auden Audley Auger August Augustine Augusts Augustus Aulay Ault Aulus Aurangzeb Aurel Aurèle Aurelius Austen Austin Austyn Auty Avard Avedis Aveling Averill Avery Avidan Aviram Avishai Avitus Aviv Avner Avraham Avram Avrum Awotwi Awstin Axford Axon Aydin Aylmer Aylmore Aylward Azarel Azaria Azariah Azarias Aziz 'aziz Azrael Azuolas Baako Baal Babajide Babak Babar Babatunde Baber Babonau Babur Bacchus Bache Bacon Badr Bage Bagley Bagot Baha Bahij Bahman Bahram Bai Bailey Baillie Baines Baker Bakr Bala Balázs Baldassare Balder Baldev Baldo Baldock Baldomero Baldric Baldry Baldur Baldwin Baldwinson Bale Balem Balfour Bálint Ball Baltasar Balthasar Bamford Banbury Bandi Banerjee Banks Banlin Bao Baptist Baptiste Baqir Barak Barakat Barbour Barclay Barcus Barden Bardoe Bargery Barguss Baris Barker Barkerway Barlaam Barlow Barna Barnabas Barnabás Barnabé Barnaby Barnard Barnes Barnett Barney Barr Barra Barradell Barran Barrans Barras Barret Barrett Barrie Barry Bartal Bartel Barthélémy Bartholomaus Bartholomew Bartlett Bartolomeo Barton Bartosz Baruch Bas Basajaun Basant Bascon Basile Basim Bassam Bassem Bastable Bastier Baston Basu Bate Bateman Bater Bates Batley Batt Batterby Battista Batty Baudouin Bautista Baxley Baycroft Bayes Bazen Bazin Bazley Beach Bearach Beard Beardwood Beathan Beattie Beau Beauford Beaumont Beauregard Beautyman Beavis Beazley Becket Beckett Beckwith Bedding Beddington Bede Beden Bedford Bedivere Bedros Bedwell Bedwyr Beecham Beehag Beere Beesley Beet Behnam Behram Behruz Belcher Belenus Beli Belins Bell Bellamy Bellm Benaiah Benbow Bence Bendiks Bendt Benedek Benedikt Benesh Benidect Benigno Benjamín Bennet Bennett Bennetto Benney Bennington Bennison Benno Benoit Bensen Bensom Benson Bent Bentley Bento Benton Benwell Ber Berach Beresford Bering Berk Berkant Berker Bernard Bernardino Bernat Bernát Bernt Berrill Berrisford Berry Bertalan Berthold Bertók Bertoldo Bertram Bertrand Bertrando Bertyl Berwyn Best Beswatherick Beswick Bethuel Bettelley Betteridge Bettinson Bevan Beveridge Beverly Bevis Bezodis Bezodispemayston Bhaltair Bharat Bhardwaj Bhaskar Bhàtair Biaggio Biagio Bibbee Bickley Bicton Bidwell Biekham Biggie Biggs Bignall Bijay Bijoy Bilbe Bilby Bile Billett Billingham Billington Bilton Bingle Binh Binyamin Birch Bird Birger Bishop Bittick Bixter Bizzey Blaber Black Blackburn Blacktin Blades Blain Blaine Blair Blaise Blake Blakey Blalock Blampied Bland Blandford Blank Blankley Blanks Blaze Blazej Bleay Bledsoe Bledsoe Blenkinship Blenkinsop Bliss Blithman Bloodworth Bloor Blore Blount Blowers Bloxham Bloxidge Blundell Blunden Blute Blythe Blythyn Bocock Boddie Boddington Bodemeaid Bodill Bodinnar Bodsworth Body Boghos Bogumil Boguslaw Bohdan Boiling Boipelo Bokenham Bolderrow Boldizsár Bolek Boleslav Bolingbroke Bolivar Bollen Bollington Bolton Bomford Bonaventure Bond Bone Bonfield Boniface Bonifaz Bonnett Bonny Bonnyhood Bonser Boon Boorman Booth Bora Borel Borese Bornhoft Borrott Borya Bosede Boston Boswood Bosworth Bothwell Botros Botterill Botto Bottomley Botwright Bouck Boul Boulos Bound Bouren Bourn Boutros Bowden Bowdidge Bowell Bowen Bower Bowerman Bowhill Bowles Bowman Bowns Bowry Boxall Boyce Boyd Boyington Boyle Bozidar Bozydar Brack Braddick Braden Bradford Bradley Bradney Bradshaw Brady Braeden Bragan Bragier Brahma Braiden Braidy Braith Bram Bran Brand Branden Brandon Brandt Brandwood Branimir Brann Brannon Branson Brant Brantley Bras Brashier Brassley Bratt Brattle Bratumil Brawner Braxton Bray Brayden Brayshaw Bready Breandán Brear Brearey Brears Breedon Brendon Brennan Brennus Brent Brentnall Bresser Brevitt Brewer Brewster Brewton Briar Bricall Brice Bridger Bridges Bridle Briggs Brigham Brighouse Bright Brigstocke Brimmer Brin Brinson Brion Briscoe Brisk Bristol Britner Britton Brock Brocklebank Broderick Brodie Brody Brogan Brogden Brombley Bromham Bromley Bronislaw Bronte Brook Brookbanks Brooke Brooking Brooks Broome Broomfield Brothers Brotherton Broughton Brown Browne Browning Brownsword Broyd Bruner Bruno Brutus Bryan Bryant Bryars Bryden Bryn Brynmor Brynn Bryson Buchan Buchanan Buck Buckett Buckingham Buckle Buckley Buckmaster Buckworth Buff Buglass Bull Bullimore Bullivant Bullock Bulmer Bulus Bulut Bunch Bundick Bundy Bunning Bunting Bunton Bunyan Burbidge Burby Burchale Burden Burdett Burford Burgamy Burgess Burke Burling Burman Burn Burnell Burnett Burns Burridge Burrowes Burt Burtles Burton Busby Bush Bushaway Bustead Buster Butcher Bute Butler Butlin Butt Butterfield Buttrey Buxton Buz Buzzel Byard Byelobog Byers Byetheway Bygrave Byrde Byrne Byrnes Byrom Byron Bysouth Bysshe Caddick Caddock Cade Cadell Caden Cadence Cadeyrn Cadfael Cadfan Cadge Cadoc Cadogan Cadwalader Cadwallader Cadwgawn Caedmon Caelestis Caerwyn Caesar Cahal Cahir Cai Cailean Cain Cainan Cairbre Cairns Cairo Caius Calbhach Calderwood Caldwell Cale Caleb Caley Caligula Calix Callaghan Callahan Callard Callias Callisto Callistus Callow Callum Calogero Calthrop Calvagh Calvert Calvin Calvino Camden Cameron Camille Camillo Camillus Camp Campbell Campkin Camron Candelario Canevin Cann Cannadine Cannings Cant Cantrell Canute Caoimhín Caolan Cape Capell Capon Caradice Caradoc Caradog Caratacus Carbrey Carbry Card Carden Cardew Cardigan Cardin Cardwell Carey Carlier Carling Carlisle Carlito Carlitos Carlos Carlton Carlyle Carmi Carmichael Carnie Carolus Carpus Carran Carrick Carrol Carroll Carson Carter Cartmell Cartwright Carwyn Cary Case Casey Cash Casimiro Caspar Casper Cass Cassian Cassidy Casswill Castellina Castleton Castor Castray Caswell Catahecassa Cater Caterer Cathair Cathal Cathán Cathaoir Catleugh Catlow Catmull Catney Cattle Cauchois Caufield Caulfield Caunt Cavanagh Cavell Cawrey Cayetano Ceallach Ceallagh Cearbhall Cebrián Cees Celino Celio Celyn Cenek Cephalus Cephas Cepheus Cerberus Cernunnos Cesaire Cezar Chadkirk Chadwick Chaffin Chaim Challans Chambers Chance Chanda Chandan Chandana Chander Chandler Chandra Chandrakant Chang Channing Chao Chape Chaplin Chapman Chappell Charalampos Chard Charley Charlick Charlot Charlton Chas Chase Chatzkel Chauncey Chayim Chaz Che Cheetham Chenaniah Chenery Cheng Chernobog Cherokee Cherry Cheser Chesley Chester Chet Chetana Cheyenne Chibuzo Childres Chilvers Chinn Chip Chiswell Chitty Chiumbo Chizoba Choules Christiaan Christian Christopher Chubb Chubbuck Chucho Chun Church Churchman Churchyard Chus Chylan Cian Cianán Ciaran Cibor Cicero Cillian Cillín Cináed Cionaodh Ciprian Cipriano Cirillo Cirino Citlali Clabburn Clancy Clarence Claridge Claringbold Clark Clarke Clarkson Clasper Clater Clatworthy Claud Claus Claxon Claxton Clay Clayton Cleary Cleasby Cledwyn Clegg Cleisthenes Cleland Clem Clemens Clement Clément Clemente Clements Clemson Cleon Cletes Cletis Cleto Cletus Cleve Cleveland Clifford Clifton Clint Clinton Clisham Clissold Clitus Clouder Clovis Clowes Cluer Cluff Cluley Clymer Cnaeus Cnut Coard Coates Cobden Coben Coby Cockerill Cocks Coddington Codie Coe Coffin Cogger Coilean Coinneach Cojeen Colam Colbert Colby Colder Cole Coleby Coleman Coles Colk Collamore Colley Collihole Collin Collins Collinson Collyer Colm Colmán Colombain Colombe Colten Colton Colum Columba Columban Columbano Columbo Comber Combs Comgal Comgan Comhghall Comhghán Commons Compton Conall Concetto Conchobhar Condon Conie Conleth Conn Connell Conner Connolly Connor Conor Conrad Constant Constantin Constantine Consus Conway Conwell Conyers Cook Cooke Cooling Coomber Coombes Coombs Cooper Coos Copeman Copleston Copley Corbett Corbey Corbin Corcoran Cordell Cordozo Corie Corin Cork Corlett Cormac Cormag Cornel Cornelis Corneliu Cornell Corner Cornford Cornish Cornist Cornwell Cort Cortney Corum Cosimo Cosker Coskun Cosmin Costanzo Costel Costello Costica Cotgreave Cottis Cotton Cottrell Coty Couch Couldwell Coupe Courtney Cousens Covalt Covell Coveney Coventry Covington Cowal Cowdell Cowen Cowessess Cowl Cowley Cowne Cox Coyne Cozens Crabbe Crabtree Crackles Cragg Craig Cramer Cramphorn Cranage Crane Crangle Crawford Creasy Cree Creekmore Creighton Crescentius Crescenzo Cresey Cressey Cridland Cripps Crisp Crispian Crispin Cristi Critchley Critoph Crockett Crofton Crofts Crolla Cromie Crompton Croney Cronus Crook Crookham Crooks Crosby Cross Crouch Crowden Crowe Crowell Crowson Crowther Croxen Croxford Crumbie Crump Crumpton Crunden Crute Cruwys Csaba Ctibor Cuán Cuchulainn Cudworth Culhwch Cullen Culloden Cullum Culpitt Culverwell Cunningham Cunnington Cunobelinus Cureton Curlewis Curry Curtis Cusick Cuthbert Cuthbertson Cutland Cutler Cutts Cymbeline Cynefrið Cyprian Cyriacus Cystenian Czcibor Czeslaw Da Dabson Dacre Dade Daedalus Dafydd Dagda Dagg Daglish Dagworthy Dai Dàibhidh Daichi Daine Dáire Daisley Daithí Daividh Dakin Dakota Daley Dalibor Dallimore Dallton Dalmeny Dalton Daly Damen Damion Damodar Damon Danail Dand Dániel Daniels Dante Danut Dara Darach Darby Darcy Darden Darian Darlington Darlison Darnell Darrant Darrow Darwin Dasborough Dashwood Daud Daulby Daveth David Davidge Davidson Davie Davies Davin Davis Dawdry Dawid Dawson Dawud Dax Day Dayaram Dayton Dazbog Dazhdbog Dean Deandre Deangelo Deasún Debaumford Debdan Debelin Debevoise Decebal Decimus Declan Dedman Dee Deebank Deeble Deeks Deeman Deemer Deepak Deforest Deforrest Degier Deimos Deiniol Delaiah Delaney Delastie Delay Delbert Delbridge Dell Deller Dellow Delmar Deloraine Delroy Delshad Deluce Delve Delves Delwyn Demeter Demontfort Dempster Demyan Den Dendy Dene Dénes Denholm Denly Denmead Dennerley Denness Dennett Denney Denning Dennis Dennison Denton Denver Denys Denzil Deo Deodan Deon Deonne Deòrsa Deptford Derby Derbyshire Derek Dermid Dermot Derren Derry Derya Desbrow Deshaun Deshawn Desi Desiderio Désiré Desislav Desmond Dester Desya Detta Devdan Devdas Deven Devereaux Devereux Devine Devon Devrell Dewayne Dewdney Dewey Dewi Dexter Dezara Dezi Dezsõ Dhananjay Diarmad Diarmaid Diarmuid Dibben Dibbens Dibble Dibley Dickens Dickinson Dicks Dickson Didwell Diederick Diederik Dierk Dietfried Diethelm Dietrich Dieudonné Digby Digedan Diggory Dilbert Dilip Dillon Dilshad Dilworth Dilwyn Dima Dimbylow Dinesh Dinh Dinis Dinkins Dinsmore Dinte Diodore Diodorus Diodotus Diogenes Diokles Diomedes Dion Dionysodoros Dipak Direnç Disgleirio Dismore Ditch Dixey Dixon Diya Dobrogost Dobromil Dobson Dockings Docwra Dodson Doggart Doggett Doherty Doke Dolph Dom Domen Domhnall Domingos Domleo Domonkos Domville Donafee Donagh Donal Donald Donar Donat Donát Donatello Donatien Donato Dong Donnchadh Donovan Dooney Doran Dorian Doriano Dorman Dormand Dorofei Doron Dorotheos Dorr Dorrell Dorricott Dorrington Doru Dougal Doughtie Doughty Douglas Dov Dover Dovid Dow Dowdeswell Dower Dowling Downing Dows Doyle Drabble Draco Drage Dragos Drake Drane Drape Draper Draven Drbj Dring Driscoll Driskoll Driver Drogo Drummond Drury Drystan Drywood Duarte Dubaku Dubhghall Dubhghlas Duc Duce Duckering Ducro Dudel Duder Dudley Dudman Duff Duffield Dugald Duke Duleep Dullaghan Dulson Dumitru Duncan Dunford Dung Dungworth Dunkling Dunn Dunnett Dunning Dunsdon Duong Dupo Durand Durnell Durward Dusty Dutnall Dutson Dutton Duygu Dwyn Dyer Dyke Dymoke Eachann Eacott Eadbhárd Eades Eadwig Eaglen Eallair Eamon Éamonn Ean Eanraig Earith Earl Earle Earley Earnest Earnshaw Earp East Eastaugh Eastburn Easter Easterbrook Eastland Easton Eatherly Eaton Eatwell Ebbage Ebdon Eben Ebenezer Eber Eberardo Eberhard Ebert Ebrahim Eckbert Eckehard Eckersley Eckhard Ecob Ecott Ecroyd Edan Edgard Edgson Edison Edmond Edmondo Edmonds Edom Edric Edsel Edwards Edwin Effer Efisio Efraim Efraín Egbert Egidio Egon Ehud Éibhear Éibhir Eideard Eilert Éimhín Einion Einrí Eiran Eitan Eke Ekewaka Ekkehardt Ekwueme Eladio Elario Elbert Elder Eldon Eldred Eleazar Elek Elerig Eleuterio Elia Elian Elias Eliezer Eligio Elihu Elijah Eliot Eliott Eliphalet Eliphelet Elisha Elisud Eliud Eliyahu Elkan Elkanah Elkins Ellar Ellery Elliker Elliot Elliott Ellis Ellison Elmer Elmes Elms Elnathan Elof Eloi Elov Eloy Elpidio Elpidius Elric Elrond Elroy Elsdon Else Eluf Elvin Elwill Elwin Elwood Elwyn Ely Emanuel Emeric Emerson Emery Emidio Emilian Émilien Emlyn Emmanouil Emmerich Emmerson Emmott Emory Emrys Emyr Endre Enéas Enfys Engel Engelbert Engin England English Eniola Enitan Ennis Eno Enoch Enok Enos Enosh Enrique Enstone Enu Eoghan Epaphras Epaphroditos Ephraim Epifanio Epiktetos Epps Eran Erastus Ercole Ercwlff Erdem Erdmann Erebus Eren Erez Erhard Erickson Erland Erle Erlend Ermenegilde Ermenegildo Ermolai Ern Ernõ Ernst Errington Erskine Ervin Ervins Erwan Erwin Esaias Esau Esden Esdras Eser Esham Esmail Esmé Esmond Esmund Espiner Espiridion Espley Esposito Estachio Estavan Estcourt Estep Estevão Esteve Estève Ethelbert Ethell Ethelred Etheridge Ethington Etzel Euan Euclid Euphranor Euripides Eustace Eustache Eustaquio Euthymius Eutropio Eutropius Eutychius Eutychos Evans Évariste Evatt Everard Everatt Everett Everette Everingham Everitt Evert Evitt Evrard Evron Ewan Ewart Ewen Eydmann Eyers Eyland Eyles Ezar Ezell Eztebe Faas Fabó Fachtna Faddei Fadi Fadil Fadl Fáelán Fagan Fahd Fahim Fair Fairbank Fairbrother Fairchild Fairclough Fairman Faivish Faizel Fakhri Falen Falk Fallofield Fallon Fallowell Fane Faolán Farag Faraj Faramond Farcy Farey Farid Faris Farley Farmer Farnham Faron Farooq Farouk Farquhar Farrall Farran Farrant Farrar Farrell Farren Farringdon Farrow Fastred Fathi Fatkin Faul Faulkinghor Faulkner Faulks Faunus Favel Favill Fawks Fawzi Fayiz Faysal Fayvel Fearchar Feardorcha Fearghal Fearghas Fearn Fearonwilson Feast Featherstone Fechín Fedele Fedot Fee Feenan Feeney Feichín Feidhlim Feidhlimidh Feighner Feivel Felim Feliu Fell Feltham Felton Femi Fendle Fenelon Fenton Feofilakt Ferapont Ferdie Ferdy Ferenc Fergal Feri Ferko Fermin Fernão Feroze Ferran Ferrer Ferrington Ferruccio Fester Festus Fey Fiachna Fiachra Fiacre Fidelis Fido Field Fielder Fife Fihr Fikri Filander Filat Filbert Filcock Filep Filib Filibert Filip Fillin Finbar Finch Findlay Finegan Fingal Fingall Finglah Finlay Finley Finn Finnbar Finnegan Finnén Finnian Finniss Fintan Fion Fionn Fionnbharr Fionnghall Fionnlagh Fionntán Fiorenzo Firby Firdaus Firdos Firmin Firmino Firoz Firth Fish Fishbourne Fishel Fisher Fishke Fishwick Fisk Fitch Fitzjohn Fitzroy Flack Flaithrí Flaningam Flann Flannan Flatman Flavius Fleming Flemming Fletcher Flip Florence Florencio Florentin Florian Floriano Florin Floris Florry Flounders Flowers Floyd Fludger Flurry Flux Foat Foden Fogarty Foka Folami Folant Follows Foma Fonsie Foody Forbes Ford Forder Forest Forrest Forshaw Forston Forsyth Fortunato Fosbrook Foster Fotis Fouad Foulser Fowell Foweraker Fowler Fox Foxley Foxton Foyle Frame Frampton France Francis Franciscus Franco Frang Frank Frankland Franklin Franklyn Fraser Fravardin Frazer Frazier Frearson Freek Freeman Freemantle Freeston Freestone French Frewin Frey Freyr Friday Fridrik Fridtjof Friedemann Friedhelm Friedhold Friedrich Frigyes Frisnell Fritjof Fritz Fritzpatric Frode Frome Froome Frost Fryderyk Frye Fu Fuad Fuggles Fulbert Fulcher Fulford Fulgencio Fulgenzio Fulk Fulke Full Fullagar Fuller Fullstone Fulmer Fülöp Fulston Fulton Furnival Furse Fyfe Fynn Gabby Gabe Gabino Gabir Gabr Gad Gadd Gadsby Gafar Gage Gail Gailes Gainger Gaius Galahad Galal Gale Galen Gall Gallagher Galler Galletly Gallimoor Gallus Galway Gamal Gamaliel Gambill Gamil Ganesh Ganesha Ganley Gant Garaty Garbhán Gardner Garey Garfield Garland Garment Garner Garnet Garreton Garrett Garrick Garrison Garrod Garsha Garside Garton Garvan Garvine Garwood Gash Gaskon Gáspár Gaspard Gaspare Gasparo Gasper Gateson Gatrell Gaukroger Gautam Gautama Gautier Gavin Gavino Gavrel Gavriil Gavril Gawain Gawdat Gawel Gawthrop Gayelord Gayle Gaylord Gazsi Gearalt Gearóid Gebbert Gebhard Gee Geffrey Gelder Gellért Gemariah Gemini Gemmell Genghis Gent Gentle George Georgeson Georgo Gerallt Gerasim Gerben Gereon Gerfried Gergely Gergõ Gerhardt Gerhold Gerlach Germain Germaney Gernot Gerolamo Gerolt Geronimo Gerontius Gerrard Gerrish Gerrit Gershom Gershon Gervais Gervaise Gervas Gervase Gervasio Gervasius Gerwulf Gethin Géza Ghalib Ghassan Ghayth Gib Gibbins Gibbs Giblett Gibson Gideon Giedrius Giess Giffard Gifford Gijs Gijsbert Gilad Gilbank Gilber Gilbert Gilbertson Gilbey Gilchrist Gill Gillespie Gillett Gillette Gillis Gillrie Gillson Gilmore Gilroy Gingell Gintaras Ginty Giordano Giosuè Giraldo Girish Girolamo Gisbert Gittins Giustino Gjergj Gjon Gjord Gjurd Gladdiss Gladwin Gladwyn Glanville Glascoe Glaw Gleb Gleig Glendower Glensman Glessal Glessing Glover Glyndwr Gnaeus Goad Goalby Goatley Gobán Gobind Goble Godbeer Goddard Godelieve Godfree Godfrey Godiff Godofredo Godric Godwin Goff Goffredo Gofraidh Gofton Goibniu Göker Goldsborough Goldsbrough Goldwire Goliath Gollings Gollup Gomer Goodale Goodall Goodchild Goodfellow Goodhew Goodhind Goodship Goodwin Goonson Gopal Goraidh Gorden Gordon Gore Gorely Gori Gorka Gormally Goro Goronwy Gorrell Gosbell Gosham Gosnell Gospel Gosse Gossip Gotam Gotthard Gotthilf Gottschalk Goudge Gough Gould Goulder Gouldson Goundry Govad Govannon Gove Govind Gowthorpe Goyathlay Grace Graciano Gradidge Grady Graham Grahame Grainger Graney Granshaw Grant Grantham Granville Gratian Gratien Grattan Graves Gray Grayling Graziano Gréagóir Green Greenaway Greenbank Greener Greenfield Greenhalgh Greenidge Greenin Greenland Greenleaf Greenway Greenwood Greer Greger Gregers Grégoire Gregor Gregory Greig Grenville Gresham Gresty Grey Grgur Gridley Grier Grieves Griffin Griffith Griffiths Grillo Grimsdale Grimslley Grimsvy Grindrod Griogair Grisdale Grisha Grist Gritton Grocock Grogan Grosvenor Grover Groves Gruffud Gruffudd Gruffydd Grummitt Grundy Guadalupe Gualter Gualtiero Gubbins Guda Guedesse Guerino Guglielmo Guifré Guilherme Guillem Guiomar Guiscard Guise Gulzar Gum Gumbleton Gunne Gunningham Gunther Guntram Guntrip Gurney Gurrey Gussiari Guswell Guto Gutteridge Gutxi Gwallter Gwaltney Gwandoya Gwil Gwilherm Gwilim Gwillym Gwilym Gwrtheyrn Gwynedd Gwynfor Gwynn Gwythyr Gyles Gyula Gyuri Habacuc Habakkuk Habbin Habib Hachiro Hacket Hackney Hackworth Hadar Haddon Hades Hadi Hadley Hadrian Hadrianus Hadwin Hadyn Hafeez Hafiz Hagan Hagarty Hagen Haggai Haggar Hagger Haggis Hagland Hagop Hagtharp Hai Haigh Hairfield Hakeem Hakes Hakim Haldor Hale Hales Haley Hall Hallam Halldor Halldór Halle Hallvard Halsey Halstead Halsten Halvar Halvard Halvdan Halvor Ham Hamblin Hambrice Hamey Hamilcar Hamilton Hamish Hamlet Hamments Hammond Hammonds Hamnet Hamo Hamon Hamp Hampshire Hampson Hampus Hamrick Hamson Hamza Hananiah Hanbury Hanby Hancock Hand Handford Haney Hanford Hanfrey Hani Hanke Hankinson Hannaford Hannan Hannibal Hannuel Hanshew Haraldur Harberd Harbon Hardbattle Hardicker Hardiman Hardisty Hards Hardy Hare Harford Hargreaves Hari Harinder Harish Harith Harkin Harlan Harland Harle Harley Harman Harmon Harmor Haroun Harper Harpley Harris Harrison Harrop Harryman Hart Hartas Hartley Hartmann Hartmut Hartwig Hartwin Harun Harve Harvey Harvie Harwell Hasdrubal Hashim Hasim Haskel Hasleham Hassall Hassell Hastings Haswell Hatch Hatcher Hatfield Hatherell Hatim Haul Haultain Havel Havelock Haven Havilah Hawthorn Hay Haycock Haycox Hayden Hayder Haydn Hayes Hayfield Haynes Haytham Hayton Haywood Hazael Hazel Hazelton Headley Heal Healey Heals Heanes Hearn Hearson Heasman Heath Heathcock Heathcote Heathfield Heaton Heawood Hebel Heber Heck Heckie Heddwyn Hedges Hedley Heeremans Heffer Heilyn Heiner Heinrich Heinz Heitor Helder Heliodoro Helios Helladius Helm Helmfrid Helmfried Hemi Hemingway Hemley Hemmick Hemming Hemuss Henderson Hendey Hendicott Hendsbee Heng Hengist Henning Henriksen Henry Henryk Hensley Henson Henthorn Hephaestus Heppell Heracleitus Herakleides Herakles Herbert Hercule Herd Hereman Hereward Heribert Herk Herleif Hermann Hermenegildo Hermes Hermogenes Hermokrates Hermolaos Herod Herodion Herodotus Heron Herschel Hersh Hershel Hervé Hervey Heshel Hesiod Hesketh Hessey Hester Heston Hetherington Heulog Heverin Hewett Hewie Hewitt Heydar Heyes Hezekiah Hibbert Hibdon Hickmott Hicks Hidderley Hideaki Hierons Higginbotham Higgins Higini Hikaru Hikmat Hilaire Hilary Hilbert Hildebrand Hiley Hill Hillary Hillel Hilliard Hillier Hillman Hillyard Hilton Hindley Hindry Hine Hinrich Hinrik Hinwood Hipolito Hippolyte Hiram Hircock Hirsh Hirst Hirstwood Hisein Hisham Hitchens Hitchins Hitchinson Hitt Hizkiah Hjörtur Hoag Hoban Hobbiss Hobbs Hobson Hocking Hodding Hodgetts Hodgkinson Hodgkiss Hodgson Hogg Hohepa Hoiles Hokolesqua Holborn Hold Holdaway Holden Holder Holgate Holiday Holl Holland Holley Holliday Hollingsworth Hollinshead Hollis Hollman Hollocks Holloway Holman Holmes Holpin Holroyd Holt Holter Holwell Homer Honey Honor Honoratus Honoré Honorius Hood-Daniel Hook Hooker Hookway Hopcyn Hope Hopes Hopkin Hopkins Hopley Hopper Hopton Horatio Hordon Hore Hormazd Hormazed Hornblower Horne Horner Hornsby Horobin Horridge Horrobin Horry Horsa Horscroft Horslen Horton Horus Horwood Hosea Hosell Hoskins Hosni Hotaka Hotchen Houchin Houghton Hounsom Houssam Hovhannes Hovsep Howard Howard-Willis Howcroft Howe Howell Howes Howke Howley Howse Hoxley Hoyt Hrafn Hrothgar Huan Huang Hubbard Hubbs Hubrecht Huckle Hudson Hudspeth Hudston Huey Huffie Hughes Hughie Huitson Hulin Hullings Hulme Hulsey Humber Humbert Humphrey Humphries Humphry Hùng Hunt Hunter Huo Huppert Hupprecht Hurford Hurley Hurll Hurlstone Hurst Hurt Hurved Hurwood Hurworth Husain Husam Husayn Husler Husni Hussain Hussein Hutchence Hutchins Hutchinson Hutton Huw Huxham Huxtable Hyacinth Hyam Hyde Hyder Hyginus Hyman Hymie Hyram Hywel Iacchus Iagan Iago Iakopa Iancu I'anson Ianto Iarfhlaith Iarlaith Iason Icarus Ichabod Idan Idle Idowu Idris Idwal Iefan Iestyn Ieuan Ifan Ignaas Ignác Ignace Ignacy Ignacz Ignasi Ignatz Ihab Ihsan Ikaia Ikaika Ilan Ilar Ilbert Iley Ilie Ilker Ãllés Illing Illtyd Imad Imam Imamu Imhotep Immanuel Imrus Inderjit Inderpal Indigo Indra Indrajit Ingall Inge Ingham Inglebert Ingolf Ingram Ingrams Ings Ingvarr Inkpen Innes Innocenzo Innokenti Inocencio Iokua Iolo Iolyn Iomhar Ãomhar Ion Ionel Ionut Iorwerth Ipati Ippolit Ippolito Iqbal Ireneus Ireneusz Irinei Irons Irvin Irvine Irving Irwin Isa Isador Isadore Isaia Isak 'isam Isamu Isandro Iser Isha Isherwood Ishmerai Isidor Isidore Isidoro Iskender Islay Isley Islwyn 'ismat Isocrates Issa Issac Issachar Issur Issy Italus Itamar Ithamar Ithel Ives Iveson Ivor Iwan Iyov Izaak Izsák Izz-al-din Izz-ed-din Izzy Jabbar Jabez Jabin Jabir Jabr Jabril Jacenty Jachin Jack Jackson Jacobs Jacobus Jacques Jaden Jadon Jadranko Jadyn Jafar Jafet Jaffar Jaffer Jagannath Jagdish Jagjit Jago Jahan Jahangir Jahleel Jahzeel Jai Jaiden Jaidev Jair Jairus Jaka Jakab Jakeman Jalal Jalen Jamaar Jamar James Jamieson Jamil Jamin Jamison Jamshad Jamshed Jamsheed Janaway Jancsi Janecek Janez Janis Jannick Japeth Japheth Jardine Jarek Jarl Jarlath Jarogniew Jaropelk Jarrett Jarvis Jary Jasper Jaume Jaumet Javaid Javan Javed Javor Jawdat Jaxon Jayant Jayden Jaydon Jaylen Jaylin Jaylon Jaymes Jaywant Jean Jeannot Jeapes Jedidiah Jeetendra Jefferies Jefferson Jeffery Jeffrey Jeffs Jehiel Jehoash Jehoshaphat Jehu Jelani Jelf Jelfs Jem Jemmy Jenaro Jenci Jenkins Jenkinson Jenner Jennings Jenõ Jep Jephtha Jephthah Jepp Jepson Jeptha Jerald Jeremias Jericho Jerker Jernej Jernigan Jerold Jerónimo Jerrard Jerrim Jerrod Jerrold Jervis Jessee Jessie Jewitt Jiang Jillians Jin Jinan Jindrich Jing Jin-ho Jirair Jitender Jitendra Jitinder Joab Joash Job Jobling Jochim Jochjo Jock Jockie Jocky Joep Johano Johar Johnson Joicey Jokum Jolliffe Jolyon Jones Jonty Jools Joord Joost Jöran Jorck Jordaan Jordan Jordon Jory Joseph Joses Joshawa Josiah Josias Jóska Jotham Jourdain Jovan Jove Jowan Joyce Joynson Jozafat Jozo Józsi Józsua Jozua Jubal Juda Judd Judde Judge Juggins Jules Jumaane Jung Junior Juozas Jure Jurgis Juro Juson Juste Justy Juvenal Kacper Kade Kaden Kader Kagwa Kailash Kaimana Kaiser Kajetan Kalani Kaleo Kalidas Kallias Kallikrates Kálmán Kalyan Kam Kama Kamal Kameron Kane Kaneonuskatew Kaolin Kapel Kapil Kapila Karam Karan Karcsi Karp Karsten Kaspar Kassidy Katashi Katlego Kato Katsu Katsuo Katsuro Kawacatoose Kay Kayetan Kayode Kazimeras Kázmér Kazuki Kazuo Kean Keane Kearne Keaton Keay Keble Keddy Keeble Keed Keefe Keegan Keelan Keeling Keen Keenan Keers Kees Keetch Kegan Kehoe Keir Kekoa Kelan Kelcey Keld Kelemen Kelk Kellas Kellogg Kellow Kelly Kelsey Kelvin Kemble Kemp Kemshead Kenan Kenaniah Kendal Kendall Kendell Kendrick Kenelm Ken'ichi Kenith Kennard Kennedy Kennerley Kennith Kenrick Kenshin Kent Kenta Kentigern Kenton Kenwrick Kenya Kenyon Keogh Keoni Kermit Kerneels Kerr Kerridge Kerrie Kerrison Kerry Kershaw Kerslake Keruzec Keshaun Keshawn Keshet Kester Kett Kettil Kettle Kevork Key Kgosi Khajag Khalifa Khamisi Khayrat Khayri Khayyam Khordad Khorshed Khurshid Khwaja Kian Kiaran Kibble Kibwe Kichenside Kichiro Kidby Kidd Kidsley Kiefer Kilcommons Kilian Killebrew Killian Kilpatrick Kim Kimball Kimberley Kimo Kimpton Kinder King Kingan Kingdon Kingsley Kingsmill Kinnear Kipling Kippen Kirabo Kiran Kirby Kirk Kirkby Kirkhope Kirkland Kirkup Kirwan Kisecawchuck Kishan Kishen Kishore Kissane Kistna Kitson Kiyoshi Kjeld Klaas Klaes Kleitos Klemen Klemens Kliment Klingbeil Knaggs Kneller Knight Knott Knowler Knowles Knox Knud Knute Kobe Kobina Kodey Kody Koen Koenraad Kojo Kolb Kolby Kole Kolman Kolya Kondrat Konnor Konrád Koos Kopp Koppel Korbin Korbinian Körbl Kornegay Kornel Kornél Kort Kortney Kostandin Kostya Kourtney Kresten Krikor Kristaps Kristen Kristján Krystyn Krzys Ksawery Kuba Kudret Kumar Kun Kunal Kunibert Kuno Kuro Kuzma Kwabena Kwadwo Kwaku Kwame Kwasi Kweku Kwesi Kyle Kyler Kynaston Kyran Kyte Laban Labhrainn Labhrás Laby Laccohee Lacey Lachie Lachlan Lachtna Lack Lacy Lad Ladislaus Lafford Lafrance Lahiff Laing Laird Lake Lakshman Lal Lalawethika Lalo Lalouette Lamb Lambert Lambeth Lambton Lamech Lammert Lamming Lamond Lamont Lamprecht Lancaster Lance Lancelot Lander Landers Landlass Landon Lane Lanford Lang Langdon Langley Langthorne Langton Langton Lành Lanigan Lanty Lanzo Lapham Lapnow Larkin Laroche Larrie Lasenby Lashawn Laskey Latham Latif Launce Launo Laurence Laurens Laurits Lauritz Lauro Laverack Lavern Laverne Lavrenti Lavrentios Law Lawrence Laws Lawson Lawton Laxman Laxon Lay Layton Laz Lazar Lázár Lazare Lazarus Lazer Lazzaro Le Dieuw Le Vautier Leach Leachlainn Leadbetter Leafe Leake Leal Leander Léandre Leaper Lear Leatherwood Leavell Leaves Leberecht Lebrid Lech Lecren Leders Lee Leech Leeder Leeney Leeson Leeves Lefteris Legate Leger Legolas Lehi Leighton Leitch Leith Leland Lemoine Lemon Lemuel Lenard Lenge Lennon Lennox Lenox Lens Lenz Leocadio Leofric Leofwine Leolin Leon Léon Leonard Léonce Leone Leonhard Leonius Leonti Leontius Leonty Leonzio Leopard Leopold Léopold Leos Leroi Leroy Les Lesley Leslie Lesly Lessels Lester Leszek Lettley Leuty Levell Levent Lever Leverington Levett Levon Lew Lewarne Lewin Lewis Lex Leyton Li Liber Liberatore Liberius Liborio Lieber Liggins Light Ligon Lile Lill Lilley Lillyman Lim Limb Lin Linacre Linas Lincoln Lindh Lindley Lindo Lindon Lindsay Lindsie Linford Linforth Ling Linley Linos Linsay Linsey Linton Linwood Linzell Linzey Lior Lippitt Lir Liron Lisney Liston Litchfield Little Littlejohn Littlejohns Livers Liviu Livy Lleu Llew Llewellyn Llorenç Lloyd Lluc Lluis Llyr Llywellyn Llywelyn Lobbett Lochan Lochlainn Lochlann Locker Lockie Lockley Locklin Lockney Lodewijk Lodge Logan Loliger Lomán Lomas Lommán Lon Lonán London Loney Long Longley Longstaff Looney Lope Lóránd Lóránt Lorcán Lorccán Loren Lorencio Lorens Lorenz Lorin Lõrinc Lorn Lorne Lorrin Lothair Lothaire Loud Loup Louth Lovatt Love Lovel Lovell Lovett Lovick Lowarch Lowe Lowell Lower Lowles Lowman Lowndes Loxley Loyd Luben Lúcás Luce Luchjo Lucjan Luck Lucking Ludger Ludo Ludvik Lúðvík Ludwig Luesby Luff Lugh Lughaidh Lugus Luitger Luitpold Luk Lunceford Lund Lusby Lush Lutfi Luther Lutz Luuk Luxton Lyall Lycett Lycurgus Lyden Lyles Lyman Lynagh Lyndon Lyndsay Lynn Lynton Lynwood Lyon Lyons Lyov Lysander Lysimachus Lysley Lyttle Maas Maber Mabon Macario Macey Macie Mack Mackenna Mackenzie Mackey Mackie Maclaine Macnulty Macrae Macsen Macy Madai Madhav Madhukar Madison Madoc Madog Maeleachlainn Maggs Mahalah Mahali Mahavir Mahendra Mahinder Mahlah Mahli Mahmood Mahomet Mahon Maiden Mainchín Mainey Mairtín Maitiú Maitland Majer Major Makaio Makari Makram Malachi Malachy Malak Malakai Malamis Maldwyn Maleko Malibon Malik Mallaband Mallabon Mallett Mallon Mallory Malloy Malone Malthouse Malyan Malyn Manasseh Manasses Mandeep Mandel Manel Manfried Mani Manish Manktelow Manley Manlio Manning Mannix Manoel Mansel Mansell Mansoor Mansur Manus Maoilios Maplethorpe Mapp Maquinna Marceli Marcellus Marcin Marcus Marduk Maredudd Margh Mariano Marijan Marin Marino Marinus Marion Markham Marklew Markus Marlborough Marlen Marley Marlin Marlon Marlow Marlowe Marly Marmaduke Marmon Marquis Marquise Marr Marrack Marrion Marris Mars Marsden Marsh Marshal Marson Marston Martie Martignetti Martin Martinho Martino Martong Martyn Marzio Masheder Mason Masood Massey Mast Masten Masterman Masters Mas'ud Masuyo Máté Mateus Matheus Mathieu Mathis Mathon Mathúin Matteo Matthews Matthieu Mattie Mattinson Mattithyahu Matvei Mauby Maulder Maundrell Maurus Mavity Maw Mawson Max Maxey Maximiano Maximino Maximo Maximus Maxted Maxwell May Mayers Mayfield Mayhew Maynard Maynerd Mayson Mazin Mcadams Mcavinue Mcbirnie Mcbratney Mccalla Mccardell Mccarroll Mcclements Mccreedy Mccudden Mccullough Mccunnell McCutcheon Mcdaid Mcgaffin McGann Mcgeachen Mcgeagh Mcgrath Mcguinness Mcilhargey Mckeage Mckeever Mckenna Mckenzie Mcloram Mcmanus McNamara Mcnaughton McNeive Mcnulty Mcnulty Mcquhae Mead Meador Meadows Meadus Mealing Meallán Measor Meckin Medcalf Medcroft Meddin Medley Medlin Mee Meekes Meeler Mefodi Megaw Mehmud Mehrdad Meical Meider Meinard Meinhard Meinrad Meir Meirion Melchior Melchiorre Melchor Melek Melen Mellan Mellett Mellor Melor Melsome Melson Melton Melville Menachem Menahem Menashe Menchenton Mendel Menelaus Menes Menno Mercury Merfyn Meriton Meriwether Merle Merlin Merlyn Merrick Merrill Merrion Merritt Merten Mertens Merton Meshach Meshulam Meshullam Metcalf Metcalfe Methodius Methuin Methuselah Metin Metody Meuric Meurig Meuross Mews Meyer Micajah Micheil Michele Michiel Michjo Mickle Mictlantecuhtli Midas Middleditch Middlemost Middleton Midwood Mieczyslaw Miell Mieszko Miha Mihaita Mihammad Mihangel Mikelo Miksa Mikula Mikulás Milburn Mildare Miles Milford Millar Millard Millardship Millbourn Miller Millichip Millidge Milligan Millman Millo Mills Millward Milner Milogost Miltiades Milton Milward Minakin Minch Minchew Ming Minh Minoru Minshull Mircea Mirza Misi Mis'id Miska Missen Missions Mitchell Mithra Mitica Mitty Mitxel Mitya Mnason Moady Moana Modest Modestine Modesto Modestus Modya Mogens Mogg Mohammad Mohan Mohandas Mohinder Moishe Moitie Mole Monaghan Monar Monet Mongkut Monroe Montague Monte Montgomery Moody Moore Moores Moorhouse Moray Morbey Morby Mordecai Mordechai Mordikai More Moreau Morfitt Morgan Móric Moricz Morley Morre Morrell Morrin Morris Morrish Morrow Mort Mortimer Morton Mose Moseley Mosely Moshe Mosi Moss Mossom Mostyn Moth Motke Motya Moull Moulton Mounteney Mountford Moverley Moxon Mozes Mózes Mscislaw Mu Muhsin Muir Muireadhach Muiris Mukesh Mukhtar Mukul Mulcahy Mules Mullane Mullarkey Mullineaux Mullins Mulvey Mumford Munashe Munckton Munday Mundon Munford Mungo Munir Munnerley Munro Munroe Munson Munton Murali Murchadh Murchington Murdo Murdoch Murdock Murphy Murr Murray Murray-Hill Murrey Murrough Murtagh Musa Mus'ad Muscowequan Musson Musto Mu'tasim Muzeen Myers Myghal Mykhaylo Mykola Mykolas Myles Mylward Mynott Myrddin Myron Mytton Nabil Nacio Naden Nader Nadim Nadir Nagendra Nagi Nagib Nahor Nahum Naiff Nail Na'im Naitik Naji Najib Nanashi Nance Nanda Nándor Nandy Nanook Nantyll Nanuk Naoise Naomhán Naphtali Napier Narayan Narciso Narcisse Narcissus Narendra Narinder Narramore Nash Nasir Natan Natanaele Naum Naveed Naveen Navid Nazaire Nazario Ndidi Neacel Neal Neale Neat Neculai Needham Neelam Neely Nehemiah Neifion Neil Neininger Neirin Nekoda Nels Nelson Nelthorpe Nelu Neoptolemus Neptune Nequest Nereus Nero Nesbitt Nesfield Nethaniah Nettlefold Nettleton Netuno Nevada Nevan Neve Nevil Neville Nevio Newell Newman Newnham Newsome Newson Newt Newton Ngai Ngozi Nguyen Nhung Niblock Nibori Nichjo Nichol Nicholas Nichols Nicholson Nicklin Nickolas Nickolaus Nickolls Nicodème Nicol Nicolae Nicomedo Nicostrato Nicu Nicusor Nield Nikandros Nikephoros Nikias Nikifor Niklaus Nikodim Nikon Nikostratos Niles Nilsson Nimbus Ning Ninian Nioclás Nir Nishant Nivek Niven Nix Nixon Nizar Nkosana Nkruma Nnamdi Noach Noak Noble Nobu Nock Noddings Noé Noel Nolan Noll Noor Norbert Norfolk Nori Norley Norm Norman Normand Normandale Norris Northrup Norton Norwood Notton Novio Nowell Nsia Nsonowa Nuada Nuadha Nudd Nunn Nunnen Nunzio Nur Nurdin Nutley Nutman Nuttall Nutting Nye Oakley Oakshott Oaten Oates Obadiah Obed Oberon Obi O'bourne Obren Ocean Ochieng O'connor Ocroft Octavian Octavius Odalis Oddmund Odell O'dell Odger Odhiambo Odhrán Ödi Odilon Odin Odo Odoacer Ödön O'donnel Odovacar Odran Oedipus Óengus Ofer Offin Offwood Ofydd Ogbourne Ogden Ogleby Oglesby O'hara Oinn Oisín O'Keeffe Olabode Olanrewaju Oldbury Oldham Olek Olive Oliver Olivier Olle Olufemi Olujimi Olukayode Olumide Oluwasegun Oluwaseun Oluwaseyi Oluwatoyin Om O'mara Ömer Omid Omri Onesime Onesimus Onesiphorus Onisim Onur Openshaw Opeyemi Ophiuchus O'pray Ora Oral Oran Orazio Orbán Ord Ordway Orel Oren Orestes Orfeo Orion Orlando Ormerod Ormond Ormonde Ormston Orp Orpheus Orrell Orrin Orsino Orso Orson Orton Orval Orvar Orville Osamu Osanne Osbert Osborn Osborne Osbourne Osburn Osell Oseman Osheen Osip Osiris Osliff Osman Osmint Osmond Osmund Ossian Oswald Oswin Othello Othniel Otho Otieno Otis Otokar Ott Ottewell Ottley Ottokar Otty Otway Ouranos Ovadia Ovard Oved Ovenden Overland Ovid Ovidiu Owain Owen Owens Oxford Oz Ozanne Özgür Pace Pacey Pachjo Packwood Paden Paderau Padma Pàdraig Padrig Padwick Page Paget Pagler Painter Palfrey Palin Páll Pallister Pallu Palmer Palmiro Palser Pamphilos Pancras Pancrazio Panfilo Pankrati Pankraz Pantaleon Pantaleone Panther Pantheras Paolino Papa Papak Papillion Paramonos Parckar Paride Paris Park Parker Parkes Parkin Parkins Parkinson Parminter Parr Parris Parry Parsifal Parsons Parth Parthalan Parton Parvaiz Parwiz Parworth Pasco Pascoe Pasha Passman Patchett Patching Pate Patrick Patroclus Patryk Patsy Pattinson Patton Patxi Patya Pau Paul Pavao Pavlo Pavlos Pawson Pay Payne Payton Peacey Peachey Peacock Peadar Pearce Peares Pearey Pearl Pearmain Pearson Peasgood Peck Peder Pedley Pedr Peel Peers Pegasus Pegg Pelagius Pelham Pellegrino Pendery Pendleton Penfold Peni Pennbarton Penney Penning Pennington Penrith Penrod Penton Pentony Peny Pepito Pepper Peprell Perason Perce Perceval Percival Percy Perdue Pere Peregrine Pericles Perkins Perks Perman Pero Perrim Perrin Perry Perun Petar Petch Petera Peterkin Peters Petherbridge Peti Petras Petre Petrica Petros Petru Pett Pettibone Pétur Petya Petyt Peuleve Peutherer Peyton Phaedrus Pharamond Pharr Phelan Phelim Phelps Philander Philbert Philemon Philibert Phillips Phillipson Philliskirk Philo Philokrates Philon Philotheos Philpott Phineas Phinehas Phirun Phizackleias Phobos Phocas Phoebus Phoenix Photios Phrixus Phyall Phythian Piaras Piburne Pich Pickering Pickles Pickrel Pickren Pierce Pierrick Piers Pierson Piet Pigg Pigot Pigram Pike Pilbeam Pilcher Pilgrim Pilib Pilkington Pilling Pillinger Pilsworth Pimm Pinchas Ping Pinkney Pinnington Pino Pinsent Pip Piper Pista Pisti Pitambar Pitchforth Pitts Pius Place Placid Plaister Plamen Plant Platon Platt Playforth Playsted Plumley Plummer Plumpton Plunkett Pocklington Podmore Pogmore Pól Pòl Poldi Poldie Polkinghorne Pollgreen Pollissow Pollux Polycarp Polydeukes Pompey Pompiliu Poncio Pons Ponsford Ponter Pontyfix Ponzio Poola Poole Popham Popplewell Porfirio Portbury Porter Porter-Bryant Portwood Poseidon Postlethwaite Potter Potts Pougher Poul Poulton Pounds Pountain Povah Povell Povey Power Prabhakar Prabhu Prabodh Pradeep Pragnell Prakash Pramod Pran Pranay Pranciskis Prasad Pratap Pratt Praxis Praxiteles Prebble Preben Precious Prem Prentice Prestidge Preston Pretten Priam Price Prickett Priddy Pride Prince Prinn Prior Pritchard Proctor Prosper Prospero Prosser Prudencio Prudentius Prudenzio Prudhoe Pruett Pruitt Pryce Pryderi Pryor Przemek Przemo Przemyslaw Ptah Ptolemy Publius Puchalla Puckering Puddy Puffitt Pugh Pullan Pullen Pullum Purdell Purdew Purtill Purushottam Purvin Putnam Puxty Pyfl Qadir Qasim Qiu Quaife Quan Quanah Quang Quartermas Quenby Quentin Quetzalcoatl Quick Quim Quin Quince Quincey Quincy Quinlan Quinn Quintin Quinton Quintus Quirino Quirinus Qusay Quy Ra Raanan Rab Raban Rabbie Rabindra Raclaw Ra'd Radbourne Radcliff Radcliffe Radclyffe Radford Radley Radmilo Radu Radulf Rae Raeburn Rafal Raggett Raghnall Raghu Raguel Raheem Rahim Rahul Raibeart Raiden Rainard Rainerio Rainier Rainsforth Raisebeck Raj Rajender Rajendra Rajesh Rajinder Rajneesh Rajnish Rakesh Raleigh Ralph Ralston Ram Rama Ramachander Ramachandra Ramakrishna Rameses Ramesh Rameshwar Ramón Ramsay Ramsell Ramses Ramsey Ranald Randal Randall Randel Randell Randoll Randolph Rane Raniero Ranj Ranjeet Ranjit Rankin-Dixon Rannard Rantoul Ranulf Ranulph Rapps Rapson Rashaw Rasheed Rasher Rashne Rastrick Rastus Ratan Ratcliffe Rathbone Ratnam Raven Ravindra Rawson Ray Raymond Raynard Rayner Raynor Raza Razzell Reach Reagan Realff Réamann Reames Reaney Rearden Redd Redfern Redgrave Redman Redmond Redmund Redpath Redwood Reece Reed Rees Reese Reeves Reffold Regan Régis Reid Reidy Reilly Reimund Rein Reiner Reinhard Reinhold Rembrandt Remiel Remigio Remo Remus Rémy Renard Renato Renatus Rendell Render Rendle Renfrow Renzo Retford Retter Reuel Reuven Reviere Reynard Reynaud Reynold Reynolds Rhbeen Rheinallt Rhisiart Rhodes Rhydderch Rhys Rian Riaz Rich Richards Richardson Riches Richmond Rickards Ricketts Rickman Riddle Ridgers Ridgley Ridgway Ridley Rigby Rigden Rigel Rignall Riley Rimington Rinaldo Ringham Riordan Ripley Risien Risteárd Ritchie Rixon Riz Rizwan Roald Roar Roast Robb Robbins Roberts Robertson Robi Robinett Robinson Robson Roc Roch Rochefort Rodden Roderick Rodge Rodger Rodion Rodrigue Rodwell Rodya Roel Roelake Roeland Rogelio Rogers Rogerson Rohan Rohesia Roi Roibeard Rokuro Rolan Roldán Rolland Rollo Rolo Rolph Roly Romolo Romulus Ronen Rong Rood Rooke Rooking Roome Roos Roosevelt Root Rope Roper Rórdán Rorie Rosborough Roscoe Rose Roseberry Rosebridge Rosenberg Roshan Roshier Rosoman Ross Rothermel Rounce Rous Routledge Rowan Rowat Rowbottom Rowcliffe Rowenstein Rowland Rowlett Rowley Roy Royal Royale Royans Royce Roydon Royle Royse Ru Ruadhán Ruaidhrí Ruaidrí Ruairi Ruairí Ruairidh Ruaraidh Ruaridh Rube Ruby Ruddick Ruddle Rudge Rudo Rudol Ruffell Rufino Ruggero Ruggiero Ruleford Rushton Rusling Russel Russell Rust Rustam Rutherford Ruy Ryan Rylan Rylance Ryland Ryley Rymer Ryo Ryota Ryszard Sabas Sabin Sabino Saburo Sachairi Sacheverell Sachie Sachin Sa'd Sadler Saffell Sage Sahibzada Saich Sa'id Saiful Saifullah Sakhr Salah Salal Salamon Sale Saleem Saleh Salih Salim Salisbury Salman Salmon Salomão Salomon Salt Salter Saltmer Salvalus Salzman Samain Sameer Samir Sammie Sammons Samnang Samoyla Samphier Sampson Samson Samuels San Sancho Sandalio Sandall Sandeep Sandells Sanders Sanderson Sandford Sandu Sanford Sani Sanjay Sanjeet Sanjeev Sanjit Sanjiv Sankar Sans Sansome Sansone Santino Santo Santos Santy Sarava Sargeantson Sarginson Sarll Sarosh Sashi Satchel Satchwell Satish Saturn Saturnino Saturninus Saunder Saunders Sava Savage Savalus Savas Saveli Saverio Savery Savidge Savill Savino Savio Saward Sawney Sawyer Sawyl Saxon Saxton Sayyid Scaife Scarborough Scarrott Scevola Scheurer Schleswick Schofield Schollar Schollar Schon Schooling Schrimshire Schrooder Schulkins Schuyler Scoones Scorah Scot Scotcher Scott Scovell Scovill Scragg Scull Sculthorpe Scurr Scurry Seaber Seachnall Séafra Seager Seaghdh Séaghdha Séamas Seamer Seamour Seanán Searis Séarlas Searle Seay Seazel Sebestyen Sebestyén Sechnall Secundinus Secundus Sedgman Sedgmond Sedgwick Seear Seeley Sefton Sefu Sekar Sekel Selby Selig Selim Sellars Sellers Selvidge Selwyn Semyon Senan Sender Seneca Senogles Seoc Seoirse Seòras Seòsaidh Seosamh Seppel Septimus Serafino Sercombe Sergius Serhat Serjeant Servius Sesto Settertree Seumas Sevan Sevastian Sevastyan Severans Severin Séverin Severne Severo Severson Seville Seward Sewell Sexsmith Sextus Seymour Shachar Shackleford Shackleton Shackley Shad Shadforth Shadi Shadrach Shae Shahar Shahjahan Shahpur Shahriar Shahrokh Shahzad Shai Shakir Shalliker Shamgar Shamus Shandar Shankar Shankara Shannon Shapter Sharif Sharma Sharon Sharp Sharrock Shashi Shaw Shay Shea Sheamus Sheard Shearman Shearwood Sheather Sheba Sheetz Shehrevar Shekhar Shelby Sheldon Shellabear Shelley Shelton Shelvey Shem Shemwell Shephard Shepperd Sher Sherer Sheridan Sherman Sherrott Shichiro Shields Shilling Shillito Shillitoe Shimmel Shimshon Shin Shine Shipham Shipman-Dixon Shiro Shirtcliff Shiva Shlomo Shmuel Sho Sholto Shone Short Shortland Shovelar Shovlar Shrimpton Shripati Shrosbree Shrubsole Shug Shui Shukri Shura Shurvinton Shutte Shuttleworth Shyam Siarl Siavush Sib Siddhartha Siddons Sidell Sidey Sidney Sidonius Sieffre Siegbert Sieghard Siemen Sigeberht Sigiswald Sigmund Sigvard Silas Silk Sillitoe Silvanus Silver Silverman Silvester Silvestre Silvestro Simba Simcha Simeon Simmonds Simmons Simon Simpkin Simpson Sinclair Sinden Sindre Sindri Sing Singelton Singleton Sìoltach Siôn Siôr Siors Siorus Siothrún Sipho Sirius Sismore Sissons Siswell Sjurd Sked Skee Skeels Skeen Skeet Skelson Skelton Skepper Skerman Sketcher Skinner Skuse Sky Skye Skylar Skyler Skyrme Slack Slassor Slater Sleaford Slinger Slingsby Sliwowski Sloan Sloane Slowley Sly Small Smalley Smallwood Smart Smedley Smees Smelley Smelt Smith Smithson Smyth Sneap Snell Snelson Snoddon Snodgrass Snow Snowie Snuggs Soar Sobieslaw Soffee Sofronio Sohail Sohrab Sol Solly Solomon Solon Somerled Somers Somerton Somerville Somhairle Soner Sonnie Sopheap Sophocles Sophronius Sophus Sorin Sorley Sorrell Sosigenes Sosimo Soul Southam Southgate Southwell Southwood Sowell Sparks Sparling Speed Speight Speller Spelman Spencer Spensley Sperry Spicer Spickett Spindlow Spink Spiridon Spiro Spiros Spong Spray Sprenckel Sprigg Spriggs Springett Sprott Spurius Spyro Spyros Squire Sroel Stace Stacey Stacey Stafford Staggers Stainer Stainmore Stainthorp Stairmand Stamatios Stamatis Stammers Stampe Standen Stanford Stanghan Stanimir Stanley Stannage Stannah Stanner Stanton Stapenhill Staples Stapleton Staplin Starie Starke Starkey Starling Starnes Starsmeare Stathis Staton Stavers Steadman Steafan Steele Steen Steenie Stef Stefan Stein Stelian Stellan Stenning Stephenson Stepney Sterling Stevens Stew Steward Stewart Stian Stibbards Stickland Stickler Stidston Stígandr Stinchcomb Stiofán Stirgess Stirling St-Julien Stobbs Stobs Stockdale Stockley Stocks Stokes Stone Stoneham Stonelake Store Storey Storm Stormont Stout Strathern Straton Streete Streeter Stribog Strickland Stride Stringer Stringfellow Strobl Stromer Strubell Strydio Stuart Stuart-Wortley Stubbings Stubblefield Stuckey Studham Studholm Stunell Styles Sudarshana Sudhir Sugg Suhail Suhayl Suibhne Suibne Sulaiman Süleyman Sulislaw Sullivan Suman Sumantra Sumati Summanus Summerling Sunan Sundar Sundara Sunder Sunil Sunny Suraj Surendra Suresh Surinder Surya Sushil Susumu Sutcliffe Suttill Sutton Svarog Sverre Svyatopolk Swaffield Swain Swales Swallow Swaran Swatland Sweby Sweeney Swietomierz Swietopelk Swift Swindail Swindlehurst Swindley Swinerd Swingewood Swithin Swithun Swyer Syd Syder Sydney Sylven Sylvester Sylvestre Sylwester Sympson Szczepan Szczesny Szilveszter Taber Taberner Tabley Tacito Tad Taddeo Tadej Tadeu Tadg Tadhg Taegan Taffy Tagg Tai Takashi Takumi Tal Talbot Talboys Talfryn Taliesin Tam Tamati Tame Tamid Tamir Tammaro Tancred Tancredo Tanner Tanniter Taphouse Taranis Taras Tarquin Tasco Tasgall Taskill Tate Tatters Tatton Tau Tawfiq Tayler Taylor Tayson Taysum Teagan Teague Tearach Teàrlach Tebb Tecumseh Teeling Tegan Teige Teigue Teivel Telesphore Teman Temani Temel Temple Templeman Templeton Temujin Tennet Tennyson Tenskwatawa Teodors Teodosio Teofil Teofilo Terach Terah Terance Tercero Terenzio Teris Terrance Terrell Terrence Terry Tertius Teunis Tevye Tew Thabo Thacker Thad Thales Thanatos Thane Thanh Theirn Thelonius Themistocles Theobald Theocritus Theodore Theodoric Theodosius Theodotus Théophile Theophilus Theophylaktos Therapon Theron Theseus Theunis Thibault Thickbroom Thiede Thom Thomas Thompson Thor Þór Þórbjörn Thorburn Þórir Thorley Thornborough Thorndike Thorne Thorneycroft Thornhill Thornton Þórr Þórstein Thorvald Thoth Thouliss Thracius Thresher Thring Thrush Thrustle Thuán Thucydides Thunor Thurgood Thurman Thurstan Thutmose Thwaites Thynne Tiarnach Tiarnan Tibby Tiborc Tiburcio Tiddy Tidswell Tiernan Tierney Tiger Tigernach Tigernán Tighearnach Tighearnán Tikhon Tilburn Tilden Tile Till Tillo Tillson Tillstone Tilt Tiltman Timaeus Timbrell Timeus Timewell Timms Timon Timoteus Timoti Timson Tincher Tinek Tinham Tinsley Tipene Tiras Tirrell Tither Tito Titus Tivadar Tiver Tiw Tlaloc Toal Tobin Tock Tod Todor Toirdhealbhach Toler Tollett Tolly Tolmie Tolson Toma Tomer Tomlin Tomlinson Tomos Tootell Topher Topps Tor Torcall Torgeir Toribio Toril Torin Torkington Tormod Torquil Torry Tosdevine Tothill Totman Tott Tottman Totty Toussaint Tovey Towers Townsend Tozer Trace Tracey Tracy Trahaearn Traherne Trai Traian Traill Trajan Tranter Trask Travers Travis Traynor Trebble Treen Trefor Trefty Trefz Trehearne Trehern Trent Trenton Tressler Trethouen Trev Trevelyan Trew Trey Trezona Trill Trimnell Trinidad Triplett Tripp Trish Tristan Tristán Tristand Tristão Tristen Tristin Triston Tristram Trodd Troillet Troke Trollop Trout Trueman Truman Tryggve Trygve Tryphon Trystan Tu Tuan Tuathal Tubby Tucker Tuckley Tudman Tudor Tudur Tudway Tue Tuffnell Tuffs Tulk Tullio Tully Tummon Tunç Tunsley Tuor Tuplin Ture Turin Turk Turlough Turmaine Turnbull Turner Turpin Turton Turvey Tuson Tuthill Tuttleby Tutty Tuvya Twamley Twdor Tweddle Twining Txomin Tybalt Tycho Tye Tyge Tyko Tylar Tyler Tylor Tyr Tyreek Tyrell Tyrese Tyrik Tyriq Tyrrell Tyson Uaithne Ualan Uberto Uden Uilleag Uilleam Uilliam Uinseann Ùisdean Uland Ulbrecht Ulick Ulises Ulisse Ulisses Ulric Ulrich Ultan Ulyat Umar Umbers Underhill Upson Upton Urbain Urban Urias Uriel Urien Urjasz Urvakhsha Urwin Usama Usman Uthman Utz Uzi Uzziah Uzziel Vahan Vail Val Valère Valerius Valéry Vali Vallaney Vallens Vallor Van Huijt Van Vance Vangelis Vanna Vanner Vant Vanya Vardy Varfolomei Varg Varinius Varius Varlam Varley Varnam Varney Vasant Vasco Vasilica Vasu Vasya Vater Vaughan Vaughn Vause Vavrinec Vayro Vear Vears Veasna Velvel Vencel Venceslao Venceslás Venceslav Vendy Veniamin Venkat Venn Venyamin Vercingetorix Vere Vergil Verner Vernon Vespasian Vespasiano Vespasien Vessey Vester Vibol Vico Victorino Victorius Vid Vida Vidal Vidler Vien Viers Viggars Viggo Vijay Vikram Vilchjo Vilday Vilhelms Vilhjálmur Viljem Vilko Vilmar Vin Vinal Vinay Vincent Vincentas Vine Vines Vinko Vinson Vint Viorel Vipond Vipul Vishal Vishnu Vissenga Vít Vitale Vittorino Vitus Vitya Vivian Vivien Vjeko Vladilen Vlaho Vlasi Voisey Volker Volodya Volos Völund Volya Vortigern Voss Votier Vulcan Vye Vytautas Wackrill Waddingham Wade Wadsworth Waghorn Wagstaff Waheed Wahid Waine Wainwright Wake Waldin Waldron Wale Walid Walker Wall Wallace Waller Wallis Walsh Walter Walters Walton Wannell Wanstall Wapasha Warburton Ward Wardell Ware Wareing Waring Warman Warner Warren Warrington Warth Warwick Washington Wasim Wassim Wasswa Wastell Wastle Waterhouse Waters Waterworth Wathes Watson Watton Watts Waud Wawrzyniec Way Wayland Waylon Weable Weakley Wearn Weaver Webb Webber Webster Weedy Weeks Weetman Wefcoatt Wei Weighill Wekesa Welch Weldon Wells Wellum Welsh Welsman Welton Wenceslas Wenzel Wenzeslaus Werner Werther Wesley Wesson Westall Westcott Wester Westerman Westgarth Weston Weston-Arnold Westover Westray Westwick Wetherington Wetmore Whalland Wham Wheatear Whem Wherlock Wherton Whewell Whiffin Whiles Whipps Whistler Whitacre Whitaker White Whitehead Whitehorn Whitelam Whitelaw Whiteley Whitfield Whitham Whitingham Whitington Whitlock Whitney Whittaker Whittam Whittingham Whittle Wichard Wickaninnish Wickwar Wiebe Wieland Wielislaw Wiffin Wiggins Wiktor Wil Wilbert Wilbur Wilburn Wilby Wilcox Wild Wilde Wilder Wiley Wilf Wilford Wilhelm Wilkes Wilkie Wilkinson Wilks Willard Willbond Willcott Willcox Willder Willem Willenbruch Williams Williamson Willie Willis Willoughby Wills Willson Wilmer Wilmot Wilson Wilton Wimsett Wincenty Windle Windom Windsor Winfield Wingate Winnard Winney Winnie Winspear Winston Winthrop Wintle Winton Wiremu Wise Wiseman Wislaw Withers Witold Witt Witty Woden Woffinden Wolf Wolfram Wolvey Wood Woodcock Woodfine Woodgate Woodhams Woodhouse Woodley Woodmore Woodrow Woods Woodthorpe Woodward Woody Woodyatt Woofenden Woolard Woolcot Woolford Woolhouse Worswick Wotan Wouter Wragg Wraith Wrencher Wrenn Wright Wring Wryghte Wu Wyatt Wybert Wycherley Wye Wymond Wyn Wyndham-elliot Wynfor Wynn Wynne Wyse Wystan Xabier Xander Xaviar Xavier Xavior Xenocrates Xenon Xenophon Xerxes Xiang Ximun Xoán Xochipilli Xosé Xuan Xue Xun Xzavier Yachin Yahya Yakim Yakov Yalden Yale Yankel Yarden Yardley Yaron Yaropolk Yarwood Yasha Yasir Yates Yavuz Yaw Yeandle Yearwood Yeatman Yechezkel Yehiel Yehudah Yehudi Yeldon Yentl Yeoman Yered Yermolai Yoav Yochanan Yonah Yong Yorath Yori York Youles Young Younglove Youngman Yoxall Yoxen Yu Yudel Yuki Yushua Yussel Yuval Yvain Zacchaeus Zacharjasz Zachery Zackary Zagni Zahir Zaid Zain Zak Zakhar Zaki Zalman Zalmon Zander Zandoon Zane Zayd Zayn Zebadiah Zebedee Zebulon Zebulun Zechariah Zed Zedekiah Zeev Zeki Zelig Zeno Zeph Zephania Zephaniah Zephyr Zerachiel Zev Zhou Zia Zilwood Zimmern Zimri Zion Ziv Ziya Ziyad Zohar Zopyros Zoroaster Zosimos Zosimus Zoticus Zsiga Zuberi Zubin Zusman Zvi Zvonko Zygmuntaaron bygfoot-2.3.2/support_files/names/player_names_latvia.xml0000755000175000017500000002764211225071372022723 0ustar eliaselias Ä€dolfs Aivars Alberts Aleksandrs Aleksejs Alfons AlfrÄ“ds Andrejs Andris Antons ArkÄdijs Artjoms ArtÅ«rs Arnolds ArvÄ«ds Arvis ÄŒeslavs Dainis DaniÄ“ls Deniss Didzis Dmitrijs Dzintars Edgars Edijs Eduards EdvÄ«ns EinÄrs EmÄ«ls Ä’riks ErvÄ«ns Filips Fricis Gatis GenÄdijs Georgijs Ä¢irts Grigorijs GunÄrs Harijs Hermanis Igors IlmÄrs Imants Ivans Ivars JÄnis Jevgēņijs Jorens JurÄ£is Jurijs Juris KÄrlis Kaspars KriÅ¡s Kristaps Laimonis Leonards Leonid Maksims MÄrcis Marian MÄris Marsels MÄrtiņš Miervaldis Mihails Nikolajs Oļegs Oskars Pauls PÄvels PÄ“teris Raimonds Raitis Raivis Reinholds Reinis Rihards Rinalds Ritus Roberts Rolands Ronalds RÅ«dolfs Ruslans Sergejs Toms Vaclavs Vadims Valdis ValentÄ«ns ValÄ“rijs Viktors Vilnis VitÄlijs VÄ«ts Vladimirs Vladislavs VoldemÄrs Abramenko Ä€brams Aleksandrovs Aleksejenko Maslobojevs Andersons Andrejevs AndžÄns Astafjevs Astrahancevs Auziņš BabiÄevs Balcers BÄrda Bebris BÄ“rziņš BitÄ“ns Blagonadeždins Blanks Bleidelis Blekte BorduÅ¡ko Boruns BriÄs Burlakovs Butorins Butriks Cauņa ÄŒebotarjovs ÄŒekulajevs CÄ«manis ÄŒugunovs DÄboļiņš Dambis DambrÄ“vics Davidovs Deglis Dibrivnijs Dobrecovs Doniks DoroÅ¡evs DrÄznieks Dreimanis Drupass Eltermanis ErnÅ¡treits Fjodorovs Fogelis Freimanis Gabovs Gailis Gaiļus GauraÄs Gilis Goba GonÄars GorkÅ¡s Grablovskis Grebis Gusarenko Heiblihs HÅ¡ÄanoviÄs Intenbergs Isakovs Ivanovs JÄ“gers Jemeļins Jermakovs Joksts JurÄenko Jurgens KaÄanovs Kachanovs Kalniņš KameÅ¡s Kamkins Kaņeps Karavajevs Karlsons Kauss Kļava KļimoviÄs Kokarevs Koļcovs KoļesņiÄenko Koļinko KopÄa Korabļovs Koroļovs KosmaÄovs Kožans Kozlovs Kozlovskis Krjauklis Krucs Kulakovs KundrÄts Kuplovs KuvÅ¡inovs Kuzņecovs Labeckis LaizÄns Lauks Laumanis Lazdiņš LÄ“venÅ¡teins Lidmanis Liepiņš Lobaņovs Logins LukaÅ¡eviÄs Lukjanovs MaÄ£ers Masaļskis Mellups Mihailovs Mihalovskis Mihelsons Miholaps MilašēviÄs Miļevskis Misins Morozs Naļivaiko Å…esterenko Novickis Ostrovskiy Ozols Pahars Pakalns Pavlovs PÄvulÄns Perepļotkins PÄ“rkons PÄ“tersons Piedels Pikols PinÄuks Plade Pļavnieks Poļakovs Popkovs Portnojs Prohorenkovs PuÄinskis PuÄ·Ä«tis Pultraks PutÄns Raisters Rakels Riherts Rimkus Rinkus Robots Romanovs RozÄ«tis Rožkalns Rubins Rudņevs MihaļÄuks Saleiko Saltups SavÄenkovs Savinovs Å eibelis Semjonovs Seņs Å evļakovs SÄ«manis Simonovs Siņicins Å itiks SkÄbardis Skadats Å kincs SkudrÄ«tis SļesarÄuks Smirnovs Smorodins Sokolovs Sokoļskis SoleiÄuks Soloņicins Spole SproÄ£is StanÄiks Stankus Starkovs Å teinbors Stepanovs Å tolcers Straume Sudmalis Å umilovs Surņins Å vÄ“ders Tarulis Tauriņš TÄ«ls Toms Trifonovs Ulbergs Ulmanis UrbÄns UtinÄns Vaivods VaļuÅ¡kins Vanags Vaņins Vapne Vaters Verners Verpakovskis Vestermans VÄ«ksna VÄ«ksne Vilerts Vilks Višņakovs Vitkovskis Vlasovs Žagars Zaicevs ZakreÅ¡evskis ZÄlÄ«tis Žavoronkovs Zemļinskis Žigajevs Žins Zirnis Ziziļevs Žuravļovs Žuromskis bygfoot-2.3.2/support_files/names/player_names_poland.xml0000644000175000017500000016077211225071372022717 0ustar eliaselias Adam Adrian Aleksander Andrzej Antoni Arkadiusz Artur Bartosz BartÅ‚omiej BÅ‚ażej Bogdan BogusÅ‚aw BronisÅ‚aw Cezary Damian Daniel Dariusz Dariusz Dawid Dominik Edward Emil Eugeniusz Filip Grzegorz Grzegorz Henryk Igor Ireneusz Jacek Jacek Jakub Jan Janusz JarosÅ‚aw Jerzy Józef Julian Juliusz Kamil Karol Kazimierz Klaudiusz Konrad Konstanty Krystian Krzysztof Krzysztof Lech Leszek Åukasz Åukasz Maciej Maciej Marcin Marcin Marcin Marcin Marek Marek Mariusz Mariusz Mateusz Maurycy MichaÅ‚ MichaÅ‚ MieczysÅ‚aw MikoÅ‚aj MiÅ‚osz MirosÅ‚aw Olgierd Oskar Patryk PaweÅ‚ PaweÅ‚ PaweÅ‚ Piotr Piotr Piotr PrzemysÅ‚aw RadosÅ‚aw RafaÅ‚ RafaÅ‚ Remigiusz Robert Roman Ryszard Sebastian Sergiusz Seweryn SÅ‚awomir StanisÅ‚aw Stefan Sylwester Szymon Tadeusz Tomasz Tomasz WacÅ‚aw Waldemar Wawrzyniec Wiktor Wincenty Witold WÅ‚adysÅ‚aw WÅ‚odzimierz Wojciech Wojciech Zbigniew ZdzisÅ‚aw Zygmunt Adamczyk Adamek Adamiec Adamkiewicz Adamski Adamus Adaszek Agafon Albingier Aleksander Alszer Ambrożej Ambroży Ćmikiewicz Andraszak Andruszczak Ankowski Antczak Antoniewski Apostel Augustyniak Ćwielong BÄ™ben BacÅ‚awski Bajdziak Bajera Bajger Bajor BÄ…k BÄ…kowski BaÅ‚a Balcer BaÅ‚ecki BaliÅ„ski BaÅ„ski Banaczek BanaÅ› Banasiak Banaszkiewicz BanaszyÅ„ski Bania BaraÅ„ski Baran Barchwic Barczak Barczyk Bardelski Barecki Baron Bartczak Bartkowiak Bartnik Bartnowski Bartosik Bartos Bartoszewicz Bartyla BarzyÅ„ski Baster BaszczyÅ„ski Baszkiewicz Bazan Becalik Bednarek Bednarz Bekas Belger Bem Bendkowski Benigier Benkowski Berensztajn Bergier BerliÅ„ski Beznicar BiaÅ‚ek BiaÅ‚kowski Biecke Bielak Bielecki Bielewicz Bielicki BieliÅ„ski Bieniek Bieniuk Biernacki Biernat Bikiewicz BiliÅ„ski Bilke Bilski Bizacki BÅ‚achnio BÅ‚achut Blaga BÅ‚ażejewski BÅ‚asiak BÅ‚aszczykowski Blaut Bledzewski Bochenek Bochentyn Bodzioch Bodziony Bogacki Bogacz BoguÅ› Boguski Bojarski Bolimowski BoÅ› Bożyk Bomba Bonin Bonk Bon BoratyÅ„ski Borek Boret Borges Borkowski Borowiec Bortnik Boruc Borucz BranfiÅ‚ow Brenner Broczkowski Brodecki Brożek Bronner Bronowicki Brychczy Brysiak BrzeziÅ„ski BrzezoÅ„ Brzostowski Brzozowski Brzyski BuchaÅ‚a Buchalik Bucholc Budka BudziÅ„ski Bugaj Bugajski BugaÅ‚a Bujok Bukalski Bukowiec Bukowski Bula BuÅ›kiewicz Burczyk Burda Burkhardt Butryn BydliÅ„ski Byrski Cabaj Cebula Cecot Cehelik Celeban Centkowski Cetnarowicz ChaÅ‚biÅ„ski ChaÅ„ko Chamera Charbicki Cherian Chmielewski Chmiel Chmiest Chodor Chojnacki Chojnacki Chrobot Chrupałła Chrzanowski Chudy ChwaÅ‚ek Chwalibogowski Chwesiuk Chwolik ChyÅ‚a Chylaszek CichoÅ„ Cichon Cichosz Cichy Cieciura CieÅ›la CieÅ›lak CieÅ›lik Cieluch CienciaÅ‚a Cierzniak Ciesielski Cios Citko Ciupa CiupiÅ„ski Cygnar Cylwik Cyzik Czaja Czajka Czaplarski Czarnecki Czech Czechowski Czepan Czerbniak Czereszewski Czerkas Czernohorski Czerwiec Czok Czpak CzubaÅ‚a Czulak DÄ…browski Dadasiewicz Damian Danielewicz DawidczyÅ„ski Dec Deja DembiÅ„ski Demich Deryng Deyna Disler Ditrich DźwigaÅ‚a DÅ‚ugosz Dmuchowski Dmytrow Dolewski Domarski Domżalski DopieraÅ‚a Doros Drachal DrÄ…g Drażyk Dreszler Drozd Drozdowicz Drumlak Dryja Drzewiecki Drzymont Dubicki Dubiela Duda Dudek Dudka Dudzicki Dudziec DudziÅ„ski Dunajczyk Durka Dworczyk DworzaÅ„czyk Dybicz Dylewski Dymanowski Dymarczyk Dymarski Dymek Dymkowski Dynia Dzióba Dziama Dziedzic Dziekanowski DzielÄ™gowski Dzienis Dziewicki Dzisiewicz Dziuba DziubaÅ‚towski Dziubicki Elgert Erlich Faber FabiaÅ„ski Fabich Fabiniak Fajfer Fec Fechner Fedoruk Feliksiak Felusiak Ferra Figacz Figiel Figurski Filipczak Filipek Filipowicz Fiszer Flanek Flery Floren Fogler Fojcik Folc FoÅ‚tyn Fonfara Forcnalik Fornalik FoszmaÅ„czyk Franke Frankiewicz Frankowski Franosz Frenkiel Frydecki Fulczyk GÄ™barowski Gabrusiewicz Gaca Gach Gadocha Gaik Gajda Gajewski Gajkowski Gajowniczek Gajowski Gajtkowski Galant GaÅ‚czyÅ„ski GaÅ‚eczka GaÅ‚eczka Galeja GaliÅ„ski GaÅ‚ka Górak Góra Góral Góralski Górkiewicz Górski Gamaj Gamla Gancarczyk GarguÅ‚a GarÅ‚owski GÄ…sior GÄ™sior GÄ…siorowski Gawlik Gdak GdaÅ„ski Gdawiec Gerlin Gielza Giemza Gierasimowicz Gieras Gierczak GiermasiÅ„ski Giesa Giza Glajcar Główka GleÅ„ski GÅ‚owacki GÅ‚owacz Gmitrzuk Gmoch Gmur Godlewski Godziszewski Gogacz Gołąbek Gołębiewski Gołąb GolaÅ„ski GoÅ‚aszewski Golda GoliÅ„ski GoliwÄ…s Golla GoÅ‚oÅ› GoÅ‚owicz Gomola Gomoluch Goncerz Gondzia Gontarewicz GorÄ…cy Gorawski Gorczyca GorgoÅ„ Gorszkow Gortowski GorzÄ…d Gosa GospoÅ› GostyÅ„ski GrÄ™bowski GrÄ…cki Gracz Graczyk GrÄ™da Gralewski Gröhlich Gregorek Grembocki Grobelny Grociak Gronowski GrotyÅ„ski Grube GrudzieÅ„ GruszczyÅ„ski GryboÅ› GrychtoÅ‚ Grygoruk Grymel Grzanka Grzegorczyk Grzegorek Grzegorzewski Grzelak GrzeÅ›kowiak Grzesik GrzmiÅ‚ Grzonka Grzyb Grzybowski Grzywacz Gubiec Gudewicz Guzowski Hachorek Hajduk Hanza Harazim Hübscher Hebda Hejnowski Herman Hinc Hirsch Hirsz HnatÅ‚o Hojka HoÅ›ciÅ‚o HolewiÅ„ski HoÅ‚ubiec HryÅ„czuk Hudek Humerski Ignaszewski Ignatowicz IwaÅ„ski Iwanicki Iwan Iwanowski JabÅ‚oÅ„ski Jacek Jackiewicz Jadczak JÄ™dras JÄ™drowski Jakosz Jakubowski Jakuszewski JaÅ„czyk JaÅ›kiewicz JaÅ›kowski JaÅ‚ocha Jóźwiak Jóźwik Józefowicz Janas Janczarek Janczarski Janczyk Janeczek Janek Janiak Janik Janiszewski Jankowski Janoszka Janowski Janus Januszewski Jarczyk Jarecki Jarka Jarmuż Jaromin Jarosiewicz Jarosik Jaroszek Jarosz JarzÄ…bek JarzÄ™bowski Jarzynka Jaskot JaskuÅ‚a JastrzÄ…b Jawny Jaworek Jawor Jaworski Jedynak JegliÅ„ski JeleÅ„ Jelonkowski Jendryczko Jezierski Jeziorny JodÅ‚owiec Jojko Jonda JoÅ„ca Jurczyk Jurgielewicz Jurkowski Jurowicz Juszczyk Juszkiewicz Juzwa Kacprzak Kaczówka Kaczmarczyk Kaczmarek Kaczor Kaczorowski KÄ™dziora Kajda Kakietek Kaleta Kaliciak Kalinka Kalinowski Kaliszan Kaźmierczak KaÅ‚użny KaÅ‚użyÅ„ski KamiÅ„ski Kamrowski KapciÅ„ski Kapelewski Kapsa KaraÅ› Karaszewski Kardas Kardasz KarpiÅ„ski Karpiuk Karwan KasiÅ„ski KÄ™ska Kasperczak Kasprzycki Kasprzyk Kaszowski Kasztelan Kazimierczak Kazimierowicz Kazimierski Kempny Ketz Kielak KieÅ‚bowicz Kieszek Kikut Kindrat Kitowicz KÅ‚aczek Klaczka Klatt Klement Klencz Klepczarek KlepczyÅ„ski Klimek Klinger KÅ‚oda KÅ‚osiÅ„ski KÅ‚os KÅ‚osowski Kluczkowski KÅ‚us Kluzek Klytta Kmiecik Koćmin Kobeszko Kobierecki KobylaÅ„ski Kochanek KociÅ„ski Kocot Kocur Kocyba Kocyk Koczuba Kohut Kokoszka Kolasa KolasiÅ„ski KoÅ›cielniak KoÅ›cielny KoÅ›ciukiewicz KoÅ›ciuk Kolendowicz Kołłątaj KoÅ›micki KoÅ‚odziejczyk KoÅ‚odziej KoÅ‚odziejski Koźlik KoźmiÅ„ski KoÅ‚sut Koman Kom Komornicki Komorowski KompaÅ‚a Konieczny Konik Konon Konopka KopaÅ„ski Kopaniecki Kopicera Koprek Kopycki Korkuć Korynt Korzeniowski Korzym Kosiba Kosider KosiÅ„ski Kosiorek Kosiorowski Kosmalski Kostka Kostrzewa Kostrzewski Koszerny Kosztowniak Kotaba Kotarski Kotlarczyk Kotorowski Kotwica Kowalczyk Kowalec Kowalewski Kowalik Kowal Kowalski Kowol Kozerski Koziara Kozik KozioÅ‚ek KozioÅ‚ KozÅ‚owski Kozubek Krajczy Królak Król Kranc Kraska Krauze Krawczuk Krawczyk Krawiarz Krawiec Kruk Krupa Krupski Kruszankin KruszczyÅ„ski KruszyÅ„ski Krymowski KrysiÅ„ski Krystyniak KryszaÅ‚owicz Krzycki Krzyżanowski KrzysztaÅ‚owicz Krzysztofik KrzywoÅ„ Kubiak Kubica Kubicki Kubik Kubisz Kubsik Kucharczyk Kucharski Kucharz Kuchta Kuczera Kuczko KudeÅ‚ko KukieÅ‚ka Kukla Kuklis Kukuć KukuÅ‚a KukuÅ‚ka Kukulski Kula Kulanek Kulig KuÅ› Kulpaka Kuźba Kulwicki Kupcewicz Kupiec Kupis Kuranty Kurdziel Kurzepa Kusto Kuszka Kusz Kuzera KwaÅ›niewski Kwapisz Kwiatkowski KwieciÅ„ski Kwiek LabÄ™da ÅabÄ™dy ÅabÄ™dzki Åachacz Lachowski Åacina ÅÄ…cz Åagiewka ÅÄ™gowiak Åakomy Lamberski ÅapiÅ„ski Lasek Laskowski Åaskowski Lasocki Åatka Åatkowski Latocha Lato Lauko Åawa ÅšcisÅ‚owski Lech LechMosór Leciejewski LedwoÅ„ Lemanowicz Lenart Lenc Lendzion Lentner Lerch Lesiak Lesisz LeszczyÅ„ski Lewandowski Lewicki Liberda Lickiewicz Liczka Lindner Lipiec LipiÅ„ski Lisiecki Lis Lisowski Åšliwa Åšlusarski ÅobodziÅ„ski Åochowski Lonka Åopata Lorens Åowicki Åšpiewak Å»aglewski Å»elazowski Å»elezny Å»emajtis Å»emojtel Å»mija Å»mijewski Å»muda Å»mudziÅ„ski Å»uberek Å»urawski Å»urek Å»urkowski Å»yrkowski Å»ytkiewicz Å»ytko Åuba LubaÅ„ski LubasiÅ„ski Lubieniecki Åuczywek ÅudziÅ„ski ÅukaczyÅ„ski Luka Åukasiewicz Åukasik Åukaszewski Åukiewicz Lukoszczyk Luncik Åusek ÅšwiÄ™cki ÅšwiÄ…tek Åšwierczewski ÅšwierzbiÅ„ski ÅšwierzyÅ„ski Åšwistak Åykowski Åysko Maćkowski Machaj Machnik Maciejak Maciejewski Mada Madej Madera MÄ…dry Madziar MagdoÅ„ Magdziak Magiera Majak Majda Majdan Majewski Majka Makoszowy Makowski Makuch Malarz Malawski MaÅ‚ecki Maleszewski Malinowski MaÅ„ka MaÅ‚kiewicz MaÅ‚kowski MaÅ‚ocha Mężyk MamoÅ„ Mandziejewicz Manuszewski Maras Marchel Marciniak Marcinkiewicz Marcioch Marczak Marek Markiewicz Markowski Marks Marucha Maruszkiewicz MasÅ‚owski Masternak Maszczyk Matlak Matusewicz Matusiak Matusik Matuszek Matuszny Matysik Matys Mazurek Mazurkiewicz Mazur Melaniuk Melon Mendes Merda MiÄ™ciel MiÄ™kus Micanski Michalak Michalik Michalik Michaliszyn MichaÅ‚owski Michalski Michniewicz Mielcarz Mielnik Mierzejewski Mierzwa MigdaÅ‚ Mikler Miklosik MikÅ‚owski MikoÅ‚ajek Miko MikuÅ‚a Mikulenas Mila Milewski Milicz Miller MiÅ‚oszewicz Mioduszewski Mirka Misiak Misiura Misztal Mizia Molek MoliÅ„ski Morawiec Morawski Mordarski Moryc Mosór MoskaÅ‚a Moskalewicz Moskal Mostowski Mowlik Mrózek Mróz Mrowiec Mucha Muc MuczyÅ„ski Murawski Murdza Murski MusiaÅ‚ek MusiaÅ‚ MusuÅ‚a Muszalik Myga MyÅ›liwy Myrwa Mysiak Mysona Myszor Najewski Nakielski Napieracz NapieraÅ‚a Narbutowicz Narwojsz NaskrÄ™t NawaÅ‚ka NawotczyÅ„ski Nawrocik Nawrocki Nawrot Nazaruk Nazimek Nerowski NiciÅ„ski NiedbaÅ‚a Niedziółka Niemiec Nieroba Niewiadomski Nikiel Niżnik Nocko NocoÅ„ Nosal Nowacki Nowak Nowara Nowicki NowiÅ„ski Nowogórski Nowosad Nuckowski Nykiel Oblewski OchmaÅ„ski Ogierman Ogonek OkiÅ„czyc OkoÅ„ OkoÅ„ski Olej Olejarz Olejniczak Olejnik Olek Oleksiuk Olesiak Oleszek OÅ›lizÅ‚o Olma Olszówka Olszar Olszewski Olszowiak Onofryjuk Oratowski OrliÅ„ski OrÅ‚owski Orzechowski Osenkowski Osiecki OsiÅ„ski Osipowicz OstafiÅ„ski Ostalczyk Ostrowski Owczarek Oziemczuk Ozimek Pach Pacholczyk PÄ™czak Paczkowski PÄ™dziach PajÄ…czkowski PaÅ‚asz Palczewski PaÅ‚ka PaÅ‚kus Papiernik Partyka Parzy ParzyÅ„ski Pastuszka Paszkiewicz Paszulewicz Patalan Pater PatoÅ‚a Paulewicz Pawelec PaweÅ‚ek Pawlak Pawlicki Pawlik PawÅ‚owski PawlusiÅ„ski PÄ™k PeÅ‚kowski Penksa Perek Per Peszko Petasz PiÄ…tal PiÄ™tal PiÄ…tek PiÄ™tka PiÄ…tkowski Piceluk Piechna Piechniak Piechniczek Piechocki Piecyk Pieda Piegzik Piekarczyk Piekarski Piekutowski Pieszko Pietrasiak Pietrek PietroÅ„ Pietrzak Pietrzykowski Pilarz PiÅ‚at Pilch Pilc Piotrowicz Piotrowski Piros PiskuÅ‚a Piszczek Pisz Piszwanicki PitroÅ„ Pitry Piwowarczyk Piwowar Piwowarski PÅ‚acheta PÅ‚aza PleÅ›nierowicz Plewko Plewniak Plewnia Plichta Plizga PÅ‚ocha Pluta Podgórski Podolak Podolski Podstawek Pogrzeba Polaczek PokÅ‚adowski Polak Polakow Polanowski Polczak Polczuk PoÅ‚eć Pol Polok PoÅ‚oszczak Pontus Popek Popiela PopÅ‚awski PosiÅ‚ek Potent Potrykus Pozor Pracz PrÄ™dota Prasnal Preis Probierz Procki Prokopiak Prokopiuk Prokop Protasewicz Prus Prusek Prusik Przecherka Przerywacz Przewoźniak PrzybyÅ‚a PrzybyliÅ„ski Przybylski Przybyszewski Przyrowski Przysiuda PrzytuÅ‚a Ptak Ptasznik Puchalski Pudysiak Pulikowski Pulkowski Puźniak Pychowski Pyka Pyskaty Pytlarz RachubiÅ„ski RachwaÅ‚ Rachwalski Rackiewicz Raczek Raczko RÄ…czka RaczyÅ„ski Radawiec Radecki Radek Radler RadoÅ„ RadwaÅ„ski Radzewicz Radziewicz RadziÅ„ski Radziszewski Radziwon Ragocz Rajman Rak Różycki Ratajczyk Reginis Reiss Rejmanowski Reks Rembowski RemieÅ„ Reyer Reyman Robakiewicz Robak Robaszek Roch Rochnia Rochowski Rocki Rogala Rogalski Rogóż Rogoza RogoziÅ„ski Rożej RomaÅ„ski Romaniuk Romanowski Romke Romuzga Rosa Rosół RosÅ‚aniec RosÅ‚oÅ„ Rostkowski Rozkwitalski Rozmus Rucki Rudak Rudy Ruszkul Rutka Rutkowski Rybak Rybicki Rybkiewicz Rybotycki Rybski Rydel Rysiewski RyÅ› Rzeczycki RzeÅ›ny Rzeźniczak Rzepecki Rzepich Rzepka Sabaj SabaÅ‚a Sabela Sacha Sacharczuk SÄ…czek Sadecki Sadzawicki Sagan Saganowski Salach Sala SalamoÅ„ski Salamon SaÅ‚uda Sójka Samoraj Sapela Sarna Sarnat Sarnecki SÄ…siadek Sasin Sawala Sawa Scherfchen Serafin Seremak Serocki SeroczyÅ„ski Serra Seweryn Sianowski Siara Sibik Siciak Siedlarz Siedlecki Siemierski Sierant Sierka Sierocki Sikora Sikorowski Sikorski Siwczyk Siwek Skaba Skórnicki Skórski Skiba Skorupa SkowroÅ„ski Skowronek Skromny Skrydalewicz SkrzyÅ„ski Skrzypczak Skrzypek Skrzypiec Skupnik SkurczyÅ„ski Skwara SÅ‚abek SÅ‚aboszowski SÅ‚awik SÅ‚omiany SÅ‚owik SÅ‚owiÅ„ski SÅ‚upecki SÅ‚użak Smakowski SmarzyÅ„ski Smolak Smolarek SmoliÅ„ski Snopkowski Sobalczyk SobaÅ„ski Sobczak Sobczyk SobczyÅ„ski Sobieraj Sobieski SobociÅ„ski Sobolewski Sobotka Socha Soczewka Sojka Sokalski Sokół SokoÅ‚owski Solarz SoÅ‚decki Solnica SoÅ‚tys Soporek Soska Sosna SowiÅ„ski Speichler Sroka Stachowiak Stachura Stachurski StaÅ„czyk Stalmach Staniórski Staniek Stanik Staniszewski StÄ™pieÅ„ Starczewski Stasiak Stasiuk Statowski Stawarz Stawiarski Stawowy StefaÅ„czyk Stefanek Stefaniszyn Stefaniuk Steiner Stelmasiak Stemplewski Stencel StokÅ‚osa Stokowiec Stolarczyk Stolarek Stolarski Stolarz Stolpa Stopczyk StrÄ…k Strózik Stretowicz Strugarek Strug Struzik Strzelecki StrzeliÅ„ski Strzykalski Studen Studnicki StudziÅ„ski Styszko Surdykowski Surlit Surma Suszczyk Sybis Sykta Synoradzki Sypniewski SzabÅ‚owski SzaÅ‚achowski Szałęga Szala Szalecki Szamotulski Szarpak Szary SzaryÅ„ski SzarzyÅ„ski Szatan SzczÄ™sny SzczawiÅ„ski Szczech Szczechowiak SzczeÅ›niak SzczepaÅ„ski Szczepan Szczoczarz Szczot Szczurek SzczurzyÅ„ski Szczypkowski Szeliga Szeremet Szewczuk Szewczyk Szmatiuk SzmatuÅ‚a Szmidt Szmyt SzoÅ‚tysik Szostak Szostakowski Szpernalowski Sztobryn Sztorc Sztylka Szularz Szwajdych Szwed SzyguÅ‚a SzymaÅ„ski Szymanek Szymanowski Szymborski Szymiczek Szymkowiak Szymura Szyndrowski TafliÅ„ski Talaga Talak Talik Tarasiewicz Taraszkiewicz Targosz Tarnowski TÄ™siorowski Tataj Telichowski Terelak Terlecki Tkocz TloÅ‚ka Toborek Tomaszewski Tomczak Tomczyk Topolski Tosik TraÅ‚ka TreÅ›ciÅ„ski Trudnos TruszczyÅ„ski Trzaskowski Trzeciakiewicz Trzeciak Tupalski Turkowski Turowski Tuzinowski Twardawa TwardoÅ„ Twardowski Tychowski Tyczkowski TytoÅ„ Ujek Ulanowski Ulman Unierzyski UrbaÅ„czyk Urbaniak Urban Uss UznaÅ„ski Wacek Wachowicz WacÅ‚awczyk WÄ™dzyÅ„ski WÄ™gier Wagner WÄ™grzyn Walczak Walentynowicz Waleszczyk Walkiewicz Walukiewicz Wódkiewicz Wójcicki Wójcik Wójtowicz Wanat Wapiennik Warakomski Warczachowski Warszawski Wasicki Wasik Wasilewski Wasiluk Wasyl Wawrzyczek WawrzyÅ„czok Wawrzyniak Wdowczyk Wesecki WesoÅ‚owski WiÄ™ckowski Widuch Wiechowski Wieczorek WieÅ„cierz Wielgus Wieprzęć Wierzba Wierzbicki Wierzchowski Wijas Wilczek Wilczewski Wilk WiÅ›niewski WiÅ›niowski Wincel Winkler Wita Witek Witkowski WlazÅ‚y WÅ‚och WÅ‚odarczyk WÅ‚odarek Wodniak Wojciechowski Wojcieszyn Wojciuch Wojnecki Wojtala Wojtal WojtaÅ› Wojtasik Wojtaszek Wojtczak Wojtkowiak Wojtysiak WolaÅ„ski WoÅ‚czyk WoliÅ„ski WoÅ› WoÅ‚osz Wolski Woźniak Woźniczka Wolsza Woroniecki Wraży Wróbel Wróblewski Wrona WrzesiÅ„ski Wszelaki Wyciszkiewicz WyczaÅ‚kowski WyparÅ‚o Wyrobek Wysocki WysoglÄ…d ZÄ…becki ZÄ…bek Zachnik Zadylak Zahorski ZajÄ…c ZajÄ…czek ZajÄ…czkowski Zajas Zajdel Zakierski Zakrzewski Załężny Zalewski ZaÅ‚uska Zamecki Zaremba Zarychta Zasada Zawadzki ZawisÅ‚awski ZawiÅ›lan Zega Zeusner Zezula Zganiacz ZgutczyÅ„ski ZiÄ™ba Ziółkowski Ziarkowski ZieÅ„czuk ZieliÅ„ski Zientara Zientarski ZiÄ™ba Zimerman Zimoch Ziober ZioÅ‚o ZjawiÅ„ski Znyk Zubrzycki Zuzik Zwierz bygfoot-2.3.2/support_files/names/player_names_argentina.xml0000755000175000017500000013671111225071372023411 0ustar eliaselias Adolfo Adrián Agustín Albano Alberto Aldo Alejandro Alexis Alfio Alfredo Ãlvaro Amadeo Américo Andrés Ãngel Aníbal Antonio Ariel Armando Atilio Attilio Bernabé Bernardo Bruno Carlos Carmelo César Charlie Clemente Constantino Cristian Damian Daniel Danilo Dante Darío David Diego Domingo Edgardo Eduardo Efrain Elias Eloy Elvio Emanuel Emiliano Emilio Emir Emmanuel Enrique Enzo Ermindo Ernesto Esteban Evaristo Éver Ezequiel Fabián Fabiano Fabricio Facundo Federico Feliciano Felipe Felix Fernando Francisco Gabino Gabriel Gastón Gerard Gerardo Germán Gino Gonzalo Guillermo Gustavo Hector Hermes Hernán Hilario Horácio Hugo Humberto Ignacio Ivan Jacobo Jaime Javi Javier Jeremías Jerónimo Jesus Joaquin Jonathan Jorge José Juan Julian Julio Laureano Lautaro Leandro Leonardo Leonel Leopoldo Lionel Lisandro Lucas Lucho Ludovico Luís Manu Manuel Marcelino Marcelo Marco Marcos Mariano Mario Martín Mateo Matías Mauricio Mauro Maxi Maximiliano Michael Miguel Narciso Natalio Nelson Nereo Neri Nery Néstor Nicolás Norberto Octavio Omar Oscar Osmar Osvaldo Pablo Paolo Patricio Paulo Pedro Pío Rafael Ramiro Ramón Raul Reinaldo Renato Rene Ricardo Richard Rinaldo Roberto Rodolfo Rodrigo Rolando Roman Rubén Rubens Samuel Santi Santiago Saúl Sebastián Sergio Silvio Simón Sixto Tomás Ubaldo Umberto Valentín Vicente Víctor Victorio Waldemar Walter Wáshington Wilfredo Aballay Abán Abbondanzieri Abelairas Abraham Abreu Acevedo Acosta Affranchino Agnolín Agüero Aguilar Aguirre Ahumada Aimar Alayes Alberino Albil Albrecht Alcorsé Alderete Alegre Alemanno Alessandría Alfaro Almada Almandoz Almeida Almerares Almirón Alonso Altamirano Alvarado Alvarez Alves Amarilla Amato Amuchástegui Andrada Andrizzi Andújar Angel Angeleri Angelillo Ansaldi Antunes Añasco Aquino Araldo Arambillete Aramburu Arangio Arango Arantes Araujo Arca Arce Archubi Ardiles Argüello Armani Armentano Armenteros Arostegui Arrieta Arruabarrena Artigas Artime Asad Astrada Astudillo Avallay Ãvalos Avendaño Azcárate Azconzábal Babington Balbo Balbuena Baldessari Baldonedo Baley Ballesteros Balvorín Banega Bangardino Barbas Barbosa Barcos Bargas Barijho Barisio Barovero Barrado Barrales Barraza Barrera Barreto Barrientos Barrionuevo Barrios Barroche Barroso Bartelt Bartero Barticciotto Barzola Basanta Basile Bassedas Bastía Bastianini Bastida Basualdo Batalla Batista Batistuta Batocletti Battaglia Battión Bauza Bazzi Becchio Belloso Belluschi Benavídez Benítez Bergessio Berizzo Bernao Bernardello Bernardi Bernuncio Berti Bertolo Bertoni Berza Bessone Bevacqua Bezombe Biaggio Biagini Bianchi Biancucchi Bidoglio Bieler Bielsa Biglia Biglieri Bilardo Bilibio Bilos Bini Bisconti Bizarri Blanco Blázquez Blengio Bobadilla Bochini Bolatti Bologna Bombarda Bonano Bonelli Bonetto Bonjour Bonnet Bontemps Bonvín Borelli Borges Borghi Borodiak Borrelli Borzani Boselli Bossio Botasso Bottaro Bottinelli Bou Boyé Boyero Bracamonte Brailovsky Brandán Braña Bravo Brindisi Broggi Brunetto Bruno Brusco Bueno Buonanotte Burdisso Burgos Burruchaga Burtovoy Burzac Bustamante Bustos Caballero Cabral Cabrera Cabrero Cáceres Caffa Caggiano Cagna Cahais Calandra Calderón Calello Calgaro Calleja Callejon Calomino Calvo Cambiasso Campagnaro Campagnuolo Cámpora Campos Camps Cancelarich Caneo Cángele Caniggia Cano Cantoro Canuto Capece Cappa Capria Capurro Caputto Caraccio Caranta Carbonari Carboni Cárdenas Cardetti Cardoso Cardozo Carignano Carnevali Carniglia Carranza Carrario Carrascosa Carreño Carrera Carricaberry Carrizo Carrizo Carrusca Caruso Caruzzo Casartelli Casas Cascini Casquero Castaño Casteglione Castillo Castillos Castromán Castronovo Cavallero Cavenaghi Cecco Cejas Celiz Cellay Centrone Centurión Cerruti Cesarini Cetto Chacana Chacurian Chaile Chamot Champagne Chatruc Chávez Chazarreta Chena Cherro Chiacchio Chiorazzo Cinalli Civelli Clausen Claut Cobián Cocca Cocco Cochas Colace Colautti Colman Coloccini Colombano Colotto Comas Combin Comizzo Commisso Conca Corbatta Corcuera Córdoba Cordone Coria Corrales Corsi Corsico Cortes Cortez Costa Costanzo Costas Couceiro Coudet Coyette Cozzi Cozzoni Craviotto Crespo Cristaldo Cristante Crosa Cruz Cuadrado Cuberas Cubero Cuciuffo Cuenca Cuevas Cufré Culio Cúper Curioni da Costa da Dalt da Fonseca da Silva D'Alessandro Damonte Danelón Dátolo De Bruno de Francesco de la Canal de la Cruz de la Mata de León de Muner de Porras Décima del Rio Delgado Della Torre Dellacha Dellafiore Delorte Demaría Demichelis Denis Depetris Dertycia Desábato Desio Desvaux Dezotti Di Cosmo di Gregorio Di Lorenzo Di María Di Santo di Stéfano Díaz Diniz Docabo Doffo Domenech Domenez Domingo Domínguez Donda Donnet Dorado dos Santos Doval Dovetta Dreer Drovandi Dubarbier Duchini Dudar Dulcich Duscher Eberto Elizaga Eluchans Enría Enrique Eraildo Ereros Erpen Erviti Escalada Escobar Escudero Esnáider Espina Espíndola Estévez Etcheverry Evaristo Fabbiani Fabbri Fabbro Faccioli Fagúndez Falcioni Falcón Fanesi Faria Farías Favalli Fazio Felman Fernández Ferradas Ferrari Ferreira Ferrer Ferrero Ferreyra Figueroa Fillol Filomeno Fleitas Flores Flotta Fonseca Forlín Formica Francia Franco Francou Frangipane Franzoia Fredes Frontini Frutos Fuentes Fuertes Fulloné Funes Fúriga Furios Fusilier Gabas Gabrich Gadea Gago Gainzarain Gaitán Galarza Galetto Gallardo Gallego Galletti Galmarini Galoppo Galván Gamboa Gandín Gandolfi Gárate Garavano Garcé García Gareca Garfagnoli Garnero Garnier Garré Gasparini Gatti Gavatorta Gavilan Gelabert Gentiletti Gerlo Gerzicich Gianni Giarrizo Gigena Giménez Gioda Giunta Giusti Glaria Godin Gómez Goncálvez González Gori Gorosito Gottardi Goycochea Gracián Graciani Graff Graieb Graziani Grazzini Griffa Griguol Grillo Grimi Grondona Grosso Guaita Guerrero Guglielminpietro Guidi Guiñazu Gutiérrez Hanuch Hauche Hayes Heinze Heredia Hernandez Herner Herrera Herrón Hidalgo Higuaín Hiller Hoyos Humoller Husaín Husillos Ibagaza Ibáñez Ibarra Iglesias Imboden Imperiale Infante Insúa Iriarte Iribarren Ischia Islas Izaguirre Izco Jerez Jiménez Juan Kempes Knez La Grotteria La Paglia Labruna Lacruz Ladino Lagman Lagos Lanari Landa Lanz Laraignée Larraquy Larrivey Larrosa Laspada Lastagaray Latorre Lauri Laurito Lavezzi Lavolpe Lazzarini Lázzaro Lazzatti Ledesma Leeb Leguizamón Leite Leiva Lenci Leonforte Lequi Leto Lettieri Leyenda Libonatti Licht Liendo Lima Limia Lizio Llama Llop Llorente Lobos Lojacono Lombardi Lombardo Lopez Lorenzetti Lorenzo Losada Loustau Lucchetti Lucero Ludueña Lugo Lugüercio Luna Lunari Luque Lux Macalik Machín Machuca Maciel Madelón Madero Madinabeytia Madrid Maggiolo Magnin Mahía Maidana Mainguyague Maisterra Malbernat Mallea Mamone Mancuso Manera Mannara Manrique Mansilla Manso Mantilla Marangoni Marchant Márcico Marcos Mareque Margetic Marinaro Marinelli Marino Marioni Márquez Martelotto Martínez Martino Martirena Martorell Marvezzi Marzolini Mas Masantonio Mascherano Maschio Mastrángelo Masuero Matellán Mateo Matheu Matosas Mattiuzzo Mauro Mazzina Medero Médici Medina Medrán Melli Melo Mena Méndez Mendoza Menghini Menotti Menseguez Mercado Mercier Merlo Messera Micheli Migliore Mignini Milano Milito Minella Miramontes Miranda Mogrovejo Monasterio Mondaini Moner Monesterolo Monserrat Monteiro Montenegro Monti Montillo Montoya Montuori Monzón Morales Moralez Morant Moreira Morel Morello Moreno Morete Morón Morresi Mouche Mouzo Moya Muller Muñoz Murúa Musacchio Musimessi Muttis Naif Nanni Naón Nartallo Nasuti Navarro Navas Naveda Nayar Neira Niell Nieto Nigro Nogués Noir Obberti Oberman Óbolo Ocampo Ochoa Ojeda Olarticoechea Olave Olazar Olguín Oliva Olivera Onega Onnis Orión Orlandini Ormazábal Orsi Ortega Ortigoza Ortiz Osella Osvaldo Otta Oviedo Oyola Ozzan Pachamé Pacheco Padula Paes Páez Paglialunga Pagnanini Palacio Palacios Palavicini Palermo Paletta Palma Pandolfi Panigutti Papa Paparatto Paredes Pareja Parra Paruolo Pasculli Passarella Pastore Pastoriza Pautasso Pavon Pavone Pavoni Paz Pedernera Pedrozo Peirone Pekarnik Pekerman Pellegrina Pellegrini Pellerano Pelletieri Penco Pendín Peñalba Peppino Peralta Peratta Percudani Perducca Perea Pereira Pereyra Pérez Perezlindo Perfumo Perillo Perrone Pertot Pesaola Pescia Peucelle Piarrou Piatti Piazza Piergüidi Pietravallo Pietrobon Pighín Pineda Pinola Pinto Pintos Pío Pirchio Pisani Pisculichi Pizzi Pizzuti Placente Pochettino Pompei Ponce Pontiroli Pontoni Ponzio Portillo Posadas Posse Potente Poy Pozo Prado Prátola Prediguer Prest Prichoda Prieto Prósperi Puertas Pumpido Pusineri Quarterone Quatrocchi Quintabani Quintana Quinteros Quiroga Quiroz Raffo Raimondi Raimondo Rambert Ramírez Ramis Ramos Raponi Rattín Raymonda Razzotti Rebottaro Redondo Reggi Reinoso Reyes Rial Ribonetto Ricchetti Rinaldi Rinaldo Rinaudo Ríos Riquelme Rivalta Rivarola Rivas Rivera Rivero Roa Rocchia Rocha Rodríguez Rojas Roma Romagnoli Romano Romeo Romero Roncaglia Rosada Rosales Rossi Roth Rotman Rubén Ruggeri Ruiz Rusculleda Russo Sá Sabella Sabia Sacchi Sacripanti Sagi Saja Sala Salaberry Salazar Salinas Salomón Salvatierra Salvio Sambueza Samuel San Esteban San Martín Sanchez Sand Sanfilippo Sangoy Sanguinetti Santamaría Santana Santoro Santos Sanz Saporiti Sara Sarlanga Sarmiento Sarnari Sartori Sastre Saucedo Sava Saviola Scaloni Scarione Scartascini Schiaparelli Schiavi Schürrer Sciorilli Scocco Scopelli Scoponi Scotta Scotto Screpis Sena Sensini Seoane Seri Serrano Serrizuela Sessa Sigali Sills Silva Silveira Silvera Silvestre Simeone Simionato Simón Siviero Siviski Sívori Solari Somoza Soñora Sorin Sosa Souza Sperdutti Speroni Spolli Squeo Stábile Steinert Suárez Subiat Suñé Tabares Talamonti Tambussi Tapia Tarabini Tarantini Tarasconi Taricco Tauber Tavio Techera Telechea Tesoriere Tévez Timpani Tissone Tobio Tocalli Togneri Tombolini Tonelotto Toranzo Torassa Toresani Torren Torres Torresi Torrico Torsiglieri Tosello Traverso Trejo Trinidad Trípodi Trobbiani Troglio Troisi Trossero Trotta Trucco Trullet Tula Turdó Turienzo Tuzzio Ubeda Uglessich Ulloa Urbano Urbieta Urribarri Urruti Ustari Vairo Valdano Valdemarín Valdez Valdiviezo Valencia Valenti Valeri Vanemerak Vangioni Varallo Varela Vargas Vázquez Vega Veglio Veira Velásquez Vella Vera Vernazza Veron Viatri Vidallé Videla Viera Viglianti Vilallonga Vilar Villa Villagra Villalba Villar Villarreal Villaverde Vincello Vitali Vitti Vivas Vizcarra Voboril Vuoso Wílchez Yacob Yácono Yacuzzi Yazalde Yedro Yllana Yudica Zabaleta Zagharián Zamogilny Zamora Zanabria Zanetti Zapata Zappia Zárate Zarif Zavagno Zelada Zelaya Zof Zozaya Zubczuk Zubeldía Zuculini Zumelzú Zurita bygfoot-2.3.2/support_files/names/player_names_italy.xml0000644000175000017500000037047211225071372022564 0ustar eliaselias Abalardi Abate Abbado Abbate Abbiati Abbruscato Abineri Abruzzese Abruzzi Accardi Accardo Accola Accornero Achilli Acquafresca Acquaviva Adaggio Adani Aebi Afiata Agliardi Aglietti Agnelli Agnolin Agnolutto Agosti Agostini Agradi Aguzzi Aiello Ajello Alagna Alasia Albani Albarello Albergati Alberigo Albertazzi Alberti Albertini Albertoni Albertosi Albertrani Alboreto Aldegani Aldobrandini Alessandrì Alessi Alfieri Alfonso Alicata Alighero Alighieri Allasio Allegri Allemandi Allori Allucingoli Altabani Altafini Alti Altichiero Altichioro Altieri Altobelli Amadei Amantini Amati Amato Amberezzio Ambrogi Ambrogiani Ambrosetti Ambrosini Ambrosio Ambu Ameche Amelia Amendola Amerini Amici Amicis Amico Ammacapane Ammanati Amocacci Amore Amoroso Amoruso Anaclerio Anastasi Ancelotti Andolini Andreolli Andreolo Andretta Andretti Andretto Andreucci Andriani Andriolo Anganuzzi Angeletti Angelico Angelillo Anguissola Annoni Annovazzi Annunziato Annunzio Anquilletti Antenucci Antognoni Antonazzo Antonelli Antonini Antonioni Antonoli Antonucci Antuofermo Anzolin Apolloni Apollonio Aquaro Aquilani Aquilanti Aquilina Aragazzi Arcangeli Arcari Archibugi Arcimboldo Arcoleo Ardemagni Ardinghi Ardito Ardizzone Arduino Arfe Argilli Argo Ariatti Ariaudo Arico Armano Armelini Arnaldi Arnoldi Arnulfo Aronica Arrighi Arrigoni Artipoli Artunghi Ascoli Assante Assemani Assi Attene Aulenti Aurelio Avanzi Avanzo Avellino Averlino Avogadro Azzopardi Bacardi Bachini Bacigalupo Badaloni Badoglio Baffi Baggio Bagio Bagliani Bagni Bagnoli Baiano Baio Baiocco Balani Balbo Baldaro Baldato Baldini Baldo Balestri Ballan Ballardini Balleri Ballerini Balli Ballotta Baloncieri Balotelli Balsamo Baltistuzzi Balzaretti Banatoni Banchero Banditelli Banfi Barale Baratta Barattin Barbadori Barbarigo Barbato Barberi Barberini Barberino Barbesino Barbetti Barbieri Barbirolli Barbiusa Barbo Bardelli Bardi Bardini Baresi Bari Barichello Barillà Barison Barletta Barlini Barola Baroncelli Baronchelli Barone Baronio Baronti Barrachina Barretti Bartoccini Bartoli Bartolini Bartolozzi Bartolucci Baruffaldi Barzagli Basaglia Basalini Basile Bassano Bassi Bastedo Bastrini Batoni Battaglia Batticelli Battile Battistella Battistini Baù Bazzani Bazzigalupi Bea Bearzot Beati Beccalossi Beccatini Becchetti Bedeschi Bedin Beduzzi Bega Beghetto Belardi Bellarmine Bellavista Belleri Bellini Belloi Belloli Bellucci Belludi Bellugi Belmon Belmondo Belmonte Belotti Beltrametti Bembo Benarrivo Bendinelli Bendini Benedettini Benetti Benincasa Benizi Beno Benoldi Bentivoglio Benussi Berardi Bercellino Bercovici Bergodi Bergomi Bergonzi Berlinghieri Bermani Bernacci Bernardi Bernardini Bernasconi Bernazzani Berneri Berni Bernini Bernoldi Bernotti Berruti Berruto Bertetto Berti Bertini Bertoletti Bertolini Bertolucci Bertoluchi Bertone Bertoni Bertonici Bertotto Bertozzi Bertucci Bessi Betrutti Bettega Bettini Bettiza Bia Biacchi Biagi Biagianti Bianchetti Bianchi Bianco Biasi Biava Biavaschi Biavati Biffi Bigatto Bigica Bigogno Bigon Billio Binaghi Binotto Biondi Biondini Birindelli Biscardi Biso Bisoli Blasi Blason Boazza Bobbio Boccadifuoco Boccanegra Boccanera Boccapecci Boccasino Boccherini Bocchetti Bocci Boccolini Bodei Bogliolo Boitano Bolchi Boldrini Bolgheri Bollano Bollati Bolognese Bologni Bolzi Bolzoni Bombacci Bombardini Bommarito Bompiano Bonaccorsi Bonacelli Bonaiceti Bonaiuncta Bonamoni Bonanni Bonauiti Bonaventura Bonazzoli Boncompagni Bonelli Bonello Bonera Bonetti Bonetto Bongiorni Bonifacio Bonini Boninsegna Boniperti Bonizo Bonometti Bonomi Bontadini Bontempi Bonucci Borcellino Bordiga Bordin Bordon Borel Borghese Borghini Borgobello Borgonovo Borriello Borromeo Borromini Borsellino Boscardin Boscocuro Bosio Boti Botiglieri Botta Botte Bottello Bottesini Botticella Botticelli Bottini Bottone Bove Bovo Bozzetto Bracaletti Bracci Bracciolini Bracco Bragaghio Bragantini Braglia Bramante Bramati Brambilla Branca Brancati Brandi Brandini Brando Brandoni Braschi Brasco Brazzi Bregonzi Brembilla Bremini Brescia Bresciani Bresciano Bressan Brevi Brezzi Briaschi Briatore Briatori Brienza Brighi Brio Brioschi Brivio Brocchi Broccini Broccoli Brunella Brunelleschi Brunetta Brunetti Bruni Brunner Bruno Bruscolotti Bruttini Bruzzi Bruzzone Buanoroti Bucchi Bucci Budel Buenaventura Buffon Bugatti Buggiani Bulgarelli Bulgarini Buonaiuti Buonconte Buozzi Buriani Burin Burlando Burrai Burti Buscaglia Busce' Busenello Buso Busoni Bussotti Busto Buttone Buzzacarina Cabrini Cacadino Caccianemici Caccini Caccio Cacciola Cacia Cadaloba Cadalora Cadeddu Cadoni Cadonici Caetani Cafagna Cafasso Caffaggi Cagni Cajani Calabrese Calabresi Calaiò Calandrini Calasanz Calazzo Calderara Calderoni Caliari Calicchio Caligaris Callara Calloni Calori Calosso Calvino Calvocoressi Calza Calzaghe Calzolai Cambria Camolese Camoranesi Camorani Camossi Campagnaro Campagne Campagnelli Campagnolo Campana Campanaro Campatelli Campedelli Campelli Campisi Camporese Canalo Canarica Candeloro Candreva Canepanova Canessa Canetti Canfari Canfora Canigiani Canini Canio Cannarsa Cannavaro Cannavo Cannizzaro Canonica Canonicca Canova Cantagalli Cantavalle Cantimori Cantone Capano Capasso Capecchi Capeci Capellari Capelli Capello Capirossi Capitanio Capobianco Capone Cappelletti Cappelli Cappello Cappioli Capponi Caprara Capriati Caprile Caprioglio Capriotti Capuana Capuano Caracciolo Caraccioni Carafa Caraffa Carandini Carangi Carapellese Caratti Caravaggio Carbonaro Carbone Carbonetti Carboni Carcano Cardia Cardinale Cardone Carducci Caredda Carena Caricola Caridi Cariello Carlucci Carmelengo Carnascialli Carnazza Carnera Carnevale Carnini Carnossi Carobbio Carone Carosi Carotta Carpaccio Carparelli Carpeggiani Carpegiani Carpini Carracci Carrado Carrara Carrera Carrozzieri Carruezzo Carta Cartellieri Caruso Casagrande Casale Casamonica Casari Cascio Cascione Caserta Casetti Casetto Casiraghi Casoli Cassani Cassano Cassetti Castagna Castano Castel Castellanata Castellani Castellazzi Castellini Castellucio Castelucci Castiglia Castiglione Castronova Castronovo Catalani Catanzara Catazara Catenacci Catocci Catone Cattaneo Cattarinussi Causio Cavalcanti Cavallaro Cavalleri Cavalli Cavallini Cavanna Cavasin Cavatta Ceccarelli Cecchini Cecconi Cecere Cecon Cedronelli Celestini Celi Cellini Cenacchi Cenci Cencio Cenghialta Cennini Centi Centofanti Cera Ceraolo Ceravolo Cerci Cercignani Ceresa Ceresoli Ceriani Cernuschi Cerretti Cervato Cervellati Cervini Cesaresco Cesarini Cesti Cestini Cetta Cevenini Charno Checchinato Chechi Chiappa Chiappella Chiappo Chiarelli Chiaretti Chiarini Chiaromonte Chiarugi Chiaudani Chicchini Chiecchi Chiellini Chieregati Chiesa Chigi Chimenti Chinaglia Chiostro Chizzo Ciaccheri Ciai Ciampi Ciappara Ciappi Ciaramitaro Ciaravella Ciaro Ciasca Cibelli Cicarelli Ciccolella Ciccoritti Cigala Cigarini Cilento Ciliberto Cimabue Cimino Cingolani Ciocca Ciocchi Cioffi Ciola Ciolino Ciottone Cipollini Cipolloni Cipriani Circati Cirese Cirigliano Cirilli Cirillo Cirolli Citti Ciuffo Civetta Clareno Clarici Clementi Cocciarella Cocco Coco Coda Cognasso Cois Colacone Colantuono Colaussi Collacchioni Colleano Colletti Collina Collovati Colomba Colombi Colombo Colonnese Colucci Columbana Columbo Comandini Comazzi Combi Comollo Comotto Compagnoni Concina Condulmaro Conegliano Confalonieri Conforto Consalvi Consigli Consiglio Contaldo Conte Conti Conticchio Contini Coppola Coralli Corbelli Corbera Corbucca Cordaz Corelli Corigliano Corini Coriolano Cornaro Corona Corone Corosi Corradi Corradini Corrazzari Corrent Corsi Corsini Corso Corte Cortesi Cortesini Corticelli Corvia Coscia Cosini Cosmati Cosmi Cospito Cossa Cossato Cossentino Cossiga Cossu Cossutta Costa Costacurta Costagliola Costantino Costanzo Cotichini Cottafava Cottini Cottolengo Covallini Covi Cozza Cozzolino Crapanzano Cravero Craxi Crespi Crisalli Crisci Criscito Cristante Cristofoletto Cristofolini Crivelli Croce Crovari Cucchiari Cucciniello Cucco Cuccureddu Cuccurullo Cudicini Cugnoni Cumani Cuoco Cupi Curci Curi Curiale Curti Cutitta Cutolo Cuzzocrea Da Vinci Daddi D'Agostino Dainelli Daino Dal Canto Dal Maistro Dal Pane Dal Soglio D'Alema Dalla Bona Dall'Acqua Dallaglio Dallapiccola Dallavilla Damasco Damasso D'Amato Damiani D'Angelo Danieli D'Aniello D'Anna D'Annunzio Darmian Dassu Dati Datini D'Attoma D'Aversa Dazzi De Agostini De Amicis De Angelis De Angelo De Ascentis De Biasi De Canio De Caro De Ceglie De Cesare De Falco De Fazio De Felice De Felitta De Franceschi De Giovanni De Giusti De Laurentiis De Lucia De Marchi De Martino De Mauro De Meo De Michelis De Napoli De Negri De Niro De Prà De Rosa De Rossi De Ruggiero De Sanctis De Silvestri De Sisti De Sousa De Vecchi De Vesci De Vito De Zerbi Defendi Deffenu Deganello Degani Degano Degni Dei Del Arco Del Core Del Fra Del Grosso Del Neri Del Nero Del Noce Del Piero Del Prete D'Elia Delicati Della Mea Della Morte Della Penna Della Rocca Della Vedova Della Volpe Dellafiore Dell'Anno Dellarossa Delmonico Delogu Delvecchio Demaría Deodato Depetrini Dervini Dessena Destefani Detillo Dettori Di Bartolomei Di Bella Di Biagio Di Canio Di Carlo Di Carmine Di Centa Di Cesare Di Chiara Di Costanzo Di Dio Di Domenico Di Donato Di Francesco Di Gennaro Di Giovine Di Giulio Di Grande Di Iasio Di Livio Di Loreto Di Maio Di Matteo Di Michele Di Natale Di Natali Di Piedi Di Salvo Di Tella Di Vaio Di Vittorio Diadoni Diamanti Diana Dibello Dichio Diliberto Dilillo Dini Dionigi Dionisotti Disanti Disegno Dispina Ditella Dolfini Domenghini Domizzi Donadel Donadoni Donatello Donati Donatoni Donazzan Donelli Doni Donini Donizetti D'Onofrio Donzelli Dore Dorso Dossena Dotto Doumani Duccio Durante D'Urso Eccelino Einaudi Emiliani Eranio Erbetto Eremitani Eruzione Esini Esposito Evangelista Evangelisti Evani Evola Fabbri Fabbrini Fabroni Facchetti Facchin Facchini Fachinetti Fagatti Fagnini Falatti Falchonelli Falcone Falconieri Falsini Fanasca Fangio Fantini Fanucci Farden Farentino Farinelli Farnese Fasanaro Fasola Fasoli Fassi Fatorini Fattori Fausti Fautario Favalli Favero Fazio Fede Fedele Federico Fei Felitti Femia Feroci Ferrante Ferrara Ferrarese Ferraresi Ferrari Ferrario Ferraris Ferraro Ferraroti Ferrazza Ferrero Ferretti Ferri Ferro Ferron Ferronetti Ferrua Ferzetti Festa Fiacconi Fibonacci Ficagna Ficano Ficcadenti Ficini Fiermonte Fiesco Fiesole Figura Filareta Filarete Filefo Filippini Fini Finiguerra Finocciaro Finucene Fioravanti Fiore Fiorelli Fiorentino Fiori Fiorillo Fioroli Firmani Fischetti Fisichella Fissore Fittipaldi Flachi Flavoni Floccari Florido Florimo Florindo Florioli Floris Foa Foggia Fogli Foglio Folena Foni Fontana Fontanesi Fonte Fontolan Fonzarelli Fonzi Fonzio Forcella Forestieri Fornaciari Fornasari Fortichiari Fortin Fortini Fortunato Fossati Foti Franchescetti Francheschini Franchi Franchini Franchitti Francioni Franciosa Francolini Frangilli Frangipani Franzese Frassetto Frati Frattasio Freddi Freni Freschi Fresi Frezzolini Frignani Frigo Frison Friuli Frizzini Frossi Frugoni Frustalupi Fubini Fuchillo Fugazzi Fugosi Funicello Furiassi Furillo Furino Furio Furlan Fusarpoli Fuseli Fuser Fusi Gabbiadini Gabetto Gabrieli Gabriotti Gaddi Gaghiardi Gagliardi Galante Galasso Galatti Galbiati Galderisi Galeone Galeoto Galetto Galimberti Galli Galliani Galliano Gallina Gallino Gallizio Gallo Galloppa Galluzzi Galuzzi Galvanoni Gamba Gambachini Gambaro Gamberini Gambetta Gamossi Gandolfi Ganganelli Garafaio Garavini Gardella Gardina Gardini Garegnani Gargallo Gargiulo Garibaldi Garin Garlaschelli Garofalo Garrone Garzelli Gasbarroni Gasparetto Gasparini Gasperini Gasso Gastaldello Gatlinaro Gattuso Gauci Gaufi Gavallo Gaveglia Gazzola Geccerelli Gelmetti Gennari Genovese Genovesi Genta Gentile Gentileschi Gentili Gerbi Germinale Gerosa Gerratana Ghedina Gherardi Ghezzi Ghiberti Ghiggia Ghinassi Ghinato Ghini Ghirlandaio Ghislieri Ghisolfi Giacconi Giacobone Giacoletti Giacomazzi Giacomelli Giacomini Giaconi Giagnoni Giallombardo Giammarttini Giammona Giampà Giampaglia Giampaolo Giancana Gianello Gianini Giannichedda Giannini Giardina Gibellini Giberti Gibilisco Gilardino Gimelli Ginesi Gini Ginocchi Ginori Gioacchini Gioberti Giocondi Giolitti Giordano Giorlandino Giosa Giovanelli Giovannini Giovannoni Giovinco Girometta Giubilato Giuggioli Giugharo Giugino Giuliani Giunta Giunti Giusto Gobbi Gobbo Gobetti Godeas Godori Goffi Goggi Gola Golino Gonnella Gonzago Gordini Goretti Gorgone Gori Goro Gortana Gotti Gozzoli Grabbi Gracia Gradi Graffiedi Gramaglia Gramsci Grancagnola Grande Grandoni Grappasonni Grassi Grasso Grava Graziadei Graziani Grazioli Greatti Greco Gregoretti Gregucci Grella Grieco Griffanti Grillati Grillo Grimaldi Gritti Grosso Gruppi Guadagnino Guadalupi Guaita Guana Guaneri Guardalben Guariento Guarisi Guarneri Guatelli Guberti Guerci Guerini Guerra Guerrieri Guglielmelli Guglielmotti Guicciardini Guida Guidi Guidolin Guidolotti Guistiniani Gusti Haghio Iachini Iaconi Iacoponi Iannacone Iannotti Iaquinta Ielpo Iezzo Infusino Ingrao Innocenti Interlenghi Inzaghi Ioli Ioriatti Iotti Ischia Italiano Iuliano Iunco Jaconelli Jacopino Janni Josi Jovine Juliano La Grotteria La Paglia La Rocca La Rocca Labraccio Labriola Laconi Lacrimini Lafuenti Laghi Lago Lagomarsino Lagorio Lagututta Lai Lamantia Lamberti Lambertini Lamboglio Lamborghini Lambruschini Lamonaca Lamotta Landi Landini Landino Lando Lanfranchi Langella Langushi Lanna Lano Lanzafame Lapi Lapin Lapo L'Archibudelli Larini Laspiga Laterano Latini Lavecchia Laziosi Lazzarali Lazzaretti Lazzari Lazzarini Lazzaro Lazzeroni Lazzini Legati Legnano Legrottaglie Lembo Lentini Leoncini Leone Leonetti Leoni Leopardi Lepore Leptio Lercari Levorato Levratto Liatti Libertini Libonatti Licci Liguori Liotta Lipari Lippi Litteri Liverani Locatelli Lodetti Lodi Loffredo Loggia Lojacono Lollobrigida Lombardi Lombardo Lombroso Longari Longhi Longo Longobardi Lorenzelli Lorenzetti Lorenzi Loria Loschi Losi Losurdo Loviso Lubiani Lucantoni Lucarelli Lucchetti Lucchi Lucchini Lucci Lucciardi Lucetti Luci Luciani Luciano Luisi Luiso Lulli Lunati Lunghi Lupatelli Lupi Lupino Lupoli Luporini Lusieri Lussu Luttazi Luttini Macaluso Maccarone Macchi Macchio Macciocchi Maccioni Macellari Madonia Maestoni Maffei Maffeis Maffi Magaglio Maggio Magherini Magli Magliocchetti Magnaldi Magnano Magnanti Magnasco Magnini Magnozzi Magoni Maidalchini Maiellaro Maiello Maifredi Maini Maiotti Maitan Maitani Maiuri Majarelli Majella Malabranca Malagò Malaparte Malatrasi Maldera Maldini Maltagliati Malusci Malvano Mameli Manacorda Mancina Mancinelli Mancini Mancuso Mandelli Mandorlini Maneilli Manetta Manetti Manfredi Manfredini Manfredonia Mangone Mangoni Maniero Manin Manitta Mannelli Manni Mannini Mannino Manno Mannone Manselli Mansi Mantegna Manteri Mantovani Manucci Manzo Manzoni Marazzina Marchegiani Marchese Marchesetti Marchesi Marchetti Marchi Marchini Marchionni Marchisio Marciano Marcolin Marcolini Marcon Marconi Marcovicci Marcucci Mareggini Maresca Margaglio Margiotta Mari Mariani Marianini Mariano Marinelli Marinello Marineo Marinetti Maringhi Marini Marino Mariotto Marisco Marletti Marocchi Marruocco Marsuppini Martelli Martinella Martinelli Martinello Martinengo Martini Martuscello Marzoratti Masaccio Mascagni Mascara Mascheroni Maschio Masci Mascolo Masetti Masiello Masini Masolino Massarelli Massari Massaro Mastrini Mastroianni Matarazzo Matarrese Materazzi Matrecano Matri Mattea Matteini Matteotti Mauri Mazarello Mazeri Mazzarri Mazzini Mazzocchi Mazzola Mazzolani Mazzolini Mazzon Mazzone Mazzoni Mazzucato Meazza Mediate Medici Meggiorini Mei Melandri Melara Melina Melis Melli Meloncelli Meloni Memmi Memmoli Menconi Menichelli Menichini Menico Menicossa Menocchio Menti Meoli Meoni Mercati Meregalli Mereghetti Merenda Mergeni Merici Merico Merizzi Merlin Merlini Mero Meroni Messori Messuti Mesto Metastasio Mezzano Mezzatesta Miccoli Miccolis Miceli Michelozzi Michelozzo Micolucci Miegge Migliaccio Miglioli Migliorati Migliore Milanese Milanetto Milani Milano Minali Minardi Minelli Mingazzini Minghetti Mingozzi Miniato Minnelli Minotti Minutillo Mirante Mirri Misiano Missaghi Missiroli Mocca Modano Modesto Modica Molinari Molinaro Mollica Momenté Monachino Monaco Monaldi Monasta Mondello Mondolfo Monero Monighetti Montagnana Montagnani Montefusco Montella Montero Montervino Monti Monticelli Montolivo Montorsi Montuori Monzeglio Mora Morabito Morandi Moratti Moravia Morbidelli Mordasini Moresi Moretti Morfeo Morgia Mori Moriero Morini Moro Morone Moroni Morosini Morra Morrone Mortaro Mosca Moscardelli Moscardini Moscati Moschino Motta Mottola Mozzafiato Muccinelli Mulazzoni Munari Munerati Muraro Muratoni Murialdo Murri Murriero Murrone Musacci Musante Muscetta Musco Mussi Mutarelli Muti Mutti Nana Nannini Napoleoni Napoli Napolitano Nardello Nardiello Nardini Nardo Nardone Nargiso Nassi Natali Natoli Natta Nattore Nava Navarro Navegero Nebiolo Negri Negro Nela Neri Nero Neroni Nesi Nesta Nesti Niccolai Niccoli Nichetti Nicoletti Nicoli Nicolosi Nieto Nista Nobile Nobili Nobilo Nocerino Nodari Noe Nota Notabartola Novellino Novo Nucci Nuciari Nuti Nuvolari Occhena Oddo Odescalchi Odilo Olivieri Olmi Omoboni Onorati Orati Orfei Oriali Orioli Oristano Orlandi Orlandini Orlando Orlandoni Orsi Ortelli Osio Otero Ottini Ottoboni Pacelli Pacho Paci Pacilli Pacio Padalino Padelli Padoin Padovano Pagani Paganin Paganini Pagliuca Pagnamenta Pagotto Pairetto Pajetta Paladino Palermo Palgani Palladino Palladio Pallavicini Pallotti Palmarocchi Palmas Palmieri Palminteri Palombo Paloschi Paluari Palumbo Paluzzi Pamfili Pampoldi Panatta Pancaldi Pancaro Panciroli Pandolfini Pani Panizzi Pantanelli Pantani Pantano Panteleo Pantoliano Panucci Panzani Panzanini Paoletti Paoli Paolillo Paolini Paolozzi Paolucci Paonessa Paparelli Papareschi Papasogli Papi Paponi Paravicini Parelli Parentucelli Parenzan Parini Parisi Paro Parola Parravicini Parrilla Partino Paruzzi Pascali Paschini Pascutti Pasinati Pasinetti Pasolini Pasqual Pasquale Pasquato Pasquetto Pasquini Passani Passarini Passiglia Passoni Pastorelli Patella Patitucci Patriarco Patroni Patti Pavan Pavarini Pavone Pavoni Pazanini Pazienza Pazzagli Pazzi Pazzini Pazzio Pecchia Pecci Pecorari Pedane Pedercini Pedrazzini Pedrazzolli Pedrelli Pedrotti Pegolo Pegoretti Pelizzoli Pellè Pellegrini Pellegrino Pellico Pellicori Pellissier Pelosi Penni Pensotti Penucci Pepe Perani Perazzolo Percassi Peretti Perfetti Pergolizzi Perna Perpoli Perri Perrini Perrone Perrotta Perticone Pertile Pertoni Pertorini Perutelli Peruzzi Perversi Pesaola Pesaresi Peschisolido Pesci Pesoli Pesotta Pessotto Petito Petrachi Petrarco Petrocelli Petroni Petruzzi Pezzo Philarghi Piangerelli Pianta Piantini Picchi Piccini Piccinini Piccoli Piccolo Piccolomini Picotti Piepoli Pierdomenico Pieri Pierini Pierleoni Pierobon Pierotti Pierozzi Pierpaoli Pietramellana Pietribiasi Pietroboni Pigafetta Pignatelli Pillon Pinardi Pinato Pininferino Pinzi Piola Pioli Piontelli Piovaccari Piovani Pirandello Pirelli Pirlo Pirovano Pisa Pisanello Pisani Pisano Pisanu Pisciotta Pistilli Pistone Pitti Pitto Pittoni Pitzi Pivatelli Pizzaballa Pizzichini Pizziolo Pizzolato Pizzoli Pizzonia Plasmati Platina Plone Poccetti Poggi Pogiali Polandi Polenghi Poletti Poli Poli Polidori Polito Politti Poliziano Pollaiuolo Pollini Polo Pomardi Pometti Ponchielli Ponti Pontoni Porcaro Porcellato Porchia Porchianelo Porrini Porro Porta Portanova Poserina Possanzini Possenti Potenza Pozzi Pozziano Prada Prandelli Prantera Pratali Prati Prevete Prignano Primaticcio Propenzicotti Properzi Protti Provolone Pruzzo Pucci Puccinelli Puccini Puccio Puggioni Puglisi Puia Pulici Pulzetti Puppo Puricelli Pusterla Putignani Quadri Quagliarella Questi Rabitti Radini Raffone Raggi Raggio Ragusa Raimondi Raimundi Rainaducci Ralli Rampolla Rampulla Randi Ranieri Ranocchia Rapisardi Raso Rastelli Ratti Rava Ravanelli Ravasi Razzetti Rea Reale Rebagliati Rebecchi Rebellin Recchi Recchia Recchini Reineri Reja Remondini Reni Rennella Respighi Respigli Rezzori Riano Riario Ribsi Ricchiuti Ricci Ricciardi Ricciolo Ricco Richelmi Ricordi Ridolfi Rigano' Righini Rigoni Rigotti Riina Rimoldi Rinaldi Rinaudo Rinuccini Riolo Riva Rivalta Rivera Rivolta Rizzi Rizzitelli Rizzo Rizzolo Robbiati Robotti Rocca Roccati Rocchi Rocchigiani Rocco Rodledo Rodocanachi Roghi Roma Romanelli Romano Romboni Romeo Romito Roncalli Roncero Ronchetti Ronchi Rondinella Rondinelli Ronzon Rosati Rosato Roselli Rosetta Rosina Rosolen Rosolino Rospigliosi Rossano Rossellino Rossetti Rossettini Rossi Rossini Rossitto Rota Rottoli Rovigo Rubbi Rubin Rucelli Ruffo Rufillo Ruggieri Ruggiero Ruggioni Rullo Ruopolo Ruotolo Ruspoli Russi Russo Russotto Rustico Sabadini Sabato Sabre Sacchi Sacco Sacratini Saia Sala Salieri Salimbeni Sallustro Salutari Salvadore Salvarani Salvetti Salviati Salvoldelli Samari Sammarco Sanetti Sanguinacco Sanguinetti Sannibale Sansone Sansovino Santacroce Santarelli Santoni Santopadre Santorio Santoruvo Sapani Sapia Sapiara Sardini Sarino Sarni Saro Sarretti Sarti Sarto Sartor Sartoretti Sartori Sassetti Satiro Saudati Sauli Sava Savelli Saverino Savi Savini Savino Savoldelli Savoldi Savonarola Sbarra Sbarro Scacceri Scaduto Scaglia Scala Scalfaro Scalia Scaligeri Scallini Scalvini Scanziani Scarabelli Scarabello Scardina Scarlato Scarlatti Scarpa Scarpi Scarsella Scarzanella Schettina Schiaffino Schiattarella Schiavi Schiavio Schillaci Schirinzi Schwoch Sciama Sciarrone Scimeca Sciorra Scirea Scolari Scopelli Scorsese Scotti Scotto Scrovegni Scuderi Sculli Scurto Secci Segala Segato Seletto Sella Sellecca Selvaggi Semioli Semitecolo Sena Seneca Sensini Sentimenti Seppani Serafini Serantoni Serato Serena Sereni Sermattei Serraino Sertori Servergnini Settignano Sfondrati Sforzini Sgattoni Sgorion Sgrigna Sibilano Sicco Sicho Sicignano Sico Sicurella Sidoti Sidotti Sighel Signori Signorini Silenzi Siligardi Simone Simoni Sinagra Sinigaglia Sinopoli Sirigu Sirtoni Sisto Siviglia Sívori Soda Soddimo Sogliano Solari Solazzi Soldan Somma Sommese Soncin Sonego Sonetti Sonnino Soranzo Sordelli Soreni Sormani Sorrentino Sospiri Spadavecchia Spagnuolo Spalletti Spano Sperafico Speranza Sperone Spinelli Spinello Spinesi Spinosi Spiteri Spoletiani Spotelli Spuri Squillari Squillino Squizzi Statuto Stefanelli Stefaneschi Stellone Stendardo Sterchele Stinzi Storari Stovini Strambi Stroppa Stropparo Strovegni Stufa Stufi Sturzo Succi Sullo Tabbiani Tacchinardi Taccola Tacconi Taddei Tadini Tadiotto Tafani Taglialatela Tagnin Taibi Talenti Tancredi Tapanelli Tarantino Tardelli Tarducci Taricco Tarquini Tartaglia Taschini Tasso Tassotti Tauretto Tavano Tecchio Tedaldo Tedeschi Tedesco Tegliacci Tenucci Teodorani Terlizzi Terminiello Terra Terragni Terranova Terzani Tescari Tessari Tesser Testavallia Tibaldi Tiboni Tiepolo Tilleti Tilli Tillini Tinari Tintoretto Tiribocchi Tiscorinia Toccafundo Todisco Tofi Tofoli Tognazzi Tognon Tognozzi Toldo Tolo Tomacelli Tomasig Tomba Tombesi Tomei Tomi Tommasi Tommasini Tondini Tonetti Tonetto Toni Toraldo Tornatore Torriani Torricelli Torrigiani Torrigiano Torrisi Torriti Tortima Tortorella Toscanelli Toselli Tosto Toto Totti Tozzi Tramacchi Tramezzani Trapattoni Travanti Traversari Traversoni Trebbi Trevisan Trezza Trezzi Tricella Trillo Trinci Troianiello Troiano Troise Trombetta Trotta Tucci Tulli Tumburus Tuomino Turati Turchetta Turci Turco Turicchia Turina Turrini Tuzzi Ugolini Ugolino Uguccione Ugurgieri Ulleri Urbano Vacarri Vacca Vaccari Vaccarini Vailatti Valbusa Valiani Valle Valli Vallone Vallore Valturri Vanali Vancini Vanigli Vanni Vannucchi Vanoli Varetti Varglien Varone Vasari Vasario Vasilini Vasti Vastola Vatteroni Vavassori Vecchina Vecchio Velo Velona Venditti Veneranda Veneziano Venitucci Venni Ventola Ventura Venturi Venturin Venturini Vercesi Verdaschi Verga Vergassola Veronese Verrochio Verrone Vespucci Vettori Viadana Viali Vialli Viani Vicari Viccio Viceronte Vicini Vidal Vidali Vierchowod Vieri Vigiani Vignaroli Vignola Villani Villoresi Vincenti Vincenzi Viola Violante Viora Viotti Virdis Virga Virgili Visconti Visdomini Vitagliano Vitaini Vitale Vitalini Vitofrancesco Vitti Vivan Vivarini Vives Viviani Viviano Vizzoni Vojak Vollpato Volonte Volpe Volpi Volta Zacagnini Zaccardo Zaccarelli Zagallo Zambaco Zambello Zamboni Zambrotta Zammuto Zampagna Zamperini Zampieri Zanardi Zanchetta Zanchi Zancope' Zanelli Zanetti Zanini Zanotti Zappella Zaretti Zauli Zauri Zenga Zenoni Zeri Zerillo Zerman Zilli Zimolo Zoboli Zoff Zoffoli Zola Zoppetti Zoppo Zoratto Zorzi Zotti Zuccarello Zuccaro Abram Abramo Achille Achilleo Adamo Adelmo Adriano Adrien Agnolo Agostino Aiolfo Alain Alban Albano Albert Alberto Albino Albo Aldo Alesio Alessandrino Alessandro Alessio Alex Alexis Alfietto Alfio Alfonso Alfredo Aliotto Aloisio Aloysio Alphonse Alvaro Amadeo Ambrogio Amedeo Amelio Amerigo Amideo Andre Andrea Andreano Andreino Anfrione Angelerio Angelico Angelo Angino Annibale Anselmo Antonello Antonino Antonio Apardo Aringo Ario Armand Armando Arnaldo Arnoldo Arnolfo Aronne Arrigo Arsizio Arturo Astore Atanasio Atilio Attaviano Attilio Aubert Augustin Augusto Aurelien Aurelio Avito Baiardo Balda Baldassare Baldassarr Baldassarre Baldo Baltista Barnaba Bartholo Bartholomeo Bartoletto Bartolo Bartolomeo Basile Basilio Bastiano Battista Beca Benedetto Beniamino Benicio Benino Benito Benno Benozzo Beppe Beppo Bernaba Bernardino Bernardo Bertino Berto Bertoldo Bertrando Bettino Betto Biaggio Biagino Biagio Bino Bobo Bonaiuto Bonamico Bonanno Bonauito Bonaventur Bonaventura Bonaventure Bonavere Bonifazio Brando Brizio Brogio Bruno Buccio Caccino Cajatano Cajetano Calderino Callisto Calvano Calvetto Calviano Calvino Camillo Candido Carlito Carlo Carlomaria Carlotto Carmelo Carmine Caro Cataldo Catalino Cecca Cecchino Cecco Cecilio Cederno Celestino Celso Cennino Ceo Cerbino Cesar Cesare Cesarino Cesario Chello Chiarello Chiaro Chiarozzo Chimento Chino Chiovo Chirico Chirro Chiuolo Christian Christiano Ciano Ciapo Ciardo Ciatino Ciattoro Ciccio Cima Cimetto Cinello Cino Ciolo Cione Ciriaco Ciriagio Ciridonio Ciro Ciuccio Ciulo Ciupo Ciuto Claudiano Claudio Clemente Cleto Clio Colombo Coluccio Constant Constanzo Cornelio Corradin Corradino Corrado Corredo Cosimo Cosmo Costantino Costanzo Cristiano Cristo Cristofano Cristoforo Curzio Cyrille Daddo Dalmazio Damiano Damone Daniel Daniele Daniello Danilo Dante Dario David Davide Davidino Davizzo Dego Delio Dello Demetrio Denis Desiderio Diego Dino Dioneo Dionisio Doffo Dolfo Domenego Domenichino Domenico Donatello Donato Dono Dore Doriano Duccio Duilio Edgar Edgardo Edmondo Edoardo Eduardo Eduino Efisio Egidio Eleuterio Elia Elie Eligio Elio Eliseo Elmo Elpidio Elvio Emanuele Emidio Emile Emiliano Emilio Emmanuel Endiro Enea Ennio Enrico Enzio Enzo Epifanio Eraldo Erasmo Erberto Ercole Ercolo Erico Erio Ermanno Erminio Ernesto Ersilio Esmondo Ettore Eugene Eugenio Euplio Eustachio Eustazio Eutichio Evaristo Evio Ezechiele Ezio Ezzelino Ezzo Fabbrino Fabian Fabiano Fabien Fabio Fabrizio Falco Fausto Fede Federico Federigo Felice Feliciano Feo Ferdinando Fernando Ferrando Figlio Filemone Filiberto Filippino Filippo Filippozzo Fino Fiorenzo Fioretto Flaviano Flavio Florello Florestano Florian Francesco Francheschetto Francisco Franco Frederic Frederick Fredi Frediano Fulvio Furio Gabbriello Gabriel Gabriele Gaddo Gaetan Gaetano Galileo Galimberto Galvano Gano Garibaldo Gaspard Gaspare Gasparo Gastone Gavino Gennaio Gennarino Gennaro Genovino Geraldo Gerardo Geremia Gerolamo Geronimo Gervasio Gherardino Gherardo Ghino Ghislain Giachetto Giacinto Giacobbe Giacobo Giacomino Giacomo Giacopo Giambattista Giambono Giambruno Giampaolo Giampiero Giampietro Gian Gian-Andrea Gianbernard Gianbonino Giancarlo Giandonato Giane Gianetto Gianfilippo Gianfrancesco Gianfranco Gianino Gianlorenzo Gianluca Gianluigi Gianmaria Gianni Giannino Giannotto Giannozzo Giano Gianpaolo Gianpiero Giasone Gigi Gil Gilbert Gilberto Gildo Gilfredo Giliberto Gilio Gino Gioacchino Giobbe Giolio Giordano Giorgetto Giorgio Giosaffe Giosi Giosue Giotto Giovacchino Giovachino Giovane Giovannello Giovanni Giovannino Girolamo Gisiberto Gismondo Giudo Giugno Giuliano Giulietto Giulio Giunto Giusafa Giusaffa Giuseppe Giustino Giusto Godofredo Goffredo Gonzo Goro Gostanzo Graciano Gregoire Gregorio Gualberto Guccio Guelfo Guglielmino Guglielmo Guibert Guidetto Guido Guilhem Guilio Guisberto Guntero Gusme Gustave Gustavo Heberto Hector Hilario Hugo Iachimo Iacomo Iacopao Iacopo Ighli Ignacio Ignasco Ignazio Ilario Isacco Isau Isidoro Istagio Italo Ivan Ivano Ivanoe Ivone Jacopo Jiacobbe Jonathan Ladislao Lamberto Lambetto Lancilotto Latino Laurent Lauro Leandro Lele Lelio Lello Leo Leonard Leonardo Leone Leonello Leonzio Leopoldo Liborio Licio Ligo Lillo Lino Lionel Lionello Litterio Livio Lodovico Lodovigo Lombardo Lore Lorenzo Loretto Lotario Luca Lucano Lucas Lucha Luchino Luciano Lucino Lucio Lucrezio Ludovico Ludovigo Luigi Luigino Mafeo Maffeo Mainardo Manfredi Manfredino Manfredo Manno Manuele Marcel Marcellino Marcello Marciano Marco Mariano Marino Mario Mariotto Martino Marzio Massimiliano Massimo Mateo Matteo Matteone Mattia Mattio Maurizio Mauro Max Maxence Maxime Maximo Mea Memmo Mercurio Merlino Michel Michelangelo Michele Micheleagno Michelino Mico Mimmo Mino Mirko Monte Moreno Mose Naldo Nando Nanni Nannino Nardo Natale Natanaele Nataniele Nazario Nello Nencio Nene Nera Nerio Neso Nestore Netto Niccola Niccolaio Niccoletto Niccolino Niccolo Nicodemo Nicola Nicolantonio Nicoletto Nicolo Nicomedo Nigi Nino Ninuzzo Noldo Nozzo Nuccino Nuccio Nuto Nuttino Nuzzio Oderigo Olinto Oliviero Omero Onesto Onofredo Onofrio Oratio Orazio Oreste Orfeo Orlandino Orlando Ormanno Orsino Orso Oscar Osvaldo Ottaviano Ottavio Otto Ottobono Ottolino Ottone Ovidio Pacio Paganello Paganino Pagano Panfilo Paolino Paolo Papi Papino Papo Pascal Pasqua Pasquale Pasqualino Pasquino Patrizio Paulin Pierangelo Pierluigi Piero Pieroantonio Pierozzo Pierrick Pietro Pietrobono Pino Pio Pippo Placido Platone Ponzio Porfirio Primo Prudenzio Puccino Puccio Raffaele Raffaello Raffaelo Raimondo Raimundo Rainero Ramondo Randolfo Raoul Raphael Raul Raulo Reginaldo Regino Reinardo Remo Renato Renzino Renzo Riccalbano Riccardino Riccardo Riccoldo Ridolfo Rinaldo Rino Roberto Rocco Roderico Rodolfo Rodrigo Roffredo Rogiero Roland Rolandino Rolando Romero Romolo Romualdo Rosario Rosso Ruberto Ruffino Rufino Rufo Ruggero Ruggiero Saladino Salvadore Salvatore Salvestro Salvo Samuel Samuele Sandro Santi Santino Santo Santore Saul Sebastiano Sebastien Seraffo Serafino Sergio Severiano Severino Sigfrido Sigismondo Silvano Silvestre Silvestro Silvio Simeone Simon Simone Sisto Stefano Steffano Sylvano Sylvestre Sylvio Taccino Tacito Taddeo Tadeo Taldo Tano Tazio Tellero Tello Telmo Teo Teobaldo Teodorico Teodoro Teodosio Teofilo Terenzio Thaddo Tibaldo Tiberio Timeo Timoteo Timothee Tingo Tino Tinoro Tito Tiziano Toccio Tome Tommasino Tommaso Toni Tonino Tonio Toto Totto Tristan Tuccio Tullio Ubaldo Ubertino Uberto Ugo Ugolino Ulisse Ulivo Ulrico Umberto Umbro Urbano Valentin Valentino Valerio Vanni Vasco Vettorio Vezio Vico Vigilio Vilfrido Vincenzius Vincenzo Vinfrido Virgile Virgilio Vitale Vito Vittore Vittoriano Vittorio Vivaldo Viviano Waldo Walter Wilfrid Xaccheo Zaccaria Zaccheri Zaccheria Zeno bygfoot-2.3.2/support_files/names/player_names_ukraine.xml0000755000175000017500000005350411225071372023075 0ustar eliaselias Akhrik Aleksei Anatoliy Andrij Andriy Anton Arimas Armen Artem Artur Bohdan Borys Dema Denis Denys Dmytriy Dmytro Eduard Evgen Evgueni Evhen Gennadiy Gennady Georgi Hennadiy Hennady Hryhoriy Igor Ihor Ilia Illya Ilya Irfan Ivan Jevgeni Konstantyn Konstanyn Kostantyn Kyrylo Leonid Lybomyr Maksim Maksym Marko Maryan Matviy Maxym Mykhaylo Mykola Myroslav Nykita Oleg Oleh Oleksandr Oleksiy Pavel Pavlo Petro Rinar Rizvan Roman Rostyslav Ruslan Rustam Semen Sergei Sergey Serhij Serhiy Stanyslav Stefan Stepan Svyatoslav Taras Timerlan Vadym Valentyn Valeriy Vasyl Vasyliy Viacheslav Viktor Vitali Vladimir Vladyslav Volodymyr Vsevolod Vyacheslav Yarema Yaroslav Yegor Yevhen Yevheniy Yevhenniy Yozhef Yuri Yury Ablitarov Akopyan Aliyev Altman Ametov Andriyenko Antipov Antonov Artemenko Artiukh Arzhanov Ataev Atelkin Babenko Babych Bakharev Bal Balabanov Baltacha Bandrivskyy Bandura Bannikov Baranets Baranov Barylko Baryshnikov Bashakov Bazhan Bazilevich Belanov Bendovskyi Benio Berezhnoy Berezovchuk Berezovski Bessonov Bezhenar Bezotosnyy Biba Bidlovskyi Bidnenko Biletskyi Bilozir Bilyy Blavatskiy Blokhin Blyzniuk Bobal Bohatenko Bohush Boiko Bondarenko Borovyk Boychenko Boyko Braila Bredun Brovkin Bundash Buryak Buryi Butenko Byelik Byshovets Chanov Chapko Cheberyachko Chebotariv Checher Chepurnenko Cherednyk Cherniak Chesnakov Chizhevskiy Chopik Chopyk Chuchman Chuvayev Chychykоv Chygrynskiy Chyzhov Dankiv Danylovskyi Degtyaryov Demchenko Demyanenko Deonas Dević Didenko Dikan Diryavka Dmitrulin Dolhansky Donets Dopilka Dotsenko Dudnyk Dyachuk Esin Fedetskyy Fedorchuk Fedoriv Fedorov Fedosenko Fenin Ferents Feschuk Fomenko Fomin Forkash Furta Gabito Galyuza Gluschenko Golaydo Gorodov Gorshkov Goryainov Goryslavets Grachyov Grinchenko Gryshyn Grytsay Gulordava Habovda Hai Haidash Halchuk Havrushiv Hay Herasymyuk Hetsko Hilaziv Hladky Hluschenko Hodzyur Holodyuk Holopyorov Holovaniv Holovko Homenyuk Homin Hordienko Hordya Horetskyy Hramm Hranovsky Hrinchenko Hromiv Hryschenko Hryshko Hryshyn Hryszczenko Hrytsuk Humenyuk Hunchak Hurskyi Huseinov Husin Husyev Iachtchouk Iakovenko Ianchuk Illkiv Ilnytskyy Ischenko Ishmakov Istomin Ivanko Ivanov Ivaschenko Kachorenko Kalitvintsev Kalynychenko Kameniuka Kanchelskis Kandaurov Kanibolotskiy Kaplichny Karabin Karakevych Karamushka Kardash Karnoza Karpenko Karpov Kasyanov Kavatsiv Kaverin Kernozenko Kharchenko Khmelnitsky Khovbosha Khramtsov Khudobyak Khudzhamov Khudzik Kikot Kirlyk Kitsuta Kobin Kohut Kolotov Komarnitskyy Komarytskyi Kondratiuk Kondratyuk Koniushenko Konjkov Konoplianka Konovalov Kopil Kopolovets Kormiltsev Kornev Korobka Korobochka Korotetsky Korotetskyy Kortunyak Kosovsky Kostiuk Kostyshyn Kosyrin Koteliukh Kotenko Kots Koval Kovalchuk Kovalenko Kovalets Kovpak Kozachenko Kozak Kozban Kozhanov Kozinkevich Kozoriz Krakovsky Krasnoperov Kravchenko Kravets Kretov Kruglyak Kryvosheenko Kryvoshyyiv Kryvtsov Ksyonz Kucher Kucherenko Kucherevsky Kucherevskyy Kuchis Kulakov Kulchytsky Kurylov Kusliy Kutas Kutepov Kutsyaba Kuznetsov Kuzyk Kyrylov Lazarovich Lebedynets Leonenko Leonidov Leshchuk Levchenko Levitsky Levyga Litovchenko Liubarskyi Liuty Ljashko Loban Lobanovsky Loktionov Lugachyov Lutsenko Lutsyk Luzhny Lyopa Lysenko Lysytsky Lytovchenko Makarenko Makhnovskyy Maksymov Malygin Mamaev Mandzyuk Martynyuk Martyschuk Marushchak Matiukhin Matkevych Matvienko Matviyiv Matyazh Maximov Mazurenko Mazyar Medvediev Melaschenko Melnychenko Melnyk Mikhailichenko Mikhalik Milevskiy Milko Miroshnychenko Momot Monakhov Monaryov Morozov Morozyuk Mostovyy Muntyan Mykhailenko Mykulyak Mysiaylo Nad Nahirnyi Nazarenko Nazarov Nelin Nepohodov Nesmachniy Nevmyvaka Nikiforov Novak Novosyletskyy Oberemko Obrevko Odolskyy Olefir Olijnyk Oliynyk Omelchenko Onischenko Oprya Oshchypko Ostapenko Panas Panin Parfenov Pashaiv Pasulko Patyak Pavlenko Pavlov Perepadenko Perkhun Peskov Petrivskiy Pikhur Pilipchuk Pisanjuk Pivnenko Platon Pohorilyy Pokarynin Pokhlebaev Polovkov Poltavets Polyansky Polytilo Pomazun Ponomarev Popov Porkujan Postransky Postupalenko Predko Priyomov Prokopenko Protasov Protsyuk Pryvma Pshenychnykh Ptachyk Pyatov Rad Radchenko Raspopov Rats Rebenok Rebrov Reshko Reva Riabyy Rodevych Romanchuk Romanenko Romaniuk Rotan Rozgon Roziznanyy Rudakov Rudenko Rusol Rybalka Rybka Rykun Sabo Sachko Sahaydak Sakhnyuk Salenko Samborskyi Santrapinskykh Sapay Savin Seleznyov Selin Semenko Semochko Serdyuk Serebrennikov Serebryanikov Sernecki Shakhov Shandruk Shapovalov Sharan Shatalov Shcherbakov Shelayev Shelikhov Shepytskyy Shershun Shevchenko Shevchuk Shevelyukhin Shiryayev Shmakov Shmatovalenko Shopin Shovkovskiy Shpak Shpuk Shukhovtsev Shumeiko Shust Shutkov Shynder Shyschenko Sidelnikov Silyuk Siminin Siryk Skachenko Skepsky Skoba Skrypnyk Sloboda Slyusar Smalyukh Smirnov Snytko Sokolenko Sokolovsky Solyanyk Sosnikhin Spivak Stargorodsky Starostiak Startsev Stepanenko Stepanov Stoyan Stoyko Subochev Sukhotskyy Susloparov Sviderskiy Svorak Sykorskyy Symonenko Sytnyk Taran Tarasenko Tarhanchuk Teplyy Tistyk Tkachenko Tkachuk Tkatchuk Tlumak Tovt Troshkin Trusevich Trusevych Tselikh Tsimakuridze Tsveiba Tsygan Tsymbalar Turchaniv Tymchenko Tymoshchuk Tyshchenko Ussoltsev Valeyev Valyayev Vartsaba Vashchuk Vasyn Velychko Venglinsky Vernydub Virt Vishnevsky Vitoshynskyi Vladov Vlasenko Voinov Voloshyn Volovyk Vorobei Vorobey Vorobeyev Voronin Vovkodav Vyshnyak Vysotskyy Yakovenko Yaremchuk Yarmash Yarmolenko Yaroshenko Yaschenko Yashkin Yatsenko Yesin Yesyp Yevseyev Yevtushenko Yevtushok Yezerskiy Yuran Yurchyshyn Zakarlyuka Zakharevych Zavarov Zaychuk Zaynchkovskyy Zborovskyy Zeldi Zhdankov Zhenyukh Zherzh Zhuravliov Zinchenko Zorya Zotov Zozulya Zubov Zuyev bygfoot-2.3.2/support_files/names/player_names_netherlands.xml0000644000175000017500000014042311225071372023740 0ustar eliaselias Aafjes Aandewiel Abidallah Achterberg Adam Adelaar Adriaanse Advocaat Aerts Afellay Agterberg Agustien Aissati Akanan Alflen Alisic Altheer Amrabat Anderiesen Andriessen Anita Appel Arntz Atmodikoro Atteveld Baars Baart Babel Bachdim Bak Bakens Bakhuys Bakkal Bakkati Bakkers Bakx Balkestein Bandjar Barazite Barendregt Been Beerens Beeuwkes Bejas Bennaars Benneker Benschop Benson Berger Bergkamp Bergmans Beukeboom Biekman Bieshaar Biljard Blankemeijer Blind Blinker Blom Boateng Bobson Bodde Boer Boere Boerebach Boersma Bogarde Boittin Bolland Bon Bonfrere Bonzel Boogers Boomsma Boots Booy Bosch Boschker Boskamp Bosman Bosschaart Bosschart Bosselaar Bosveld Bosvelt Bosz Bouaouzan Bouchiba Boulahrouz Bouma Bouman Boussoufa Boutahar Boutmy Bouvy Bouwens Bouwman Bouwmeester Bovenberg Braafheid Braber Brama Brandts Brard Breuer Breukers Bridji Brinkhoff Brinkman Brock Brocken Broekmeulen Broerse Brom Brood Brookhuis Brouwers Bruggink Bruinier Bruins Bruns Budding Buijs Buikema Buitenweg Bulder Bulters Bus Buskermolen Busscher Bussers Cairo Calabro Campioni Carlier Cas Castelen Claassen Clavan Cocu Coerver Colin Conradi Contant Coolen Cornelisse Cruden Cruijf Cruijff Cul Daal Damen Davids de Bie de Boer de Boer-Rookhuizen de Bree de Bruin de Bruyn Kops de Cler de Freitas de Geer de Gier de Goeij de Graaf de Graas de Groot de Guzmán de Haan de Haas de Harder de Jong de Keijzer de Kock de Koning de Korte de Korver de Lange de Leeuw de Natris de Neve de Nooijer de Ridder de Ruijter de Ruiter de Valk de Visscher de Vogt de Vos de Vries de Vroet de Waard de Winter de Wit de Wolf de Zeeuw de Zwaan Decheiver Degenaar Dekker Demir Demouge den Bieman den Bleijker den Houdijker den Ouden Dengering Dénis Denneboom Deraz Derks Derksen Derveld Diba Diete Dijkhuizen Dijkstra Dillen Dingsdag Dirksen Dissels Doedee Doesburg Donald Dongelmans Donk Donker Donkers Dons Dorjee Dorrestein Dost Douglas Dozy Drent Drenthe Drijver Dros Drost Dudink Dusbaba Duut Ebskamp Eijkelkamp Ekelschot Elfring Elia Elshot Emanuelson Emnes Engelaar Esajas Evers Everse Faber Fachtali Feith Feli Fellinga Fer Fitters Fledderus Fleuren Fortgens Francoi Fränkel Fransen Fräser Friedeman Fuchs Galjé Geels Gentenaar George Gerritse Gerritsen Gilissen Gillhaus Gisolf Göbel Goes Gommans Goodings Goossens Gorré Gorseling Gorter Gosens Goulet Goulooze Graafland Graef Gries Griever Griffioen Grim Groen Groenendijk Groeningen Groosjohan Groot Grot Gudde Gullit Haak Haan Haar Haatrecht Hadouir Hagary Hamberg Hameren Hamming Hansum Hasselbaink Hauhs Havenaar Heijblok Heijting Heitinga Helder Hellings Hendriks Hermans Hersi Hertog Hesp Hesselink Hessels Heubach Heus Heusschem Hiariej Hiddink Hiele Hilkhuysen Höcher Hoekema Hoekstra Hofkens Hofland Hofman Hofs Hofstede Hogeboom Hogelan Hogenes Holla Hollink Holman Holverda Hoogenboom Hoogendorp Hoogervorst Hoogeveen Hoogm Hoogma Hooijboer Hooiveld Hop Hörburger Horsten Horsthuis Houtman Houwaart Houwert Hovenkamp Huiden Huiskamp Huisman Huistra Hulshoff Huntelaar Immers Ingewaarde Inia Jacobs Jaliens Jalink Janmaat Jans Janse Jansen Janssen Janssens Jardim Jenner Jenniskens Joemankhan Jol Jong-a-Pin Jongen Jonkers Joppen Juliana Kaiser Kalkhuis Kastrikom Kattevider Keizer Keizerweerd Keller Kempen Kerkum Kerste Kessler Keur Kieft Kilic Kist Klaassens Kleizen Kleton Klijnjan Klomp Klopstra Kluivert Knel Knol Knoo Knopper Koejoe Koeman Koen Koenders Koenen Koevermans Kogeldans Kok Kokmeijer Kolder Kolk Konterman Kooijman Kooiman Koolwijk Koonings Koopmans Koopmanschap Koot Kooten Korf Korrel Korsten Koster Kosterma Kousemaker Kouwenberg Kraaijkamp Kraak Kraay Kramer Kreek Kreijermaat Krijgh Krijnen Kroes Krol Kromkamp Kruiswijk Kruiver Krul Kruys Krüzen Kuijer Kuijper Kuijpers Kuipers Kum Kurver Kuster Kuyt Kwakman Kwaks la Chapelle la Ling Lamey Lammers Landzaat Langen Langenhuijzen Lans Lanzaat Laseroms le Noble Leenders Leeuwin Leiwakabessy Lens Lenstra Levels Levolger Liebrechts Lindenbergh Linders Linger Linskens Linssen Liotart Lodeweges Lodewijks Loeffen Logman Lok Lokhoff Lommers Loohuis Looms Loovens Lotsy Lubse Lucius Luhukay Luirink Lurling Lutjens Luyckx Maachi Maas Maaskant Maduro Makaay Manders Mansveld Marcellis Marijt Massy Mastwijk Mathijsen Mathijssen Matthijs Medunjanin Meerdink Meerman Meeuwis Meijer Melchiot Melsen Mendes Menzo Meric Metgod Meulens Meutstege Michels Mikkers Miltenburg Moens Molenaar Molenkamp Molhoek Mols Monteny Moreno Moulijn Muhamadu Mühren Muis Mulder Muller Mundt Munnich Musampa Mustapha Naciri Nandlal Nankman Nanninga Neeskens Nieuwendaal Nieuwenhuizen Nieuwesteeg Nijholt Nijhuis Nijland Nillesen Nooitmeer Nullo Numan Olfers Ooft Ooijer Oost Oosterbosch Oosterlaak Oosterlaar Oosterveer Oostveen Opdam Otten Otto Oude Kamphuis Oudshoor Oulida Overmars Overtoom Paauwe Pannekoek Pastoor Pasveer Paulen Peek Peeters Pel Penders Pennings Pesch Peters Pieters Pietersma Pijl Pijnacker Pijnenburg Pijpers Piqué Pit Platje Plomp Pluim Poelhekke Poepon Polak Ponk Poortvliet Postma Pot Pothuizen Pouw Powel Prent Prins Promes Pryor Rajcomar Redan Reekers Reeman Regtop Reinhard Reiziger Reniers Renkens Rensenbrink Rep Resodihardjo Ressel Reuser Richardson Ricksen Riedewald Rigters Rijf Rijkaard Rijnders Rijsbergen Rijvers Rikken Rimkus Robben Rodie Roelofsen Roeters Rofferse Rogier Rojer Romeijn Rompelberg Rongen Roorda Rothman Roy Rudge Ruisch Ruitenbeek Ruiter Rutjes Rutten Saeijs Sarpong Sas Schaars Schaecken Schaik Schapendonk Scharmin Scheepers Scheffers Scheimann Schellekens Schenk Schenkel Schet Schevikhoven Schilder Schinkels Schneider Schoenaker Schoenmaker Scholman Scholten Schoonderbeek Schoonderwoerd Schoordijk Schouten Schreuder Schrijvers Schuiteman Schulp Schut Schuurman Schwiebbe Seedorf Segers Seip Senden Sepp Sibon Sibum Sickmann Sikora Silooy Slesik Slijngard Slootjes Slory Slot Sluijs Sluijter Smeets Smit Smulders Sneekes Sneijder Snelders Snethlage Sno Snoei Snoek Snoyl Sol Spithoven Spliet Spoelstra Spoorenburg Sprankenis Sprengers Sprockel Staa Stafleu Stals Stam Stappershoef Steeman Steenbergen Steiger Steijn Steinmann Stekelenburg Stender Steur Stevens Stienstra Stoffelen Stoffels Stom Straver Strik Stroeve Struik Sturing Sturkenboom Stuy Suurbier Suvrijn Swart Swinkels Tahamata Takak Talan Tamerus Tammer Tap Taument Telkamp ten Cate ten Heuvel ten Rouwelaar ter Heide ter Horst Terol Tetteroo Thijssen Thomassen Thomée Tiendalli Timisela Timmer Tinnemans Tonen Treijtel Trompert Troost Trost Trustfull Tusveld Tuyp Ubink Uhlenbeek Uiterloo Uneken Valckx Valentijn Valk van Aerle van Amsterdam van Ankeren van As van Baar van Barschot van Basten van Beest van Bennekom van Benschop van Beukering van Beveren van Bezouw van Bokhoven van Bommel van Boxtel van Breda van Bree van Bremen van Breukelen van Bronckhorst van Bruggen van Brussel van Bueren van Buren van Burik van Buuren van Daele van Dam van de Broek van de Graaf van de Haar van de Kamp van de Kerkhof van de Korput van de Laak van de Meent van de Nobelen van de Ven van de Worp van Deinsen van den Ban van den Berg van den Bergh van den Berk van den Boogaard van den Boogaart van den Boomen van den Broek van den Brom van den Eijnden van den Engel van den Ham van den Hengel van den Heuvel van den Hove van den Hoven van den Jakobus van den Ouweland van den Tempel van den Wijngaar van der Ark van der Bor van der Doelen van der Gaag van der Geer van der Gijp van der Gouw van der Gun van der Hart van der Heide van der Heijden van der Hoorn van der Kemenade van der Kroo van der Kuijlen van der Kuil van der Laan van der Leegte van der Lem van der Linden van der Locht van der Lom van der Loo van der Louw van der Luer van der Meulen van der Meyde van der Nagel van der Oord van der Ree van der Sar van der Schaaf van der Sluis van der Steegt van der Struijk van der Vaart van der Vegt van der Velde van der Velden van der Vliet van der Vlis van der Vlist van der Werf van der Wiel van der Wijs van der Wilde van der Wurff van Deursen van Diemen van Diepenbeek van Dieren van Diermen van Dij van Dijk van Dinter van Dooren van Doorn van Dorpel van Dort van Driel van Drogenbroek van Duijnhoven van Duin van Duivenbode van Eck van Eijden van Eijs van Emmerik van Engelen van Erp van Es van Esch van Gaal van Galen van Gastel van Geel van Gessel van Gobbel van Grinsven van Guldener van Haaren van Haeften van Halle van Hanegem van Hazendonk van Heel van Hemert van Herpen van Heuckelum van Heusden van Heuzen van Hie van Hiene van Hintum van Homoet van Hooijdonk van Ierssel van Ingen van Kasteren van Kats van Kesteren van Kol van Koten van Kouwen van Kraay van Kuijk van la Parra van Leeuwe van Lent van Linge van Lint van Loen van Loo van Maaswijk van Male van Marwijk van Meel van Melis van Mensvoort van Mierlo van Mosselveld van Mourik van Nes van Nieuwenhuijzen van Nieuwstadt van Nistelrooij van Oort van Oostrum van Orsouw van Overbeek van Panwijk van Persie van Pinxteren van Polen van Rappard van Rijn van Rooijen van Rooyen van Rossum van Santen van Schai van Son van Spanjen van Stee van Steensel van Steijn van Stuivenberg van 't Schip van Tiggelen van Til van Utrecht van Vliet van Vossen van Wegen van Werkhoven van Wijck van Wijk van Woerden van Wolfswinkel van Wonderen van Zaanen van Zelst van Zwam Vanenburg Vanwiggen Varkevisser Veenstra Veldhoen Veldhuizen Veldman Velthuizen Vennegoor Venneker Vente Verbeek Verberne Verdam Verdellen Verdonk Verèl Vergee Verhaegh Verheul Verhoek Verkleij Verlaat Verlegh Vermeent Vermeer Vermeulen Verschoor Versteeg Vervat Verveer Ververs Verweij Vierklau Vijent Vincken Vink Viscaal Visser Vlaar Vloet Vlooswijk Vlug Voermans von Heijden Vonk Voorn Voorneveld Vorm Vormer Vorthoren Vos Voskamp Voskuyl Vrauwdeunt Vreijsen Vrolijk Wahlen Waller Wammes Wapenaar Waslander Waterink Waterman Waterreus Weber Weeda Weerdenburg Weijman Weisz Welcker Wellenberg Welling Welters Werkhoven Wery Westbroek Westerhof Westerveld Wetzel Wevers Wiekens Wielaert Wiersma Wijks Wijma Wijnaldum Wijnhard Wijnstekers Wijnveldt Wildschut Wilkes Willems Willemsen Wilnis Winter Wintjens Wirds Wisgerhof Wisman Wit Witschge Witteman Wooter Worm Wotte Wouters Wouterse Zaal Zeefuik Zenden Zijler Zijm Zoetebier Zomer Zondervan Zonneveld Zuiderveld Zuiverloon Zuurman Zuydervliet Zwaanswijk Zwambag Zwamborn Zwarthoed Zwinkels Zwol Aad Aart Abe Ad Adnan Adri Adriaan Adrie Alfons Alfred Alje Andro Anduele Andy Antoine Anton Arie Ariën Arjan Arjen Armand Arne Arnie Arno Arnold Arturo Barry Bart Bas Beb Ben Ber Bernard Berry Bert Bertie Bert-Jan Bertus Björn Bob Bobby Boelie Bok Boris Boudewijn Bram Brayton Caius Calvin Cedric Cees Cesar Charlie Chris Clarence Clyde Co Coen Conraad Constant Constantijn Cor Daan Damiën Daniel Danilo Daryl Dave Dean Demy Dennis Dick Didier Dido Diederick Dion Dirk Dolf Dominique Donny Dorus Ed Eddy Edgar Edu Edwin Ellery Emiel Erik Ernest Ernie Erwin Evander Evert Faas Fabian Fernando Ferrie Ferry Florian Foeke Frans Fred Frits Gaston Gé Geert Gejus Género George Gerard Gerrie Gerrit Gert Gertjan Gianni Gijs Glenn Graeme Gregory Guido Guillano Gus Guus Han Hans Haris Harrie Harry Harvey Hedwiges Heinz Hendrie Hendrik Henk Hennie Henry Herman Hermen Huub Huug Ibrahim Irfan Ivo Iwan Jaap Jac Jack Jan Jan-Arie Jan-Peter Jaques Jarno Jasper Jean-Paul Jeffrey Jelle Jens Jeremain Jeroen Jerry Jesse Jim Jo Joep Joey Johan John Johnny Jonathan Joop Joost Jord Jordens Jordy Jörg Joris Jos Jules Julian Jürgen Juriaan Jurrie Karel Karim Kees Keje Kemy Kenneth Kevin Kew Klaas Koen Kurt Lambert Lars Laurens Leen Leo Leonard Leroy Lorenzo Louis Luc Lucas Lucien Luuk Maarten Maikel Marc Marcel Marco Marinus Mario Mark Mark-Jan Martien Martijn Martin Marvin Mathieu Matthijs Maurice Max Menno Michael Michel Miel Mike Nabil Nicky Nico Nico-Jan Niels Nordin Noud Olaf Orlando Ortwin Oscar Pascal Patrick Paul Pedro Peter Peter-Jan Phillip Pierre Piet Pieter Pim Prince Quido Quinti Radjin Rafael Raimond Ralph Ramon Randy Ray Raymon Raymond Regi Rein Reinier Remco Remko René Resit Ricardo Richard Ricky Rien Rinus Rob Robbie Robbin Robert Robin Rogier Romano Romeo Ron Ronald Ronnie Rowin Royston Ruben Rudy Rutger Ruud Ryan Sam Samuel Sander Santi Sebastiaan Serge Sieb Siem Sieme Sjaak Sjef Sjors Sonny Stan Stanley Steef Stef Stefan Stefano Sten Steve Stijn Sven Tarik Theo Thijs Thomas Tim Tinus Tobias Toin Tom Ton Tonny Ulrich Victor Vincent Vurnon Wendel Wesley Wiel Wilfred Wilfried Wiljan Wilko Willem William Willy Wilmer Wim Winston Wout Wouter bygfoot-2.3.2/support_files/names/player_names_romania.xml0000644000175000017500000005166011225071372023063 0ustar eliaselias Airinei Airoaie Apopi ApopuÅ£oaiei Albu Alexa Amariei AndrieÅŸ AndriÅŸan Andronache Andronic Antonovici Aparaschivei Apetrei Apostol Agaton Andon Babiuc Baicu Bălan Barbă BăiÅ£an Bejenariu Bârsan Blaga Boca Bolohan Buliga Bursuc Cazacu Câmpan Călinescu Cerlincă Chiriac Chirilă Ciobanu Ciornei Ciubotariu Constantinescu Cozma CreÅ£u Cristea Chilian Chiriachi Corvin Cosma Cozma Crăciun Dănciulescu Dascălu Dănilă Doroftei Drăgoi Darie David Dumitrescu Dumitru DumitraÅŸ Enache Fernea Filip Florea Filaret Floran Florean Florian Gavril Goia Goian Grosu Galaction Gherasim Giurgiu Goran Gruia Iacoban Ignat Ionescu Irimescu Irimia Iafet Iancu IlaÅŸcu IlieÅŸ Ilioiu Iorga Iuga Hagi Lazăr LăcătuÅŸ Leonte Luca Lungu LupaÅŸcu Lupu Lucaci Macovei Macoveiciuc Maftei Maga Marcu Marica Matei Maxim Miron Manea MarÅ£ian MihuÅ£ Moldovan MureÅŸan Nedelcu Nicoară Neagu Neaga Olariu Onofrei Oghenie Pancu Pavel Pop Popa Popescu PopeÅŸti Popovici Pamfil Roman Roman RoÅŸu Rotariu Rusu Sandu Sava Senciuc Spoială Samoilă Simedrea Simion SomeÅŸan TămaÅŸ Toma Tănase Tcaciuc Timofte Tofan Toma Turcu Å¢urcanu Ungureanu Ursu Udrea Udriţă Vadim Zaharia Abel Acachie Achilă Adalbert Adam Adamin Adamus AdămuÅ£ Adelman Adin AdiÅŸor Adrian Afrodisie Agachi Agamemnon Agapie Agapion Agapit Aladin Aldo Alecsandru Alecu Alex Alexandru Alexie Alger Algernon Alin Alipie Amadeus Amfian Amilian Anatolie Andrei Andreina Andrica AndrieÅŸ Andronic Andi Andru Angel Anghel Antiohie Antipa Anton Antonel Antonie Antonius Antuan Antul Apolinar Apollo Apostol Arcadie Aristarh Aristide Aristocleu Armin Arsenie Arsenio Aser Aster Atanasie Augustin Augustus Aurel Aurelian Aureliu Avraam Avram Baraba Barbu Barnaba Bartolomeu Bazil Belzebut Benedict Beniamin> Bernard Bogdan Bogumil Bonifaciu Boris BrăduÅ£ Bruno Brutus Călin Caius Calin Calinic Caliope Caliopie Calipso Calist Calistrat CalistraÅ£ie Calota Camil Carl Carol Cârstea Casian Cătălin Cazimir Celestin Celestiu Cesar Cezar Chesarie Chesariu Chiprian Chiril Cicero Ciprian Claudian Claudie Claudiu Clement Clementin Cleopa Codin Codrat Codrin CodruÅ£ Columban Constant Constantin Coriolan Cornel Corneliu Cosma Cosmat Cosmin Costache Costea Costel Costin Crescent Cristache Cristian Cristofor Culai Cusmin Dacian Damian Dan Dani Daniel Daniil Darian Darius David Decebal Demian Desideriu Dezideriu Dima Dimian Dimitrie Dinica Dinu Diodor Dionis Dionisie Dioscur Doma Dominic DomiÅ£ian Donald Dorel Dorian Dorin Dorotei Doru Dragomir DragoÅŸ Dumitru Edmund Eduard Efraim Eftimie Egmont Elefterie Eliade Elie ElieÅŸ Emanuel Emeric Emil Emilian Enache Ene Eric Erman Ermanu ErmenÅ£iu Ernest Esaia Estebiu Etan Eterie Eufrasie Eufrosin Eugen Eugeniu Eusebie Eusebiu EustaÅ£iu EustraÅ£ie Evghenie Ezechiel Fabian Fabiu Fabriciu Faust Felician Felix Fenicius Ferdinand Fidel Filimon Filip Filipin Filipon Flavian Flaviu Flavius Florentin Florin Francisc Frederic Fredi Gabriel Gaiu Gaius Gala GaÅŸpar Gaston Gavril Gavriil Gavrilă Gelu Geo George Gerhard Ghelasie Gheorghe Gheorghiţă Gherghe Gherman GheronÅ£ie Gică Gigel Gligor Gogu Gordie GraÅ£ian Gregorian Gregoriu Grig Grigoran Grigore Grigorie Gustav Gusti Hanibal Haralambie Henric Herman Honorius HoraÅ£iu Horea Horia Hristache Hristea Hristofor Hubertus Iacob Iancu Idonel Ieremia IgnaÅ£ie IgnaÅ£iu IgnaÅ£ius Ilarie Ilarion Ilian Ilie IliuÅ£a InocenÅ£iu Ioachim Ioan Ion Ionatan IonuÅ£ Iosif Ipatie Isidor Ismael Iulian Iuliu Iulius Iustin Ivan Izidor Ladislau Lambert Larie Larion LaurenÅ£iu Laurian Leopold Liberiu Lie Lisandru Lisandu Liviu Liviuţă Lorand Luca Luchian Luci Lucian Ludovic Macabeu Macarie Macarius Mădălin Malachie Manase Manole Manuel Marc Marcel Marcu Marcus Marian Marin Marinel Marius Matei MauriÅ£iu Maxim Maximilian Medard Melchior Mihai Mihăiţă Mihnea Mircea Mirel Miron Mitru Mugur Mitică Nae Naie Nandor Napoleon Narcis Natalie Nectarie Neculai Nelu Nicodim Nicolae Nicula Nilă Nistor Norbert Octav Octavian Odiseu Olimp Olimpiu Oliver Onoriu Oreste Orion Oscar Osman Ovidiu Paladie Pamfil Paraschiv Pardalian Paris Pascal Patric Paul Pavel Petre Petronel Petroniu Petru PetruÅ£ Pius Pompiliu Radu Rafael Ramon RareÅŸ Raul Răzvan Remus Robert Roland Romeo Rufus Rupert Sabin Salvator Samuel Samuilă Sandu Saul Sebi Sebastian Septimiu Åžerban Sergiu Sevastian Sever Silviu Simeon Simion Simon Sirius Sofronie Solomon Sorel Sorin Spiridon Stanislav Åžtefan Stefăniţă Åžtefănel Stelian Teoctist Teodor Teodosie Teofan TerenÅ£ie Timotei Titi Titus Traian Tristan Tudor Tuilus Ulise Vadim Valentin Valerian Valeriu Vali Vasile Vasilisc Veroniu VicenÅ£iu Victor Vili VincenÅ£iu Viorel Virgil Visarion Vitalis Vlad Vladimir Vladislav Vlasie Vulcan Zaharia Zaharie Zaheu Zamfir bygfoot-2.3.2/support_files/names/player_names_norway.xml0000644000175000017500000007204311225071372022752 0ustar eliaselias Agdestein Ahlsen Akerholt Akerø Aksland Albertsen Alme Alvestad Amundsen Andersen Andreassen Andresen Angeltveit Apeland Arnesen Askeland Askildsen Aslaksen Aune Aunet Austlid Austnes Bakke Bakkejord Bang Barmen Basma Bauck Belsvik Berg Bergdølmo Berger Bergersen Berget Bergsager Berland Berntsen Berre Berstad Bertelsen Bertheussen Bing Birkedal Birkeland Birkelund Bjarmann Bjerke Bjerkaas Bjørdal Bjørklund Bjørkøy Bjørnebye Bjørnø Bjøro Bohinen Bolthof Borch Borge Borgen Borgersen Bornø Bottolfsen Bragstad Brakstad Braserud Bratseth Brattbakk Bredesen Bredholt Brekke Brendesæter Brenne Brennløkken Brink Brix Brommeland BrurÃ¥s Bruserud Brustad Bruaas Brynildsen Brækkan BrÃ¥ten Braaten Byhring Børufsen Baardsen Dahl Dahlen Dahlum Dalaker Danielsen Davidsen Deila Digernes Due Dundas Dybdahl Dybdal Dybvik Dyrhaug Dørheim Daasvatn Edvardsen Eggen Eide Eikeskog Eikli Eikrem Eiterjord Ekeberg Elgaaen Ellefsen Enerly Engedal Engelsgjerd Engen Engevik Engstrøm Eriksen Erlandsen Ersdal Erstad ErtsÃ¥s Ertzeid Ervik Eskeland Espedal Evjen Fadnes FagerÃ¥s Farestveit Farkvam Farsund Fedje Fevang Fikkan Finstad Fiskerstrand Fjelddalen Fjereide Fjærestad Fjørtoft Fladmark Flakstad FlatÃ¥s Fleime Flem Flo Fodstad Fordelsen Forren Fossen Frantzen Fredheim Fredriksen Friberg Frogner Fruseth Frydenlund Fuglestad Fuglset Furmyr Føyen GalÃ¥en Gausdal George Gerhardsen Gerson Gjedrem Gjemmestad Gjerstad Gjertsen Gjørtz Gran Granaas Grindheim GrodÃ¥s Gromstad Grorud Grøndalen Grønsund Grøtteland Gule Gullhaug Gulsvik Gundersen Gunnerød Gunnestad Guntveit GÃ¥skjønnli Gaasvik Hafstad Haga Hagen Halle Hallgren Halvorsen Hammer Hamoud Hamre Hangeland Hannisdal Hansen Hanssen Hanstveit Haraldsen Hareide Harestad Hasle HasselgÃ¥rd Hasund Hatle Haugan Haugen Hauger Haugland Haugsgjerd Haugstvedt Haukanes Havre Hedenstad Hegdahl Hegerberg Hegge Heggem Heggestad Heidenstrøm Heiestad Heimkjær Heimli Helgesen Helland Helledal Helmersen Helstad Hennum Henriksen Herberg Herlovsen Hermansen Hestad Hjelde Hjelmeland Hjelseng Hjort Hjørun Hoel Hoff Hofstædter Hoftun Hollund Holm Holmberg Holmemo Holmen Holmsen Holmvik Holt Holtan Hope Horn Horndalen Horpestad Hoseth Hovstøl HoÃ¥s Hugsted Hulsker Huseklepp Hustveit Hvalvik Hægeland Hæstad Høgalmen Høgenhaug Høgli Høgmo Høiby Høiland Høstmark Høsøien Høyem Høyland Høyvik HÃ¥land Haavik Ildstad Imingen Indahl Ingebrigtsen Isaksen Iversen Jacobsen Jakobsen Jalland Jamtfall Jarstein Jensen Johannessen Johansen Johnsen Jordheim Jortun Juve Jørstad Kalland Kallstad Kalvenes Kalvik Kalvø Kannelønning Kanstad Karlsen Kaspersen Kausland Kielland Kippe Kjølner Klakken Kleiven Klock Klokseth Knarlag Knarvik Knudsen Knutli Koffeld Kojedal Kolstad Kostøl Krefting Kristiansen Kristoffersen Kroghdal Kroken Kvalheim Kvamme Kvammen Kvande Kvarme Kvia Kvisle Kvisvik Kvæfjord Kydland Kyllingstad KÃ¥fjord Kaasa Lamøy Landro Landaas Lange Langlo Langnes Langslet Langøen Larsen Laukeland Laukholm Lea Leknes Lem Leonardsen Li Lie Lillebakken Lillebø Lillelien Lind Lindbæk Ludvigsen Ludviksen Lund Lundekvam Lundgaard Lydersen Lyng Lyshaugen Lødemel Løken Løkken Lønning Løseth Løvhaug Løvseth Madsen Magnus Maltun Martinsen Mathiassen Mathisen Melhus Mellem Meløy MelÃ¥s Mevik Michelsen Midtgaard Midtthun Mikkelsen Minde Mjelde Mjølsnes Mjøvik Mo Moen Moldskred Moljord Monsen Mork Motland Muri Myhre Mykland Myklebust Myren Myrvold Møvik Nankman Natvig Nesbø Nevland Nikolaisen Nilsen Nordeng Nordenstrøm Nordhagen Nordheim Nordli Nordtvedt Nordtveit Nordvik Normann Normark Nornes Nygaard Nyhus Nystuen Næss Nøttestad NÃ¥rden Oftedal Ohr Olaisen Olsen Onstad Opdal Ophaug Opsahl Osvold Otterbekk Ottestad Parkstad Paulsen Paus Pedersen Peikli Pettersen Presberg Prestø Prøven Rambekk Ramberg Rannekleiv Refvik Reginiussen Reiersen Reinsborg Rekdal Rekve Riibe Riise Rindarøy Ringnes Ringvold Rise Riseth Risholt Rogne Rognli Rognstad Rossbach Rotevatn Rudi Rugland Rui Runar Rushfeldt Rustadstuen Rustøy Ruud Røberg Rødsten Røed Røn Rønnes Rønning Rønningen Røte Røvde Raaholt RÃ¥ket Raaness RÃ¥stad Sagebakken Saghaug Sagvaag Sakariassen Salbu Samuelsen Sand Sande Sandem Sandnes Sandtrø Sanne Sannes Schau Seemann Segelvik Selle Selsvik Semb Simonsen Singsdal Singstad SirevÃ¥g Sjursen Sjursæther Skammelsrud Skard Skarpnes Skarpodde Skarsfjord Skjegstad Skjelbred Skjæveland Skjønsberg Skog Skogerbø Skogheim Skoglund Skou SkrÃ¥ning Skumsnes Skutle SkÃ¥r Slagnes Sleipnes Snildal Solbakken Solberg Solem Solli Sollied Solskjær Soltvedt Solvoll Soma Sondresen Spjelkavik Spurkeland Stadheim Stangnes Staupe Stavnem Stavnum Stavrum Steen Steenslid Steffensen Steinshamn Steinsland Stensli Stensrud Stensaas Stenvoll Stokkeland Storbæk Stordahl Storesund Storflor Storheil Storm Storvik Strand Strande Strandli Stray Strætkvern Strøm Strømme Strømsheim Strømstad Strømsvik Stubsveen Sturød Støvern Sundby Sunde Sundgot Svare Svenning Svenssen Sæbøe Sæternes Sæther Sætran Søbye SøgÃ¥rd Sølberg Sørensen Sørli Sørloth Sørum Talberg Tallaksrud Teige Tennebø Tessem Tettey Theting Thingbø Thorbjørnsen Thoresen Thorsen Thorstvedt Thun Tjelta Tjugen Tollefsen Torsvik Tovan Trollebø Tronseth Tronstad Tronvold Trydal Traaseth Tvedt Tveit Tømmerdal Tømmernes Tørseth Udjus Ueland Ulleberg Ulvang Ulven Urdal Utne Valbekmo Valset Vangli Vassbakk Vatn Veggeland Veierød Vervik Vestmo Vik Vikernes Vikstøl Vindheim Vold Walde Walltin Warholm Wassberg Werni Wettergreen Weydahl Wiig Wik Wikan Winje Winsnes Wæhler Wærnes Waagø Waal Yndestad Ystaas Æsøy Ødegaard Øian Økland Ørsal Østby Østenstad Øverby Aare Aarsheim Aarøy Aas Aasarød Aase Aasen Aksel Alexander Alf Alf-Inge Anders André Andreas Ane Are Arild Arne Arvid Asbjørn Aslak Atle Audun Bendik Bent Bernt Birger Birk Bjarne Bjarte Bjørge Bjørn Bjørnar Brede Børre BÃ¥rd Christer Christian Claus Dag Dagfinn Dan Daniel Egil Einar Eirik Eivind Erik Erlend Erling Eskild Espen Even Filip Finn Frank Freddy Fredrik Frode Gabriel Gaute Geir Gisle Gjermund Gunnar Gøran Hallvar Harald Helge Henning Henrik Herman HÃ¥kon HÃ¥vard Idar Inge Ingvald Ingvar Isak Ivar Jan Egil Jan Erik Jan Kristian Jan Ove Jan Jarle Jesper Jo Joachim Joakim Johan John Jon Inge Jon Jonas Jonny Jostein Jørgen Jørn Kai Erik Kai Karl Karsten Kenneth Kim Kjartan Kjell Kjetil Knut Kristian Kristofer Kristoffer Kurt KÃ¥re Lars Lasse Leif Magnar Magne Magnus Marcus Marius Markus Martin Mathias Mikkel Mons Morten Nikolai Nils Odd Oddleif Oddmund Ola Olav Ole Kristian Ole Martin Ole Otto Peder Per Egil Per Petter Preben PÃ¥l Ragnar Ragnvald Rasmus Raymond Reidar Remi Roald Roar Roger Rolf Ronny Roy Runar Rune Sigurd Simen Sindre Snorre Steffen Steinar Stian Stig Inge Stig Sture Sturle StÃ¥le Svein Sverre Tarjei Terje Thomas Thorstein Tom Tommy Tor Arne Tor Torbjørn Torfinn Torgeir Torger Torjus Torkild Tormod Torstein Trond Erik Trond Truls Tryggve Trygve Trym Ulf Vegar Vegard Vemund Verner Vetle Vidar Viggo Werner Yngve Øivind Ørjan Øystein Øyvind Ã…ge Ã…smund bygfoot-2.3.2/support_files/names/player_names_france.xml0000644000175000017500000032573011225071372022675 0ustar eliaselias Abardonado Abbes Abdou Abdoulaye Abdoun Abeille Abicher Abidal Abou About Abrassart Abravanel Abriel Acapandie Acedo Acloque Adam Adnane Adolphe Adonkor Afanou Agarand Agathe Agboh Agostini Agouazi Aguilar Ahamada Aït-Alia Akakpo Akrour Alacoque Alard Alarie Alari Albarn Albertini Albert Albouraie Alcazar Alembert Alexandre Algerino Aliadière Alibhai Alicarte Allain Allaire Allard Allaro Allart Allemane Alloncle Allou Allut Alonzo Alperin Alphand Alphonse Alpin Althape Althusser Amable Amalric Amann Ambre Ambrus Amelineau Amelotte Amezza Amiez Amiot Amisse Amoros Amoudry Ampere Anargyros Ancel Ancelot Anciaux Anctil Andre Andreu Andrieux Andrillon Anelka Angers Angibert Angloma Angrand Anigo Anis Anouilh Ansarel Anselin Antoine Antonetti Anziani Anzité Arata Arbelet Arbez Arcand Archambault Archambeaux Arcouette Ardant Ardisson Ardouin Arel Arguelles Argyroudis Arlet Armand Arnaud Arnolin Arphexad Arpin Arpinon Arquette Arquiliere Arrablay Arrau Arribagé Arribart Arribas Arrieu Arron Arsenault Arsène Artelesa Artur Arus Arzel Asquebord Assami Asselineau Asselin Assouad Assous Asti Aston Astruc Asuar Athlonen Aubameyang Aubarat Aube Aubeneau Auber Aubertin Aubert Aubey Aubin Aubon Aubour Aubry Aubut Aucagne Aucoin Audard Audel Audet Audette Audiard Audibert Audy Aufair Aufort Augendre Auger Augier Auneil Auradou Aurelien Aurenche Auriac Auric Auriol Autain Autellet Authie Authier Autotte Auvray Auzias Avinel Ayache Ayasse Ayité Baal Babineau Babin Bacha Bachelin Bacquet Badeau Bade Badiane Badinter Badre Baer Baeza Bagard Baghdad Baguet Baheux Baijot Baillarge Baillargeon Baille Baillieu Baillot Baills Bailly Baix Bakari Bakar Bakayogo Balandier Balanque Ba Baldé Balibar Ballanger Ballard Ballerat Balleroy Ballou Ballu Balmont Baltard Baluze Bamogo Banagui Bancarel Bangue Bannier Banquet Bantegnie Banville Baradji Baraffe Barafundle Baratelli Barat Baratte Baratto Barbe Barbier Barbillon Barbosa Barbusse Bard Bardon Bardot Bardou Bareau Barette Bariani Baribeau Baril Baronchelli Baron Barrau Barreau Barré Barres Barret Barrette Barrielle Barrier Barthe Barthelemy Barthelin Barthez Bartholdy Barthou Bartolone Barul Bary Baseya Bas Bassiere Bassila Basso Bassong Bastiani Bastide Bastien Batejat Batelli Bathenay Baticle Batiffol Batlles Batmale Bats Battaia Batteux Battiston Baudart Baudelaire Baudet Baudouin Baudry Baumont Baup Baussant Bautain Bax Baysse Bazile Bazille Bazinet Bazire Beauchamp Beauchaud Beauchemin Beauchesne Beaucourt Beaudet Beaudin Beaudoin Beaudry Beaufevre Beaulieu Beaumarchais Beaumont Beaupre Beauregard Beausejour Beausoleil Beauvallet Bechard Béda Bedard Bedia Bedok Bedrossian Begeorgi Begin Behat Behi Bek Bekrar Belair Beland Belanger Belaud Belbachir Belhadj Belhocine Bellaïd Bellal Bellavance Bellego Bellemarre Bellerose Bellion Bellone Bellot Belloumou Belson Beltramini Belzile Benalouane Benard Ben Arfa Benayen Benbarek Ben Bouali Bendaha Benegui Bengelloun Benhamida Benkoczy Benoit Bensoussan Ben Tifour Benvegnu Benzema Béranger Berberian Berdoll Berenguer Bereta Berger Bergeron Bergeroo Bergougnoux Béria Beriot Bernardet Bernard Bernier Berson Bertay Berthan Berthelin Berthelot Berthiaume Berthier Berthod Bertin Bertrand Bertucci Besle Besnard Bessat Besse Besso Besson Betournay Betta Bettiol Beuzelin Beynié Beyrac Beziouen Biabiany Biancalani Biancheri Bianchi Bibard Bibeau Bieganski Biger Bigné Bigot Bihel Bijotat Billy Bilodeau Binette Binoche Bisaillon Bischoff Bissonette Bisson Bissonnette Bizot Blaess Blais Blanchard Blanchet Blanchette Blanchot Blanc Blesson Bleu Bliard Blin Bloch Blondeau Blondel Blouin Bocaly Boche Bochu Bockhorni Bodin Bodmer Boghossian Bohée Boillard Boisclair Boissier Boissonneault Boisvert Boiteau Boivin Bolduc Boli Bonalair Bonenfant Bongiorni Bonifaci Bonin Bonnard Bonnart Bonneau Bonnefoi Bonnel Bonnes Bonnet Bonnevay Bonnissel Bonnot Bonzans Borbiconi Bordeleau Borne Borrelli Bosquier Bosse Bossis Bossu Bossy Bouabdallah Bouadji Bouafia Boucansaud Bouchard Bouchelet Boucher Bouchet Bouchoucha Boudarène Boudebouz Boudreau Boudreault Boudrias Bouffard Boughanem Bouhours Bouise Boukari Boulanger Boulay Boulianne Boumelaha Boumsong Bounab Bounoua Bourassa Bourbeau Bourbotte Bourdon Bourgeois Bourget Bourgine Bourgon Bourhani Bourillon Bourque Bousdira Bousquet Boutal Boutasgount Boutin Boutoille Boutruche Bouvier Bouziane Boyer Bracci Bracigliano Brahimi Braizat Brando Brandon Bras Brassard Brassens Brault Bravo Bray Brazeau Bréchet Brégerie Brellier Breton Briand Briant Brichetti Brière Brigaud Brillault Brire Brisebois Brison Brisset Brisson Brize Brocard Brochu Brodeur Broissart Brondolo Brucato Bruey Bru Bruneau Brunel Brunelle Bruneteau Brunet Brun Brusseaux Bryland Buchez Budzynski Bugnet Buisson Bureau Burkhard Buscher Butelle Buval Buzaré Cadieux Cadorette Cadrin Cahoreau Cahuette Cahuzac Caillet Calame Calenda Calvé Camadini Camara Cambon Camerini Camerling Cami Campagnolo Campeau Camus Candela Canelle Cantareil Cantona Caouette Capoue Cappone Capron Carbonneau Cardiet Cardinal Cardin Cardy Carette Carlier Carlier Carmona Carnot Carnus Carole Caron Carotti Carpentier Carrasso Carre Carrière Carrier Carteron Cartier Casagrande Casanova Casolari Casoni Cassan Cassard Castaneda Castelnau Castonguay Catherine Cauderlier Cauet Caumartin Cauvin Cavalli Caveglia Cazes Celestini Cellier Cerdan Chabat Chabaud Chabbert Chabrol Chafni Chagnon Chakouri Chalifoux Chalmé Chalqi Chalvon Champagne Champlain Champoux Chanard Chanelet Chanot Chantôme Chantrel Chaperon Chapuis Charbonneau Charbonnier Chardin Charest Charette Charlebois Charles Charpenet Charpentier Charrier Charron Charvet Chatalen Chateauneuf Chatenet Chauveau Chauvet Chauvin Chauvy Chavas Chavigny Chay Chayriguès Chendri Cherfa Cherqui Cheuva Chevalier Chevallier Cheyrou Chiarelli Chiasson Chicoine Chicot Chiesa Chimbonda Chivot Choiniere Chorda Chouinard Chourchesne Chretien Christanval Christ Christophe Ciani Cid Cisowski Cissé Cissokho Citony Claire Claveau Clavier Clément Clerc Clermond Cliche Clichy Cloutier Cobos Cocard Cohade Colas Colin Colleter Collet Colleu Collin Colliot Colloredo Colombo Colonna Combes Combin Comeau Comminges Comolli Compan Congré Connen Constantin Constant Contout Coolen Cool Copel Coppens Coquelin Corbeil Corbin Corcoran Cordier Coridon Cormier Corriveau Cossette Cossou Coste Costil Cotant Cote Côte Cotnoir Cottenet Couécou Coue Cougé Coulibaly Coulombe Coulon Coupet Courault Courbis Courcelles Courchesne Coureur Couriol Courtois Courville Cousin Cousin Coutadeur Coutu Couture Couturier Crauchet Crepin Crevier Croci Croizat Croze Crozet Crozier Crut Cubaynes Cubilier Cuenca Cuissard Curbelo Cygan Cyprien Cyr Dabo Dacourt Dagenais Dagnogo Dahou Daigle Daignault Dalé Dalger Dallaire Dallet Dalmat D'Ambrogio Damiano D'Amour D'amours Dandache Dandrieu Daneau Danic Danielffy Daniel Danjou Dannel Danzé Daoust Daquin Darasse Darbion Darceuil Darcheville Dard Da Rocha Darui Darveau Da Silva das Neves Daviault David Deault Debard Debelleix Debès Debève de Blasiis Deblois de Boer De Bourgoing Debray Debuchy Decamps de Chauvigny Decroix Dedet Dedeye Dedieu Défossé de Freitas De Gea Deguerville Dehon Déhu Deladerrière Delage Delaive Delamontagne Delarue Delattre Delaunay Delavaud Delaye Delfour Delguste Delhommeau Delhumeau Delisle Delmas Delmer Delmotte Deloffre Delorme Delpierre Delporte De Magalhaes Dembélé Dembicki Demers De Michele Demontigny Demont Demurger Deneuve Denis Dennoun Denom Denoncourt Denoueix de Palmas Deplace Dereuddre Dernis Deroff Deroin Deruda Dervite Desailly Desaulniers Desautels Desbiens Deschamps Deschanel Deschatelets Deschenes Descombes Descoteaux Desgagnes Desilets Desjardins Desjonqueres Deslauniers Deslauriers Desmarais Desmarets Desmoulins Desormeaux Despeyroux Desputeau Desrochers Desrosiers Desserne Dessureault Destrumelle Devaux Dewaquez De Zerbi Dheran D'Hoffelize Dhorasoo Diaby Diafutua Diagne Diagouraga Diakité Dia Diallo Diamé Diarra Diawara Diaz Dib Didier Didot Dieng Dieuze Digard Di Lorto Di Meco Di Nallo Dindeleux Diomède Dion Dionne Diop Distin Di Tommaso Divert D'Jaffo Djellabi Djento Djetou Djorkaeff Dogliani Dogon Dohin Dolande Domenech Domerc Domergue Domi Domingo Domoraud Dompierre Dorado Dore Dorn Dorothée Dorval Dos Santos Dossevi Doucet Douchez Doude Douis Doumbia Doumel Doumeng Doumerg Douville Doyon Drainville Dramé Drapeau Dréossi Drolet Dropsy Drouin Dubaële Dubé Dubly Dubois Dubourdeau Dubreuil Dubuc Ducasse Duceppe Ducharme Duchemin Duchesne Ducourtioux Ducousset Ducrocq Dufaux Dufort Dufour du Frenice Dufresne Dugarry Dugas Duguépéroux Duhalde Dumais Dumas Dumat Dumont Dumoulin Dupire Duplain Duplan Duplessis Duplus Dupond Dupont Dupré Dupuis Dupuy Duquette Durand Durocher Durpes Dussart Dussault Dusseault Dussuyer Duthier Dutruel Dutuel Duval Duvernois Ebondo Echouafni Ecker Edinger Edjenguélé Ehouman Ehret Ehui Eidenbenz Elana El Aouad El Azouzi El Bounadi El Haimour El Idrissi El-Jadeyaoui El Kaoutari El Khanchaf El-Kholti El Mourabet El-Omari El Zhar Emiliani Emond Emon Enrico Eo Eon Ertraud Eschmann Escudé Espartero Estève Esteves Ethier Etienne Ettien Ettore Ettori Evra Evrard Evreux Eydelie Fabiano Fabien Fabre Fachan Faivre Falardeau Fanchone Fanni Fargeon Farison Farrugia Faty Faubert Faucher Fau Fauré Fauteux Fauvergue Favier Fecteau Feghouli Félix Féret Ferland Fernandes Fernandez Ferradj Ferrand Ferratge Ferreri Ferret Ferriere Ferrier Ferri Ferro Ferron Filiatreault Filion Fillion Finot Fiorèse Firoud Fischer Fiset Fiston Flachez Flamini Flamion Fleurival Fleury Floch Florentin Florent Fofana Foix Fontaine Forest Forget Fortier Fortin Fortunat Fortuné Fossey Foucault Fournier Fradin Francoeur François Franquart Frantz Frappier Frau Frechette Frederique Frenette Freyd Frey Frigon Friio Froger Frot Frutos Fugier Furlan Gabrillargues Gace Gachet Gafour Gaget Gagne Gagné Gagnier Gagnon Gaillard Gaillot Gakpé Galarneau Galipeau Gallas Gallice Gallier Galtier Gamache Gamboa Gameiro Gamiette Garande Garcia Garde Gardon Gargonne Gariepy Garnier Garreaud Gascon Gasmi Gassama Gasset Gatineau Gaudette Gaudin Gaudrault Gaudreault Gauthier Gautier Gauvin Gava Gavanon Gavron Gay Gbarssin Gelinas Gelineau Gelin Gemmrich Gendron Genesse Genest Genevier Genghini Genton Georges Gerard Germain Gervais Ghezzal Ghisolfi Gianessi Gigliotti Gignac Gilbert Gili Gilland Gillet Gillot Gimbert Gimenez Gingras Ginola Girard Giraud Giraudo Giraudon Girault Giresse Girouard Giroux Giuly Givet Givry Glassmann Glaude Glombard Glovacki Gnabouyou Gnako Gnakpa Gnohéré Gobeil Godard Godin Goma Gomez Gomis Goncalves Gondet Gondouin Gonella Gonzales Gonzalez Gorius Gosselin Goudet Goudreau Goueffic Gouffran Goujon Goulet Gourcuff Gourdon Gourvennec Gourvest Goussé Goutas Govou Goyette Gragnic Grandbois Grandel Grandmaison Grandmont Gransart Gratien Gratton Grava Gravelaine Gravel Gravelle Grax Gregoire Grégori Gregorini Grellier Grenet Grenier Grenon Gress Griffit Grignon Grillet Grimaldi Grimandi Grimard Grimbald Grimonpon Grizzetti Groleau Grondin Gros Groult Groulx Guay Guedioura Guégan Guelsifi Guemari Guerard Guéret Guerin Guerriero Guers Guertin Guesdon Guevremont Gueye Guguere Guichard Guilbert Guillaud Guillaume Guillemette Guillet Guillon Guillot Guillou Guimond Guindon Guivarc'h Gurtner Guy Guyot Haan Habibou Haddad Haderbache Hainque Hallet Hamel Hamon Haneke Hanot Hantz Hardy Harel Hassli Hatchi Hauguel Hausser Hauss Hautcoeur Hauw Hebert Heiné Heisserer Heitzmann Hellebuyck Henaini Henault Hengbart Henin Henna Henri Henry Herbet Herbin Hermach Hernandez Heroux Herrera Herve Heurtebis Heutte Hiard Hidalgo Hiden Hiltl Himmer Hnatow Hoarau Hoareau Hodoul Hognon Hon Horjak Horlaville Hornuss Horoks Houche Houde Hould Houle Houllier Huard Huberdeau Hubert Huck Hudon Huet Hugon Hugues Humbert Huot Hyacinthe Ichane Idangar Igoux Ikangu Imbert Isabey Ismaël Israël Itandje Jabour Jabraud Jacmot Jacob Jacquemin Jacques Jacquet Jacuzzi Jallet Jamin Janot Janvion Jardon Jasse Jasseron Jaubert Jaurès Jay Jean Jeannin Jeannol Jeunechamp Jeunesse Joannette Jobin Jodar Jodoin Jolette Joly Jonquet Joqueviel Jordan Josse Joubert Jouffre Jourdan Jourdren Joutel Jouve Jovial Joyal Juan Judor Juin Julien Jurietti Jutras Kaboul Kacem Kaelbel Kafsky Kali Kamanan Kamata Kandja Kanouté Kantari Kanté Kapo Karaboué Karembeu Kashi Kastendeuch Kaucsar Kehiha Keller Kelly Kerkar Kern Keruzoré Khennane Kheyari Khiter Kiki Kitambala Klein Kombouaré Kone Konko Konte Kopa Koranyi Kornetzky Koscielny Krebs Kurc Laban Labbe Labelle Laberge Labonte Labranche Labreche Labrecque Labroue Labrune Lacasse Lacerte Lachance Lachapelle Lachor Lachuer Lacombe Lacour Lacoursiere Lacourt Lacroix Lacuesta Ladouceur Laflamme Lafleur Lafontaine Lafont Laforest Lafortune Laframboise Lafrance Lafranceschina Lafreniere Lagace Lagarde Lahache Lahaie Laigle Lajeunesse Lajoie Lalancette Laliberte Lalonde Lama Lamarche Lamarre Lambert Lambourde Lamendin Lamia Lamirande Lamontagne Lamouchi Lamoureaux Lamoureux Lampion Lamy Lancelin Lanctot Landreau Landrin Landry Langenove Langevin Langiano Langil Langiller Langlois Laniel Lanier Lantagne Lanterne Lanthier Lapensee Laperriere Lapierre Laplan Laplante LaPlante Lapointe Laporte Laprise Laquait Laramee Laraque Larcier Larios Larivee Lariviere Laroche Larochelle Larocque Larose Larouche Larqué Larrieu Larrivee Larzille Laslandes Latendresse Latour Lauby Launay Laurenti Laurent Laurey Lauze Lauzier Lauzon Lavalee Laval Lavallee Lavalliere Lavandier Lavaud Lavaulle Laverdiere Lavergne Lavie Lavigne Laville Lavina Lavoie Leaustic Lebbihi Lebeau Lebel Leblanc Leblond Leboeuf Lebon Lebras Lebrasseur Lebreton Lebrun Leca Lechantre Le Chenadec Lech Leclaire Leclair Leclerc LeClerc Leclercq Lecompte Lecomte Lecornu Lecours Le Crom Le Dizet Ledoux Leduc Lefebvre Lefevre Lefrancois Legall Legare Legault L'Eger Leger Legoff Legrand Legros Le Guen Legwinski Lehoux Lejeune Le Lan Lelievre Leloup Lemaire Lemaître Lemasson Lemay Lemée Lemerre Lemessurier Lemire Lemoine Lemoult Lemoyne Lenoir Léoni Lepage Le Pen Lepiller Lepine Le Postollec Leprince Leray Le Roch Lerond Le Roux Leroux Le Roy Leroy Lesage Lescot Lescure Lesoimier Lessard Le Tallec Letarte Letendre Letizi Letourneau Le Toux Leugueun Levac Levasseur Leveille Leveque Levesque Levis Levrat Lhermitte L'Heureux Libbra Libérati Licata Licina Limoges Linarès Liron L'Italien Lizarazu Lizotte Llacer Llense Lloris Locheaux Locher Loiselle Loko Lombard Loncle Lopes Lopez Lorain Lorenzi Loriot Lorrain Lortie Losilla Loubet Louis Louvion Loval Lozano Lozier Lucas Lucau Lucchini Luccin Luciano Lucier Ludo Lussier Luyindula Luzi Mabiala Macqueron Madar Madou Maës Magnier Mahé Mahieux Mahjoub Mahut Maia Maidi Maillard Maillot Mailloux Mainville Maire Major Makélélé Makiese Malbranque Malenfant Malerba Malette Malicki Mallet Mallette Malo Malonga Malouda Maltais Mandanda Mandanne Mandeville Mandrichi Manga Mangani Mankowski Manseau Maoulida Marandin Marange Marcel Marchal Marchandet Marchand Marche Marchioni Marcoux Marechal Marester Maréval Marichez Marie Marignac Marin Marion Mariot Marleau Marlet Marna Marois Marquand Marque Marsiglia Martel Martineau Martine Martinelli Martinet Martinez Martini Martin Martins Martot Marty Marveaux Maschinot Masliah Masnaghetti Masse Massicotte Massolin Masson Maté Mater Mathieu Mathis Mathlouthi Maton Matte Mattler Matuidi Maurais Maurel Maurice Maury Mavuba Mawéné Maxime Mazure Mazzoncini M'Bengue M'Bohli Mecheri Medaillon Medjani Meghni Mekloufi Melancon Melliere Menard Mendil Mendy Menez Menidrey Mensah Merchadier Mercier Mercure Méride Meriem Meril Merlin Meslin Mesloub Messiba Messier Mestaoui Meunier Mexès Meyer Meynieu Meyrieu Mézy Micciche Michaud Michel Micoud Miel Mignault Mignot Mihoubi Millaire Millard Millerand Millet Minville Mireault Miron Missonnier Miville Mocquet Modeste Modesto Mohellebi Moisan Moizan Molitor Mollo Mombaerts Mongongu Mongrain Monnier Monsoreau Montambeault Monterrubio Montmayeur Morache Moreau Moreira Morel Morency Morice Morin Morisot Morissette Morneau Morrissette Morvan Mosca Moss Mostefa Moughfire Moukouri Moulin Moullec Mouret Moussi Moussilou Moutaouakil Moutier Mouynet Mozika Muller Mura Muratori Murcy Muslin M'voto Mvuemba Nadeau Nadé Nadon Nahum Nantel Nanty Nasri Naudin Naud Navrot N'Diaye N'dri N'Dzomo Neault Née Negouai Nelson Nestor Néva Neveu N'Ganga N'Gog N'Gotty Ngoyi N'Guessan Nicaise Niçoise Nicolas Niflore Nimani Nivet Nobilo Noel Nogueira Nogues Noiseux Nolet Nolin Norbert Normand Noro Nossereau Notheaux Noubissie Nouma Nouzaret Novicki Novi N'Sakala N'Tiamoah N'Toya Nyers N'Zogbia Obertan Obraniak Olimpa Oliveras Oliver Olivier Olmeta Ondjola One Opinel Orlanducci Osman Othon Ott Ottmann Oualembo Ouali Ouédec Ouellet Ouellette Ouimet Oumouri Ouon Ourdouillié Ouzilleau Owona Padovani Paganelli Pageau Page Pages Pagis Paiement Paille Paisley Palatsi Pamarot Pancrate Papi Papineau Papin Paquette Paquin Paradis Pardo Pare Parenteau Parent Paris Parizeau Parizon Paroutaud Pascal Pascaud Pascual Pasqualetti Pasquier Passi Patassy Paternotte Patry Paul Paviot Pavon Payant Payet Payette Pécout Pédemonte Pedretti Pédron Pedros Peignet Pelchat Pelé Pellegrin Pellerin Pelletier Penneteau Penot Pentecôte Penverne Pepin Pera Perbet Pereira Perez Periard Péri Perquis Perrard Perrault Perreault Perret Perrier Perrin Perron Perrot Petiquay Petitjean Petit Petrement Peyroche Pfertzel Philie Philippe Piantoni Piasecki Pibarot Picard Piche Picher Pichette Pichon Pichot Pierazzi Pierre Piètre Pignol Pilorget Pilote Pinard Pinau Pinault Pineau Pineda Pinel Pintenat Piocelle Piquionne Piskor Pitau Pitrel Piumi Plamondon Planté Planus Pleimelding Plessis Plestan Plouffe Plourde Poire Poirier Poitras Police Poliquin Pollan Pollet Pomerleau Pominville Ponroy Pons Pontdemé Ponton Porato Porraz Portal Poté Potillon Potvin Poueys Pouget Poulain Poulard Poulet Poulin Pouliot Pouliquen Poullain Pouplin Poyet Pozon Pradal Pratte Preboist Pregent Préget Previtali Prevost Primeau Privat Proment Pronovost Prouff Proulx Provencher Provost Prunier Puel Pujol Pupovac Puydebois Puygrenier Quellier Quenneville Quercia Quesnel Queudrue Quievreux Quillard Quint Quinton Quistin Quittet Rabas Rabesandratana Rabuel Raby Racine Racon Radet Raguel Rahis Raimbault Raineau Rainville Rajot Rajotte Ramaël Rambert Ramé Rami Ramos Rampillon Rancourt Rantier Raphy Rapold Rascle Ratelle Ratte Ravier Raymond Raynal Raynaud Raynier Recorbet Redon Regis Regnault Regnier Reina Remetter Remillard Rémy Renard Renaud Renault Rene Rennella Renouard Reny Repellini Reset Revault Réveillère Revelli Revon Rey Reynaud Rialet Ribéry Ribier Ricard Richard Richelieu Richer Richert Riendeau Riffont Rigault Rio Riopelle Riou Rioux Rippert Rivard Rivenet Rivest Rivet Rivière Rizzon Robail Roberge Robert Robichaud Robillard Robinette Robin Robinson Robuschi Rocchi Rochefort Roche Rocheleau Rocher Rocheteau Rochette Roch Rochon Rodelin Rodighiéro Rodriguez Rodzik Roger Rohr Roland Rolland Rolling Rollin Romano Romao Romiguere Rondeau Rool Rossignol Rostagni Rothen Rott Rouani Roudet Rougerie Rouillard Rouland Rouleau Roumegous Rousseau Roussel Rousset Roussey Routhier Rouvière Roux Rouyer Royer Roy Rubio Ruel Ruffier Ruminski Ruty Sabatier Sabin Sablé Sabo Sabourin Sacheau Sadin Saez Safreau Sagbo Saglio Sagna Sagnol Saha Sahnoun Saia Sailord Sakho Sako Salem Samassa Sami Samoy Samson Sanchez Sankharé Sanokho Sansoni Santerre Santini Sapina Sarlai Sarramagna Sassus Saucier Sauget Saulnier Sauriol Sausseau Sauvageau Sauvage Sauve Sauzée Savard Savidan Savinaud Savoie Savry Scaramozzino Scarpelli Schaeffer Schaer Schemmel Schmitt Schneider Schneiderlin Schuth Scotte Scotti Segal Seguin Sénac Senecal Senechal Seoudi Sérafin Sergio Servier Seube Sevigny Siatka Sibierski Sichi Sigere Signorino Sigouin Sikora Silva Silvestre Silvestri Simard Simb Simondi Simoneau Simon Simonyi Sinibaldi Sirieix Sirois Sissoko Sitruk Six Skiba Skora Smerecki Snella Socrier Sofiane Soler Soltani Somerlinck Sommeil Sonor Sopalski Sorbon Sorin Sorlin Soucy Soulard Soumah Sowinski Sow Specht Spender Squillaci St. Amant Stambouli St. Amour Stanger St. Denis Steck Ste. Marie Stephan St. Germain Stievenard Stinat St. Jean St. Laurent St. Louis Stopyra St. Pierre Strappe Suaudeau Syamate Sylla Sylvain Sylvestre Synaeghel Taarabt Tacalfred Tafer Tafforeau Taïder Taillandier Taillefer Talbot Tandia Tangeaoui Tanguay Tanguy Taravel Tardif Tarriere Tatarian Tchana Téhoué Tellechéa Tempet Templin Teper Terensier Terrier Tessier Tetrault Texier Theberge Theoret Thépot Théréau Theriault Therrien Thibaudeau Thibault Thibodeau Thicot Thinel Thivierge Thoirey Tholot Thomas Thomert Thouvenel Thuram Tibeuf Tigana Tinchant Tissandier Tisserand Tixier Tobon Toledo Topin Torikian Tosi Toudic Tougas Toulalan Toupin Touré Tournut Tousignant Touzin Toyes Trahan Traoré Tremblay Trémoulinas Trepanier Trésor Trezeguet Triantafyllos Tribes Tricottet Trinquier Tritz Trivino Trottier Troussier Trudeau Trudel Turbide Turcotte Turmel Turpin Tusseau Tylinski Ujlaki Ulm Uras Vaast Vachet Vachon Vahirua Vaillancourt Vaillant Vainqueur Vairelles Valbuena Valentin Valero Valéry Vallat Vallee Valliere Valmont Valois Valverde Vandal Vandam Vandooren Vanucci Vareille Varrault Vasseur Vaugeois Veigneau Veilleux Veinante Velle Venne Vercoutre Verdier Vergerolle Vergnes Vermette Véron Verriest Verschuère Verville Vezina Viale Viator Viaud Vidal Vieira Viens Vignal Vigneault Vilers Villaplane Villeneuve Villeret Vincelot Vincent Violeau Vitiers Vitrant Viviani Vizier Vogel Voisin Vonier Voyer Wagner Wallemme Warmuz Wathier Weber Weller Wendling Westberg Willoquet Wiltord Wimbée Wisnieski Xuereb Yahiaoui Yared Yenke Zaaboub Zahiri Zambelli Zambernardi Zanon Zarour Zatelli Zebina Zénier Zerara Zerdab Ziani Zimako Zimny Zitelli Zitouni Zober Zubar Zvunka Abdelaziz Abdelhak Abdelhamid Abdelkader Abderrahmane Abdou Abdoulaye Abdoulay Aboubacar Abou Adam Adamo Adel Adil Adlène Adrien Ahmed Aimé Alain Alan Albert Albin Alexandre Alex Alexis Alfred Alharbi Ali Alioune Allan Alou Alphonse Aly Amadou Amara Amaury Anatole André André-Pierre Angelo Anthony Antoine Antonin Ariel Armand Arnaud Arthur Aubert Auguste Augustin Aurélien Auriol Axel Aziz Bacary Badis Badradine Bafétimbi Bakaye Baptiste Bareck Barket Barthelemy Basile Bastien Bedi Benjamin Benoît Benoit-Luc Bernard Bertrand Bixente Blaise Boris Boubacar Boukary Boussad Brahim Brice Bruce Bruno Camel Camille Carl Carlos Carmelo Cecil Cédric Cédrick Célestin Cérou César Chaher Charles-Andre Charles-Antoine Charles-Édouard Charles Charly Cheikh Chiguy Chris Christian Christophe Christopher Claude-Arnaud Claude Clément Constant Constantin Corentin Cyriaque Cyril Cyrille Damien Daniel Danny Dany Dario David Denis Derek Désiré Didier Dieudonné Dion Djamel Djézon Djibril Dominic Dominique Dorian Drissa Eddy Ed Edgar Edmond Édouard Élie Émile Emmanuel Enrique Éric Erick Ernest Erwan Etienne Eugène Eyemen Fabien Fabrice Farès Farid Faysal Félix Fernand Flavien Fleury Florent Florian Francis Franck François Frank Frédéric Frederick Fred Gabriel Gaby Gaël Gaëtan Garra Garry Gaspard Gaston Gennaro Geoffray Geoffroy George Georges Gérald Gérard Germain Gerry Ghislain Ghyslain Gilbert Gil Gilles Granddi Gregoire Grégory Gueïda Guillaume Gustave Guy Habib Hakim Harold Hassan Hassoun Hatem Héctor Henri Henry Herby Hervé Hubert Hugo Hugues Ibrahima Ibrahim Idir Idriss Irélé Ismael Issiar Ivan Jacky Jacob Jacques Jacques-Olivier Jamel James Jason Jean-Alain Jean-Armel Jean-Baptiste Jean-Christophe Jean-Claude Jean-Daniel Jean-Félix Jean Jean-François Jean-Guy Jean-Jacques Jean-José Jean-Louis Jean-Luc Jean-Marc Jean-Marie Jean-Michel Jean-Nicolas Jean-Noël Jean-Olivier Jean-Pascal Jean-Paul Jean-Philippe Jean-Pierre Jean-Rene Jean-Sébastien Jean-Vivien Jean-Yves Jérémie Jérémy Jérôme Jerry Jesse Jessie Jessy Jimmy Joachim Jocelyn Jody Joël Johan Johann John Johnny Jonathan Jordan Joris José Joseph Jules Julien Justin Kader Kalifa Kamel Kamulete Karim Karl Kemal Kenny Kévin Khaled Khalid Kodjo Lamine Landry Larbi Lassana Laurent Lazare Leandre Leo Léonard Léon Lhadji Lilian Lionel Loïc Lois Loris Lossémy Louis Louis-Nicolas Louis-Philippe Lucas Luc Lucien Ludovic Lynel Mabiala Madjid Mael Magaye Mahi Malaury Malek Malik Mamadou Mame Manuel Marama Marc-Andre Marceau Marcel Marc Marco Marc-Olivier Mario Martial Martin Marvin Maryan Mathias Mathieu Mathis Matteo Matt Matthias Matthieu Maurice Maxence Max Maxime Maxim Maximillian Mehdi Michel Mickaël Miguel Mimille Modeste Modibo Mody Mohamed Morgaro Morike Mouhamadou Mounir Mourad Moussa Mustapha Nabil Nadir Nadjim Nael Nasser Nassim Nathan Nestor Nico Nicolas Noé Noël Norbert Nordine Normand Olivier Omar Orlando Oscar Oumar Ousmane Pantxi Pascal Patrice Patrick Paul-Andre Paul Pedro Pegguy Péguy Peter Philippe Pierre-Alain Pierre-Alexandre Pierre-Andre Pierre Pierre-François Pierre-Louis Pierre-Luc Pierre-Marc Pierre-Olivier Pierre-Philippe Pierre-Yves Pierrick Quentin Rachid Rahavi Raheem Raïs Ralph Raoul Raphaël Rayan Raymond Raynaud Razak Régis Rémi Remy Renald Renaud René René-Jean Reynald Ricardo Richard Robert Roberto Robin Roc Rod Rodolphe Rodrigue Roger Roland Rolland Romain Romauld Roméo Romuald Ronan Ronny Roy Rudy Ryad Ryan Sabri Said Salim Samassi Samir Samuel Samy Sébastien Seïd Sekou Serge Serigne Serisay Sidney Sigamary Simon Siramana Sofiane Sophiane Steed Steeve Stéphane Steve Steven Sylvain Tanguy Tansou Tcham Teddy Ted Thadée Theo Thibault Thibaut Thierry Thomas Timothée Timothe Tobias Toifilou Tom Tony Toufik Toumani Tristan Ulrich Vafoubge Valentin Valérien Victor Vikash Vincent Virgile Walid Walter Wilfrid Wilfried William Willy Xavier Xercès Yacine Yamoudou Yan Yanic Yanick Yanis Yann Yannick Yannis Yero Yoan Yoann Yohan Youl Younes Youness Younous Younousse Youri Youssef Youssouf Yvan Yves Yvon Zahir Zoumana bygfoot-2.3.2/support_files/names/player_names_sweden.xml0000644000175000017500000006163711225071372022727 0ustar eliaselias Abraham Adrian Albin Alex Alexander Alfons Alfred Alvin Anders André Andreas Anton Arne Arvid August Axel Bengt Benjamin Bertel Bertil Björn Bo Bror Bror-Erik Börje Caj Calle Carl Casper Christian Christoffer Conny Crister Dag Dan Daniel David Dennis Dick Edvin Edwin Einar Elias Elis Elliot Elmar Emil Eric Erik Ernst Espen Fabian Felix Filip Frank Frederik Fredrik Gabriel Georg Glenn Gunnar Gustaf Gustav Göran Gösta Halvar Hannes Hans Harry Hasse Helge Hendrik Henrik Henry Herbert Herman Hjalmar Hugo HÃ¥kan Inge Ingemar Ingmar Ingvar Isak Ivar Jacob Jakob Jan Janne Jens Jesper Joachim Joakim Joel Johan Johannes John Johnny Jon Jonas Jonatan Jonathan Jonny Josef Jörgen Kaj Kalle Karl Kasper Ken Kennet Kenneth Kent Kevin Kim Kjell Klas Knud Knut Krister Kristian Kristoffer Kurt Lars Lars-Erik Lasse Leif Lennart Leo Leon Linus Loke Lucas Ludvig Ludwig Lukas Magnus Malte Marcus Markus Martin Mats Mattias Max Maximilian Melker Mikael MÃ¥ns Nicklas Niclas Nikke Niklas Nils Ola Olaf Ole Oliver Olle Olof Oscar Oskar Otto Ove Patrick Patrik Pelle Per Per-Axel Per-Erik Per-Johan Per-Olaf Peter Petter Philip Pontus Pär Ragnar Ralf Rasmus Ricard Richard Rickard Robert Robin Ronald Ronnie Rune Samuel Sanny Sebastian Simon Sixten Staffan Stefan Sten Stig Sune Svante Sven Sören Theo Theodor Thomas Tim Tobias Tomas Tommy Tony Torbjörn Torsten Ulf Ulrik Victor Viktor Vilgot Wilhelm Ville William Wilmer Vincent Ã…ke Örjan Abelsson Abrahamsson Ackerberg Ackerdin Ackerlund Ackerström Adalsteinn Adlercreutz Adolfson Adolfsson Agardh Ahlgren Ahlman Ahlqvist Ahlström Ahlund Alander Albelin Albström Alenius Alexandersson Alfonsson Alfredsson Allbäck Alm Almgren Almkvist Almlund Almqvist Almström Alström AlvbÃ¥ge Amdahl Andersson Andreasson Anklev Ansén Antonelius Antonsson Apell Arnefjord Arneng Arnesson Arvedsson Arvidsson Asbrink Aspander Aspelin Asper Asplund Astin Augustsson Avellan Axeldal Axelsson Backe Backlund Backman Barkström Barström Batan Bengtsson Berg Berggren Berglund Bergman Bergmark Bergqvist Bergsjö Bergsson Bergström Berkvist Berndsson Berndtsson Bild Bjärsmyr Björck Björk Björklund Björkman Björkqvist Blom Blomberg Blomgren Blomqvist Boberg Bodström Bokblom Bokström Bokvall Bokvist Boman Borg Borglund Borgstrand Borgström Borrman Boström Brander Brannström Brink Brodd Brolin Brommesson Bruun Burström Byström Bäckström Bärkroth Bärlund Börjesson Cajander Carlsson Castren Cederberg Cederlund Cederqvist Cederström Christersson Corneliusson Cristersson Cronqvist Dackell Dahl Dahlbeck Dahlberg Dahlengren Dahlgren Dahlin Dahlkvist Dahlqvist Dahlström Dahlund Danielsson Davidsson Dettman Dohlsten Dorsin Edberg Edbom Edlund Edman Edström Ek Ekdal Eklund Eklöf Ekman Ekner Ekroth Ekstrand Ekström Eliasson Elm Elmander Elmlund Emanuelsson Engqvist Engren Engström Enlund Enqvist Ericson Ericsson Eriksson Erlandsson Erlingmark Eskilsson Everlöf Fagerberg Fagerholm Fagerkrantz Fagerlund Falk Falkander Falkberg Falkenberg Falkesäter Falkström Farnerud Fenlund Florén Forsberg Forslund Forsman Forssell Forsström Franksson Fransson Franzen Fredriksson Friberg Frilund Friman Frykman Frölander Gerndt Gerrbrand Gitselov Grahn Granblad Granfelt Grangren Granlund Granqvist Grasvik Gren Grenlund Grenqvist Grenström Grip Gräslund Grönberg Grönhagen Grönholm Grönlund Grönman Grönqvist Gudmundsson Gundersson Gunnarsson Gustafsson Gustavsson Guterstam Gylling Göransson Hagberg Haglund Hallberg Hallin Hallström Halvarsson Hammarberg Hammarén Hammarlund Hammarström Hamrén Hamrin Hansson Hedberg Hedblom Hedlund Hedman Hedmark Hedström Helg Hellqvist Hellström Henriksson Hermansson Hilden Holgersson Holm Holmberg Holmén Holmgren Holmlund Holmqvist Holmsted Holmström Holster HÃ¥kansson Hägglund Häggman Häggvist Hävelid Höglund Högman Ingberg Ingesson Ingman Isaksson Isberg Ivarsson Jakobsson Jansson Jeppson Johannesson Johansson Johnsson Jonasson Jonsson Jönsson Jörgensson Karlander Karlsson Keller Kihlberg Kihlstedt Kihlström Kindvall Kjellberg Kjellsson Klarström Knudsson Knutsson Kristensson Kristoffersson Krohn Kronberg Kullberg Kullinger Källgren Källström Lagerbäck Lagerlöf Lagrell Lamberg Landberg Landgren Lantz Larsson Last Lekström Lennartsson Lilja Liljeqvist Liljeström Lind Lindberg Lindblad Lindelöf Linderoth Lindfors Lindgren Lindholm Lindkvist Lindman Lindqvist Lindskog Lindström Ljung Ljungberg Ljunggren Ljungkvist Lund Lundahl Lundberg Lundén Lundgren Lundholm Lundin Lundmark Lundqvist Lundström Löfgren Lönnberg Lönnqvist Lönnström Lövgren Magnusson Malm Malmberg Malmgren Malmqvist Malmsten Malmström Marcusson Marklund Markstedt Markusson Martinsson Mattiasson Mattisson Mattsson Melander Melin Mellberg Mellgren Mikaelsson Mikkelsson Mild Mjällby Moberg Modin Molin Moström Myhrberg MÃ¥lberg MÃ¥nsson MÃ¥rtensson Möller Nannskog Nicklasson Niklasson Nilsson Nordahl Nordberg Nordby Nordgren Nordin Nordlund Nordman Nordqvist Nordström Nyberg Nyblad Nygren NygÃ¥rd Nyhlén Nyholm Nykvist Nylander Nylund Nyman Nyström Näslund Olafsson Olmqvist Olmström Olofsson Olsson Oremo Ormelius Ottosson Packalén Palmberg Palmlöf Palmström Palmsvik Parling Patriksson Pehrsson Persson Pettersson Pihlström PÃ¥lsson Rahmberg Rask Rehn Renberg Renholm Rennelund Renström Ricardsson Ringberg Risp Rosenberg Rosengren Rosenström Runström Rydell Rydström Rödlund Rönnberg Rönningberg Rönnqvist Rönnström Sahlman Salomonsson Samuelsson Sandberg Sandelin Sandell Sandklef Sandqvist Sandström Sandvik Sandvärn Schwarz Sedin Selander Selmosson Simonsson Sjöberg Sjöblom Sjögren SjögÃ¥rd Sjöhage Sjöholm Sjöström Skoglund Skoog Sköldmark Smedberg Solberg Stenman Stoor Strandlund Strandvall Strindberg Ström Strömberg Strömholm Strömqvist Sund Sundberg Sundell Sundgren Sundman Sundqvist Sundström Svensson Söder Söderberg Söderholm Söderlund Söderman Söderström Tegström Thern Thoresson Thunberg Tjernström Tjärnberg Tjärnqvist Tobiasson Tomasson Tornberg Torstensson Turesson Törnqvist Wahlstedt Wahlström Valberg Wallen Wallerstedt Wallin Wejsfelt Wendt Wernblom Westerberg Westerlund Westlund Wiberg WibrÃ¥n Wicksell Wideman Wihlborg Wikborg Wikström Wiland Wilhelmsson Zetterlund Ã…berg Ã…hman Ã…keby Ã…kesson Ã…slund Ã…ström Öberg Öhberg Öhlund Öhman Öhström Öqvist Örlund Österberg Österqvist Österström Östling Östlund Östman bygfoot-2.3.2/support_files/names/player_names_russia.xml0000755000175000017500000025060111225071372022742 0ustar eliaselias Abalmasov Abapolov Abashidze Abelev Abols Abramov Achapkin Achibaev Adavgayev Afinogenov Agaponov Agarkov Ageyev Agletdinov Agnevshchikov Aisenyev Akhatov Akhmadullin Akhmetov Akifiev Akimov Alatyrov Alekhin Aleksandrov Aleksashkin Alenichev Alexandrei Alexandrov Alexeev Alexeyev Alexushin Alipov Alisov Alliluyev Altarev Altemikov Alyabyev Amelin Anchov Andreev Andrejev Andreyev Andrievsky Andropov Anferov Anisimov Anissin Anshakov Antipin Antipov Antonenko Antonov Antropov Antsyforov Antyuhin Aparin Apraxin Arbuzov Ardashev Arekaev Arkhipov Arsov Artamov Artemenko Artemenkov Artemov Artemyev Artyushin Asimov Askarov Astafyev Astakhov Astrakhantsev Astyafyev Atyushov Avdeyev Averbukh Averkin Aznabaev Babariko Babchuk Babenko Babinov Babrashenko Badyukov Bagirli Baich Baikov Bakhmutov Bakhtin Bakhvalov Baklanov Bakunin Balabanov Balakirev Balakleetsky Balanchin Balandin Balk Balmin Balminkhov Balmochnykh Banketik Barabanschikov Baranov Baranski Bardin Barduev Barishnikov Barkov Barkunov Baronov Barshai Barsukov Bartnev Bartrev Baryatinsky Basalgin Bashirov Bashkarov Bashkatov Bashkirov Bashmet Basilevsky Basov Batalov Batkin Batukhtin Baturin Batutin Batyrshin Bauba Bautin Bazavlyuk Bazhukov Bekbulatov Beketov Belanov Belei Belenki Belenkov Beletsky Belev Belgorodov Belikov Belkin Belobragin Beloi Belotserkovsky Belousov Belov Belovolov Belozerov Belozertsev Belyaevsky Belyakov Berbendov Berdichevsky Berdnikov Beregovoi Beresnev Berestechko Berezhnin Berezin Bereznity Berezov Berezovsky Berin Bernatsky Bernikov Bershadensky Bertnikov Berzin Bespalov Bestemianov Bezborodov Bezmel Bezmelnizin Bezrodiov Bezrukov Bezuhov Bezukladnikov Biehn Biktagirov Bilyaletdinov Biriukov Biryukov Bitarev Bizony Bletsov Blinov Blodnieksky Blokhin Blotski Bobkin Bobrikov Bobrov Bobrovnikov Bobylev Bocharkov Bochkarer Bogdanskii Boichenko Boikov Bokhov Boklov Boldin Boldoveshko Boldyzhov Bolgakov Bolkonsky Bolschev Boltunov Bolyakin Bondarenko Bondarev Bonderev Borichevskiy Borisenko Boriskov Borisov Borisychev Borodin Borodulin Borovikov Borovsky Borschevsky Borshevsky Borzakov Borzakovsky Botvinko Boujinsky Boulin Bounine Boychekno Bragin Braitsev Bratus Brechkovsky Brezgunov Brezhnev Brezjin Briansky Brilev Brish Britanov Brize Brovin Brylin Bryzgalov Bubakov Buchkiev Budarin Budin Builov Bukharin Bukin Bukolov Bukosky Bulatov Bulygin Bunin Bure Burkhanov Burkov Burlachenko Burlutsky Buschan Bushmanov Bushuyev But Buteyko Butko Butkovsky Butsayev Butsenko Buturlin Butyrsky Byakin Bychovsky Byko Bykov Bykovski Bykovsky Bytchkov Bzovsky Chadin Chadov Chagodaev Chagodayev Chahine Chaikovsky Chaliapin Charkov Chashukhin Chastakorlenko Chausov Chazov Chebykin Chekalov Chekhol Chemerkin Cheprasov Cherbayev Cherchesov Cherednik Cherenkov Cherepanov Cherjyanov Cherkas Cherkasov Chernavin Chernekov Chernienko Chernisov Chernitsky Chernomyrdin Chernoskutov Chernov Chernovol Cherny Chernyaev Chernyakov Chernyavsky Chernykh Chernyovsky Cherqezishvili Chesnokov Cheykin Chibiryaev Chichagov Chichelnitsky Chicherin Chikachev Chikalin Chikalov Chinakov Chirich Chirunaev Chistiakov Chistokletov Chistov Chistoyiak Chistyakov Chizhov Chizmin Chmil Chorkina Chtgheglovski Chubais Chubykin Chuchnov Chudinov Chugainov Chuikov Chukanov Chunchukov Chupin Chuprov Churabayev Churilov Chzov Czartorysky Daev Daletsky Danchishin Daniilov Danilov Dashkov Davidenko Davletgareyev Davletshin Davydkin Davydov Davylin Dedoslavl Deev Dekanozov Dementiev Demeter Demichev Demidenko Demidov Demin Demine Demirchan Demochev Deniskin Denisov Derevenko Derkov Desny Desyatkov Desyatnikov Devyatirikov Devyatkov Deyev Diemchuk Dikul Dimitryev Dityatev Djyakonov Dmitriev Dmitriyev Dmytryk Dobrokhotov Dobrynin Dobryshkin Dobtchev Dokshin Doletsky Dolgikh Dolgonosov Dolgonsov Dolgopolov Dolgorouki Dolgov Dolidze Dolishnya Dolohov Dolukhanov Donika Donkin Donkov Donskov Donskoy Dorofeyev Dorogin Dorogoi Doronin Doroschenko Dozhdalev Dratshev Drevnerussky Drozdetsky Drozdov Drygin Dubkov Dubnikov Dubrovskiy Dubrovsky Dudarev Dudin Dunayevsky Durdin Durov Dyachenko Dyakiv Dyakonov Dyakov Dyalov Dylevsky Dzhamgerchinov Eghov Ekev Ekomov Elistratov Eltsov Emisarov Epanchintsev Erikeev Erofeyev Esipov Evdikimov Evgenyev Evstigneev Fadeev Fadeyev Faikov Fakhrutdinov Falichev Fatikov Faustin Fedin Fedorchenko Fedorenko Fedorov Fedorsky Fedotenko Fedotov Fedulov Fedyashev Fedyushhyn Feofanov Fetisov Fibingerov Filatov Filimonov Filin Filinov Filipov Filippov Filischkin Fillipov Firsov Flerko Fokine Fomenkov Fomin Fomitchev Fortunatov Frolikov Frolkin Frolov Gagarin Gaidar Gailik Gainutdinov Galankin Galanov Galchenyuk Galeyev Galikhmanov Galinko Galipov Galiyev Galizmzhanov Galkin Galperin Galushin Gamov Ganelin Ganzha Gapon Gaponov Garanin Gareyev Garifullin Garipov Garkusha Gataullin Gatiyatulin Gauk Gavrilenko Gavrilov Gavryliouk Gaznayev Georgin Gerasimov Gerbov Gergiev Germanov Gerschenkronov Getaulin Ghukov Gimayev Gizatullin Gladishik Gladskikh Glazachev Glazkov Glazov Glazunov Glebov Glebovsky Globenko Glovatsky Glukhov Glushenkov Gogolev Gogunev Gogunov Goldenkov Golikov Golitsin Golovanov Golovastov Golovin Golovkin Golovkov Golovnin Golshalk Golts Golubev Golubkhov Golubkin Golubovsky Golutva Golyshev Gomolyako Gonchar Goncharenko Gorbachev Gorban Gorbenko Gorbunov Gorbushin Gorchakov Gorchilin Gordeyev Gordiev Gordievsky Gordiouk Gorelov Gorenko Gorev Gorokhov Goroshin Gorovikov Gorshkov Goryachev Goryunov Gostyuzhev Govorov Grachev Gratchev Graudyn Grebeshkov Gretchaninov Griaznov Gribko Grigorenko Grigoriev Grigoryev Grindenko Grinkov Grishin Grishkuv Grishuk Gritsenko Gromaba Gromilin Gromov Gromyko Grosha Groshev Gross Grusov Gshalaev Gubanov Gubarev Gubernatorov Gubin Guleghin Gulfin Gulianskoi Guliyev Gulyavtsev Gulyayev Gunko Gurdjiev Guren Gurgev Guriev Gurin Gurov Gusakov Gusarov Guschin Guseinev Guseinov Gusev Guskov Gusmanov Gusyev Guteev Gutionov Gutov Guznishchev Harkov Hucko Hvorostovsky Iakovlev Ibragimov Ichensky Ievlev Ignastin Ignatjev Ignatov Igonchenko Igonin Igorov Ikonnikov Iljin Illich Iltchenko Ilyin Ilyukhin Imedashvili Instinsky Ipatiev Ipatov Isakov Isayev Ishmatov Islamov Ismailov Ispolnov Isyanov Itsov Ivakin Ivannikov Ivanov Ivanski Ivantenko Ivelitsch Ivin Ivliyev Izmailov Jakov Jakubov Janov Jasecko Jeloudov Jidkov Jiganov Kabanov Kachesov Kadeikin Kadykov Kafelnikov Kagakin Kalavinsky Kaledin Kalenitsky Kalinin Kalinnikov Kalinsky Kalyuzhny Kamaletdinov Kamayev Kamenev Kamensky Kamentsev Kamisky Kanareykin Kanatov Kanayev Kanchelski Kanyukov Kapulovsky Kapustin Karachev Karachun Karamnov Karamzin Karataev Karatayev Karbonenko Karelin Karenin Karimov Karin Karklins Karpenko Karpin Karpol Karpov Karpovtsev Karpovtzev Karpukhin Kartashkin Kartsev Kartusev Kasatkin Kasatonov Kasheyev Kashintsev Kashlykov Kasiyanov Kasparkov Katchor Katenin Katushkin Katzev Kautsky Kavelin Kayakov Kaygorodov Kayukov Kazachkin Kazakov Kazapov Kazionov Kebin Kepenrusov Kerch Kerensky Kerimov Ketrzynov Kevorkov Khadartsev Khaidin Khairullin Khalizov Khamidouline Kharin Kharitonov Kharlamov Khasanov Khasbulatov Khatseyi Khavanov Khaydarov Khayev Khazov Kherpin Khersontsev Khlebnikov Khlopnov Khlystov Khmyl Khmylev Khohklov Kholodov Khomitsky Khomutov Khordev Khorev Khoroborov Khostov Khotliykov Khramov Khritoshin Khromchinkov Khromykh Khrushev Khubov Khudorozkin Khvostov Kichetich Kievlianin Kikadze Kikorov Kireyev Kirik Kirilenko Kirilev Kirillov Kiriyenko Kirmasov Kirov Kiryakov Kirygin Kirzhakov Kisin Kislitsyn Kislykh Kitov Kitsyn Kiyiakin Klemeshov Klevakin Klimantov Klimenko Klimentiev Kliugin Klosovsky Klutrov Klyugin Knivelyov Knoroz Knutov Knyazev Koborev Kobzev Kochegarov Kochetkov Kochin Kochuokov Koftun Kogan Koikov Kokorev Kokurin Koledayev Kolesnik Kolkunov Kolotcha Kolstov Kolyvanov Komar Komarov Komissarov Komorov Komrakov Komyagin Konchalovsky Kondracky Kondrash Kondrashchenko Kondrashin Kondrashkin Kondrashov Kondratenko Kondrationok Kondratiuk Konkov Konoroz Konovalev Konovalov Konstantinov Kontratiev Konychev Kopat Kopeikin Kopekin Koposov Koptev Kopul Kopytin Koreshkov Kormachev Kornakov Korneev Korneyev Korobkin Korobolin Korochkin Korolev Korolsky Korolyuk Korotecky Korotki Korotkov Korotyin Korshanenko Korshkov Korshunov Korsunsky Koryakin Korzhanenko Korzhilov Kosakovsky Koslov Kosmachev Kosourov Kosov Kostarev Kostin Kostitsyn Kostyukov Kosygin Kotlyarov Kotov Kouklev Kouldev Koulikov Koulikovsky Kouptchinsky Kournikov Koussevitzky Koval Kovalchuk Kovalenkich Kovalenko Kovalenok Kovalev Kovaljkov Kovalyov Kovarovsky Koveshnikov Kovin Kovlun Kovshenvy Kovtun Kozhevnikov Kozhokin Kozlov Kozmin Koznev Kozyrev Kramarenko Kramskoy Krasheninnikov Krasnov Krasny Krasnyi Krasotkin Kravchuk Kravtsov Krayev Krechin Krishtoforich Krivchenkov Krivelyov Krivokrasov Krivonozhkin Kropotkin Kropotov Krovopuskov Kruchinin Kruglov Krukov Krutokhvostov Krutov Kryazhev Krylov Kryuchkov Kryukov Kshessinsky Kubarev Kucherenko Kuchin Kudashov Kudermetov Kudinov Kudratsyev Kudreyavtsev Kudrov Kudyashov Kukhtinov Kuksov Kulabukhov Kulagin Kulakov Kulchelmin Kulik Kulikov Kulikovsky Kunin Kupchenko Kupetsky Kupriyanov Kuptchenko Kurakin Kurashov Kurdin Kurenoy Kurochkin Kuroshin Kursinsky Kuryanov Kusovlfy Kutaisov Kutakov Kutergin Kutovoj Kutuzov Kutyavin Kutzov Kuvaldin Kuzenkov Kuzkin Kuzmenko Kuzmichev Kuzmichyov Kuzmin Kuznetsev Kuznetsov Kvartalnov Labzov Ladygin Lantzev Lapin Lapshin Laptev Laptovski Larin Larinsky Larionov Lasovsky Latin Latyshev Laukhov Lavinsh Lavrentyev Lavretsky Lavrin Lavrov Lazarenko Lazarev Lazovert Lazutin Lazutkin Lebedev Lebedinets Lebedjev Lebedyenko Lebeshev Lebziak Ledovskik Legotine Lelyushenko Lemontev Lensky Leonov Leontev Leontyev Lepechin Lepekhin Lepestkov Lepushin Lermontov Leschev Leschov Leshchev Leshchukov Leshev Leshko Levenok Levev Levin Levinsky Levitsky Liadov Liapin Liapun Ligachev Likarenko Likhovtsev Limonov Linchuk Litvak Litvinenko Litvinov Ljubirin Llyumzhinov Lobachev Lobanov Lobodin Lobov Lodygin Loginov Lojkin Lokotko Lomakin Lopatin Lopukhov Lounaev Lounkov Lozhkin Lubkin Lubnin Luchkin Lugovskoy Lukiyanov Lukyanov Lunchinkin Lupandin Lupusov Lutchenko Lutrov Luzhkov Lvov Lyakhov Lyakhovsky Lyapunov Lynov Lyubimov Lyubushin Lyulin Lyvov Macinko Mahayev Maigourov Maikov Maisky Majorov Makarichev Makarov Makeyev Makhinyko Makritsky Maksimov Malakhov Malashenko Malchugin Malenkikh Malenkov Maligin Malikov Malinin Malkov Maltsev Malyeshev Malykhin Malyugin Mamedov Mamine Manakov Manchenko Mandelstamov Manucharov Marashov Marchenko Marchkov Marfin Marinin Marisov Markarov Markhov Markin Markov Markovsky Marov Martemjanov Martinov Martyanov Martynov Martynyuk Marusev Marusov Maryams Maryukin Mashchenko Maskhadov Maslov Maslyukov Masterkov Matsukovitch Matulik Matushkin Matveev Matvichuk Matytsin Matyukhov Maximov Mayorsky Mazhorin Mazhugin Mazipov Medvedenko Medvedev Mekhdiev Melamid Melekhin Menchenkov Mendeleev Merinov Merkulov Meshcheryakov Metlyuk Mezin Miasnakov Miasnikov Mikeshin Mikhailov Mikhailovsky Mikhajlov Mikhaylichenko Mikhaylov Mikhnov Mikitenko Mikoyan Mikucki Mikulchik Mikulin Milekhin Milto Milyukov Minaev Minakov Mindlin Minkowski Mirnov Mironov Miroshnichenko Misbakhov Mishakov Mishin Mishukov Miskovkin Mistoslev Mitin Mitjkin Mitrokhin Mizin Mizirov Mlynchenko Modinsky Mogilnjnikov Moiseev Mokashev Molchanov Molchaov Molchenov Molodin Molodtsov Molotilov Molotov Moltinov Monayenkov Monutsky Morchenko Mordvinenko Morgunov Moroshkin Morozenko Morozov Moshan Moskalets Moskalev Moskvin Mostovoi Motkov Motorin Motov Moujoukin Mozarov Mozgunov Mozyakin Mravinsky Muftiyev Mukasej Mukhachev Mukhametov Mukhin Mukhometov Mullagaleyev Mulov Murashov Muratov Murin Murzin Musakayev Musatayev Musatov Mushailov Mutzihrov Myenchenkov Mylnikov Myshkin Nabokov Nagalitsev Najdyonov Nakariakov Nakhimov Nakhimovsky Namestnikov Narazov Narimanov Narozhylenko Narushko Naryshkin Nasemnov Nasenko Nassaroulin Naumenko Naumov Nazarov Nebogatov Nechayev Nedzelski Negodiaev Neklyudov Nekrasov Nelidov Nelyubov Nemchinov Nemirovsky Nenov Nepriayev Nesterenko Nesterov Neverov Nevolin Nevskjy Nezlobin Nigmatullin Nikanov Nikiforov Nikishov Nikitenko Nikitin Nikolaevsky Nikolayev Nikolin Nikolishin Nikonov Nikulenko Nikulin Nizhivy Nizienko Nizin Nizovtsev Nosik Noskov Nosov Nosovsky Nostinikovsky Novakovsky Novikov Novokov Novokovsky Novopashin Novoselov Novosin Nurtdinov Obolensky Obukhov Obukov Odintsov Ofonasev Ofonasin Ofonosev Ogienko Ogonyok Oistrakh Oktyabrev Okudjav Olegov Olenev Oleshuk Oletsky Olevsky Olexiyenko Olympiev Omelchenko Ondreev Onopco Onopko Opulskis Ordina Orekhov Orekhovsky Orlenko Orlov Ortov Osadchy Osipov Ostaltsov Ostrogorsky Ostroushko Ostrovsky Otkupshchikov Otmakhov Ovcharenko Ovcharov Ovchinnikov Ovechkin Ovinko Ovsianikov Ovsiannikov Ovsyannikov Pachkalin Padalko Padorin Pafifov Pakhomov Palilov Pamyatnikh Panfilenkov Panim Pankov Pankratev Pankratov Panov Pantiukhov Paramonov Parfilov Parkhomenko Parshin Pashintsev Pasternak Pastukhar Pasunin Patsayecky Patsayev Pavlov Payusov Pchelyakov Pechenkin Pencherjevsky Pepelyaev Peregudov Perevolokin Pereyaslov Perezhogin Permyakov Pervoi Pervukhin Pervy Pervyshin Peskov Pestunov Petlyuk Petrachkov Petrakov Petrenko Petrochinin Petrov Petrovin Petrovsky Petrunin Petrushov Petukhov Piaskovsky Pidgursky Piekh Pigolitsin Pilkin Piontkovsky Pirozhkov Piskunov Pitoev Platonov Platov Plekhanov Pletrev Plotnikov Plushenko Pobedonostev Podgorni Podkopayev Podolov Podomatsky Podrezov Podtukai Pogodin Pogonin Pokhovholak Pokotilo Pokrovsky Polezhayev Polikarkin Polivanov Polkovnikov Polozov Polskikh Polushin Polyakov Polyansky Poniatovski Ponomarev Popikhin Popkov Popov Popovsky Popovvych Popugayev Porkhomov Porkhomovskiy Porotnikov Porzezinski Posnov Potaichuk Potapenko Potapov Potemkin Poushkin Povov Pozdniakov Praksina Pralnikov Predikin Preminin Prerovsky Presnyakov Prianichikov Prigogin Primakov Prinkhasov Prirodin Privalov Privalovsky Prjevalski Produnov Prokhorov Prokin Prokofiev Prokopiev Prokopyev Prokouriakov Prokourorov Proniakin Pronin Proshkin Protopopov Protsenko Provdky Pryakhin Pshenichny Pskov Pskovsky Puchkin Puchkov Pudovkin Pugachev Pupkov Purtov Pushkov Putilenko Putilin Putin Putyatin Rachkov Rachmanov Radimov Ragulin Raisky Rakhin Rakhmaninov Rakhmatulin Rakmaninov Rakomin Rakov Randov Raschupchin Rashchupkin Rasko Raskolnikov Rasolko Rasputin Raviliev Razgals Razhuk Razin Razumovsky Rebikov Renatov Reshetnikov Revnik Revyakin Rezanov Rezepov Rjyanov Rochev Rodin Rodionov Rodnin Rodzianko Rogachov Rokhlin Rokosovsky Romanov Romanshenko Romashko Romashyn Romasko Rosikhin Rosovsky Rospev Rostecky Rostov Rostovtzev Rotanov Rozakov Roze Rozhdestvensky Rozhestvensky Rozhkov Rozin Rozkhov Rubin Rubov Rudakov Rudenko Rukovsky Rulin Rumianov Rumiantsev Rumyantsev Rusayev Ruslanov Ruzheynikov Ryabchenko Ryabchikov Ryabenko Ryabov Ryabykin Ryaov Ryashkin Ryazantsev Rybenko Rybin Rybkin Rychagov Rychkov Rykhlov Ryndenko Ryumin Ryzhikh Ryzhkov Ryzhov Rzaev Sadov Sadykov Safin Safronov Sagymbayev Saifullin Saitov Sakharov Sakhraychuk Salamov Saldin Salimov Saliyev Salnikov Salomatin Samarin Samoilov Samokhvalov Samoshkin Samsonov Samsurov Samylin Sandrogailov Sanhusky Sanshin Santuryan Sapozhinsky Sapozhnikov Saprykin Sarkelev Sarmatin Satin Satyev Saulsky Sautin Savchenko Savchenkov Savchuk Savilov Savin Savitsky Savtsillo Sazhin Sazonov Schadilov Schedrin Schedrov Schelbanov Schevjev Schubin Schukin Sechny Sedulov Seleznyov Selivanov Seluyanov Selyanin Selyanov Semago Semak Semenchenko Semenov Semeryak Semetov Semin Seminskiy Semiriak Semshov Semyonov Senin Sepols Serafinowicz Serdiuk Serebrov Serebryanikov Sergeev Sergeyev Serimanov Seriogin Serzhantov Sevastiyanov Sevastyanov Sevnik Sevruk Shabanov Shabunin Shadilov Shafigulin Shafronov Shaidullin Shakhraychuk Shakirov Shalaev Shalagin Shalamai Shalamay Shalayev Shaldybin Shalimov Shalnov Shalygin Shamolin Shandurov Shanin Sharapov Shargorodsky Sharifijanov Sharifyanov Sharivker Sharnin Sharov Shashov Shastin Shastin Shatokhim Shayduko Shchegolkov Shchekarev Shcherbin Shchyogolev Shebanov Sheblanov Shekhodanov Shekodanov Shelkunov Shelyag Shengelev Shepelev Sheptekitin Sheremetev Sherikov Shesterikov Shestitko Shevstsov Shevtsov Shigontsev Shikhanov Shikolenko Shikunov Shinin Shinkar Shipulin Shirocky Shirokiy Shiryaev Shishagin Shishkov Shistyer Shistyev Shitkovsky Shkadov Shklyaev Shkotov Shkurdyuk Shlykov Shmelev Shmelyuk Shnurov Shorin Shostak Shpakovsky Shpigalo Shpigunov Shtayger Shtepa Shubinov Shubukin Shuiski Shukaev Shulakov Shulayev Shulgin Shumakov Shumov Shundrov Shurayev Shustikov Shvakov Shvanov Shvanovsky Shvarev Shvedov Shvetsov Sibirko Sidelnikov Sidorenko Sidorin Sidorov Sidyakin Sikorski Silvashko Simakov Simchuk Simonov Simonovitch Simutenkov Sinaisky Sinchukov Sinkov Sinyin Sipchenko Sipyengin Sirotkin Sitnikov Sivov Skobelov Skomorokha Skopintsev Skoptsov Skosyrev Skryabin Skugarev Skvortsov Slatkin Slipchenko Slivchenko Slutskay Smagin Smelnitsky Smetanin Smimov Smiten Smolenskov Smolyakov Sobchak Sobolev Soin Sokjolovsky Sokolov Sokov Solarev Soldatov Solin Solomatin Solomatov Solonenko Solovjev Solovyev Sonkin Sorokin Sosimenko Sosunov Sotnikov Soukhermanov Soukhotin Spaseniev Spiakov Spiridonov Spodarenko Spukhov Stanchinsky Stankin Staradumov Starikov Starkov Starkovsky Starodubov Starodubtsev Starostenko Starostin Starovoitov Starshinov Starvoitov Stas Stashenkov Stasyuk Stefanyshyn Stelmakh Stelnov Stepanischev Stepanov Stepashin Sterzhanov Stiachkov Stolin Stoljarov Stolypin Stonkus Strakhov Strezev Strizhakov Strizhenov Strogolev Stryukov Stulov Subbotin Sudakov Sudnik Suglobov Sukhanov Sukhenko Sukhorukov Suleymanov Superanasky Superansky Suroegin Surupov Sushinski Sushinsky Suyarkov Svaitoslavov Svatkowski Svejkov Sverzhov Svetlanov Svetlov Svintsitsky Sviridov Svitov Svitych Sychev Syrtsov Sytsov Tabanin Tabanov Talietzin Tamijevs Tamirov Tanaisov Taran Tarasenko Tarasov Tarasovsky Taratukhin Tarnovsky Tatarinov Tatarintsev Tchaikovsky Tchechenko Tchelychev Tchepikov Tchesnov Telasnikov Telyanin Temirkanov Temnikov Teplyakov Terekhin Terekhov Terentev Tereschenko Tereshenko Tereskov Ternavski Tertyshniy Tertyshny Tertyshnykov Teshilov Tikhomirov Tikhonov Timakin Timkowski Timofeev Timofeyev Timoschenkov Timoshinin Tiomkin Tischenko Tishkov Titov Tjutin Tkachenko Tkachov Tkachuk Tkatch Todorovsky Tokarev Tolokonnikov Tolonkontsev Tolstov Tomans Tomilin Tomlin Tonkov Topchin Toporov Torgayev Tortunov Totmianin Trakhanov Trandenkov Tranderkov Traseukh Trefiolov Tregubenkov Tretiak Tretyak Tretyakov Trifonov Triron Trofilov Trofimov Troschenkov Troschinsky Troshin Trubachev Trukhno Trunov Trush Trushin Tsarapkin Tsarev Tshurenko Tsibliyev Tsirempilov Tsulygin Tsvetkov Tsvetkov Tsyba Tsybuk Tsygankov Tsyganov Tsygurov Tsymbaler Tsyplakov Tsyrul Tukhbatulin Tumanov Tunikov Tupikov Tupolev Turabiev Turkovsky Turov Tverdokhleb Tverdovsky Tversky Tvetkov Tysmainitsov Tyukhay Tyulyapkin Tyumenev Tyunin Tyurikov Tyurin Tyutikov Tyutin Tyzhnych Uchaykin Uchitel Udalov Udovin Ugolnikov Uijanov Uimanov Ukaniev Ukhtomsky Ulshin Ulyanov Umrilov Urakin Uralsky Uritski Usenko Ushakov Ustinov Ustyugov Ustyuzhanin Utkin Utyugov Uvarov Uvayev Vaelbin Vakhrushev Valeev Valentinov Valiulin Vanin Vardugin Varenkov Vargin Varitsky Varlamov Varnakov Varnavski Varyanov Vasenev Vasilchenko Vasilenko Vasilevsky Vasiliev Vasilyev Vasin Vasunin Vasyuchkov Vdovin Vedrine Velikov Velizhanin Venclov Vengerov Verbitsky Verigin Vershinin Vertinsky Veselov Veycherenko Vezirov Vichkanov Viktorin Viktorov Vikulov Vinogradov Vinokurov Vishnevsky Vishnyakov Vitalyev Vitkovski Vitorgan Vladigerov Vladimirov Vlascenko Vlasenkov Vlasov Vodopjyanov Volchenkov Volchkov Volchtov Voldemarov Voldutpogostov Voleikov Volgin Volkov Volodin Volodymyrov Vologdin Vologzhanin Volosheninov Voloshenko Volsky Vorobiev Vorobyov Voronin Voronov Vorontsov Voropaev Voroshilov Vorotaev Vorotynsko Voskresensky Vostrikov Vovogrudokov Voyevodin Vozhakov Vsevolodov Vyazov Vydrin Vyrov Vyrubov Vyshinsky Vysotsky Vyukhin Winogradski Woloshyn Yablokov Yabukov Yachanov Yachmenev Yafimenko Yagudin Yakhanov Yakimov Yakolev Yakovenko Yakovlev Yakubov Yakushkin Yakutsenya Yanovski Yanovsky Yaroslavtsev Yasakov Yashin Yashkin Yatsky Yavlinsky Yazykov Yefenin Yefimov Yefremev Yefrimov Yegorov Yegupov Yelakov Yelovikov Yeltsin Yemeleyev Yemelin Yemeljanov Yemelyanev Yemelyanov Yeremeev Yeremenko Yeremeyev Yeremin Yerilin Yermakov Yermolin Yermoshin Yerokhin Yershov Yesipov Yevdokimov Yevseyev Yevstafjev Yevstafyev Yevstifeyev Yevtafjev Yevteushenko Yevtyukhin Yezovskikh Yigorovsky Yiyakov Yubin Yudin Yudnikov Yuenko Yufit Yujzycky Yuldashev Yumashev Yunkov Yunusov Yuran Yuresko Yurin Yurov Yusov Yusupov Zablosky Zablotny Zabolotnev Zacharov Zadorozhnyi Zagorinsky Zaikov Zaitsev Zajaczek Zakarov Zakharkin Zakharov Zalipyatskikh Zamolodchikov Zankin Zaripov Zarubov Zasekin Zatevakhin Zatonsky Zavalnyuk Zavarukhin Zavodovskiy Zavrukhin Zavyalov Zaynullin Zbruev Zbruyev Zdanovsky Zegouniov Zeitzev Zelenchev Zelenko Zelensky Zelepukin Zemchenko Zemko Zemlyanoi Zenchikov Zerbaliev Zevakhin Zhamnov Zharinov Zharov Zhashkov Zhdakhin Zhdan Zhdanov Zhebrovsky Zheldin Zherdev Zherebenkov Zherebtsov Zheronkin Zheronkinov Zhidichin Zhinkov Zhirinovsky Zhivanevsky Zhluktov Zhmudin Zholiuk Zhoronich Zhukov Zhurbitsky Zhurun Zhuvov Zimakov Zimin Zimyatov Zinin Zinoviev Zinovievsky Zinovyev Zjukovski Zlov Zolkin Zolotov Zolotukhin Zorkin Zotijasnov Zotkin Zubarev Zubkov Zubov Zubtsov Zuenkov Zuev Zuibimov Zuyev Zvenigorodov Zverev Zvyagin Zybin Zyryanov Zyuzin Zyuzyn Afanasii Agafon Aidar Airat Albert Aleksander Aleksei Alex Alexander Alexandr Alexandre Alexei Alexey Alexi Alfred Ali Alik Almaz Anatoli Anatoly Andrei Andrej Anton Anvar Arkady Artem Arthur Artis Artur Askhat Boris Dani Daniil David Denis Dimitri Dmitri Dmitriy Dmitry Eduard Egor Elizbar Emmanuil Evgeni Evgeny Fedor Feodor Fila Filipp Gatis Gennady Georgii Georgy German Giorgi Gleb Gregor Grigori Grigory Harald Ibragim Igor Ildar Ilja Ilnar Ilnur Ilya Ivan Jaroslav Juri Kabok Kamil Khalim Kiril Kirill Konstantin Leo Leonid Lev Maksim Marat Matvei Max Maxim Mikhail Mishat Mitri Murat Nikita Nikolai Normud Oleg Patrik Pavel Petr Rafael Rafik Rail Ramil Rashit Raul Ravil Remir Renat Rinat Roman Ruslan Rustem Sergei Sergey Slava Stanislav Stas Svyatoslav Timofeev Timofei Timur Todor Vadim Valentin Valeri Valery Vasili Vasilii Vasily Vaso Vassili Vener Victor Viktor Vitali Vitalij Vitaly Vladimir Vladislav Vsevolod Vyacheslav Yakov Yan Yaroslav Yerlan Yevgeni Yuri Zakhar Zakhar Zinetula bygfoot-2.3.2/support_files/names/player_names_spain.xml0000755000175000017500000011457711225071372022561 0ustar eliaselias Abalo Abella Ablanedo Abrante Abrey Acasiete Acosta Adán Aduriz Aganzo Agirretxe Agirrezabalaga Agostino Agosto Aguilar Aguilera Aguirre Aizkorbe Alameda Alarcón Albácar Albelda Albin Albiol Alcalde Alcántara Aldana Alday Aldecoa Aldekoaotalora Alejandro Alexanko Alfaro Alkorta Almaguer Almunia Alonso Alonzo Alvalleros Alvarez Ãlvaro Alves Amarelle Amaro Amavisca Amo Amoedo Amor Amorebieta Andrinúa Angel Angoy Ansotegui Antillon Añino Aparicio Aquino Arabolaza Aracil Arago Aragonés Araiza Arambel Arambillete Arana Aranalde Aranbide Aranburu Aranzábal Aranzadi Aranzubia Araquistáin Arata Arbeloa Arce Arcila Arconada Aresco Argilés Argueta Arias Arivaldo Arizmendi Armengot Arnau Arocha Arranz Arrate Arruabarrena Arruti Arteta Artigas Artiles Artilla Artola Arzaga Arzo Asenjo Asensi Aspas Astiz Atienza Aulestia Autet Auyanet Azkargorta Azpilicueta Badía Badías Baines Bakero Balboa Ballesta Ballester Balmanya Baños Baraja Barbosa Barjuán Barkero Barragán Barral Basora Batista Bautista Bauzà Bea Begiristain Belauste Belenguer Bellido Bello Belman Belsúe Benet Benitez Benito Bergara Berges Bermejo Bermúdez Bermudo Bernabé Bernabei Betancort Bezares Bezerra Bilbao Biosca Biurrun Blanco Bohigues Bolado Bolero Bonet Borges Borja Bosque Bouzón Bovela Braga Bravo Brit Broto Bru Bruno Bucalos Buedo Bueno Busquets Butragueño Buyo Caballero Cabanas Cabarcos Cabrera Cabrero Cabrillo Caceres Cadiz Calande Calatayud Calaveras Caldera Calderé Calderon Calleja Callejon Calvo Calzaretta Camacho Camarasa Cambra Caminero Campasol Campo Campos Camuñas Canário Canella Cano Canobbio Cañamero Cañas Cañizares Cañueto Capdevila Capel Caravello Carazo Cárdennas Cardeñosa Cardín Cardone Cardoza Caridad Carlitos Carmona Caro Carpintero Carrasco Carrera Carricondo Carrilero Casablanca Casadesús Casanova Casas Cases Casilla Casillas Casorio Casquero Castaneda Castaño Castedo Castellanos Castellon Castilla Castillo Castillos Casto Castro Catalano Cazorla Ceballos Cedrún Celades Centrón Cepeda Cerrajería Cervantes Cervera Cervero Chavez Chendo Cherubino Chica Chocarro Cidón Cifuentes Cilaurren Cisma Clemente Clos Cobeño Cobo Codina Coira Collar Colsa Colunga Concepción Conde Contorines Contreras Copado Córcoles Cordova Corominas Corona Corral Corrales Correa Correia Cortés Cotelo Coto Cotrina Couñago Crespo Criado Crosas Cruchaga Crusat Cruz Cruzado Cuartero Cuebas Cuéllar Cuesta Cuyami Dauta de Cerio de Corta de Dios de Felipe de Jesus de la Calle de la Cruz de la Peña de la Rosa de las Cuevas de Leon de Luca de Paula de Pedro de Serrallonga de Soto de Sousa de Toro del Bosque del Campo del Castillo del Horno del Moral del Olmo del Rio del Sol Delaporta Delgado Delpuerto Descarga Diaz Doblas Dominguez Dorado dos Santos Duarte Durán Echeberría Echevarría Edjogo Eizaguirre Elà Elía Elustondo Emery Engonga Epitié Equiazábal Eraso Errasti Escolà Escribano Escudero Esnaola Esparza Espín Espinosa Estefania Estes Estíbariz Estrada Estrella Etxarri Etxebarria Etxeberria Expósito Ezquerro Fàbregas Falcón Fargas Faria Farinós Farrales Fauria Fernandes Fernandez Ferrer Figueras Figueroa Flaño Flores Font Fontes Forns Franco Fuego Fuentes Fumero Fusté Gabilondo Gago Gaínza Gálatas Gallardo Gallego Galván Gamero Gámez Gandul Gárate Gárate Garay Garcia Garitano Garmendia Garrido Garrigues Gaspar Gavilán Gayoso Geli Gensana Gento Giarraputo Gil Giménez Gimeno Giraldo Giraudo Glaría Godin Goikoetxea Golobart Gomez Gonzales Gonzalez Gonzalvo Gordillo Gorostiza Górriz Goya Gracia Grande Granero Grau Grosso Guaita Gual Guayre Guerao Guerra Guerrero Guillén Guillot Güiza Gurpegui Gutierrez Guzmán Habas Haro Helguera Henriques Henriquez Heredia Hernandez Herranz Herrera Herrero Hevia Hidalgo Hierro Hontiyuelo Huerta Hurtado Ibagaza Ibáñez Iborra Idiakez Iglesias Igoa Imaz Inez Insa Iraizoz Iraola Iraragorri Iribar Irureta Isidoro Iturriaga Izaguirre Izquierdo Jaro Jarque Jauregi Jáuregui Jiménez Jorquera Juarez Junyent Jurado Karanka Karmona Kubala Labaka Laburu Lacayanga Lacerra Lacruz Lafita Lafuente Lagonero Lameche Lángara Lanzarote Lapetra Lardín Lardizabal Larena Largo Larosa Larrea Lárus Lasa Lasarte Lázaro Lazcano Leal Lecue Leiva León Lertxundi Lesmes Lezama Lima Liñan Llera Llido Llorente Lobella Longás Lopes Lopetegui Lopez Lopo Lora Lorcán Lorenzo Losada Lozano Lucas Luluaga Luque Maceda Machado Madera Madrazo Madrigal Maestre Mairata Malagarriga Maldonado Malia Mallo Mandaluniz Mandiá Manjarín Marañón Marcano Marciano Margolis Marín Marqués Márquez Marsal Martí Marticorena Martinez Martins Mata Matabuena Mateo Mateos Mateu Mayol Mayoral Mayordomo Medina Meili Mejia Mejino Melero Melia Mendes Mendieta Mendilibar Mendonca Mendoza Menendez Mercado Mérida Merino Merodio Mestre Miera Milla Miñambres Miño Miranda Miró Modesto Molina Molinero Monjardín Monreal Montaña Monteiro Montero Montoro Montoya Mora Morales Moratalla Moratón Moré Moreno Morientes Morina Moro Mosquera Movilla Moya Munitis Muniz Muñoz Murillo Nadal Nagore Navarro Navas Negredo Neto Nieto Nóbrega Nogués Nolasco Notario Novo Noyes Nunes Nunez Ñíguez Ochotorena Ocio Olaizola Olaskoaga Olazábal Oliva Olivares Olivella Olmo Orantes Orbaiz Orejuela Ortega Ortiz Otaegi Otero Oubiña Ovejero Pacheco Padrón Pagazaurtundúa Pahiño Palacios Palanca Palazuelos Palencia Pallardó Pallas Palop Panizo Parada Pardeza Pardo Paredes Parejo Parra Parralo Pasarín Pavon Pazos Peiró Pellerano Penella Peña Peragón Peral Perea Pereda Pereira Perez Perguillo Peris Pernia Pesudo Pilaria Pilart Pina Pinazo Pinillos Pintado Pinto Piñeira Pique Pirri Pizzi Platero Plaza Poquet Portilla Portillo Povedano Prats Presas Prieto Puchades Puerta Pulido Puñal Quartararo Quesada Quincoces Quintana Ramalho Ramallets Ramirez Ramis Ramos Rangel Ratón Reche Redondo Regalado Regueiro Reguero Reija Reina Remón Reñones Resino Rexach Reyes Rial Riera Riesgo Rifé Rincón Ríos Rivas Riveiro Rivera Rivero Rivilla Robles Robusté Rodriguez Rojas Rojo Roldán Rondo Roque Ros Rosado Rossato Rouget Ruano Rubiales Rubio Rufete Ruiz Saavedra Sadurní Sáez Sagi Sáiz Salas Salazar Salcido Sales Salgado Salinas Saltor Samitier Sanabria Sanchez Sanchís Sancho Sanchón Sandaza Sandoval Sanjuán Santacruz Santafé Santamaría Santiago Santisteban Sanz Saprissa Sarabia Sarriegi Sarriugarte Sartiano Sastre Satrústegui Saura Sauto Segarra Segovia Segú Segura Señor Seoane Sequeira Sereda Serena Serna Serra Serrabasa Serrán Serrano Sesma Sesúmaga Setién Sevilla Sicilia Sierra Silva Silveira Sito Sobrado Socas Sola Solano Soldevilla Solé Soler Solozábal Solsona Soriano Sosa Soto Sotorrío Sousa Souza Speranza Suarez Tacón Taeño Tamudo Tato Tavares Tébar Tejada Téllez Tena Tendillo Tevenet Tomás Toribio Torices Tornavaca Torrecilla Torrejón Torres Trashorras Tristán Trueba Turiel Ufarte Ugarte Unamuno Unzué Uralde Uranga Ureña Uría Urkola Urquiaga Urruticoechea Urzaiz Valcarce Valdes Valencia Valerio Valero Valeron Valiente Vallana Valle Vallejo Valles Vallori Valverde Varela Vargas Vasquez Vaz Vega Vegas Velasco Velásquez Velayos Vélez Vellisca Venta Vera Veraja Verdés Verdú Vergés Veza Vidal Vila Vílchez Villachez Villadonga Villafane Villafuerte Villamuela Villanueva Villarroya Viqueira Vizcaino Yago Yagüe Yáñez Yeste Yosu Zaballa Zabalo Zahínos Zamora Zapater Zarandona Zarra Zárraga Ziganda Zoco Zubiaurre Zubieta Zubillaga Zubizarreta Zúñiga Abel Abelardo Adrià Adrián Agustin Aitor Albert Alberto Aldo Aleix Alejandro Alex Alexis Alfonso Ãlvaro Ander Andrés Andreu Angel Antoni Antonio Ariel Aritz Armando Arnaldo Asier Benjamín Beñat Bernardo Braulio Bruno Carlos Carmelo Cesar Cesc Chico Cristian Cristiano Cristóbal Curro Damià Damian Daniel Danilo David Diego Domingo Emilio Enric Ernesto Estanislao Esteban Eugenio Ezequiel Fabián Fabiano Fabricio Federico Feliciano Felipe Fernando Ferran Fran Francesco Francisco Gabriel Gaizka Gerard Gerardo Germán Gonzalo Gorka Gregorio Guillermo Gustav Gustavo Hector Heraldo Heriberto Hernan Hugo Iago Ibon Ignacio Igor Imanol Iñaki Iñigo Ion Isacio Isidro Ivan Jacinto Jacobo Jaime Jairo Javi Javier Jerónimo Jesus Joan Joaquim Joaquin Jofre Jon Jonathan Jordi Jorge Jose Joseba Josep Josu Juan Juande Juanele Juanito Juanjo Juanlu Juanmi Julen Julian Julien Julio Kiko Laureano Leandro Leonardo Lionel Lluís Lucas Luis Manu Manuel Marc Marcelo Marcio Marcos Mariano Mario Markel Martin Mateo Matías Mauro Maxi Miguel Mikel Miki Moisés Nacho Natalio Nelson Nino Octavio Oinatz Oleguer Oliver Oriol Oscar Osvaldo Pablo Paco Pau Paulino Paulo Pedro Quique Rafael Raimundo Ramiro Raul Reynaldo Ricardo Richard Riki Roberto Rodrigo Roger Roman Ruben Rubens Rufino Salvador Samuel Sandro Santi Santiago Sebastián Sergio Severino Simón Telmo Toché Tomas Umberto Urbano Vicente Victor Vitolo Walter Xabi Xabier Xavi Zigor bygfoot-2.3.2/support_files/names/player_names_scotland.xml0000644000175000017500000013421011225071372023235 0ustar eliaselias Aaron Adam Aidan Aiden Alasdair Alastair Albert Alec Alex Alexander Alfie Alistair Allan Allen Ally Andrew Andy Angus Anthony Archibald Archie Arran Arthur Austin Barney Bart Ben Benjamin Bert Bertie Billy Blair Bob Bobby Brandon Brian Brodie Bryan Callum Calum Cameron Cammy Charles Charlie Chris Christian Christopher Ciaran Colin Connell Connor Conor Craig Dale Dally Dan Daniel Danny Darren Darryl Dave David Davie Davy Dean Declan Dennis Derek Des Dick Don Donald Doug Dougal Dougie Douglas Drew Duncan Dylan Eamonn Eddie Eoin Ernest Ethan Euan Evan Ewan Fergus Finlay Finn Francis Fraser Fred Freddie Gareth Garry Gary Gavin Geordie George Gerry Gilbert Glen Gordon Graeme Graham Grant Greg Gregg Gregor Greig Gus Guy Hamish Harris Harry Henry Hugh Hughie Iain Ian Isaac Jack Jackie Jacob Jake James Jamie Jason Jay Jerry Jim Jimmy Jock Joe John Johnathan Johnny Jon Jonathan Jonny Jon-Paul Jordan Joseph Josh Joshua Kai Keith Ken Kenneth Kenny Kevin Kian Kieran Kirk Kris Kyle Laurie Lawrie Lee Leigh Leo Leon Leonard Les Leslie Lewis Lex Liam Logan Lou Louis Lucas Luke Malcolm Marc Mark Marshall Martin Martyn Matt Matthew Max Michael Mick Mike Mo Morris Moses Murdo Murray Myles Nathan Neal Neale Ned Neil Neill Nick Norman Norrie Oliver Owen Paddy Pat Patrick Paul Pete Peter Phil Phillip Ralph Raymond Reece Rhian Rhys Richard Richie Rob Robbie Robert Roddy Ronnie Rory Ross Rowan Roy Ruari Russell Ryan Sam Sammy Samuel Sandy Scot Scott Sean Shaun Simon Stan Stefan Stephen Steve Steven Stevie Stewart Stuart Tam Taylor Ted Thomas Tommy Tony Torrance Tosh Tully Tyler Vic Vince Walter Warren Wattie Wilf Will William Willie Willy Abbot Abercrombie Abercromby Adam Adams Adamson Addison Affleck Agnew Ahern Aikman Aird Aitken Aitkenhead Albiston Alexander Allan Allen Allison Ancell Anderson Andrews Angus Annand Anson Arbuckle Archdeacon Archibald Arfield Armour Armstrong Arnott Arthur Ashurst Atkins Auld Baillie Bain Baird Ballantyne Balmer Bannerman Bannon Baptie Barbour Barclay Barker Barr Barrett Barrie Barron Barrowman Barry Battles Bauld Baxter Bayne Beaton Beattie Beaumont Beedie Begbie Bell Benedictus Bennett Bennie Bennion Benson Bernard Berra Berry Bett Beveridge Bingham Binning Birrell Bissett Black Blackadder Blacklaw Blackley Blair Blessington Blyth Boag Boath Bogan Boland Bollan Bone Bonthron Booth Bourke Bowie Bowman Boyack Boyd Boyle Bradley Bradshaw Brady Brand Brannigan Brawley Brazil Brebner Bremner Brennan Brewster Briggs Brighton Brittain Britton Broadfoot Brockie Brodie Brogan Brolly Brown Browne Browning Brownlee Brownlie Bruce Bryceland Bryson Buchan Buchanan Buckley Buick Bullen Burchill Burke Burley Burn Burnett Burns Burrows Busby Caddis Cairney Cairns Calder Calderhead Calderwood Caldow Caldwell Callaghan Cameron Campbell Canero Canning Cannon Carabine Carey Carmichael Carnegie Carnihan Carr Carrie Carrigan Carroll Carson Cassidy Caven Chalmers Chaplain Chapman Charnley Chattan Cherrie Cheyne Chisholm Christie Churchill Clark Clarke Clarkin Clarkson Cleland Clougherty Clunas Clunie Coakley Cochrane Cockburn Coll Collier Collins Colquhoun Combe Commons Comrie Conn Connachan Connelly Conner Connolly Connor Conroy Convery Conway Cook Cooke Cooper Copland Corbett Corcoran Cormack Corrigan Cosgrove Coutts Cowan Cowie Cox Coyle Coyne Crabbe Craig Crainey Crainie Cramb Cranmer Cranston Crawford Creaney Creer Crerand Crilley Cringan Croal Cropley Crowe Cruickshank Culbert Cumming Cummings Cunningham Curran Cushley Cuthbert Dailey Dailly Dair Dalglish Dalziel Danskin Dargo Darling Davidson Davie Davies Davis Dawson Dean Deans Delaney Dempsie Dempster Dennis Denny Deuchar Devine Devlin Dewar Diamond Dick Dickie Dickov Dickson Dinnie Divers Dixon Dobbie Dobbin Dobie Docherty Dodds Doherty Doig Dolan Donachie Donaldson Donnelly Doris Dorrans Dougall Dougary Douglas Dow Dowell Dowie Downie Doyle Drummond Dudgeon Duff Duffy Duke Dunbar Duncan Dunlop Dunn Durie Durrant Duthie Dyer Eadie Eaglesham Easton Edmonds Edwards Elder Elliot Ellis Emslie English Erentz Erskine Esson Evans Ewart Ewing Ewings Fagan Fahy Fairfoul Falconer Fallon Farm Farquhar Farrell Fenton Ferguson Fernie Filippi Finan Findlay Finlayson Finnieston Fisher Fitchie Fitzpatrick Flannery Flannigan Fleck Fleeting Fleming Fletcher Flexney Forbes Ford Forrest Forsyth Foster Fotheringham Fowler Fox Foy Frail Frame Fraser Freedman French Fridge Frizzell Frye Fullarton Fulton Fyfe Gahagan Galbraith Gallacher Gallagher Galloway Galt Gardiner Gardner Gardyne Gates Gauld Geddes Gemmell Gemmill Gentile Getgood Gibb Gibson Gilbert Gilbride Gildea Gilfillan Gilhaney Gillespie Gillick Gillies Gilmour Gilroy Gilzean Glasgow Glass Glen Glidden Gold Goldie Gonet Goodall Goodwillie Goram Gordon Gorman Gossland Gough Gould Gourlay Govan Gow Gracie Grady Graham Grant Granville Grassam Gray Greacen Green Greenaway Greenhill Greer Gregg Grehan Greig Grierson Grieve Griffiths Grindlay Gritton Gunn Guthrie Guy Haddock Haffey Hagen Haining Hall Halliday Hamill Hamilton Hamlyn Hammell Hampshire Handyside Hanlon Hannah Hannigan Hansen Hardie Harding Harkins Harkness Harley Harper Harris Harrison Harrower Hart Hartford Hartley Harty Harvey Hastie Hastings Hawthorne Hay Healy Hegan Hegarty Heggie Henderson Hendrie Hendry Henry Herd Hermiston Heron Herriot Hetherston Hewie Hewitt Higgins Hildersley Hill Hillcoat Hinchcliffe Hodge Hodgson Hogarth Hogg Holden Hollis Holmes Holt Holton Hood Hope Hopkin Hosie Houliston Houston Howie Hughes Hunter Husband Hutchinson Hutchison Hutton Hynd Hynds Imlach Imrie Inglis Innes Ireland Irons Irvine Jack Jackson James Jamieson Janczyk Jardine Jarvie Jefferies Jenkins Jennings Jess Johnson Johnston Johnstone Jones Jordan Joyce Jupp Kane Kasule Kay Kean Keay Keddie Keenan Keith Kelbie Kelly Kelso Kennaway Kennedy Kenneth Keogh Ker Kerr Kerray Kettlewell Kidd Kilgannon King Kinnaird Kinnear Kinniburgh Kirk Kirkwood Kivlichan Knox Kopel Kyle Laing Laird Lambert Lambie Lamond Lamont Landels Lang Langfield Lappin Lapsley Lasley Latta Lauchlan Lavety Law Lawrence Lawrie Lawson Leadbetter Leckie Lees Leggat Leighton Leishman Leitch Lennon Lennox Leonard Leslie Levein Liddell Lilley Lilly Lindsay Linn Linton Lithgow Little Livingstone Lochhead Locke Lockie Logan Logie Longair Lorimer Love Lovering Low Lowing Loy Lumsden Lyle Lynch Macari Macaulay MacDonald MacDougall MacEwan MacFadyen MacFarlane MacGregor Mackay MacKay MacKenzie Mackie Mackin MacKinnon MacLaren MacLean MacLennan MacLeod MacPherson Madden Maguire Mahood Main Mair Malcolm Malcolmson Maley Malloy Malone Maloney Malpas Mann Marr Marshall Martin Maskrey Mason Massie Masson Masterton Mathers Mathie Mathieson Matteo Matthew Maxwell May McAdam McAllister McAlpine McAnearney McAnespie McArthur McAuley McAusland McAvennie McBain McBride McCabe McCaffrey McCall McCalliog McCallum McCann McCart McCarthy McCartney McCathie McCay McChesney McClair McCloy McClune McCluskey McCoist McCole McColl McColligan McCombie McConalogue McCord McCormack McCracken McCreadie McCubbin McCulloch McCunnie McCusker McDaid McDermid McDonald McDougall McDowall McEachran McEachrane McEveley McEwan McFadden McFadzean McGarry McGarvey McGeachie McGeown McGhee McGill McGinlay McGinley McGinn McGinnis McGinty McGlashan McGlinchey McGlynn McGonagle McGonigal McGovern McGowan McGowne McGrain McGraw McGregor McGrellis McGrillen McGroarty McGrory McGuffie McGuire McGurn McHale McHarg McHugh McIlhargey McIlravey McIlroy McInally McIndoe McInnes McIntosh McIntyre McIvor McKay McKean McKechnie McKee McKeever McKellar McKenna McKenzie McKeown McKimmie McKinlay McKinna McKinnon McKinstry McLachlan McLaren McLatchie McLauchlan McLaughlin McLean McLeish McLeod McLintock McMahon McManus McMartin McMaster McMenamin McMenemy McMillan McMullan McNab McNally McNamara McNamee McNaught McNaughton McNeil McNeill McNichol McNiven McNulty McPake McParland McPhail McPhee McPherson McQuade McQue McQueen McQuilken McQuillan McRoberts McSeveney McShane McSkimming McStay McSwegan McVean McVeigh McVie McWilliam McWilliams Mearns Meehan Meiklejohn Meldrum Mellon Melrose Melville Menzies Meston Methven Mill Millar Millen Miller Milligan Mills Milne Mitchell Mochan Moffat Moir Molloy Moncur Montgomery Moon Moore Morgan Morris Morrison Morrow Mortimer Morton Mowbray Moyes Mudie Muir Muirhead Mulgrew Mulhall Mulheron Mulholland Mullen Mulraney Mungall Munro Murch Murdoch Murphy Murray Murty Mutch Nairn Naismith Napier Narey Naysmith Neave Neil Neill Neilson Nelson Nevin Nibloe Nichol Nicholas Nicholl Nicholls Nicholson Nicol Nisbet Nish Niven Nixon Noble Notman Nugent Oakes O'Brien O'Connor O'Donnell Ogilvie Ogunmade O'Hare O'Leary Oliphant Oliver O'Neil O'Neill O'Reilly Ormond O'Rourke Orr Oswald Ouchterlonie Ovenstone Page Panther Park Parker Parkin Parlane Parratt Paterson Paton Patrick Patterson Payne Peacock Pearce Pearson Peat Peddie Penman Perry Pethard Petrie Pettigrew Philliben Phillip Phinn Picken Pollock Pope Porteous Porterfield Potter Pratt Prentice Pressley Preston Pringle Proctor Provan Prunty Punton Purden Quashie Quigley Quinn Rae Raeside Raisbeck Ramsay Ramsey Rankin Rattray Redford Reid Reidford Reilly Rennie Rennox Renton Renwick Reynolds Rice Richardson Ring Rioch Riordan Ritchie Robb Roberts Robertson Robinson Robson Roddie Rodger Roe Rolland Rollo Ronald Ross Rough Rougvie Rowan Rowson Roxburgh Rusk Russell Rutherford Ryan Salmond Salton Samson Sandison Savage Scally Schaedler Scobbie Scotland Scott Scoular Seith Semple Sermanni Severin Shankly Shannon Sharkey Sharp Sharpe Shaw Shearer Sheerin Shepherd Shewan Shields Shinnie Shirra Silvestro Simmons Simpson Sinclair Sirrel Sives Slater Sloan Small Smart Smith Sneddon Snodgrass Soane Somerville Somner Souness Soutar Souter Spalding Spark Speedie Speirs Spence Spencer Sproat Stanton Stark Staunton Steel Steele Steen Stein Stevens Stevenson Stewart Stillie Stockdale Storrie Stott Strachan Stuart Sturrock Sullivan Suter Sutherland Swan Swankie Swanson Sweeney Taggart Tait Taylor Teale Telfer Templeman Templeton Thom Thompson Thomson Thornton Tiernan Tierney Tod Todd Tokely Toner Torrance Tosh Townsley Traub Traynor Treanor Trouten Turnbull Turner Twaddle Tweed Twigg Ure Urquhart Vallance Vaughan Venters Vigurs Virgo Waddell Waldman Wales Walker Wallace Walsh Ward Wardhaugh Wark Watson Watt Waugh Webster Weir Welsh Whipp White Whiteford Whitelaw Whittaker Whyte Wightman Wilkie Williams Williamson Willis Wilson Winnie Winter Winters Wishart Wood Woodburn Woodcock Woods Woodward Wright Wylde Wylie Wyness Yardley Yarnall Yates Yeats Yeoman Yorston Young Yuill Yule bygfoot-2.3.2/support_files/names/player_names_czech.xml0000644000175000017500000015027611225071372022534 0ustar eliaselias Abrahám Adam Adamec Adámek Adamovský Albrecht Ambrož Ambruz AndÄ›l Andrle AngeloviÄ AntoÅ¡ Anyz Appel Arnost Arpáš Babka Backora Bajer Balastik Baláž Balcar Balik BaliÅ¡ Baloun Balvin Barak Bares BarmoÅ¡ BaroÅ¡ Barta Bartak Barton BartoÅ¡ Bartunek Basta Bauer Baumruk Bazant Bažík Becka Becvar Bednarik Bednář Bedrna Behounek Bejbl Bejk Belák Belicak Belohlav Belohlavek Belohradsky Benacek Benak BenÄík Benda BenedikoviÄ BeneÅ¡ Beran Beránek Berger Bernard Besta Bestvina Bezdek Bicák Bican Bicanek BiÄík BiÄovský Bielik Bílek Bily BiroÅ¡ Bláha Blatny Blazej Blažek Blecha Bobek Bobok Bocek BohÃ¡Ä Bohm Bolf Bomba Bonk Borbély Borovec BoroviÄka Bosak BouÄek Bouse Bouska Brabec Brabenec Brada BradÃ¡Ä Braha Brazda Brdka Brejcha Brejla Brendl BreÅ¡ka Brezinský Breznaník Brezovan Briza Brodsky BroÅ¡ Broz BÅ™ezina BÅ™ežný Buberník Bubník Bucek Budik Bulis Burda BureÅ¡ Burgr Burian Buzek Bystroň Bystry Caba Caha Cahoun Caloun Cap Capek Castka Cech Cechmanek Cermak Cernin Cernoch Cerny Cervenka Cerveny Cibulak Cibulka Cigánek Cihak Cihlář Cikan Cipro CísaÅ™ Cisty Cizek Coufal Cseh Culek Culka Cvetler Cvrcek Czinege ÄŒambal Čáp ÄŒapkoviÄ ÄŒech ÄŒernák ÄŒernoch ÄŒerný ÄŒiÅ¡ovský Čížek ÄŒobej ÄŒontofalský ÄŒoupek ÄŒtyÅ™oký DanÄ›k DauÄík David Debnár Dejmal Demo Dirnbach Divisek DiviÅ¡ Dlouhý DobeÅ¡ DobiaÅ¡ Dobron Dobrotka Dobrovolný Dobrovsky DoÄekal DoÄkal Dohnal Dojels Dolansky Doležaj Doležal Dolinský Dostál Dostálek DoÅ¡ek Doubek Dousa Drábek Drahos Drap Drapek Drazil Drobný Drozd Drsek Drulák DřížÄal Duba Dubovský Dubsky Duda Dudek Dufek Dupal ÄŽurica ÄŽuriÅ¡ Dusik DuÅ¡ek Dvorský Dvořák Džogan Eben Ebr Effenberger Ehrenberger Eichler Eichner Eiselt Eliasek Eliáš Emler Engel Erban Erben Exler Exner FabuÅ¡ Faczinek Faltyn Fandel Fanta Farar Farbák Fejt Fenck Fencl Fenin Ferenc Fiala Fialka Fibich Fieber Fiedler Filip Filipek Fillo Fischer FiÅ¡er Fivébr Flachbart Flešár Florian Fodrek Fojtík Foltýn Forejt Forman Formánek FoÅ™t Foukal Fousek Franc Francl FranÄ›k Frank Franta Fresl Fric Fridrich Fruman Frumar Frýdek FuÄík Fuchs Fuka Fukal Fulin Furst Gábor Gabriel GajdoÅ¡ Gajdůšek Galásek Galik Galis Galvas Gebauer Glonek Goldmann Gott Grajciar Gregor Gregr Grendel GreÅ¡ko Griga Grosak Grosek Gruber Grulich Gruner Grygar Guldan Guren Gut Haba Hable Had Hadac Hadrava Hagara Hajdúch Hájek Hakl Hala Halama Halamka Halek Halenár Halik Halir Hampl Hamr Hamrlik Hamrsky Hamšík Hanák Handelka Handl Handlir Hanek Hanousek Hanus Hanzlik Hapal Harsányi Hartig Hartl Hartmann HaÅ¡ek Hauzr Havel Havelka Havir Havlat HavlíÄek Havlík Havránek Heger Heinz Hejda Hejduk Hejma Hejny Hejtmanek Helebrant Heller Hemele Hendrych Herda Hering Herman Hermanek Hermansky Herold Hertl Herzán Hes Hesek Hiber Hipp Hladík Hlavacka HlavÃ¡Ä HlaváÄek Hlavaty Hledík Hlinka Hnat Hnatek Hnilicka Hodac Hodek Hodsky Hodulík Hodúr Hoffman Hoch Hochmaister HoleÄek Holek Holeňák Holík HoloÅ¡ko Holoubek Holub Holubec Holý Homola Hora HoráÄek Horák Horcicka Horňák Hornik Hornyak Horvat Horváth Hosek Houba Houdek Houdka Houska Houzvicka Hovorka Hrabal Hrabe Hrachovec Hrachovsky Hrazdira Hrbek Hrdina HrdliÄka Hrebejk Hribal Hrivnák Hrncir Hroch Hromada Hron Hrstka Hrubý HruÅ¡ecký HruÅ¡ka HubáÄek Hubeny Hubicka Hubl Hubník HuboÄan Hübschman Hudecek Hulka Hurka Husak Husár HuÅ¡ek Hýll Hynek Hýravý Hyský Chaloupka Chalupa Chalupecky Charvát Chaun Chládek Chlumsky Chmel ChmelaÅ™ Chmelicek Choteborsky Chovanec Chrastil Chroust Chrpa Chrudimsky Chudoba Chval Chvalovský Chvátal Chvojka Chyba Chytil Immrich Imramovský Indruch Ingr Ivan Ivana IvanÄík Ivánek Ivanovic Izak Ižvolt Jablonský Jaburek Jadrny Jagr Jahoda Jachym Jakes Jakoubek Jakubec Jakubko Janacek Janak JanÄula Janda Janecky JaneÄek JaneÄka Janek JaniÄ Janku Jankulovski JanoÄko Janos Janous JanouÅ¡ek Janů Jara Jarolím JaroÅ¡ Jarošík Jarousek Javorsky JedliÄka Jelen Jelínek Jenacek JendriÅ¡ek Jeřábek Jeslínek Jestrab Jezdik Jež Ježek Jílek Jindra Jindrich Jiránek Jirásek Jirout Jirsa Jirsák Johana Jokl Jun Junek Jungmann Jungwirth JurÄo Jurkanin Jurkemik Kabát Kaberle KaÄáni Kadera Kaderabek Kadlec Kadles Kadraba Kalina Kalivoda Kalouda Kalousek Kalvoda Kamenár Kamenik Kames Kaminský Kanturek Kapko Kaplan Kaplicky Kapr Kara Karafiat Karas Karasek Karel Karhan Kasl Kasparek Kasparik KaÅ¡par Kauffman Kaufman Kavan Kazda Kejha Kéketi Kelemen Keller Kello Kerbr Kessl Kibic Killar Kincl Kinder Kinier Kinkava Kinský Kirchner Kisel Kišš Klacek Klacik Kladrubský Klapka Klecka Klement Klepis Klepsa Klic Klicka Klim Klíma Klimes Klimpl Klimt Klinka Knakal Knap Knedlik Knize KnoflíÄek Knotek Kobylík Koci Kocian Kocka Kocourek Kocurek Kohn Kohout Kohoutek KoiÅ¡ Kolář Kolbas Kolin Kolincky Koller KolouÅ¡ek Kolský Komarek KoneÄný König Kopecký Kopic Kopříva Korinek Korostelev Kos Kostka Kostolanský KoÅ¡ický KoÅ¡nar Košťál Košťálek Kotek Kotrba Kotůlek Kotyk Kouba Koubek Koubský Koudelka Koukal Kousal Koutek KovÃ¡Ä Koval Kovar KozáÄik Kozák Kozel Koželuh Kožiak Kožlej KrajÄík Král Kralik Krásnohorský Kratina Kratky Kratochvíl Kraus Krause Krbec KrÄil Krejcik KrejÄí Kremenec Kremlicka Krenek Kristek KriÅ¡tofík Kriz Krizek KrmaÅ¡ Kropacek Kroupa KrÅ¡ko Krulis Krupicka Krystof KÅ™ap KÅ™ivánek Kříž Kuba Kubala Kubáň Kubásek Kubat Kubes KubíÄek Kubík Kubina Kuciak Kucka KuÄera Kudelka Kudlacek KuchaÅ™ Kuka KukuÄka Kulhanek Kulhavy KuliÄ Kuna Kuncl Kunert Kunes Kunzo Kuráň Kurka Kusik Kuzma Kvapil Kvasnicka Kvašňák Kysela Labant Lacina Lafata Lakosil Lála Landa Lang Langer Lanicek Lansky Lasota Lastovka LaÅ¡tůvka Látal Latiak Latka Laurinec LaviÄka Lebeda Lebl Ledvinka Lehky Leitner Lejsal Lengyel Lenko Lesák Lhotský LiÄka Lietava Limberský Lindner Linhart Linka Lisak LiÅ¡ka Lokaj Lokvenc Lopour Lorenc LouÄka Louda Ludl Luhový Lukas LukeÅ¡ Lustig Macek Macela Macik MáÄala Madl Magera Mach MacháÄek Maier Majer Majerník MajoroÅ¡ Malatinský Málek Malík Malý MareÄek Marek MareÅ¡ Marha Marko Martinec Martínek Marvan Masaryk Masný Masopust MaÅ¡ek MatÄ›jka MatÄ›jovský MatouÅ¡ek MatuÅ¡oviÄ Maxa Mayer Mazourek Mazuch Mazura Medricky Meduna Mejstrik Melichar Melichárek Menhart Merta MeszároÅ¡ Metelka Mica Micka Migas Michálek Michalík Michlowsky Mika Mikeska MikeÅ¡ MikloÅ¡ko Mikolanda Mikulasek Mikulec MikuliÄ Miller Minar Minařík Mintál Miska Miso Mistr Móder Modry Mojský Molnár Mooc MoravÄík Moravec Morávek Moskal Moucha Mráz Mrázek Mrzena Mucha Müller Musil Muzik Mynář Myska Nachtman Najman Navrátil Necid Neckar NeÄas Nedbal Nedorost NedvÄ›d Nehoda Nejedlý Nemcicky NÄ›mec NÄ›meÄek Németh Neruda Nesvadba Netolický NetoliÄka Neumann Neuwirth Nezkusil Nezmar Nikl Norkus Nosek Novacek Novák Novosad Novotný Nový Obajdin Obermajer Obžera Ocasek Ocenasek Odehnal Oderka Okrouhlicky Oldrich Olejník Oliva Olsansky Ondra OndráÄek OndruÅ¡ Onofrej Opava Opiela Opletal Opocensky OprÅ¡al Oravec Orságh Otcenasek Pacal Padevet Palát PaleÄek Páleník Palúch Panek Panenka Pansky Pant PapouÅ¡ek Paroubek Pařízek Patera Paukert Pavelka Pavlas Pavlenda PavlíÄek Pavlík PavloviÄ Pazdera Pazer Pažický Pecka Pecko PeÄalka Pech Pecha Pechanek Pekar Pekarek Pekarík Pekhart Pelich Pelikán Penksa Pergl Perinka PeÅ¡ek Pešír PeÅ¡koviÄ Peterek Peterka Petr Petrak Petráš PetrouÅ¡ Petrzelka Petržela Petřík PiaÄek Pilar Pinc Pinter Piták Pivarník Pivko Plachy PlániÄka PlaÅ¡il Plavec Plechata Pletka Plevka Plichta Plocek Pluskal Poborský Podebradsky Podhajsky Podzemsky Pokluda Pokorný PoláÄek Polák Polansky Polášek Polivka Pollák Popelka Popluhár PospÄ›ch Pospíchal Pospíšil Posta Postranecky PoÅ¡tulka Potmesil Prachar Prazak Praženica Prchal Priboj Procházka ProkeÅ¡ Prokop Pronaj Prospal Průcha Prusa PÅ™ibyl Příhoda PÅ™ikryl PtáÄek PuÄ Pudil Pulen Půlpán Putnocký Racek Rada Radil Radimec Radolsky Rachunek Rajnoch Rak Rakos Rakosnik Rakusan Rambousek RaÅ¡ka Rataj Reimann Reiter Rejda Rejzek RemeÅ¡ Rendla Rezek Rezny Richter Rilke Rizek Rohlik Rosický Rott Roubal Rousek Rozehnal Rozner Rozsypal RubeÅ¡ Rucinsky Rulc Ruml Rusina Růžek RůžiÄka Ryba Rybář Rygel Rychly Rysanek RyÅ¡avý Rzeszoto Řehák ŘehoÅ™ Řepka ŘezÃ¡Ä Å˜ezníÄek Říha Sabo Sabou Safarik Safranek Sagac Saidl Saláta Sapara Sasek Sebek Sebesta Sedivec Sedivy SedláÄek Sedlák Sehnal Seidl Seifert Sejdir Seman Semelka Semeník Senecký Sestak Severa Scherer Schiller Schmucker Schovanka Schrojf Schwartz Sicak Siegl Sikora Silhavy Silný Sima Simacek Simicek Simr Simunek Sindelar Sionko Sirl Siroky Sivek Sivok Skácel Skala Skalicky Sklenar Skorepa Skoula Skrivan Skrivanek Skuhravý Skvor Slaby Sladek Slama Slavík Slegr SlepiÄka Slezak Slimak Sliva Slovák SlovenÄiak Sluka Slunecko Smehlik Smejkal Smetana Smola Sobotka Socha Sochor Sojka Solpera Sosna SouÄek Soudny Soukup Sourada Sova Sovak Sovet Spacil Spanel Spicak Spidla Spisak Sramek Srbek SrníÄek Srsen Srstka Stacho Staindler StanÄ›k Staňo Starosta Stary Stefan Stehlík Stech Steiner Stejskal Stepnicka Stodola Stoch Stojkovic Straka Stransky Strnad Stromšík Struhár StÅ™eÅ¡tík StÅ™ihavka Stupka Subrt Suchánek Suchopárek Suchý Suk Sulc Supak Surovec Susko Svab Svacina Svancar Svarc Svátek Svejkovsky Svejnoha SvÄ›rkoÅ¡ Svestka Svoboda Svozil Sýkora Sylvestr Synek Syroky Szabó Å afránek Å Äasný Å ebo Å edivec Å enkeřík Å esták Å evÄík Å ilhavý Šíma Å imák Å imek Å imon Å imperský Å imůnek Å inglár Šírl Å krtel Å lahor Å micer Å míd Å oral Å ourek Å paÄek Å pilár Å pit Å tajner Å tambachr Šťastný Å tÄ›pánek Å tepanovský Å terc Å tibrányi Å trba Å tyvar Å uhaj Å vec Å vehlík Å vejdík Å venger Å vento Tabor Táborský Tacek Tegelhoff TesaÅ™ TchuÅ™ Tichý Tittel Toman Tomana Tomanek Tomaschek Tomášek Tomek Topol Toupal Touzimsky Trabalík TrávníÄek Trnka Trojan Trojanek Trojka Trousil Truhlář Tříska TuÄek Tůma Turecek Turek Tvrdik Týce Tyl Uher Uhlíř Uhrin UjfaluÅ¡i Ujlaky UliÄný Ulich Ulrych Urban Urbanec Urbánek Vacek VáclavíÄek Václavík Vagner Vacha VachouÅ¡ek Vala ValachoviÄ Valenta Valtr Vana Vancl Vanecek VanÄ›k Vaniak Varada Varga VaÅ¡Äák Vávra Vavrina Vavrousek Veber Vedral Vejnosek Vejvoda Veleba Velisek Vencel Vencl VengloÅ¡ Verba Verbíř Veselý Veverka Viazanko ViÄan Viktor Vins Vítek Vittek Vízek Vlach Vlasak VlÄek Vlk Voboril VodiÄka Vodrazka VojáÄek Vojak Vojna Vojta Vojtisek Vokoun Voldrich Volek Volešák Vonášek Vondra VondráÄek Voparil Vopat Vorel Vorlicek Voříšek Votava Votruba Vozábal Vozik Vrabec Vrána Vrba Vrbata Vujtek Vyborny Vycpálek Vydra Vychodil VyskoÄil Vytisk VytlaÄil Wágner Wasserbauer Weiss Wiedermann Wolf Zabavník Zábojník Zabransky Zadak Zahajsky Zahalka Zahradka Zahradnicek Zahradník Zach Zajíc ZajíÄek Zalesak ZámeÄník Zamrzla Zapletal Zapotocny Záruba Zatka Zatloukal Zavadil Zavoral ZavÅ™el ZbonÄák ZboÅ™il Zelenka Zelenský Zelinka Zeman Zika Zikán Zikmund Zima Zítka Zivny Zlamal Zlatnik Zlocha Zoubek Zubik Zverina ŽáÄek Žák ŽÄárský ŽemliÄka Žemlík Ženíšek Žídek Žižka ŽofÄák Žůrek Adam Adrián Albert AleÅ¡ Alexandr Alexej Alois Alojz Andrej Antonín Arnost Artur BedÅ™ich Bohumil Bohumir Bohuslav Boris Borivoj BoÅ™ek Bronislav BÅ™etislav Csaba Ctibor Ctirad Cyril ÄŒenÄ›k Dalibor Dalimil Daniel David Denis Dominik Drahomír DuÅ¡al DuÅ¡an Eduard Emil Erik Evžen Fabián Felix Ferdinand Filip FrantiÅ¡ek Gabriel Gejza Gustav Henrich Henrik Herbert Horst Hubert Christián Igor Imrich Ivan Ivo Jakub Ján Jaromír Jaroslav JindÅ™ich Jiří Jonas Josef Jozef Július Juraj Kamil Karel Karol Kazimír Kornel KryÅ¡tof Ladislao Ladislav Leopold LeoÅ¡ Libor Ľubomír Lubor LuboÅ¡ LudÄ›k Ľudovít Lukáš Marcel Marek Marián Mário MaroÅ¡ Martin MatÄ›j Matúš Michael Michal Milan Miloslav MiloÅ¡ Miroslav Nikolaj Norbert OldÅ™ich OndÅ™ej Otakar Oto Patrik Pavel Pavol Peter Petr Prokop PÅ™emysl Quido Radek Radim Radomir Radoslav Radovan Rastislav Rehor René Richard Róbert Roman Rostislav Rudolf Samuel Sebastián Slavomír Sobeslav Stanislav Svatopluk Svatoslav Szilárd Å imon Å tefan Å tÄ›pán Teodor Tibor Titus Tobiáš Tomáš Václav Viktor Vilem Viliam Vincent Vit VítÄ›zslav Vladimír Vladislav Vlastimil VojtÄ›ch Vratislav Yanko ZbynÄ›k ZbyÅ¡ek ZdenÄ›k Zigmund Zoltán bygfoot-2.3.2/support_files/names/player_names_israel.xml0000755000175000017500000003436611225071372022723 0ustar eliaselias Abbas Adham Adoram Aharon Ahmed Almog Alon Amir Amit Amiya Ariel Arik Asaf Assi Avi Aviram Avishai Avivi Avraham Azmi Barak Baruch Ben Benjamin Bibras Binyamin Biram Bonni Dan Dani Daniel Danny David Dekel Dela Dror Dudu Eden Ehud Eitan Eli Eliran Elisha Elman Elnatan Elyaniv Erez Eyal Fabian Gad Gadi Gai Gal George Gidi Gil Giora Hamudi Hen Idan Ilan Irakli Itay Itzik Jan Jerry Jonathan Jonny Jordan Kfir Klemi Kobi Leonard Lior Liran Liron Maor Maoz Marco Michael Mor Mordechai Moshe Motti Nahum Najwan Naor Nicolás Nir Nitzan Ofir Ohad Omer Omri Oren Ori Oshri Otto Pini Rahamim Rajid Rami Ran Raul Reef Reuven Rifaat Ron Ronen Roni Ronny Roy Rudy Sagi Sagiv Salem Salim Samuel Sebastian Shadi Shai Shalev Shavit Shay Shimon Shiran Shlomi Shlomo Shmuel Shuki Snir Stav Tal Tamir Tom Tomer Tzahi Umut Uri Valentin Walid Wiyam Ya'akov Yaniv Yaron Yehiel Yehoshua Yevgeny Yoav Yochanan Yohai Yonatan Yossi Yuval Zahi Zion Ziv Abu Dib Abu Siam Abuhatzira Abukasis Abutbul Afek Agami Aharoni Alberman Almadon Almoshnino Amar Amashe Amos Amsalem Antman Aouate Arbeitman Armeli Asao Assous Assulin Asulin Atar Avi Hanan Azaria Azran Azriel Badash Badir Bakhar Balbul Baldout Balili Banin Baransi Barda Baruchyan Bedok Beit ha Levi Ben Ami Ben Basat Ben Dayan Ben Haim Ben Shimon Ben Shushan Ben Tuvim Ben Yosef Benado Benayoun Ben-Muha Ben-Nissan Berkovic Biruk Biton Blumstein Bondar Borba Brailovsky Brick Brumer Buchsenbaum Buzaglo Cain Caveda Chacana Chencinski Cohen Colautti Dahan Damari Damti Danin Davidovich Dayan Dego Duani Edri Elimelech Elkayam Ezra Farkash Feigenbaum Fellus Fink Fuchs Gafney Gazal Geller Gershgoren Gershon Ghrayib Gindin Ginzburg Gita Glick Golan Golsa Gruber Gueta Güzelses Haddad Hadiya Haim Haimovich Haliva Hanuka Harazi Hardy Harush Hassan Hazan Heidman Hemed Hen Hermon Hodorov Holtzman Ilos Israilevich Ivanir Ivgi Jan Janah Jano Kadoch Kadousi Kakoun Kalderon Kashtan Kasoum Katan Kayal Keinan Keisi Kennet Klinger Knafo Kornfein Kozokin Krupnik Lagman Lavan Lavi Levi Levine Levita Levy Lifshits Ma'abi Machnes Maimon Malichi Malmilian Maman Man Megrelashvili Melamed Melikson Menashe Menchel Meshumar Mesika Mishaelof Mizrahi Moyal Nagar Nassar Natkho Nimni Nir Ohana Ohayon Oved Peretz Peser Pizanti Primo Rafaelov Ran Reikan Revivo Roash Rosenthal Rozental Rubin Saban Sahar Salami Salman Samya Sassi Sayegh Scharf Schefler Scheimann Schlefenberg Schwager Shakhbari Shechter Shekel Shengelia Shitrit Shivhon Shmulevich Shriki Shum Silvas Sinai Spiegler Spungin Srur Stelmach Strauber Strauss Strool Suan Sultanov Taga Tal Talesnikov Talker Tamuz Tauber Teodorica Tibi Tikva Tuama Tubi Turgeman Turk Tzagai Tzemah Tzukul Uzan Vered Vermuth Vilner Vollach Weinberg Weisberg Yampolsky Yehiel Yeini Yitzhaki Zandberg Zeituni Zhuk Ziv Zizov Zohar Zviti bygfoot-2.3.2/support_files/names/player_names_finland.xml0000755000175000017500000015661211225071372023056 0ustar eliaselias Aalto Aaltomaa Aaltonen Aarnio Ahlapuro Ahlgren Ahomäki Ahonen Ahoniemi Ahopuro Ahovuori Aikio Airikkala Akoniitty Alamäki Alanen Alatalo Alestalo Alinen Alikoski Almila Antola Anttila Apunen Aravirta Aro Arola Aromäki Aronen Arponen Askola Askonen Askonmäki Asunmaa Aukio Autio Autonen Auvinen Eikarinen Einola Elijoki Elilä Elo Elonen Eloranta Entonen Erkkilä Eronen Ervasti Eskola Eskonen Fredriksson Haakana Haapajärvi Haapakoski Haapala Haapanen Haapaniemi Haapasalo Haavikko Hagelberg Hagman Hakala Hakaniemi Hakavuori Hakkarainen Hakkila Hakola Hakonen Halinen Halme Halmesmäki Halonen Hänninen Hannula Hanski Harila Harjanne Harju Harjula Harjumäki Harjusalo Harkki Harmaja Hartikainen Hartola Hartonen Hassinen Hasu Hattunen Hauhia Hautala Hautamaa Hautamäki Haviseva Heikinheimo Heikkilä Heikkinen Heikkonen Heino Heinonen Heinonkoski Heinämaa Heinämäki Heinänen Heiskanen Helasvuo Helenius Helminen Hemmilä Hemminki Hentilä Hentunen Hernesniemi Hietakangas Hietala Hietamäki Hietanen Hilli Hiltunen Himanka Hinkka Hinkkanen Hirvelä Hirvimäki Hirviniemi Hirvisalo Hirvonen Hokamäki Hokkanen Holkeri Hollo Holma Holmen Holttinen Hongisto Honka Honkala Honkalehto Honkamäki Honkanen Honkasalo Hopia Hovi Hovinen Huhtala Huhtamo Huhtanen Huhtasalo Huhtinen Huopio Huotari Hurme Hurskainen Huttunen Hynninen Häkkilä Häkkinen Hämäläinen Härkönen Hätilä Hättönen Ihalainen Ihamäki Ihonen Iisalo Iistola Iivari Iivonen Ikola Ikonen Ilmarinen Ilola Ilonen Iltanen Ilvonen Immonen Inamäki Isokoski Isometsä Isomäki Isoniemi Isosomppi Isotalo Itkonen Jaakkola Jaatinen Jakonen Jalkanen Jalo Jalonen Jantunen Jaskari Joenlahti Joenpolvi Joensuu Joenväärä Jokela Jokihaara Jokila Jokilampi Jokinen Joutsela Joutsi Joutsiniemi Juhala Juhola Junnila Juolanka Jurvanen Jussila Jutila Jyrkkiö Jänne Järvelä Järvi Järvilehto Järvinen Järvipalo Jääskeläinen Kaakko Kahelin Kahila Kahilainen Kaihlavirta Kairanen Kaisko Kajander Kallio Kalsi Kaltiainen Kalto Kaminen Kammonen Kanelius Kangas Kangasmäki Kangasniemi Kankkunen Kanniainen Kannisto Kantee Kapanen Karesto Karhu Karhula Karhumäki Karhunen Karhuvaara Karikko Karila Karimäki Karisto Karjalainen Karjanlahti Karppinen Karttunen Karvinen Karvonen Kasila Kaski Kaskinen Kataja Katajala Katajamäki Katajisto Kauhala Kaukola Kaukonen Kaunismäki Kaunisto Kauppinen Kauranen Kehämaa Keimola Keinola Keinonen Keinänen Kekkonen Kelander Kelo Kemmo Kemppainen Kemppinen Kenttä Kerppola Kervinen Keränen Keskinen Keskisalo Keskitalo Kestilä Kesälahti Keto Ketola Ketonen Kiiro Kiisto Kiljunen Kilpeläinen Kilpinen Kilponen Kimmonen Kinnula Kinnunen Kirvesmäki Kirvesniemi Kiukainen Kiuru Kiurulahti Kivelä Kivi Kivikoski Kivilahti Kivimäki Kiviniemi Kivistö Kivivuori Klami Kohvakka Koistinen Koivikko Koivisto Koivu Koivula Koivumäki Koivunen Koivurinne Koivuvaara Kokko Kokkola Kokkonen Kolari Kolehmainen Kononen Kontio Kontiola Kontiomäki Kontula Koppala Korhola Korhonen Korkeakangas Korkeakoski Korkeamäki Korkeavaara Korkinmäki Korkki Korpela Korpelainen Korpi Korpinen Korpivaara Korpula Korte Kortekangas Koskela Koskenkorva Koskenniska Koskimäki Koskinen Koskipuro Koskivuori Kosonen Kotilahti Kotiranta Kotkaniemi Kotro Kottila Koutaniemi Kovala Kovanen Kovero Kuha Kuhanen Kuikka Kuikkanen Kuisma Kuismala Kuismanen Kuittinen Kuitunen Kuivanen Kuivaniemi Kuivasto Kujala Kujamäki Kujansuu Kukkamo Kukkasmäki Kukkonen Kulmala Kulonen Kulovuori Kumpula Kumpulainen Kunnas Kuntola Kuoppa Kuoppala Kuosa Kuosmanen Kuukka Kuukkeli Kuusela Kuusi Kuusimäki Kuusinen Kuusinen Kuusisto Kykkänen Kyllönen Kymäläinen Kytölehto Kytölä Kyyrö Laakio Laakkonen Laakso Laaksonen Laamanen Laaninen Laapotti Laasanen Laatio Lahtela Lahti Lahtimäki Lahtinen Laiho Laihonen Laine Laitamäki Laitila Laitinen Lajunen Lakanen Lakiala Lakkala Laksola Lallukka Lammi Lamminen Lammio Lampela Lampi Lampinen Lappalainen Lappi Larva Lasanen Lassila Lastumäki Lastunen Latva Latvala Latvanen Laukas Laukkanen Laukkio Laukkonen Laulainen Lavinen Lavonen Lehikoinen Lehkonen Lehmus Lehterä Lehti Lehtimäki Lehtinen Lehtisalo Lehtivuori Lehto Lehtola Lehtomäki Lehtonen Lehtoranta Lehtovaara Lehväslaiho Leino Leinola Leinonen Leminen Lemivaara Lemminkäinen Lemola Lemponen Lepola Leppä Leppäkoski Leppälä Leppämäki Leppänen Leppävuori Leskinen Lesonen Levola Levonen Leväaho Levänen Leväslahti Leväsmäki Lieslampi Liesmäki Lievonen Liikka Liimatainen Liimatta Liinamaa Liistola Lind Lindell Lindström Linkomies Linna Lintula Lintulahti Lintunen Lipponen Lisko Liskola Litma Litmanen Liukko Liukkonen Loikas Loivamaa Loppi Louhelainen Louhi Louhimäki Louramo Luhtanen Lujanen Lukkala Lumme Luoma Luomala Luoteinen Lusa Luttinen Luukko Luukkonen Luvio Lydman Lyytikäinen Lyytinen Länsivuori Lätti Maajoki Maatiala Madetoja Mainila Majaalahti Majanen Majuri Makkonen Maksimainen Malaska Malasmaa Malasmäki Malkamäki Malmi Malmio Malmivaara Mannila Manninen Mannisenmäki Mantila Marila Marjamaa Marjamäki Markkanen Markkula Markula Markunmäki Martikainen Martonen Marttila Marttinen Marvaala Matila Matinen Matinsalo Matomäki Mattila Matunen Maunu Maunula Maununen Mehiläinen Mehtälä Meilahti Mekonen Mellilä Menninkäinen Menonen Meresmaa Merikanto Meriluoto Merilä Meriläinen Merimaa Merisalo Meronen Merta Mesikämmen Mesiranta Meskanen Metsä Metsäketo Metsälä Metsämäki Mielikäinen Mielonen Miesmäki Miettinen Mikkola Mikkonen Mikola Minkkinen Moilanen Moisander Moisio Montell Muinonen Muje Mujunen Mukala Mukkula Multanen Munne Muotiala Murola Murto Murtonen Murtoniemi Mustajärvi Mustaniemi Mustonen Muukkonen Muurimäki Muurinen Mykkänen Myllylä Myllymäki Myllyniemi Myllyrinne Myllys Myllyvuori Mylläri Myntti Mynämäki Myyry Myyryläinen Mähönen Mäkelä Mäkeläinen Mäkimaa Mäkinen Mäkiranta Mäkitammi Mäkitie Mäkivaara Mäkivuo Mäkäräinen Määttä Määttänen Mäyrä Naakka Naappila Naaranen Nakkila Nalkanen Nasila Natunen Naukkarinen Naulapää Naumanen Nauvo Neilimo Nenonen Neuvonen Nevakivi Nevala Nevalainen Niemelä Niemenkaski Niemi Niemikorpi Niemimäki Nieminen Niemipalo Niemistö Niini Niinimäki Niininen Niinivuori Niirala Niiranen Niittykangas Niittylä Niittymäki Niittyniemi Nikander Nikkanen Nikko Nikkola Niklander Nikula Nikulainen Nirvanen Niskakangas Niskala Niskanen Nissilä Nissinen Niukkanen Nivala Noopila Nopola Noponen Noronen Norres Nousiainen Nukari Nukarinen Numanto Nummelin Nummi Numminen Nummisto Nummivirta Nuorela Nuortama Nuppula Nuppunen Nurmela Nurmenkari Nurmi Nurminen Nyberg Nykänen Nylund Nyström Närhi Nättilä Oijennus Oikarinen Ojakangas Ojala Ojanen Ojaniemi Ojanperä Ojansivu Ojapelto Okkonen Oksa Oksala Oksanen Ollila Onninen Oranen Orkko Ortio Paakkala Paakkanen Paakkari Paanala Paananen Paasikivi Paasilinna Paasio Paasivirta Paatelainen Paavilainen Paavola Paju Pajula Pajumäki Pajunen Pakkala Pakkanen Pakkarinen Pakomäki Pakonen Palemaa Palkonen Pallonen Palmberg Palmu Palmula Palmusto Palo Palokangas Palokka Palola Palolahti Palomäki Palonen Palosaari Palttala Panula Parkkali Parkkinen Parnila Paronen Partala Partanen Parvela Parviainen Pasanen Patamäki Patjas Patomäki Paulamäki Paulaniemi Paunio Pehu Pekkala Pekkanen Pekola Pekonen Pellikka Pellinen Pellonpää Pelto Peltoaro Peltokangas Peltola Peltomaa Peltomäki Peltonen Peltoniemi Peltotalo Peltovuori Penkki Pennanen Perho Perko Perkola Perttunen Perälä Perämäki Pesola Pesonen Pesu Petrell Pettinen Petäjä Petäjämäki Petäjäniemi Peurajärvi Piekkanen Piekkala Pienimäki Pieniniemi Pietarinen Pietilä Pietiläinen Piettanen Pihlaja Pihlajamaa Pihlajamäki Pihlajaniemi Pihlajisto Pihlavisto Piikkilä Piili Piirainen Piiroinen Piironen Piispanen Pihkala Pikkala Pikkanen Pilvi Pilvinen Pirilä Pirinen Pirkkiö Pirnes Pohja Pohjonen Pohjosmäki Poikolainen Poikonen Pokkinen Polvijärvi Polvinen Porola Porvari Posio Poutala Poutanen Poutiainen Pudas Pudasjoki Puikkonen Puistola Pulkki Pulkkila Pulkkinen Puolanne Puotila Puotiniemi Puputti Purhonen Purmonen Purola Puronen Putkinen Putkonen Puumala Puumalainen Puurunen Pynnölä Pynnönen Pystynen Pyykkönen Pyylampi Pyymäki Pälli Pääkkönen Päätalo Pöntinen Pörhölä Pöyhönen Raappana Raevuori Rahikainen Rahkamo Rahkonen Rahnasto Rahola Rahunen Rainio Raiskio Raivio Rajala Rajamäki Rajaniemi Rajasalo Rakunen Rannikko Rannisto Ranta Rantala Rantamäki Rantanen Rapola Rasila Rasinkangas Rauhala Rauhanen Raukko Rauma Rautala Rautakorpi Rautanen Rautavuori Rautiainen Rehunen Reijonen Reima Reimari Reini Reinola Reiskanen Rekiaro Rekilä Rekola Remes Renvall Repo Reunala Reunanen Ridanpää Riekkinen Riihelä Riihinen Riihimäki Riihivuori Riikonen Riipi Riipinen Rinne Rinnekangas Rintala Rintamäki Rintanen Riski Rissanen Ristilä Ristimäki Rita Ritala Roimala Roine Roininen Rokka Romo Ronkainen Ropanen Ropponen Rouhiainen Rovanperä Ruhanen Ruskeasuo Ruuska Ruuskanen Ruuttu Ruutu Ryhänen Ryti Räikkönen Räsänen Rönkkö Saarela Saarenpää Saari Saarijärvi Saarikoski Saarikivi Saarilampi Saarimäki Saarinen Saarisalo Saaristo Saikkonen Sailio Sainio Sairanen Sairiala Sairio Saisio Sakkola Saksela Saksinen Salama Salhomäki Salin Salisma Salli Sallinen Salmela Salmesmäki Salmi Salmijoki Salminen Salmivaara Salo Salokangas Salokorpi Salolainen Salolahti Salomaa Salomäki Salonen Saloniemi Salovaara Salovuori Sammalisto Sammalkangas Sampo Sandell Sanevuori Santala Santamäki Santanen Santavuori Sappinen Sarajärvi Saraste Sarekoski Sarevuo Sari Sariola Sarjala Sarjanen Sarkki Sarkkinen Sarkola Sarkomaa Sarolahti Sarpakangas Sarpaneva Sarsila Sarssi Sarvanmaa Sasi Saukko Saukkola Saukkonen Saukonoja Sauli Saunalahti Saunamäki Saunio Sauvo Savela Savijoki Savikko Savila Savilahti Saviniemi Selin Selkee Seppo Sepponen Seppä Seppälä Seppänen Setälä Seutula Sevon Siekkinen Sievinen Sihvo Sihvola Sihvonen Siikala Siikajoki Siilasvuo Siirilä Siironen Siirtonen Siitarinen Sillanpää Siltala Siltanen Siltapohja Silvander Silven Simo Simojoki Simola Simonen Simpanen Simpsiö Simula Sinervo Sinisalo Sinivuori Sinkkonen Sirkiä Sirola Sistonen Siukola Siukonen Siurulainen Siurunen Sivonen Sivula Sivunen Snell Sohlman Soimakallio Soini Soinila Soininen Sointu Sointula Soisalo Sonninen Sopanen Sorell Sormunen Soro Sorsa Suhonen Suikkanen Suikki Sulander Sulku Sulkunen Sullanmaa Summanen Sundell Suni Suokko Suolahti Suomalainen Suomela Suomi Suominen Suoranta Sutela Sutinen Sykkö Syrjä Syrjälä Syrjänen Syrjäniemi Syvälä Syvänne Syväsalo Säressalo Särkijärvi Särkilahti Taanila Tainio Taipale Takala Takamäki Takanen Takko Talasmäki Tallus Talonen Talvela Tammi Tamminen Tanni Tanninen Tanskala Tanskanen Tapala Tapaninen Tapio Tapiola Tapuli Tarvainen Tarvajärvi Tasala Tasanen Tastula Tavela Temonen Tenhonen Tenkanen Teronen Teräväinen Tiainen Tiensuu Tiihonen Tiilikainen Tiirikainen Tikkanen Timonen Tirkkonen Toikka Toiva Toivanen Toiviainen Toivola Toivonen Tokoi Toppila Torkkeli Törmä Törmälä Törmänen Toropainen Toskala Toukola Tukio Tulonen Tumanto Tuomainen Tuomanen Tuomela Tuomi Tuomimäki Tuominen Tuominiemi Tuomisto Tuokkola Tuppurainen Turku Tursas Turtola Turula Turunen Turvanen Tuukkanen Tuulari Tuulasmaa Tuulola Tykkyläinen Tyni Tyrväinen Törnvall Ukkola Ukkonen Ulenius Ulmala Ulmanen Urponen Uskola Utajärvi Utriainen Uurainen Uusikartano Uusimäki Uusiniemi Uusitalo Uusivirta Uusjoki Vaarakallio Vaarala Vaaraniemi Vaijärvi Vaittinen Vakkuri Valkki Wallenius Wallius Waltari Valtonen Vanhala Vanhamäki Vanhanen Vanhatalo Varjo Varonen Varpio Varsamäki Vartiainen Vartiomäki Varvio Vasara Vasaramäki Vataja Vatanen Veijalainen Veijola Veijonen Veikkola Veikkonen Vekarainen Venemies Venäläinen Vepsäläinen Vesilahti Vesto Vihavainen Vihermaa Viherpalo Vihervä Viiki Viilo Viinanen Viironen Viita Viitahalme Viitala Viitamäki Viitanen Viitaniemi Viitasalo Vikkula Vilkuna Virén Virjonen Virkkala Wirkkala Virkkunen Virta Virtala Virtamäki Virtanen Virtapohja Virtavuori Viskari Visuri Voipaala Volanen Vuorela Vuorenpohja Vuorensalo Vuori Vuorinen Wuorinen Vuorisalo Vuoristo Vuorio Vähämäki Vähätalo Väinölä Väisänen Väliahde Väliaho Välimäki Välitalo Välivaara Väre Väänänen Vääräniemi Ylianttila Ylikoski Ylinen Yli-Ranka Yläjoki Ylätalo Ylönen Aarne Aatu Aki Anssi Antti Antti-Jussi Antti-Pekka Arto Eero Hannu Heikki Ilkka Ismo Jaakko Jani Janne Jari Jarkko Jarno Jaska Jere Johannes Jonne Joonas Jouni Juha Juhani Jukka Jussi Jussi-Pekka Kaaleppi Kalle Kari Kimmo Marko Markus Martti Matias Matti Mauno Mauri Miika Miikka Mika Mikael Mikko Miro Olli Petri Petteri Rami Riku Risto Saku Sami Samuli Santeri Teemu Teppo Tero Timo Tomi Tommi Toni Topi Topias Tuomas Tuomi Valtteri Veli Vesa Viljami Ville Aapeli Aapo Aappo Aarni Aarno Aaro Aaron Aatto Aatu Ahti Aimo Aki Akseli Aku Albert Aleksanteri Aleksi Aleksis Ali Allan Alpo Anselmi Antero Ari Arsi Arttu Artturi Arvi Arvo Asko Asmo Atro Atso Atte Aulis Auvo Daniel Eemeli Emil Eerikki Eetu Einari Eino Elias Elmeri Elmo Ensio Erkki Erno Esa Esko Hannes Harri Heikki Heimo Heino Henri Henrik Herkko Herman Hiski Iikka Iiro Ilari Ilkka Ilmari Ilmo Ilpo Ilppo Into Ismo Isto Jami Jari Jarkko Jarko Jarmo Jarno Jere Jesse Joakim Joel Johannes Joni Joona Joonas Jori Jorma Jouko Jouni Juho Jukka Juska Juuso Jyri Jyrki Kaarle Kai Kalevi Kalle Kari Karri Kasperi Kauko Keijo Keimo Kerkko Kim Konsta Kristian Kuisma Kyösti Lari Lasse Lassi Lauri Leevi Leo Manu Markku Niilo Niklas Nikke Niko Olavi Oskari Osmo Ossi Otso Otto Paavo Panu Pasi Patrik Paul Pauli Pekka Pekko Pentti Pertti Perttu Pirkka Pyry Raimo Raine Raino Rami Rasmus Rauli Rauno Reijo Reima Reino Reko Rikhard Robert Roni Sakari Saku Sampo Samppa Sampsa Samu Santtu Saul Sauli Seppo Simo Sulo Tahvo Taisto Taneli Tapani Tapio Tarmo Tatu Tauno Teemu Teijo Teppo Terho Tero Teuvo Tino Toimi Toivo Tuomo Turkka Turo Tuukka Untamo Unto Urho Urpo Usko Uuno Valentin Valto Veijo Veikko Veli Verneri Vesa Vilhelm Vilho Vili Visa Voitto Väinö Yrjänä Yrjö bygfoot-2.3.2/support_files/names/player_names_brazil.xml0000644000175000017500000007407111225071372022721 0ustar eliaselias Ademar Ademir Adriano Alan Alberto Alessandro Alex Alexandre André Armando Arnaldo Bebeto Bento Bernardão Bernardinho Bernardo Betão Beto Bilú Cabralzinho Cacá Carlinhos Carlos Cassio Celso Chicão Chico Chiquinho Claudecir Claudemir Cleber Cristiano Daniel Danilo Davi Denis Didi Diego Donizete Douglas Dudú Eder Edgard Edmundo Edson Edú Eduardo Elcio Evandro Fabiano Fábio Fabricio Felipe Fernandão Fernandinho Fernando Francisco Gabriel Gilberto Gustavo Helder Hugo Humberto Itamar Ivan Ivo Jair Jairo Jânio Jeferson João Joãozinho Jonas Jorge Juca Juninho Junior Juvenal Leo Leonardo Lucas Luís Luisinho Mané Marcelo Marcio Mariano Mario Mateus Mauro Miguel Murilo Nenê Norberto Orlando Oscar Otavio Paulinho Paulo Pedrinho Pedro Rafael Reginaldo Rene Ricardo Roberto Roger Rogério Romário Rômulo Ronaldão Ronaldinho Ronaldo Roque Samir Sandro Serginho Sergio Silvano Silvinho Silvinho Silvio Tadeu Tatá Tavinho Thiago Toninho Totó Umberto Valdemar Valter Vanderlei Vavá Vicente Victor Vinícius Vladimir Wagner Waldemar Wanderson Wiliam Zacarias Zé Maria Zé Pedro Zé Roberto Zeca Zequinha #here the new list of first names that could replace the old first name-last name combinations or complement them Abel Braga Abuda Acácio Adaílton Adãozinho Ademir Adílio Ado Adriano Afonsinho Afonso Ailton Airton Pavilhão Alan Alcides Aldair Aldo Alecsandro Alemão Alex Mineiro Alexandre Alfinete Alfredo Aloísio Altafini Altair Ãlvaro Amaral Amarildo Anderson Anderson Polga Andrade André Cruz André Luís André Luiz Andrezinho Antônio Carlos Araken Araújo Ariclenes Artur Assunção Athirson Aurélio Bahia Baiano Baldocchi Baltazar Balthazar Barbosa Batatais Batista Batistinha Bauer Bebeto Belletti Bellini Beto Bigode Biro-Biro Bismarck Biurrun Bobô Boccoli Bolívar Bortolozzo Branco Brandão Brandãozinho Brilhante Brito Britto Bruno Moraes Bujica Caçapa Cafu Camerinho Cantarele Careca Carlinhos Carlinhos Bala Carlitos Carlos Carlos Alberto Carlos Germano Carvalho Casagrande Castilho Ceará César César Sampaio Chicão Chico Chris Cicinho Cláudio Adão Claudinho Cleberson Clemer Clodoaldo Cocada Conceição Coutinho Cris Dadá Maravilha Dagil Dakson Daniel Daniel Araxa Danrlei Dedé Denílson Dequinha De Sordi Diano Dida Didí Diego Dino Diogo Dirceu Djalma Djalma Santos Dodô Domingos Doni Doriva Dorival Du Bala Duda Dudu Cearense Dudu Paraíba Dunga Éder Edevaldo Edílson Edinho Edivaldo Edmílson Edmundo Édson Edu Edu Dracena Eduardo Eliezio Élson Elzo Emerson Eriverton Evandro Paulista Everaldo Ézio Fábio Fabiano Fabinho Fábio Januário Fábio Santos Falcão Fausto Felipe Felipe Dias Félix Fernandinho Fernando Ferreira Filipe Luís Flávio Fontana Francismar Fred Friaça Gabriel Garrincha Gaúcho George Geovanni Gérson Gil Gilberto Gilberto Silva Gilmar Gilmar Rinaldi Giovane Giovanni Gladstone Gomes Gonçalves Gustavo Helton Henrique Hiran Ilsinho Ãndio Ivan Jádson Jair Jairzinho Jaú Jô João Paulo Joãozinho Joel Jonathan Jonathas Jonilson Jorge Mendonça Jorginho Josimar Josué Juan Julinho Júlio Baptista Julio Cesar Júlio Sérgio Juninho Juninho Pinheiro Juninho Paulista Júnior Júnior Baiano Júnior Juninho Junivan Jurandir Kaká Kelly Kerlon Kléber Kléberson Kuki Leandro Leandro Silva Leandro Bonfim Leão Leivinha Léo Léo Silva Leonardo Araújo Leônidas Lúcio Luís Carlos Luís Fernando Luís Pereira Luisão Luizão Luizinho Magno Mancini Maneca Manga Marcelinho Carioca Marcelinho Paulista Márcio Marcinho Márcio Nobre Márcio Santos Marco Marcos Marinho Chagas Marinho Peres Mário Martinez Matheus Mauro Mauro Galvão Mauro Silva Maxwell Mazinho Mengálvio Michel Mineiro Mirandinha Moacir Moderato Moisés Mozart Mozer Müller Narciso Neco Nelinho Nelsinho Niginho Nilo Nílton Nininho Oreco Orlando Oscar Oscarino Pamplona Paquito Paraná Patesko Paulinho Paulo César Paulo Paulo Sérgio Paulo Vitor Pedrinho Pelé Pepe Perácio Peris Piazza Pinga Pita Polozzi Preguinho Quarentinha Rafael Raí Reinaldo Renato Renato Augusto Renato Gaúcho Renê Ricardinho Ricardo Gomes Rildo Rivaldo Rivelino Roberto Roberto Carlos Robinho Róbson Rodolfo Rodrigues Roger Rogério Ceni Romário Romeu Ronaldão Ronaldinho Ronaldo Roncatto Rondinelli Roque Júnior Rossato Rubens Sandro Santos Sávio Serginho Sérgio Sidny Silas Sócrates Sonny Taffarel Teco Tesourinha Thiago Tim Tinga Tita Tite Tom Toninho Tostão Triguinho Uidemar Vágner Love Valdir Valdo Valdomiro Vampeta Vanderson Vavá Vinícius Viola Wagner Wamberto Washington Weligton Wellington Welliton Zago Zé Carlos Zé Elias Zé Maria Zé Roberto Zé Sérgio Zequinha Zetti Zézé Zico Zinho Zito Zizinho Zózimo Abonizío Abreu Adelino Aguiar Alagoano Alberico Alencar Almeida Altafini Alves Amadeu Amaral Amorim Amoroso Anchieta Andrade Antunes Aparecido Aramburu Arantes Arruda Assunção Avanzi Bacchi Bala Barbosa Barcellos Barreto Barros Barroso Bastos Batista Beiramar Berbert Bergantin Berjun Bernardi Betanin Bisco Bitencourt Boaro Bolzan Borba Bordon Bortolini Bosco Botelho Braga Breves Bueno Burigo Cabelino Cabral Caetano Caipira Cajueiro Calamari Calazães Calmon Camargo Campos Capixaba Cardoso Carioca Carmo Carpegiani Carvalho Cearense Cerezo Cerqueira Chagas Chamusca Cholbi Chulapa Cícero Claro Clementino Coelho Coimbra Cometa Coradini Cordeiro Corrêa Coutinho Cruz Cunha Custódio da Costa da Cunha da Guia da Luz da Mata da Rosa da Silva da Silveira dal Belo Dantas de Aquino de Brito de Cézare de Espíndola de Figueiredo de Freitas de Gusmão de Jesus de Luca de Oliveira de Sá de Santana Defavori Deiberson Dias Diniz Dobbert Donizetti Dormelles dos Anjos dos Santos Duarte Esteves Faiolhe Fantoni Faria Favoretto Feitosa Feliciano Felisbino Fernández Figueiró Filho Fonseca Fontana Fontes Fortes Frade Franco Freitas Gaia Galdino Galera Gallo Galvão Gama Garcia Gaspar Gaúcho Giroldo Goiaba Goiâno Gomes Gonçalvez Goulart Goya Guedes Guidicelli Guidoni Guimarães Higinio Honório Izecson Jezuíno Junior Junqueira Kaefer Ladaga Lago Laranjeira Laurentino Lázaro Leal Lebrêgo Leite Leiva Lemos Lima Linhares Lopes Lorenzato Lourenço Louzada Macedo Machado Maciel Maicon Maloca Mandrake Marangon Marciano Marinho Marques Martini Martins Mazzoli Medina Melo Mendes Mendonça Menezes Mergen Mesquita Metralha Mineiro Miranda Moedim Monteiro Morais Moreira Moreno Mostarda Mota Moura Murtinho Nascimento Nazário Nelo Nepomuceno Neto Netto Neves Nilmar Nobre Nóbrega Nogueira Noronha Novaes Nunes Oliveira Pacheco Paes Paixão Paladini Paraense Paraíba Paraíbano Parente Patusca Paulista Pedroso Pereira Peres Pernambucano Pézão Pimentel Pinheiro Pinto Pires Prado Prates Presti Procópio Quagliato Queiróz Ramalho Reis Resende Ribeiro Rinaldi Rivellino Robles Rodrigues Rossignollo Ruas Sales Sampaio Samuca Santa Rosa Santana Santos Scardovelli Serejo Silva Silveira Soares Souza Stecanela Stinghen Surcin Tavares Tóffoli Tomé Torres Trancoso Trochillo Ulibarri Vale Valle Venâncio Venerando Ventura Vergeiro Verri Viana Vicençote Vieira Vilela Vivian Wanderley Watanabe Xavier Zolim bygfoot-2.3.2/support_files/names/player_names_serbia.xml0000644000175000017500000006624411225071372022706 0ustar eliaselias Adem Admir Albert Aleksa Aleksandar Almir Andrija Anton Antonio Bane Bela Blagoja Blagoje Boban Bogdan Bojan Bora Borivoje BoÅ¡ko Božidar Božo Branimir Branislav Branko Budimir Cvijan Damir Danijel Danko Davor Dejan Dimitrije Dobrivoje Dobrosav ÄorÄ‘e Dragan DragiÅ¡a Dragoljub Dražen DuÅ¡an DuÅ¡ko Ersin Filip Gojko Goran Gordan Igor Ilija Ivan Ivica Josip Jovan Jovica Jovo Jusuf Kosta Kristian Kristijan Lazar Leo Lesh Ljuba Ljubinko LjubiÅ¡a Ljubomir Ljupko Mane Marin Marinko Marjan Marko Martin Mateja Mića Mihajlo Milan Milinko Milivoje Miljan Milomir Milorad MiloÅ¡ Milosav Milovan Milutin Minja Miodrag Miomir Mirko Miroslav MiÅ¡ko Mitar Mladen MomÄilo Mustafa Nandor NebojÅ¡a Nemanja Nenad Neven Nikica Niko Nikola Nikon Nino Novak Ognjen Oliver Pavel Pavle Perica Petar Predrag Prvoslav Rade Radojko Radoslav Radovan Rajko Ranko RaÅ¡o Ratko Ratomir ReÅ¡ad Risto SaÅ¡a Sava Sead Silvester Sima SiniÅ¡a SlaÄ‘an SlaviÅ¡a Slavko Slavoljub Slobodan Spasoje Spira Å piro Srboljub SrÄ‘an Srećko Sreten Stanislav Stanoje Stefan Stevan Stjepan StojanÄe Svetozar Tihomir Todor Toma Tomislav UroÅ¡ Velibor Velimir Vesa Veselin Vesko Vidak Vlada Vladan Vladica Vladimir Vladislav Vlado Vojislav Vujadin Vuk Žarko Zdravko Željko Živan Zlatko Zoran Zvezdan Zvonko Abadžić Abat Abazović Abramović Aćimović Adamović Ajder Aleksić Alija AnÄ‘elković Andić Antić Antonić Antonijević Arangelovic Arok Arsenijević Atanacković Atanasić Atanasković Avdalović Avramov Avramović Babalj Babić Babović Bajalica Bajatović Bajević Bajić Baković Bakovici Banjanin Banjasić BaoÅ¡ić Baranin Basta Batak BeÄejac Begović Bek Belada Belić Belodedici Bena Binić BiÅ¡evac Bizetić Bjeković Blagojević Blažić Bobek Bogdanović Bogićević Bogunović Bolić Bondžulić Borota BosanÄić BoÅ¡kov BoÅ¡ković Boya Brajović Branković Bratić BrežanÄić BrezenÄić Brnović Brozović Brzić BuaÄ Bukvić Bulić BunjevÄević Bunjkanj Bursać Bushati ÄŒajkovski ÄŒakar ÄŒanÄarević ÄŒanović Carević ÄŒebinac Cekić ÄŒekić ÄŒelebić ÄŒelenović Cicović CilinÅ¡ek Ćirić Ćirković Ciukic ÄŒolaković ÄŒolić ÄŒonka ÄŒorović ÄŒotra Crvenkovski ÄŒubrilo ĆurÄić Ćurkić Ćurković Cvetanović Cvetković Äajić Äalović Damjanović Äanić Danilović ÄelmaÅ¡ Äenić Despotović Dević Äilas Dimić Dimitrijević DiÅ¡ljenković Divac Djekanovic Äokić Äoković ÄorÄ‘ević Äorić Äorović Dostanić Dragićević Dragovic Dragutinović Drakulić Drapić Dronov Drulić Drulović Dudić Dujković Äukić Duljaj Dunjić ÄuraÅ¡ković ÄurÄ‘ević Äurić Äurovski Džajić Džodić Ergić Erić Fejsa Filipović FranciÅ¡ković Galić Gavran GavranÄić Gegic Gemaljević Glogovac Gogić Golac Golubović Gosic Govedarica Grkinić Grozdić GrubjeÅ¡ić Grujić Grumić Gugleta Gulan Gvozdenović Hadzibulic Hasanagić Hasanbegović HasanÄ‘ekić Hasanović Hatunić Hebić Hebović Herceg HoÄevar Holcer Idrizi IliÄ Iliev Injac Ivanović Ivelja Ivezić Ivić Ivković IvoÅ¡ Jakovetić Jakovljević Janković Jasic Jelenković Jelić Jelikić Jeremić JeÅ¡ić Jestrović Jević Jevrić Jevrović Jevtić Jezdimirović Jocić Jokanović Jokić Joksimović Jolović Jorgacević Jovanić Jovanović Jovetić Jović JoviÄić Jovin Jozić Jugović Jusuf KaÄar Kahriman Kalajdžić Kaloperović KaluÄ‘erović Kaplanović Karamarković Karasi Katanec Katić Kesić Kežman KlinÄarski Knežević Kocić Kojic Kolaković Kolarov Kolić Komadina Komljenović Korać Koroman Kostić KovaÄ KovaÄević Kralj Krasić KrÄmarević Krivokapić Krivokuća Krmpotić Krstajić Krstić KrstiÄić Krupniković Kujović Kunovac Kuntić Kustudić Kuzmanović Lazarević Lazarevski Lazetić Lazić Lazović Leković Lerinc Lesnjak Levnaić Ljajić Ljubenović Ljubinković Ljuboja Ljubojević LjukovÄan Lomić Lovre Lovrić Lukić Luković MagoÄ Maksić Malbasa Mance Maravić Marić MariÄić Marinković Marjanović Markićević Markoski Marković Marović Martinović Matić Medić Mehmedović Melić Mićović Mihajlov Mihajlović Mijailović Mijanović Mijatović Mijin Miladinović Milanić Milanović Milić MiliÄević MilijaÅ¡ Milinković Milisavljević Milivojević Miljanić Miljanović Miljković Milojević Milosavljević MiloÅ¡ević Milovanov Milovanović Milović Milutinović Miok Mirković Mirosavljević MiÅ¡ić Mitić Mitrović Mladenović MrÄ‘a Mrdaković Mrkela MrkuÅ¡ić Mudrinić Muratović Muslin Mutavdžić NaÄ‘ Nastić Naumović Nedeljković Nedovic Neziri Nikezić Nikitović Nikolić Ninković NjeguÅ¡ NjergeÅ¡ Novak Novaković Novković Obradović Ocokoljić Ognjanov Ognjenović Okuka Oláh Olarević Omerović Opsenica Osmanagić Osmanović Ostojić Pajević Palavestrić Palfi Pandurović Pantelić Pantić Paunović Pavić Pavlić PavloviÄ Pažin PejÄić Pejović Pekarić Peković Perendija Perić PeriÅ¡ić Perović PeÅ¡ić Petaković Petković Petrić Petronijević Petrović Pirmajer Pivaljević Pjanović Popara Popović Prijović ProsineÄki Purović PuÅ¡ić Pustinjaković Radaković Radanović Radić Radivojević Radjenović Radosavljević Radovanović Radović Ragipovic Rajkov Rajković Rajlić Rajović Rakić RakoÄević RanÄ‘elović Rasić RaÅ¡ković RaÅ¡ović Rendulić RepÄić Ristanović Ristevski Ristić Ristović Rnić Roganović Rudinski Rukavina Rupnik Rusmir Sabljić Sakić Samardžić SantraÄ Å aranov Å arić Savanović Saveljić Savić Savićević SekereÅ¡ Å ekularac SeleÅ¡ Selkić SenÄar Å estić Shkreli Sikimić Simeunović Å imiÄić Simonović Simonovski Å krbić Slivić Å ljukić Slović Smailagić Smajić Smiljanić Å mit Sombolac Å oÅ¡kić Å oÅ¡tarić Sotirović Sotonić Spahić Spajić Spalević Spasić Spasojević Spoljaric Sprećaković Sredan Sredojevic Sretenović Stamatović Stamenković StanÄić Stanić StaniÅ¡ić Stanivojević Stanković Stanojković Stefanović Stepanov Stepanović Stevanović Stević Stipić Stjepanović Stojak Stojaković Stojanović Stojić Stojković Stolica StoÅ¡ić Stupar Sujović Sulejmani SvetliÄić Svilar Svinjarević Tadić TakaÄ Tanasijević Tasić Terzić Tirnanić Todić Todorov Todorovic Todorovski TomaÅ¡ević Tomić Tomović Topalović Toplak ToÅ¡ić Trajković Trifunović TriÅ¡ović Trivić Trobok Trtovac Turudija Tutorić UroÅ¡ević Urumov Uzelac Valentić Valok Vanić Vasić Vasilije Vasiljević Vasović Vermezović Veselinović VeÅ¡kovac Vicevic Viciknez Vidaković Vidić Vidinić Vignjević Vitakić VjeÅ¡tica Vjetrović Vlajić VraneÅ¡ Vranić Vranjković VuÄićević Vuckovic VujaÄić Vujkov Vujović Vukajlović VukaÅ¡inović VukÄević Vukelić Vukelja Vukić Vukmir Vukobratović Vukomanović Vukotić Vuković Zagorac Zajić ZaviÅ¡ić Zebec ZeÄević Žigić Žilić Živaljević Živanović Živković Zlatarić Zorić Žugić Zukaj Žuržinov bygfoot-2.3.2/support_files/names/player_names_germany.xml0000644000175000017500000021733211225071372023077 0ustar eliaselias Abse Abt Ackermann Adelung Adler Ahlmann Aigner Aker Albers Albertz Albrecht Allbach Altaner Althusser Altmann Alzen Amlinger Amstadter Anger Angerhausen Angermann Angermeier Angrenny Anhauser Anschitz Apel Apenzeller Apfelbaum Arendt Arentz Argelander Argerich Arlt Armborst Arndt Arnim Arnold Arrau Arzt Asbach Aschenbach Auch Auerbach August Ausborn Aust Austerlitz Axmann Baal Baatz Babbel Babel Bachert Bachman Bacht Bachus Backstadt Backstedt Baehnk Baeker Bagula Bahnsen Bahr Baier Baigelman Balck Baltz Balzer Bambach Barkai Barna Barth Bartolf Basler Bastnagel Batte Bauch Bauchennss Baudendistel Bauer Bäuerle Bäuerlein Baumann Baumgaertel Baumgart Baumschlager Baumstedt Baune Baur Bayerl Bayerlein Bayt Bechmann Bechstein Beck Becker Beerbaum Begerow Behle Behner Behnke Behrendt Behringer Beimler Bek Benscheidt Bentele Benz Berens Bergen Berger Berghahn Bergmann Bermont Berneker Bernhoffer Bernstein Berthold Besse Bethmann Betker Betsch Beyer Biebow Biele Bielenberg Bielenstein Bierbrodt Bierhoff Bihlmeyer Binder Binus Birnbaum Bischoff Bittenbinder Bittinger Bittner Blassneck Bleeke Bleeker Blenker Bloch Blochwitz Block Blöckner Blum Blume Bock Bockhold Bode Boden Bodenheimer Boderode Boellman Boerth Bogen Bohland Bohlen Bohlmann Bohm Böhm Bohman Bohringer Boller Bolm Bonner Borgeling Bormann Bosendorfer Bosler Bosse Both Bothe Böttcher Braasch Bracher Brack Brackmann Brandl Brandt Braun Brauner Braunsberger Braunsteiner Bregar Brehmer Brehn Breinlich Breitling Breitmayer Brem Brendel Brenden Brenner Brennicke Bretschneider Breu Breuer Breyer Brink Brockhaus Broederdorf Brott Bruch Bruckner Brueck Brugger Brugmann Bruhne Brunner Bruns Brück Bucer Buchalter Buchert Buchholz Buchmann Büchner Bucholtz Buder Buechlan Buesing Büttner Bugge Buhle Buhler Bullwinkle Bunge Burchard Burgdorf Burghardt Burgsmuller Burmann Burnstein Busald Busch Buschmann Busemann Buser Buss Bustenschon Bäumer Botow Böhmer Büttner Cananis Cerfas Christmann Classen Claussen Cresp Creuzfeldt Cudaj Cullmann Cunk Dahrendorf Damaske Dankers Dannenberg Dapper Daschke Dautzenberg Dautzenburg Deardorff Decker Degen Dehmel Dehmer Denhardt Denk Dernesch Derr Deschu Diebus Dieckmann Diegelmann Diehl Dieing Diener Dieskau Dieterle Dietrich Dietsch Dietz Dietzsch Diffenderffer Dill Dillhoff Dimaske Dindorf Disl Dittmann Dittmar Dittrich Döpker Dohring Dolder Dombrecht Donis Dopfer Döring Dorn Dornacher Dostthaller Dräger Dreekmann Dreher Dreifelds Drescher Dreschler Drexel Drum Duhr Durkheim Durlacher Döhl Dühring Dümmler Ebner Eckener Eckert Eckhardt Eckholdt Eckstein Edelman Edelmann Egerman Eggen Ehle Ehlers Ehlinger Ehmsperger Ehrenburg Ehrhardt Ehrnsperger Eich Eichendorf Eichhorn Eichmann Eick Eifert Eilts Einbund Einsidel Einstein Eirich Eisenhawer Elser Elsesser Emrich Endress Endresz Engel Engelbert Engeldinger Engemann Engl Englemann Ensslin Eppstein Erb Erbe Erdei Erdmann Ereiwitz Erhardt Erhart Erk Erlang Erndt Ernst Ersler Ertl Esch Eschenbach Essig Esterl Ettenhoffer Ettinger Ettingshausen Ettmuller Eubel Everding Ewen Ewig Fabel Falck Falger Fallmerayer Farber Farbman Farmand Fasch Fass Fassbinder Faulhaber Fauner Faust Faustmann Feger Fehrenbacher Feimer Feinblatt Feistkorn Feiter Feitzfelder Feldhahn Felke Feller Fendler Fenner Fernau Ferschtman Fersten Fetscher Fette Fettkenheuer Feynman Fichte Fichter Fillinger Fink Finkbiner Fischer Fischhauer Fischler Fissler Flegmann Fleischer Fleischhauer Fleischmann Flesch Flicke Fliegle Fliehman Fluck Foch Förster Fogel Fränckel Frank Franke Frankenheimer Frankl Frauenfelder Frenkiel Frenzel Freude Freund Fried Friedberg Friedeck Friedek Friedel Friedensburg Friedlander Friedmann Friedrich Frielinghaus Fries Friesinger Fritsch Fritsche Frobe Froberger Fröbel Fröhucher Frohnel Frohnes Fromme Frommel Frühwirt Frühwirth Fuchs Fuhr Funck Funk Funke Gäbler Gan Garbrecht Gardemeister Gärtner Gastenveld Gaubatz Gebauer Geglein Gehrig Geiberger Geier Geiger Geilinger Geisheimer Geisler Geiß Geissler Gellhaus Gephart Gerasch Gerbeck Gerber Gereke Gerg Gerhard Gerhardt Gerold Gerstaecker Gesell Geserer Gespeck Gessler Geswein Gette Gettelfinger Gibsch Gier Gietl Gillich Gimelstob Gisler Gislinge Glaber Gladisch Glaise Glass Glauber Gleber Gleitsch Glotz Gnass Goc Göbel Göhler Göhr Göllner Görmer Göttinger Götz Götzer Gogele Gohmann Goldenberger Goller Goltz Gorz Goslar Graf Gramm Graupnar Grbech Greenberg Greiner Greiser Griem Gries Grieshop Grill Grillmeier Grimme Grisar Grob Grobler Gröbe Grözinger Grogloth Groß Großman Gruber Grüter Grumach Grumel Grundherr Grundmann Grupa Gudereit Gündler Günthner Guggenberger Gugler Guldenschuh Gulp Gunsche Günther Guschlbauer Guschke Gutensohn Guth Gutman Gutsche Guttfreund Göbelbecker Gögler Göhler Göller Günter Günther Haar Haas Habe Haberfeld Haberlands Hackl Haegler Hagler Härtel Hässler Häusl Häusler Hafonstaangel Hagel Hagelauer Hagen Hagenlocher Hagner Hahn Hahne Hahnel Hahnheiser Halder Haller Halmer Hals Haltzel Hamann Hambitzer Hammerich Hammerle Hammerstedt Hammerstein Hammes Hampe Hampel Hanfman Hannawald Hansen Hansmeier Hapsberg Hardtke Harnock Hartinger Hartl Hartleben Hartlieb Hartmann Hartwig Hartz Hartzer Haschke Haselrieder Haslinger Hasseroeder Hassler Hauch Haug Hauser Hausmann Haußmann Haverfeldt Hax Hazelzet Hecht Heck Heckmair Hedtke Heffner Hegel Heger Hegler Heiden Heidenfelder Heidingsfelder Heidloff Heidt Heigel Heil Heilemann Heimer Heimpel Heindel Heine Heinemann Heinen Heinitz Heinke Heinkel Heinrich Heins Heinzel Held Heldt Helfenbein Helfkin Helfrich Helfter Helgenberger Hellekant Hellen Hellfritzsch Hellinger Hellmann Hellmich Helmer Helmerichs Helwich Hempel Hengel Hengst Hengstenberg Henkel Henschel Hense Hentsch Heofle Herber Herberhold Herberich Herbst Herde Herder Herdfeld Hergenröther Herhard Hermann Herold Herr Herrmann Herting Herzberg Herzfeld Herzl Herzog Hess Hesse Hesselbarth Hesselschwerdt Hessler Hester Heu Heumann Heuser Heusinveld Heusler Heusmann Heymann Heynemann Hicke Hiebl Hiebsch Hieke Hiemer Hier Hietsch Hildebrandt Hilgarth Hillenbrand Himmler Hinetze Hintermeier Hintz Hinz Hipp Hipper Hirsch Hirschauer Hirschfeld Hirtreiter Hitzfeld Hoch Hochlat Höberl Höbig Höchst Höfling Hörn Hötker Hofer Hofmann Hoffmann Hofmeihr Hofstater Högler Hohenleutner Hollinger Hollmann Hollweg Holstein Holthausen Holtzmann Holz Holzhauser Homeier Hook Hooss Hopfer Hoppe Horas Horn Houtmacker Huber Hubner Hügel Huke Humbert Hummec Hunkoos Hunsberger Huntziger Hupetcoff Hupetri Huporkorny Hurtgen Husmann Husserl Hutflötz Huthwohl Huwiter Hämmer Höhne Höpken Hübsch Huesemann Huesmann Huismann Hummel Husemann Husmann Hussmann Idesheim Ilgner Imelmann Immelman Inken Isecke Isekenmeier Isringhausen Jacobsohn Jaeckel Jaeke Jäger Jäkel Jahnet Jakobs Jancke Jancker Jansen Janz Jauernig Jebens Jeckel Jedin Jerratsch Jesser Joachimsthaler Jost Jotten Jung Junghnel Jülicher Jürgen Jürgens Kaehlert Kaffenberger Kämpfer Kahl Kahn Kaiser Kalkbrenner Kallabis Kallenbach Kallenberger Kallisch Kaltenbach Kammerer Kammerling Kandarr Kapp Kappmeyer Karbacher Karge Kasler Kästner Kegel Kehler Kehr Keifer Keil Keitel Kelleners Keller Kemle Kemner Kemper Kempf Kenter Kerndl Kessing Kessler Kestelmann Kettenacker Kezer Khelsch Kiefer Kielgass Kiemle Kiemlen Kiemlin Kienzle Kiep Kies Kießling Kihlstedt Kimmel Kinkel Kirch Kirchbach Kirchenbauer Kircher Kirchheim Kirchhoff Kirsch Kirschenmann Kirschner Kirschofer Kirshbaum Kirsten Kisslinger Klaeber Klah Klais Klassen Klauber Klauschen Klazens Klebel Kleber Klee Kleiber Kleiman Klein Kleinendorst Kleinert Kleinpaul Kleinschmidt Kleitsch Klemert Klewitz Kliese Klimmer Klinck Klingberg Klinger Klinsmann Klohse Klosel Klosner Klostermann Klozbücher Klug Kluge Klöpsch Knecht Knippel Knipper Knippschild Knittle Knobloch Knoepfle Knoll Knueven Kobs Koch Kochta Köhler Köhnemann Kölmel König Kösters Kohler Kohlmann Kohlruss Kohlsaat Kohlund Kohn Kohning Kolb Kolf Koller Konrad Kopke Kopp Koppen Koppenmeier Korff Korner Körtig Kost Kostner Kota Kowarsch Kraatz Krabbe Krafstein Krahmer Krall Kramer Krämer Kraus Krause Kraushaar Krausse Krauthammer Krautheimer Krebs Krech Krehbiel Kreißig Krenckel Kresch Kreuger Kreuter Kreutzer Kreutzwald Kriebl Krin Kröger Krohn Kroner Krueckel Krug Krüger Krugman Krull Krumel Krumholtz Krummenacher Krupp Kruppa Kruyer Kubel Kügler Kühn Kühne Kurten Küster Kuhn Kühn Kuhnle Kuhnt Kulhberg Kumbernuss Kuntz Kunz Kupkat Kuszmann Köhncke Köster Kühnemund Kümblin Kümlin Lackenbach Lackner Lacksz Lahr Lambeck Lambrecht Lammesfelder Lamper Lampl Landauer Landgut Landler Landwerlen Lanerd Lang Lange Langen Langenkamp Lankes Lassen Laszmann Lau Lauchart Lauterback Lector Leddermann Ledermann Leese Leffler Lehman Lehmann Lehner Lehnich Lehr Lehrer Leib Leibbrandt Leibenguth Leiber Leidholdt Leimann Leitenberger Leitinger Leitner Lemmel Lengnisch Lenz Lessing Letzetter Lichtman Lickliter Liebenthal Lieber Liebermann Liebscher Liekmar Lietzke Limbach Limbacher Linden Lindenmaier Linder Lindulf Linesch Linge Lingeman Lingen Lingens Linneberg Linnemann Linnenkohl Linster Lippelt Lippold Littman Litzmann Lobinger Lobstein Löhf Löffelmann Loffler Loheit Lohmann Lohmer Lohmeier Lohmeyer Lohwasser Lohner Lopper Lorenz Lorre Loth Loy Lubitsch Ludeker Lüdemann Ludendorff Ludentz Lüdke Ludwig Lugar Luhrman Lüneburg Lung Lurhmann Lustgarten Löwe Lutz Lux Lüz Maazel Madler Maehl Magel Mahlenkamp Mahler Mahlke Maichel Maier Mair Majerhoffer Mallenbrandt Malz Mann Manstein Manthei Manthey Manzenberger Martin Marunde Maske Massuthe Mast Masur Mathes Mattern Matzenkopf Mauelshagen Maurer Mauser Mausz Mayer Medtner Meerapfels Mehlhorn Mehlinger Meidl Meier Meimberg Meinecke Meise Meisner Meiß Meissen Meißner Meistreich Mellenthin Mendel Mendelsohn Merck Merk Merkel Merklein Merkler Merschdorf Merstorff Messner Messmer Metelman Metterling Metting Mettler Metz Metzger Metzler Metzner Meunecker Meurer Meyer Meyerbeer Michels Miedl Mierisch Milde Millberg Mirbt Mirwald Misch Mittermayer Möllendorff Möller Mölling Mohr Mohrhaus Moller Moosbrugger Morgenthau Morlock Mosbauer Motevassel Mronz Mühlberg Muessig Mulch Mullenhoff Muller Munchow Münz Mohlbach Möhler Mühlberger Mühle Müller Muff Münster Musolff Nachbauer Nachtman Nadelhoffer Nägel Narr Naumann Nebe Neckel Nederstatter Neezer Nerger Nerius Nerlinger Nesselman Nessler Neubert Neumann Neumayer Neusel Neuß Neustatter Ney Nickel Nieberg Niedernhuber Niederstatter Niemann Niemeyer Nienaber Nimtz Nitschke Nitz Nitze Nolte Norling Nussbaum Nyffenegger Oberacker Oberhammer Oberhofner Oberle Oberman Odenthal Oelsner Oertel Ohrenstiel Oldekop Olinger Oshin Ostendarp Ostendorp Osterloh Ottke Otto Overresch Palen Pallenberg Pappe Paschke Patzwahl Pechsteinn Peiser Peißel Pepke Perathoner Perls Pesch Pesseingimpel Peterhansel Peters Petersen Petersohn Pfaff Pfaller Pfannenschmidt Pfeiffauf Pfeiffer Pfeil Pfeiler Pfister Pflaume Pfrommer Phiesel Pichner Piech Piel Piller Pilsner Pischetrieder Plage Plankensteiner Platzdasch Platzer Plöchl Pohl Posch Poschner Potthof Preiß Presser Pretzsch Priebke Priemer Prokler Prugger Putz Puttkamer Putzer Quebbemann Raab Räder Raindl Rainer Rangosch Ranicki Rantzen Rasch Rassow Rau Rauch Rauh Reber Rebholz Reck Recker Regel Rehberg Rehn Reich Reicher Reichhardt Reichmann Reifschneider Reiler Reimers Reinelt Reiner Reinhardt Reinke Reiß Reiter Reize Reizenstein Remmel Rener Renoth Renzenbrink Reski Retzner Reusing Reuter Ribbe Ribhegge Richter Rickert Riedel Riederer Riedle Riedman Rieff Riege Rieger Riehl Ries Rihm Rippel Rippner Riske Rith Ritschel Ritscher Ritter Rittinger Robel Rochkes Rockmeier Roerich Roethlisberger Rohl Rohlander Rohmer Rohre Rohwer Rollenhagen Rolnik Rommelstedt Rond Rosch Roschmann Rosen Rosenbaum Rosener Rosenfeld Rositzke Roskopf Roesler Rosmer Rosner Rossen Rosskopf Roth Rotheberg Rothfels Rotholz Rotsch Rottenberger Rotzsch Ruchendorf Rucker Rückl Rühe Ruff Ruge Rummenigge Rumpelmeier Rundstedt Rupp Rupprath Ruschin Rust Ruth Rödinger Röhm Röhricht Rösslar Rüdiger Sacher Sachs Sachse Sack Sackel Sagebrecht Saggau Saltzman Salzenstein Sammer Sandel Sandler Sandschulte Sarrazin Sassmanshausen Sattler Sattmann Sauer Sauerland Sawallisch Schacht Schachte Schact Schactschneider Schächter Schäfer Schaefer Schänzer Schaffhauser Schams Schantz Scharf Scharping Schaub Schauermann Schaville Schubert Schechter Scheer Scheffers Scheideler Scheidler Schell Schellenberg Schelling Schenck Schenk Schenkel Schepfel Scherer Scherich Scherpenberg Schiffer Schied Schiemann Schiff Schiller Schilling Schillinger Schimmel Schindelar Schindewolf Schindler Schinkel Schlachter Schlarp Schlauch Schleisher Schlesser Schleusingen Schliefen Schlieffen Schliemann Schließmann Schleicher Schlomer Schlotterbeck Schluep Schlütter Schlöndorff Schmaltz Schmarbeck Schmelling Schmetzer Schmid Schmidinger Schmidkonz Schmidling Schmidt Schmied Schmitt Schmitz Schnabel Schneider Schnell Schnerb Schnicker Schnurre Schockemohle Schöncher Schöne Schönweiß Schöttler Schoffel Scholkopf Scholl Schollenberger Scholz Scholze Schone Schonenberger Schonle Schonlebe Schopper Schramm Schreiber Schreiner Schriter Schroder Schröder Schroff Schröter Schubert Schuch Schuck Schuerbrock Schulberg Schuld Schulden Schuler Schulhauser Schuller Schult Schulte Schulten Schultheis Schulz Schulze Schumacher Schumann Schummer Schumuckler Schuncke Schuster Schutte Schuttler Schwacke Schwaiger Schwartstein Schwarz Schwarzacher Schwarzkopf Schweisser Schwetschenau Schöpp Schültz Scragenheim Seelig Segel Seibel Seiberling Seibold Seidel Seidelman Seidl Seifert Seiler Seitz Seizinger Sell Sendner Senglin Seppelt Serkin Settlemeyer Shäfer Shrapnel Sieb Siebert Siebke Siebmacher Siebold Siedlmayer Sievers Sievert Silde Simmendinger Simon Singer Sippel Sittig Sittler Smelser Smerdel Soergel Sokoll Somm Sommer Sondheim Sonn Sonnenberg Sonntag Sophus Spaneth Specht Spee Speidel Speker Spengler Sperl Speth Spindler Spitzer Spitzy Spon Sprecher Spätling Schwendt Stabler Stadelman Stadler Stahl Stahlberg Stahlecker Staier Stamm Stammel Stanfelj Stangel Stankalla Staubel Stauber Stauß Stegar Stehle Steigauf Stein Steinbauer Steinberg Steinemann Steiner Steinhauser Steinhoffel Steinle Steinschneider Stenger Stenhammar Stenz Stephan Stepperfellt Stergar Sternberg Sternfeld Sternhagen Steuer Steur Stich Stickl Stierle Stirnemann Stiteller Stober Stoffels Stoffler Stolle Stoltz Stolz Storp Stortebeker Straub Strauß Strazzer Strege Strick Stritter Ströbel Stroh Strolin Stroßmayer Strub Strunz Stuckenschmidt Studer Stuhmiller Stuhrepenberg Stuiber Stumpf Stumpfer Stürmer Sturms Styger Stötzer Sulzer Sundemann Sundhausen Switzer Szelig Taegert Tammerk Tampke Tannenbaum Tarkmann Tarnat Taube Taubernberger Taudenrauch Tauler Tauscher Tebbel Teichmann Teischer Tellenbach Teller Terenther Teschendorff Tettelbach Tettelback Tetzel Teubert Teubner Thaner Theile Theiner Theloke Theusen Thiessen Thode Thoma Thomas Thoms Thomsen Thon Thonis Thorner Thost Thuel Thul Thurneysen Tiedtke Tieleman Tietmeyer Tilele Till Timmer Tintner Tippold Titschinger Titz Toba Tolzmann Tönjes Tönnies Topp Toth Traultmann Trauner Trauttmann Treiber Treppel Trettel Troger Tschetter Tschopp Tuch Tügel Tuttwitz Täubl Tölle Uhl Uhlirz Ule Ullmannn Umstädter Unger Unterzuber Upert Utpadel Veith Vendelin Verst Vesper Videk Vielhaber Vinck Vogel Völler Vogt Vogts Voigt Volk Volker Volkert Volkmann Vollmer Vollner Volz Vorburger Voss Wachholz Wachtsmuth Wacker Wackerle Wagner Wahlberg Waigel Waldenmaier Waldschmidt Wallauer Wallishauser Wallroth Walma Walter Wander Wanke Wanneck Wappler Wassel Wassenaer Wasser Wassermann Wassersug Wasshausen Wassmeir Weber Wechsler Wecker Wedding Wedemann Wegener Wegl Wehe Weibrecht Weidner Weigel Weigl Weigle Weiglein Weil Weiland Weinbrecht Weingertner Weinschrott Weinsheimer Weinstein Weirather Weisbrantz Weisensteiner Weißflog Weishoff Weiß Weissensteiner Weiz Weizmann Weller Wellisch Welter Wenck Wendelin Wendlinger Wendorf Wendt Wentz Wenz Wepper Werner Wert Wessel Wesselingh Westmann Weygrand Widmann Wiedeking Wiedemann Wiedl Wiegand Wiese Wiesenbauer Wiesenthal Wildhaber Wilhelm Wilkin Wilmetz Wimmers Winckelmann Winkelhock Winkler Winschermann Winter Winterhalter Wirtz Witmeyer Wittman Wittram Wittstock Witzel Wörns Wötzel Wohlgemuth Wolf Wolfensberger Wolfert Wolff Wolgast Wollenberg Wollheim Wolter Wüstenhagen Wunderlich Wurster Zahn Ziblat Zickermann Ziege Ziegler Zieren Zimmerman Zimmermann Zinn Zipperling Zobel Zöller Zumwald Aaron Achim Adrian Alex Alexander Alfred Ali Andreas Anton Axel Bastian Ben Benedikt Benjamin Bernd Berndt Björn Boris Carsten Christian Christoph Christopher Clemens Constantin Daniel David Denis Dennis Dominik Dieter Dietmar Dirk Eddi Elias Eric Erich Erik Eugen Fabian Fabio Felix Finn Florian Frank Franz Georg Gerald Gerd Gert Gregor Gunnar Gunter Günther Hans-Dieter Hannes Heiko Heinrich Hendrik Henrik Holger Horst Ingo Jacob Jakob Jan Jannik Jason Jasper Jens Jeremy Joachim Jochen Johann Johannes Jonas Jonathan Joshua Julian Julius Jürgen Justin Jörg Jörn Kai Karl Karsten Kevin Konstantin Kurt Lars Lennard Lennart Leon Leonard Linus Luca Luka Lucas Luis Lukas Maik Malte Manfred Manuel Marc Marcel Marco Marcus Mario Mark Markus Martin Matthias Maurice Max Maximilian Mehmet Michael Michel Mike Mirco Mirko Moritz Nicholas Nick Nicklas Niclas Nico Nicolas Niels Nils Niklas Niko Nikolas Noah Norbert Norman Olaf Oliver Pascal Patrick Paul Peter Phil Philip Philipp Ralf Rene Richard Robert Robin Rolf Rudi Rüdiger Sascha Sebastian Simon Stefan Steven Sven Swen Thomas Thorben Thore Thorsten Till Tim Timo Timon Tobias Tom Torben Udo Ulf Ulrich Uwe Valentin Viktor Vincent Werner Wolfgang Volker Yannick Yannik bygfoot-2.3.2/support_files/names/player_names_belgium.xml0000644000175000017500000006022711225071372023060 0ustar eliaselias Peeters Janssens Peeters Dubois Janssens Peeters Janssens Lambert Maes Dubois Maes Martin Jacobs Jacobs Jacobs Dupont Mertens Mertens Willems Dumont Willems Michiels Mertens Leclercq Claes Maes Claes Simon Goossens Nguyen Wouters Laurent Wouters Lambert Goossens Lejeune De Smet Martin De Smet Renard Vermeulen Dupont Vermeulen Pauwels Goossens Pauwels Denis Dubois Dumont Aerts Leroy Hermans Simon Hermans Charlier Aerts Willems Martens Mathieu Michiels Leclercq De Vos Lambert Laurent Michiels Petit Martens De Smet Claeys Michel De Vos De Greef De Clercq Bertrand Smets Leroy Smets Lemaire Dupont Pauwels Van Damme Claeys Denis Hendrickx Evrard De Clercq Van de Velde Fontaine Desmet Wauters Desmet Collard Hendrickx Stevens De Backer Bernard Van Damme Claes Segers Marchal Stevens Wouters Stevens Thomas De Backer Timmermans Janssen Thiry Janssen Renard Lemmens Legrand Devos De Backer Van den Broeck Servais Martin Lefebvre Coppens Van de Velde Desmet De Cock Robert Segers Thomas Cools Adam Lemmens Devos Devos Bastin Coppens Petit Verhoeven Henry Dumont Coppens Smet Wauters Fontaine De Smedt Guillaume Leroy Smets Wauters Moreau Van den Broeck Michel De Meyer Gillet Leclercq Lemaire De Wilde Delvaux Simon Charlier Baert Carlier De Cock Meert De Pauw Lefebvre Verhoeven Mathieu Verheyen Louis Cools Verstraete Antoine Laurent De Coster Lauwers Hubert Moreau De Ridder Toussaint De Smedt Bertrand Geerts Lebrun Declercq De Smedt Declercq Jacques Smet De Ridder Lenaerts Remy Denis Lebrun Thys Cornet Thys Rousseau Lambrechts Lecomte Renard Carlier Verbeke Goffin De Meyer Van Damme Cornelis Thomas Hendrickx Wuyts Collin Timmermans Verlinden Michaux Lejeune Lejeune Verschueren De Pauw Segers Moens Meunier Baert Hermans Bosmans Janssens De Wilde Bogaert Rousseau De Ridder Bernard Vandenberghe Libert Lauwers Yilmaz Vermeiren Georges Lenaerts De Vos Van Dyck Schmitz Verstraete Evrard Bogaerts Poncelet Lambrechts Vermeulen Timmermans Gilson Marchal Vermeersch Roland Petit Borremans Christiaens Piette Vandenberghe Jacques Bauwens Bodart Verheyen Toussaint Verstraeten Lacroix Mathieu Moens Heylen Maes Lemaire Desmedt Pieters Peeters Geerts Robert Van den Bossche Willems Charlier Delvaux Thijs Delhaye Cornelis Adam Van Hoof Gilles Bogaert Legrand Jansen Descamps Bauwens Henry Goethals Massart Moens Heymans Lievens Christiaens Hubert Ceulemans Collignon Verbeke Louis Dierckx Mertens Bosmans Gillet Claessens Boulanger Verlinden Antoine Simons Etienne Verschueren Vandevelde De Groote Mahieu Wuyts Yildirim Verhaeghe Urbain Bertrand Guillaume Vercammen Delfosse Michel Servais Van Hecke Dethier Bogaerts De Cock Van Acker Aerts Nijs Lecocq Vermeiren De Clercq Verhaegen Pierre Fontaine Cornelis Vervoort Jacquet Carlier Mahieu Roels Pirotte Martens De Coninck Hardy Van Dyck De Boeck Verbruggen Parmentier Verstraeten Hanssens Luyten Brasseur Vermeersch Christiaens Raes Piron Claessens Declercq Verhelst Nicolas Simons Van Belle Somers Herman Jansen Goffin De Winter Masson Evrard Verhoeven Verbeeck Cuvelier Beckers Sterckx Daems Devos Pieters Vanderlinden Matthys Bodson Adam Bastin De Bruyn Pirard Thomas Thomas Thomas Thomas Lucas Maxime Maxime Nicolas Noah Lucas Nicolas Maxime Nathan Nicolas Lucas Louis Maxime Robbe Robbe Dylan Hugo Noah Louis Jonas Louis Louis Simon Lucas Arthur Nathan Arthur Robbe Robbe Arthur Robin Simon Nicolas Simon Dylan Robin Simon Hugo Nathan Nathan Alexandre Robin Antoine Antoine Romain Dylan Alexandre Julien Tom Senne Tom Arthur Mohamed Alexandre Jonas Tom Tom Florian Alexandre Robin Jonas Guillaume Guillaume Antoine Victor Julien Jens Milan Romain Benjamin Ruben Wout Antoine Hugo Florian Senne Ruben Bryan Luca Luca Romain Benjamin Victor Seppe Arnaud Arnaud Jonas Ruben Mohamed Michiel Jelle Mohamed Victor Hugo Julien Julien Wout Quentin Dylan Florian Jens Victor Jasper Guillaume Quentin Romain Seppe Wout Anthony Benjamin Benjamin Anthony Adrien Jelle Jarne Niels Florian Jens Noah Mohamed Guillaume Quinten Seppe Vincent Tristan Arne Luca Luca Jens Niels Jelle Arne Xander Milan Mathias Kevin Jarne Quentin Niels Seppe Kobe Jarne Brent Brent Niels Mathias Bryan Jarne Brent Martin Thibault David Mathias Arnaud Senne Mathias Lars Tristan Arne Maxim Ruben Bram Axel Axel Arne Matthias Adrien Martin Quinten Sam Gilles Wout Bryan Bryan Maxim Quinten Arnaud Adrien Samuel Jason Maxim Brent Martin Quentin Thibault Michiel Jonathan Sam Michiel Jonathan Gilles Thibault Maxim Jordan Matteo Anthony Quinten Matthias Sander Kobe Jason Dorian Martin Sander Sam Sam Alexander Axel Bram Thibault Adrien Gilles Sander Jordy Gilles Arno Dries Michiel Lars Kevin Stijn Tibo Mathieu Matthias Arno Bram Jason Elias Maarten Dorian Mathieu Axel Samuel Maarten Rune Maarten Stijn Bram Samuel Dorian Jordan Sander Arno Alexander Jordy Dries Anthony Kevin Mathieu Noah Daan Jonathan Tristan Corentin Noa Xander Alexis Jasper Alexis Dries Vincent Pierre Logan Kobe Logan Tim Ryan Lars Stef Ilias Elias Arno Valentin Jules Matteo Kobe Lukas Vincent Logan Yannick Mathis Tim David Nick Elias Alexis Milan Tim Mathieu Sacha Tibo Lennert Adam David Tim Thibaut Matthias William Jasper Tristan William Bastien Pierre Lars Logan Liam Alexander Dries Alexander Elias Jonathan Thibaut William Dorian Lukas Valentin Tibo Ayoub Jordy William Cyril Siebe Tibo Pieter Samuel Baptiste Daan Daan Jason Noa Lukas Ryan Sacha Siebe Lennert Daan Maarten Valentin Yannick Pieter Ryan Baptiste Corentin Liam David Ilias Liam Justin Jordan Mehdi Diego Lander Ryan Lukas Lander Pierre Emile Alexis Stijn Ilias Milan Vincent Emile Mehdi Ward Pierre Jules Aaron Justin Lennert Mathis Lorenzo Olivier Thibaut Thibaut Nick bygfoot-2.3.2/support_files/names/player_names_australia.xml0000644000175000017500000004042111225071372023413 0ustar eliaselias Ackart Ackerman Ackers Ackland Ackman Acton Ada Adlam Adolphus Akeman Alagich Aldaine Alden Aldridge Alford Allsopp Aloisi Alverton Alvin Alvord Alwin Amherst Andarton Arthur Ashby Ashford Ashley Askew Astley Aston Atherton Audley Bagley Baird Bajic Baker Banvard Barnard Barras Barton Bath Bathurst Belden Beltrame Berkeley Bernard Bingley Bliss Bodley Bolster Bolton Borland Boscawen Bostwick Botolph Bowne Brain Brendon Brenin Breton Bristed Bristow Brownlie Buess Bugeja Burby Burr Buxton Byrnes Canning Carle Carney Carwin Ceccoli Celeski Channing Chickering Chittenden Claeys Cleaver Clough Clowes Colburn Colosimo Conway Coombs Corica Cornthwaite Corwin Costanzo Coyne Craig Crittenden Cromwell Cudney Cutting D'Avray Deans Denton Dering Despotovksi Diaco Dillingham Dinton Dixie Dodd Dodd Dunlevy Dunstan Durante Eagleton Eaton Edith Edmund Edward Edwin Eggleston Emerson Ethelbert Ethelstan Everard Eytinge Fa'Arodo Fagg Falkland Ferrante Foss Fry Fulke Fyfe Galekovic Garrah Gava Gibson Giffard Gilly Glasgow Godard Godolphin Gollah Golly Goodrich Goulding Granger Griffith Gunn Hainsworth Halifax Hansel Harnwell Haskins Haw Hawes Hayman Haynsworth Hazard Healey Heaton Henry Herbert Herman Hogan Holcombe Holtcombe Horsley Hoskins Howell Huntington Hurst Ishida Jovanic Keigwin Kemp Kennicot Kerr Kitzbichler Kosmina Kovacevic Lamport Landon Laurie Lawley Leijer Lia Matricciani Mccloughan McFlynn McHard McHarg Mckay McMahon Merrick Middleby Milicic Miller Milligan Moon Morgan Murdocca Muscat Musialik Newbury North Ockley Ogden Oostendorp Osborn Oswald Packer Paddock Pantelidis Pantelis Pasfield Pennant Petkovic Petrovski Pillings Piorkowski Plympton Qu Ralph Ralph Ramsden Randal Randal Randolph Randulph Read Recchia Redden Reddy Reed Rees Reese Reinard Reynard Reynold Reynolds Rheese Ricard Richard Richard Richmond Richter Robert Roberts Rodden Roderick Rodland Roland Rollin Rowena Rowle Rowley Rudan Salazar Salisbury Sarkies Scarborough Schellden Scudmore Sears Sekulovski Sellick Seo Sheldon Shin Sigismund Simpson Skeffington Skidmore Stanwood Stapleton Storey Stratton Swithin Tadrosse Talay Tarka Teggart Theobald Theodoric Theoklitos Thompson Timpano Trelawney Tremaine Trevelyan Truax Urran Valkanis VanDommele Vasilevski Veart Vest Vidmar Vidmar Vlahos Waldgrave Walter Ward Weller Whealdon Wheelhouse Whieldon Whiting Whitney Wibert Wickham Wickliff Willis Wimund Winchcombe Worth Yorke Young Yule Zdrilic Aaron Abercrombie Aberdeen Aberdene Abernethy Adair Adam Adrian Affleck Agar Aidan Alan Alejandro Alex Alexander Alvin Andrew Andy Angel Angelo Ante Anthony Antonio Archie Ardal Ardgall Athol Aurelio Austin Bain Baine Ballard Bard Barr Ben Benjamin Billy Blair Blake Bobby Brandon Brian Bryan Bryce Bunyan Caleb Callaghan Cameron Campbell Carl Carlos Chad Charles Chase Chris Christian Christopher Clint Cody Cole Connell Connelly Connor Conor Conway Cormac Craig Dana Daniel Danny David Devin Diego Dominic Donald Donell Donelly Dougall Driscol Dwight Dylan Elijah Ennes Ennis Eric Ernie Ethan Eugene Evan Fergus Flaherty Gabriel Garrett Gavin Geoffrey Hammel Hayden Henry Hiroyuki Hunter Hyuk-Su Iain Ian Innis Isaiah Jack Jackson Jacob Jade Jaden James Jamie Jared Jason Jason Jeremiah Jeremy Jesse Jobe John John Jonathan Jordan Jose Joseph Josh Joshua Juan Julian Justin Karl Kavanagh Kevin Kristian Kyle Liam Logan Louis Lucas Luis Luke Macaula Macauley Mark Mason Massimo Matt Matthew Mich Michael Miguel Milan Mochrie Nathan Nathaniel Naum Neil Nicholas Nick Noah Owen Owen Patrick Remo Richard Richie Ricky Riley Robbie Robert Ross Royce Ryan Samuel Saso Scott Sean Sebastian Seth Shenqging Simon Steve Steven Stuart Sullivan Tae-Yong Terry Thomas Timothy Todd Tom Travis Trevor Tyler Victor Vince Wade Warren William Xavier Zachary bygfoot-2.3.2/support_files/names/player_names_japan.xml0000644000175000017500000001543411225071372022525 0ustar eliaselias Naoki Tsuneyasu Toru Noritada Satoshi Yasuhito Takahiro Ryuji Kazuki Akihiro Ryota Masafumi Tomokazu Shinichi Akira Yosuke Suguru Toshihiro Daiki Hirotada Hideo Ryujiro Yasunobu Shigeru Atsushi Norihiro Keisuke Hajime Nobuhisa Tomoyuki Yuichiro Tatsuya Teruaki Keita Tadaaki Toru Takahito Makoto Shinji Hideki Satoshi Shunsuke Tetsushi Takafumi Yuzo Takuya Shota Masayuki Yoshikatsu Hideto Kentaro Hiroshi Naoya Masashi Sho Shun Shinji Yasumasa Yoshiaki Takashi Kohei Go Kota Keisuke Toru Naoki Kenya Hiromasa Yusuke Toshiya Naohiro Koji Shinya Hiroki Yoshinobu Toru Atsushi Kazuki Shuhei Kengo Taku Takashi Satoshi Masaru Ken Yuji Takahisa Masato Eisuke Naoki Daisuke Yoshiharu Hayuma Tatsuhiko Daisuke Hideo Norihasa Kenta Yuzo Enomoto Nakanishi Matsuda Nasu Kubo Yamase Sakata Hirano Oku Oshima Yoshida Shimizu Nakazawa Kitizawa Amano Kano Kurihara Shimokawa Yamase Kawai Fujimoto Tsuchiya Hato Sasaki Miura Kanno Kyokumo Narazaki Akita Omori Koga Arimura Nakamura Yamaguchi Fujita Tamada Yoshimura Kamogawa Masukawa Nakajima Sugimoto Kakuta Takasaki Kawashima Toyoda Honda Sudo Hirabayashi Katayama Watanabe Fukatsu Takeuchi Abe Aoyama Wada Naito Inoue Tsuda Takahashi Ichikawa Morioka Kurokawa Matsui Chiyotanda Kaneko Koga Nagira Nakamura Kojima Ogura Nishino Ikeya Hayano Ishizaki Kitajima Minami Hirayama Kobayashi Kato Shimotaira Sawada Myojin Doi Tamada Hashiratani Kikuchi Takeda Jo Okano Hayashi Okada Nishizawa Ikeuchi Nishijima Wanami Sunakawa Ishii Aikawa Nakayama Suzuki Kaga Otsuka Seino Haga Seki Uesato Kaneko Kawasaki Chiba Nomoto Fujita Abe Nishi Takahara Nishitani bygfoot-2.3.2/support_files/names/player_names_england.xml0000644000175000017500000040331211225071372023040 0ustar eliaselias Abbott Abercrombie Aberdeen Abernethy Abken Abraham Abrahamson Abrams Achuck Ackart Acker Ackers Ackerfelds Ackerman Ackland Ackley Ackman Acorda Acton Adajian Adams Adderley Adlam Adler Adramsky Affelder Affleck Afleck Aguilar Aguirre Ahearn Ahlert Ahloe Ahman Aiken Ainslie Ainsworth Akeman Albertson Albright Albro Aldaine Alden Alderson Aldridge Aldrighetti Alexander Alexandra Alford Alger Allamain Allard Allen Alleyne Alston Alter Alterman Altshuler Alvarez Alverston Alverton Alvin Alvord Alward Alwin Ambarian Ambrose Ament Amento Amherst Amsler Anbinder Andarton Andelin Anders Andersen Anderson Andreasen Andrew Andrews Andrus Andujar Angel Annas Annino Anslow Anthony Antipa Anton Antonelli Apple Appleberry Appleby Applegate Appleton Araiza Arambel Arbour Arbuckle Archer Archibald Arcila Ardal Ardgall Ardoin Arensburg Argueta Arias Arion Arios Arkham Arlett Armand Armour Armstead Armstrong Arndt Arneson Arnold Arnott Arnow Arthur Ashburn Ashby Asher Ashford Ashley Askew Astley Aston Astrom Atherton Athol Atkinson Atwater Atwood Audley Aufiero Augusta Austin Avante Avari Averill Avigard Avittal Axelsen Aydede Ayre Baars Babcock Baber Babich Babinski Babych Bach Bachman Bachyrita Backman Bacon Bader Bagley Bahr Bailey Bain Baine Bair Baird Baker Baldock Baldwin Balin Ballard Balter Baltzly Bancroft Banks Bannick Banvard Baran Barbari Barber Barcelo Barchard Barclay Barcone Barcus Bard Bardelli Bardo Baring Bariski Barker Barnaby Barnard Barnes Barnett Barone Barr Barras Barrera Barrett Barrie Barringer Barsness Bartell Bartels Barton Baruch Basaran Bascoe Bascom Basford Basinger Bass Batara Bateman Bates Batesman Bath Bathgate Bathurst Battles Batty Bauer Baugh Bauman Baylor Bayne Bayrasy Bays Beach Beall Bean Beard Beardsley Beasley Bebb Bechtel Beck Becker Beckerman Becket Beckham Bedau Beddoes Bedell Bedrick Bedroussian Beebe Beech Beecher Beers Beggins Beggs Begunoff Behan Behrens Behrns Beier Beiersdorfer Beisbecker Beith Belanger Belden Belenardo Belilovskiy Belinsky Bell Bellegarde Bellingham Bellomi Bellows Belnap Beloff Belostosky Belot Belshaw Belton Beltran Beltre Belzer Bence Bender Benedict Benes Benge Benjamin Bennett Benning Bennion Benshoof Benson Bentley Bento Benton Berend Berenson Berger Bergman Bergmann Berkeley Berkvam Berlin Berman Bernard Bernardi Bernitz Bernstein Berona Berry Berrydess Bester Bets Bettencourt Beyer Biale Bickhard Bieber Bielski Biewener Bigelow Bihan Bilgrey Billings Billington Billops Biradelli Bird Birmingham Biros Bishop Bissell Bitterman Bivins Bizub Black Blackaller Blackburn Blackmore Blackwell Blainey Blair Blake Blalock Blanchette Blanco Blank Blatman Blaylock Blecker Bleecker Bletnitsky Blew Blick Bliss Block Bloom Blow Boardman Bobb Bochner Bock Bodger Bodley Boehner Boerger Bogart Bogden Bogdonoff Boggs Boghossian Bogner Boguski Bohler Boisson Boland Bolen Bolero Bolin Bolonsky Bolster Bolton Bond Bonham Bonner Bonsell Booker Boone Booth Bootin Bork Borland Borradori Borst Boscawen Boss Bostrom Bostwick Boswell Bosworth Botolph Botto Boucher Bourne Boury Bouskila Bouvier Bowden Bowen Bower Bowers Bowes Bowman Bowne Boyce Boychuck Boyd Boyer Boyette Boykewich Boyle Boynton Bradford Bradley Braga Brainard Brake Bramer Branciforte Brandner Brandon Brandt Brant Bratt Brauer Braun Braylovskiy Braynin Breault Breckenridge Breen Breitman Bremer Brendon Brener Brenin Brennan Brenneman Breton Breve Brewer Bricker Bridgers Briggs Brindisi Briscoe Brislin Bristol Bristow Brock Brocklehurst Broderick Brodman Brodsky Brody Brodzinsky Brogan Brokmeyer Bronson Bronstein Brook Brooks Broome Brosnan Brown Brownlee Brownley Brubaker Bruce Brundage Brunk Brunner Brunot Brunwasser Bryan Bryant Bryson Bucaro Buck Buckley Buckman Buckston Budday Budovsky Buekens Buell Buerger Buhl Bulkeley Buller Bullard Bullock Bunim Bunton Burby Burger Burgess Burian Burke Burn Burnett Burnham Burns Burr Burstein Burton Busey Busse Butcher Butler Butterfeld Butterfield Butterworth Button Butz Buxton Buzak Byington Byrne Byron Caccia Caddick Cadmury Cady Cafferty Caffrey Cage Cahill Cain Calande Calder Caldera Caldito Caldwell Calhoun Calica Callaghan Callahan Callan Callender Callison Calvert Calvin Cambra Cameron Camp Campana Campbell Canals Canard Cancino Candlish Canfield Canning Cannon Canter Cantera Canton Cantor Cantu Cantwell Canty Caplan Cappeller Cappers Capretz Capri Caputi Caravello Cardone Carey Caridad Carion Carls Carlson Carmichael Carnes Carney Carpenter Carpy Carr Carra Carras Carrick Carrie Carroll Carruthers Carson Carston Carta Carter Cartier Carver Carvey Carwin Casey Cash Casorio Caspari Cassedy Caster Castillo Castle Castro Casullo Caswell Catalano Cataldo Caulfield Cautero Cavanaugh Cavenaugh Caviel Cavins Cawood Cecere Cedar Cedeno Cello Cepeda Cerbin Cerda Certik Chaitin Chalmers Chamberlain Chambers Champion Chan Chandler Chang Channing Chantler Chapman Char Charles Chartier Chase Chasen Chatham Chau Chaves Chazenbalk Chea Cheatham Chee Cheer Cheeseman Cheever Cheevers Chen Cheng Cherniss Cherry Cheuk Chickering Chien Chikako Chiles Chin Ching Chinski Chiok Chisholm Chittenden Chiu Chnaidman Chopra Chow Chrisley Christensen Christiansen Christie Christou Chrucky Chu Chua Church Churchland Ciambrelli Ciocca Cipollone Cistaro Clackett Clancy Clanton Clapp Clapper Clarck Clark Clarke Claussen Clay Claydon Clayor Claypoole Clayton Clear Cleary Cleave Cleaver Cleeremans Clegg Clemens Clement Clifford Clifton Clinton Clough Clouthier Cloutier Clowes Clynder Coca Cochran Cockey Cody Coerr Coffman Cogan Coggeshall Coggin Cogswell Cohen Coine Colangelo Colburn Colchamiro Cole Coleman Collaco Collard Collier Collin Collins Collister Collopy Colyvan Combes Commodore Comp Compagno Compton Concon Condon Cone Conley Conn Connell Connelly Connolly Connor Conrad Conroy Constant Conti Convery Conway Cook Cooke Cooley Coombs Cooney Cooper Cora Corbett Corcoran Cormac Cornelius Cornell Corporandy Corr Corradetti Corwin Costello Costenbader Cotter Cotterill Cotton Couch Coughlan Coumos Countie Covington Cowan Cowger Cox Coyne Crabbe Craig Crain Cramer Craven Craver Crawford Creegan Cremeans Cremelle Crenshaw Crespi Cripps Crips Crittenden Crockett Cromwell Cronin Cronk Crooke Crooks Crosby Cross Crossley Crossman Crothers Crouder Crow Crowell Crowley Croze Cuan Cudney Culligan Cumbelich Cun Cuneo Cung Cunicelli Cunningham Curley Currie Curry Curtin Curtis Cussins Dabrowski Daciuk Dahl Daiko Daily Dalbello Dale Daley Dalton Daluz D'Amato Dameyer D'Amico Danbury Dandridge Danenfelds Danforth Dang D'Angelo Dangerfield Daniel Daniels Danielson Danna Danvers Darden Darga Darsie Darwall Dauchy Davenport Davidson Davies Davis Dawkins Dawson Day Dean Deasy Deblancet Deck Decker Dedrick Dee Deegan DeFlora Dega Dehovitz Deignan Deitch Dejauregui Dekker Delaney Delaporta Delarosa Delen Dell DeLorenzo DeLuise Delworth Demaree Demchick Dempsey Denault Denebeim Denisoff Denlinger Denn Dennett Denning Denno Denny Denton Derek Dergun Derin Dering Derrick Desmond Detrie Devaughn Devine Devinoff Devitt Devlin Devries Dewanye Dewsbury Dexter Diamond Diana Dibble Dice Dickerson Dickinson Dickson Diebel Dienstein Diep Dierauf Dietrick Dietz Dietzer Diggs Dilbeck Dillard Dillingham Dillon Dilworth Dimitya Dimmick Ding Dinges Dinh Dinkin Dinsmore Dinton D'iorio Diosi Dipace Dipert Diplock Dito Divers Dixit Dixon Dobry Dobson Docherty Dodd Dodge Dokken Dolan Dole Domingue Donahue Donald Donaruma Donelly Dong Donaldson Donell Donnellan Donnelly Donnie Donohue Donovan Doolan Doonan Doran Dorman Dorn Dorr Dorrell Dorton Doty Dougall Dougherty Douglas Dow Dowd Dowe Dowell Dowling Downes Downey Downing Downs Doyle Drake Drange Dratler Dreier Drenkowski Dresbold Dreslough Dresser Drew Drews Drexel Dreyer Driessen Driscoll Drobot Drosnes Drummond Drury Duban Dubel Dubinsky Duchaine Duchak Dudar Dudley Duffy Dulworth Dumas Duncan Dunckel Dunckley Dundee Dunham Dunklau Dunlevy Dunlop Dunn Dunning Dunston Dunwich Dunwitty Dupont Duran Durant Durgan Durick Durning Dusedau Dutko Dutton Duvall Duvaut Dworkin Dyer Dykstra Dyment Dyre Eagle Eakin Easland Easler Eastman Easton Eastwood Eaton Ebarle Edmonds Edmund Edmundson Edward Edwards Edwin Eells Egan Eggleston Ehrlich Eicher Eichler Eils Einrich Eisenberger Ekeh Elder Eldred Elkort Ellet Ellington Elliot Elliott Ellis Ellroy Ellsworth Elser Elsworth Elton Emerson Emery Emmeche Endreson Endy Eng Engel English Engman Ennis Epelbaum Epstein Erb Erdos Erian Erickson Erlec Ermakoff Errey Escano Eshelman Esona Esquith Esser Essex Estes Estey Estlund Estrella Ethelbert Ethelstan Etin Eulate Evans Everard Everett Evers Ewans Eylman Eynrick Faber Fabris Fagg Falconnet Fallenstein Fallon Fang Fantin Fara Fargas Faris Farkas Farmarco Farmer Farr Farrales Farrar Farrell Fata Faulconer Faulknor Faustino Fay Feasel Feferman Fehr Feigenbaum Feinberg Feldger Feldman Felkins Feller Felsner Felt Feng Fennesse Fennone Fenton Ferdon Fergus Ferguson Fermin Fernsworth Ferrando Ferrer Ferris Ferroni Fetta Fiddler Field Filichia Filler Fillmore Finer Fink Finley Finn Finnegan Finney Finnigan Fintel Fischer Fisher Fisherman Fishfeld Fishman Fitelsen Fitting Fitzgerald Fitzmaurice Fizz Flaherty Flaman Flanagan Flanders Flannery Flatley Flaxman Fleming Fletcher Flori Flotard Flynn Fodor Fogarty Fok Foley Fong Fontes Fooland Foon Foote Forand Forbes Ford Forelli Formichi Forster Fortin Fortune Foss Foster Fox Frachtenberg Fraiser Frakes Frances Francis Frank Frankel Franklin Franks Frankston Fras Fraser Frazier Freddoso Freebury Freed Freeland Freeman French Frenchy Freyr Fried Frieder Friedlander Friedman Fries Friesen Frost Frunke Fry Frye Frykman Fryling Fryman Fuhrman Fulke Fulks Fullen Fuller Fundador Funkhouser Funsten Gaber Gabora Gagner Gagnon Gaifman Gaiman Gaines Gaiter Gale Galison Gallagher Gallen Galley Gallia Gallios Gallone Galvin Gamble Gan Ganis Gannon Ganos Ganter Garbeck Garbus Garden Gardner Garfield Gargan Garland Garlington Garnder Garner Garrah Garrison Garritano Gartner Gasby Gass Gates Gatley Gattenburger Gauker Gauss Gautier Gedney Gee Geibel Geier Gellar Gemes Genser Gentler George Georges Gereben Gerow Gerrans Gerstman Gertler Gervais Gessel Geston Getty Gibbons Gibbs Gibleski Gibson Gifford Gilbert Gilchrist Gilcrest Gill Gillary Gillette Gilliam Gillies Gilliland Gillis Gilly Gilmour Gin Ginevan Gingrich Ginn Ginsborg Ginstrom Ginther Giometti Giorgetti Giss Gistinelli Glanzberg Glavano Gleick Glenn Glick Glin Goad Godard Goddard Goddyn Godfrey Godin Godshalk Gold Goldberg Golden Goldenberg Goldman Goldstein Goldstick Goldsworthy Goldyne Gollah Gonterman Goodine Goodman Goodrich Goodwin Gordon Gorelik Goren Gorman Gormley Gossard Gothland Gough Gould Grace Grady Graff Graham Grahame Granby Granger Grant Grassi Gratton Graves Gray Grayfer Grayling Green Greenberg Greene Greenfield Greenough Greensite Greenstein Greenwald Greenwood Gregg Grenier Gresko Grey Gribbin Grieco Griffin Griffith Grift Grigg Griggs Grim Grinberg Grisdale Grohl Gropman Grosboll Grosman Gross Grove Groves Gruden Grunbaun Grush Guan Gubkin Guernsey Gunn Gunther Guo Gurke Gurler Guthrie Gutleizer Guzman Gwin Haas Habberstad Haber Habte Hack Hacker Hada Haddix Hadleman Hadley Haerr Hagan Hagen Haggerty Hahn Haile Haines Hainsworth Halick Halim Hall Hallahan Haller Hallford Hallinan Hallman Halverson Hamada Hameroff Hamilton Hamlin Hammack Hammel Hammer Hammett Hammond Handa Handfield Handley Hankin Hanley Hanlon Hannah Hannon Hansel Hansen Hanson Hara Harbaugh Harden Hardigg Harding Hardwig Hare Harlan Harman Harmon Harms Harnad Harold Harper Harrah Harrigan Harrington Harris Harrison Hart Harter Hartford Hartley Hartman Hartmann Harty Harvey Haskins Hasselgren Hastings Hatcher Hatfield Hathorne Hauger Haun Hauser Hausman Havard Haw Hawes Hawk Hawking Hawkins Hawley Hawthorne Hawxwell Haydock Hayes Hayman Hayne Haynes Haynsworth Hayward Hazan Hazard Hazelwood Head Healey Healy Heaney Hearn Heath Heathcote Heaton Heck Hecker Heckert Heckes Heckman Hedrick Heerema Heeter Hegan Heilbrun Heine Heinrich Heins Heisten Heitner Hekl Helander Helbig Helfand Helfer Heller Hellesto Hellie Helm Helmer Helms Helpers Heltzel Hembree Hemmen Hemmings Hemsley Hendel Henderson Hendrick Hendry Hennessy Henrey Henry Henze Herbert Herman Herndon Herr Herreman Herrick Hershey Hertford Hertzberg Hessenauer Hetfield Heuman Heusser Hewitt Hibbs Hibl Hibner Hickey Hickman Hicks Higginbotham Higgins Hightower Hil Hilbert Hill Hillacre Hiller Hilliard Hillman Hills Hilt Himmel Hinds Hines Hing Hingham Hinsdale Hirano Hirsch Hocking Hodge Hodges Hodson Hoecker Hoey Hoffer Hoffman Hofweber Hogan Hogarth Hogg Hoierman Holcombe Holland Hollander Hollender Holliday Holmberg Holmes Holtcombe Holton Homann Homes Homgee Hookway Hoomany Hooper Hopkins Hopper Horgan Horn Horne Horner Hornsby Hornstein Horsey Horst Horton Horty Hoshino Hoskins Housley Houston Howard Howe Howell Howieson Howley Hoyal Hubbard Hubbell Huber Hubner Huck Huda Hudson Huemer Huey Huff Huggett Huggins Hughes Hulanicki Hulett Hull Hulse Humphrey Humphreys Hunnewell Hunt Hunter Huntington Hurlbut Hurley Hurst Huskins Hutchens Hutchinson Hutto Hutton Hyatt Idiart Immerman Imperial Ingalls Ingle Ingram Inker Innis Insley Inward Ionson Iribarne Irons Irvine Isnard Itkin Jackman Jackowitz Jackson Jacob Jacobs Jacobson Jacoby Jalbert James Jamieson Janke Janky Janson Janssens Jarmel Jarvis Jaspers Jauch Jefferis Jefferson Jeffrey Jelin Jelso Jenkins Jenner Jennings Jensen Jernberg Jessop Jew Jewer Jillson Johansen Johanson John Johns Johnson Johnston Jones Jong Jonhston Jordan Jorgensen Joseph Josselyn Jow Joyce Joyner Juggers Jun Juneau Jung Junker Jurman Justman Kahane Kahn Kahodayari Kaiser Kaldor Kaler Kalin Kalk Kallen Kamatani Kamen Kane Kaner Kang Kanter Kap Kapitan Kaplan Kapp Kaprielian Karacigan Karas Karlsen Karno Kashler Kasper Kato Katz Kaufer Kaufman Kaur Kaussen Kavanagh Kavanaugh Kay Kaye Kean Keane Keaney Keating Keaton Kee Keefe Keegan Keenan Keller Kelley Kellogg Kelly Kelman Kelson Kemp Kempler Kempner Kendall Kennedy Kenneth Kennicot Kensett Kent Kerlinsky Kerment Kern Kernan Keropian Kerr Kerrey Kershner Kertsman Keselman Keser Kessler Kevury Keys Kidd Kiernan Kierse Kigelman Kilcullen Kildani Kiley Kimbell Kind King Kinghorn Kipfer Kirby Kirchner Kirkpatrick Kirn Kissick Kistler Kittle Klebaner Klee Klein Kleypas Klingele Klotsman Klotz Kluzek Knatz Knight Knobe Knoll Knop Knorr Knott Knotts Knowles Knuble Koblin Koffler Kofman Kogan Kogut Kohler Kohr Koike Kolb Kolba Kolligs Komanovsky Komindr Koons Koppe Koppl Korman Kormos Korn Korsgaard Kosbie Kosoy Kostuik Kotar Kotas Kotlyar Kovanda Kragness Krahling Krajewski Kramer Kramlich Krantz Krasny Kreft Krell Kress Kriegel Krivens Kroll Kronfeld Krug Krull Kruni Krupnik Kruse Kudlick Kuffrey Kuhlmeyer Kull Kung Kunkel Kupffer Kurdys Kurlan Kurvers Kushnir Kuypers Kuzma Kvart Kyan Kyle Laban Labeuf Laborde Labriola Labunsky Lacerra Lacher Lackery Lackner Laduc Laffey LaFollette Lagasa Lagomarsino Lagonero LaGrette Lahmer Laird Lake Lakeman Lakhe Lalor Lamb Lambert Lameche Lamison Lamm Lancaster Lance Landa Landau Lande Landon Landry Lane Lang Langbort Langer Langevin Langholtz Langkow Langston Lanham Lanier Laplante Lappin Larby Lariano Larkin Larochelle Larosa Larson Larue Lascournes Laski Lassiter Lasus Lathrop Lauline Laurence Lauricella Laurio Lavigne Law Lawler Lawless Lawley Lawrence Lawton Laytham Le Chanu Leach Leak Leal Leary Lechuga LeClair Lederman Lee Lees Leet Legerton Leggat Legrand Lehar Lehman Lehrer Leib Leiber Leichter Leising Lemoine Len Lenglet Lenhan Lenox Leominster Leong Leopold Leopre Leosh Lerner Lesaca Leskowak Leslie Lesnawati Lesser Levallier Levenson Levin Levine Levins Levinson Levison Levitz Levy Lew Lewenhaupt Lewis Liau Libenshteym Liberman Liggett Lilico Lima Limbert Lin Lindblom Linden Lindgren Lindquist Lindqvist Lindsay Lindsey Ling Linnebo Liou Lipp Lisama Liscano Litant Litke Little Littman Littwin Litvak Litvinsky Litwak Livengood Llewelyn Llinas Lloyd Lobato Lobenstein Loeb Loehmann Loewenstein Loewer Lofton Loftus Logan Loh Lok Lokam Lollar Lollock Lombard Lomond London Lonergan Long Longacre Longsworth Longthorne Loomis Loper Lorant Lorbeer Lorber Lorenz Lorenzana Lorincz Lormand Lott Loufas Loughran Louiehall Loukianoff Lovecraft Lovejoy Low Lowe Lowon Lowrey Lowry Lucas Lucero Lucido Luck Ludlow Ludwick Ludwig Ludwigson Luhmann Lukas Lummis Lundgren Lundhagen Lunn Luper Lusiak Lustig Lutz Lyford Lyman Lynch Lyndon Lynds Lynne Lyon Lyons Maas Mabbott MacAffrey MacAire MacAllen MacAuley MacCarron MacCormack MacDonald MacFarland MacGregor Mach Machado Machray Macias MacIntyre Mack Mackey Mackins Macklin MacLean MacLeitch MacLennan MacLeod MacMillan MacNeil MacPhee MacPherson MacSwain MacTavish Macy Madden Maddox Maddux Maddy Madelin Madigan Magee Maggiora Magid Magiersky Magnus Maguire Mahan Maher Mahoney Mailer Main Mainzer Maisterra Makitten Makris Malament Malamud Mallah Mallette Malley Mallon Malmgren Malone Maloney Maltby Mamaril Mandik Mann Mannheimer Manning Manson Manzo Mar Marbini Marble Marcelle March Marconi Marcotte Margolin Margolis Margulis Mariscal Markham Marks Markwith Marley Marquise Marselille Marshall Marson Martell Martin Martini Martynenko Mascola Mason Masters Mastersons Mata Matchette Materna Matoba Matteo Matthews Mattison Maund Maxwell May Mayer Mazeres Mazin Mazza McAfee McAllister McAlpine McAndrew McAuley McAviney McBain McCabe McCafferty McCall McCarthy McCarty McClamrock McClary McCleary McClelland McClellin McCloskey McClure McClurg McCluskey McConnell McCord McCormick McCrary McCready McCullogh McDaniel McDaris McDavid McDeere McDermid McDevitt McDonald McDonnell McDougall McDougle McEachern McFadden McGarry McGill McGillicuddy McGinn McGinty McGloin McGooken McGovern McGrath McGratton McGraw McGucken McGuigan McGuire McHale McHenry McInnis McInroy McIntyre McKaskle McKay McKee McKeever McKenna McKenney McKeon McKibben McKie McKillen McKinnon McKinsey McKnight McKrell McLachlan McLaughlin McLean McLendon McLennan McLeod McLinden McLoughlin McMahon McMillan McMurray McNabb McNally McNamara McNerny McNish McPhee McQueen McReynolds McShea McSorley McTaggart McTigue McWhirter Meadows Mears Medland Meer Mehagan Meier Meikle Melia Melian Mellett Mellor Melville Membrere Mendonca Mengkry Menko Menzel Menzies Mercer Merriam Merritt Merschen Merten Mertes Mesinger Mestas Metcalfe Metrik Metz Metzinger Meyer Meyers Mezera Miah Michael Michelson Midgley Migliaccio Mikkelson Milano Miles Milgram Millen Miller Millett Milley Milligan Millikan Millikin Mills Minsky Minto Mintz Miranda Miscevic Mistry Mitani Mitchell Mitchem Mitsis Miuccio Moan Moccardino Mochrie Moffett Moffitt Mogannam Molale Molander Moller Moltmann Mondon Mone Monko Monroe Montanye Montgomery Moore Mora Moran Morden Moreau Moreland Morgado Morgan Morgenstern Moriarty Morin Mork Morrales Morris Morrisson Morriston Morrow Morton Moseley Moshir Mosley Moss Mosser Moudry Moyer Muchow Mudge Mueller Mulder Muldoon Mulford Mulhall Mulhauser Mullaly Mullaney Mullen Muller Mullins Mulrooney Mumford Munns Munter Murashige Murphey Murphy Murray Murtagh Muselli Mussenden Mutley Mutschler Myers Nagel Nalerio Nally Nance Nash Nasin Nason Naumann Naunton Nazzal Neale Nealon Nedelco Neer Neidhart Neises Nejin Nelson Nemy Neuhoff Neumann Newbury Newfield Newman Newmark Newson Newsted Newton Neyland Neys Nicholls Nichols Nicholson Nieh Nigh Nilan Nissley Niven Nixon Noble Nolan Noles Noonan Noone Norcross Nordin Norek Norris Norton Nova Novak Nueman Nunag Nuransuk Nurisso Nyland Nyman Oates Oberdorser O'Brian O'Brien O'Callaghan Ockley O'Connell O'Connor Oddie Odell O'Donnell Oettli Offerman O'Flaherty Ogden O'Hagan O'Halloran O'Hara O'Higgins O'Keefe O'Leary Olesen Olgiati Oliker Oliver Olson O'Malley Oman Omeara O'Neal O'Neil O'Neill Oppenheimer Oppy O'Quinn Orantes Ordillas O'Regan O'Reilly Orellana O'Riley Orloff Orr Ortega Orth Ortiz Osborn Osbourne Osgood Osherson Ostroff Otake Otley O'Toole Ott Ottman Oukherman Overholt Owen Owens Owling Paddock Pagano Page Paget Pahl Paik Paine Pala Palat Palfol Palfrey Palileo Palmer Palmquist Panasik Panelli Pantelides Paoli Parisi Park Parker Parkerson Parkins Parnisi Parr Parra Parrish Parsons Partee Pasnau Pastore Patel Paterak Patrick Pattee Patterson Patton Paul Paulk Paulson Payne Peach Peacocke Pearce Pearl Pearlman Pearson Pebbles Pebworth Pecker Pedersen Pederson Pedley Pekker Pell Pelletier Peltier Pence Pendleton Pendley Penn Pennant Penncock Penney Pennybridge Penskoy Peoples Pepper Pereboom Perednick Peregrin Perin Perini Perkoff Perla Perlstein Perri Perrine Persily Persky Pesle Peters Peterson Petett Petit Petrick Petty Phair Phelps Philipp Phillips Phipps Piane Pieper Pierce Pierson Pilaria Pillings Pilote Pimentel Pincock Pinker Pinkett Pintner Pippert Pique Piro Pitlett Pitt Plank Plante Plaxton Playfair Plews Plock Plotkin Plunkett Plympton Pojman Polger Pollack Pollard Pollock Ponomarchuk Ponsart Pontaut Ponts Pool Poole Pooley Poon Poore Pope Porten Portmonte Portnoy Porus Post Postolovsky Potier Potter Potts Pouncey Pound Powaser Powell Praest Prater Pratt Prendiville Presti Presto Preston Preyss Price Priddy Prieto Prior Pritchett Proctor Proops Prosterman Proudfood Pruss Pryor Prywes Przak Pucci Pugh Pulanco Pullins Pursersan Quick Quine Quinlan Quinn Quinto Quistberg Quock Rabbets Rabinovich Radaikin Radman Rafter Raftery Raghavan Raible Ralph Rames Ramsden Ramus Randall Randolph Raney Ranford Ransdell Ransom Rapaport Raska Rath Rauschenbush Ravitz Ray Raymond Rayon Rayter Rea Ready Reagh Reagon Rechtin Redden Reddick Redding Redmon Redmond Reece Reed Reedy Rees Reese Reeves Regan Rehfeld Reid Reier Reilly Reina Reinard Reiner Reingold Reiter Rennick Rescher Reslock Restall Reuter Revitz Reymond Reynard Reynlib Reynolds Rhea Rhee Rhodes Rhody Rial Rice Richard Richards Richardson Richesson Richman Richmond Richter Ridge Ridgewater Ridley Riess Riffkin Riggs Riley Rinenberg Ringlemann Ringor Riordan Risling Ritchie Ritter Riverside Robb Robbins Roberson Robert Roberts Robertson Robinson Robinzine Robison Robles Rock Rockwell Rodd Rodden Roddy Roderick Rodgers Rodland Rodway Rogala Rogers Rohlman Rohmer Rohrbaugh Roland Rollin Rollins Rolston Rolwing Romero Rompala Ronken Rooney Rorty Rose Roseborough Rosen Rosenberg Rosenfeld Rosenkranz Rosenstein Rosenthal Rosinski Roskies Rosoff Ross Rossell Rostker Roth Rothmann Rouse Roussel Roussett Rovai Rover Rowe Rowell Rowena Rowley Rown Rozen Rozis Rozkin Rozkine Ruan Rubenstein Rubinstein Rucker Ruddick Rudicel Rudnick Rudolph Ruff Rugg Ruhnke Runyan Rush Russell Russo Rust Ruth Rutkowski Ryan Ryder Rylance Ryvlin Sabin Sack Sackett Sage Sagum Salak Salisbury Salvo Sammelman Sammons Samolis Sampson Samuels Sanabria Sanders Sanderson Sandgren Sandler Sandoval Sands Sanford Sanker Sankey Santarelli Saperstan Sapio Sarfatti Sargent Sarles Sartiano Sartorio Sassus Sater Sather Satow Sattler Sauer Saul Saunders Savage Savino Sawchuk Sawyer Sayoc Sayre Scanlan Scanlon Scarborough Schaefer Schaltenbrand Schatz Scheines Schellden Schenker Scher Scherbak Scherr Schiederman Schlenker Schmieding Schmukler Schneider Schoen Schomburg Schore Schorsch Schotch Schott Schow Schramm Schreiber Schroeder Schuler Schulte Schultz Schurz Schwartz Schwarz Scoortis Scott Scoville Scuka Scully Seabury Seager Searle Sears Seaton Seaver Segal Seibert Seid Seitz Sekino Selby Seligman Sellgren Sellick Semes Seminick Sennett Serbin Serper Seslar Seter Severance Severson Sexton Seymour Shabel Shackel Shadoian Shafer Shaifer Shain Shaindlin Shamis Shanahan Shandler Shaner Shank Shanks Shantz Shapiro Sharei Sharlow Sharp Shats Shaw Shearer Sheehan Sheina Shelcrut Sheldon Shelton Shen Shepard Shepherd Sheppard Sheridan Sherr Shew Sheynerman Shields Shiman Shin Shine Shinn Shipley Shively Short Shorts Shturman Shue Shulepov Shultz Shumate Shurety Shusterman Sider Sides Sidor Siebern Siefker Siegel Sieger Siepler Sievers Siewert Sigman Silberstein Sillinger Silpa Silver Silverstein Silverstone Silvestri Simkin Simmons Simon Simons Simonsen Simonson Simpson Sims Singer Singh Sipione Siskin Sisler Sivess Skall Skartvedt Skeel Skeen Skeffington Skelton Skernswell Skidmore Skinner Sklar Skokowski Skorupski Skovronski Skyrms Slaney Slater Slattery Slepoy Slifkin Sloan Sloman Slosky Sluzak Smalley Smear Smeltzer Smith Smithson Smrz Smyth Smythe Snow Snyder Sobel Soble Sobral Soerenson Sohn Soiffer Solis Solomon Solovieff Soltanovich Sommer Sommerhoff Sorensen Sorota Spade Spalding Sparkes Sparks Speaks Spelius Spence Spencer Sperber Sperling Sperry Spicer Spiegel Spilling Spiner Spirtes Spivak Sprague Spratt Spring Springer Sprouse Stamm Stamper Stancliff Stanford Stanley Stanton Stanwood Stapleton Stapley Stapp Star Stark Starling Starr Stauffer Stearns Stecher Steel Steele Steere Steger Stein Steinberg Steiner Stencel Stenecker Stenger Stephens Stephenson Stern Sternal Stevens Stevenson Stewart Stich Stickels Stiegeler Stockbridge Stolyar Stone Storey Stork Storm Storr Storz Strachan Strand Stratton Strawson Street Streete Streiffer Stretton Streumer Stuart Stubbes Studtmann Suber Sudduth Sullivan Summer Sundstrand Sundy Surels Suter Sutter Sutton Svedloff Svidler Swan Swaner Swanson Swartz Swazuk Sweeney Swessey Swinburne Swithin Sykes Sylvester Tait Talisse Tambu Tamer Tanner Tappenden Taran Tarpey Tart Tassone Taylor Teller Templin Tenenbaum Tenenboim Tennant Tenney Teper Teplitsky Terbeey Terman Terrass Terris Terry Teters Theidor Theobald Therien Thomas Thomason Thompson Thomson Thonemann Thornburgh Thornhil Thornley Thornton Thorpe Thurmond Thurston Timms Tinning Tippett Titus Tobias Tobin Tolan Tombs Tomlinson Tompkins Toms Toner Tookey Toomey Tornow Torre Towers Traiger Trantham Travers Travis Traylor Treisman Trelawney Tremaine Trent Treseder Trevor Trieu Trieweiler Trimble Trimmer Trinh Tripodi Trovani Trudeau Truman Trusolinsky Tucker Tuggy Turiak Turkenich Turnbull Turner Turney Tursi Tuyet Tweedie Twombly Tyler Tyson Udall Udis Uecker Uffren Uhrine Ulmer Ulrich Ulriksen Underhill Unger Urian Urran Urrutia Usher Vaccari Vaisman Vaksman Valentin Valentine Valk Valledor Vallerga Van Allen Van Bentham Van Camp Van Dusen Van Dyke Van Evans Van Gerwen Van Hout Van Sickle Vanalstyne Vanbeek Vandemortel Vanderhost Vandike Vanya Varnbuhler Varner Varney Vaske Vaysberg Veksler Vekslina Velleman Velmans Veltman Venn Venturi Verbeek Verner Vernetta Vernon Verploegh Verreault Vertex Vesey Veyland Veyon Vienes Villiger Vindigni Viner Viray Virgil Visheau Visser Vittinghoff Vives Vogel Volfenzon Volk Volpi Voltz Vranas Wadas Wager Wagner Wahler Wainwright Wald Waldgrave Walk Walker Wallace Walsh Walter Walters Walz Ward Warner Waronsky Waskan Wasserman Watson Weary Webb Weber Weckworth Wedgwood Weeks Wegner Wehmeier Wehner Weiner Weinrich Weinstein Weisberg Weller Wensink Wesley Wesolowski Wesson Weston Wettstein Wetzel Weymouth Wharmby Wharton Whealdon White Whitney Wibert Wickerham Wickham Wickliff Wiemer Wierenga Wight Wilber Wilde Wilding Wilhelm Wilkins Wilkinson Willan Willems Williams Williamson Willis Wilson Wimund Windsik Winkless Winter Winters Witherspoon Woit Wolff Wolfram Wood Woodard Woods Woodward Woolley Wortman Wregget Wrenn Wright Wyatt Wymard Wynter Yagher Yarnell Young Yule Zachery Zangwill Zeman Zimmerman Zurn Aaron Adam Adrian Aidan Al Alain Alan Albert Aldo Alex Alexander Alexis Alfred Allan Allen Alvin Andre Andrew Andy Anthony Antonio Armando Arron Art Arthur Augie Austin Axel Barry Bart Ben Benjamin Benji Bernard Bernie Bert Bill Billy Blaine Blair Blake Bob Bobby Boyd Brad Brady Branden Brandon Brant Brantt Brendan Brent Brian Bruce Bruno Bryan Bryant Bryce Buddy Burke Burt Cal Caleb Calvin Cam Cameron Campbell Carey Carl Carlos Casey Cesar Chad Charles Charlie Chris Christian Christopher Chuck Clark Cliff Cody Cole Colin Connor Cordell Corey Cory Craig Curtis Cy Dale Damon Dan Dana Dane Daniel Danny Daren Darrell Darren Darryl Darryn Daryl Dave David Davis Dean Del Denis Dennis Denny Derek Derian Derrick Devan Devin Dick Diego Dieter Dino Dirk Domenic Dominic Don Donald Doug Dougie Douglas Drew Dustin Dwight Dylan Earl Ed Eddie Edmond Edward Edwin Eldon Eli Elijah Elliott Emilio Enrico Eric Erick Erik Ernest Ernie Ethan Eugene Evan Felix Filip Francis Frank Fred Freddy Frederick Gabe Gabriel Garrett Garry Garth Gary Gavin Gene Geoff Geoffrey George Geraint Gerald Gerard Gerhard Gil Gilbert Glen Gordie Gordon Grady Grant Greg Gregg Gregory Guillermo Gunther Gustav Guy Hank Harlan Harold Harry Harvey Hector Henry Herman Howard Hubert Hugh Hunter Iain Ian Irving Isaac Isaiah Ivan Jack Jackson Jacob Jaden Jaime James Jamey Jamie Jared Jaron Jason Jasson Jay Jayson Jeff Jeffrey Jeremiah Jeremy Jerome Jerry Jesse Jim Jimmy Joe Joel Joey John Johnnie Johnny John-Paul Jon Jonathan Jonathon Jordan Jorge Jose Joseph Josh Joshua Juan Julian Julio Julius Justin Karl Keith Kelvin Ken Kenan Kenny Kent Kevin Kirk Korey Kory Kristan Kristopher Kurt Kyle Lamond Lance Larry Lawrence Lee Leland Len Lenny Leo Leon Lester Logan Lorenzo Lou Louis Lucas Luis Luke Lyle Malcolm Manny Manuel Marc Marcus Mario Mark Marlon Martin Marty Marv Marvin Mason Matt Matthew Max Melvin Merv Michael Miguel Mike Mitch Mitchell Mo Murray Nate Nathan Nathaniel Ned Neil Nelson Niall Nicholas Nick Nigel Noah Norman Oliver Oscar Owen Pablo Pat Patrick Patrik Paul Pedro Perry Pete Peter Phil Philip Philippe Phillip Pierre Rafael Ralph Randall Randy Raul Ray Reggie Reginald Rene Rex Reynaldo Ricardo Rich Richard Richie Rick Riley Rob Robbie Robert Roberto Robin Roderick Rodney Roger Ron Ronald Rory Ross Roy Rudy Russ Russell Ryan Sam Samuel Sandy Scott Scottie Sean Sebastian Sergio Seth Shane Shaun Shawn Sheldon Sid Sidney Simon Spence Spencer Stan Stephan Stephen Steve Steven Stewart Stu Stuart Tarek Ted Terence Terry Thad Theo Theodore Thomas Tim Timothy Toby Todd Tom Tommy Tony Travis Trent Trevor Ty Tyler Tyron Tyson Vern Vic Victor Vince Vincent Vinny Walt Walter Warren Wayne Wendell Wes Wesley Will William Wilson Wyatt Xavier Zach Zachary Zack bygfoot-2.3.2/support_files/names/player_names_bulgaria.xml0000644000175000017500000005373311225071372023226 0ustar eliaselias Adrian Aleksandar Alex Alyosha Anastas Anatoli Angel Anton Antonio Anzhelo Apostol Asen Asparuh Atanas Ayan Blagoy Bogomil Boil Bontcho Borimir Boris Borislav Boryan Boyan Boyko Bozhidar Bozhil Bozhin Chavdar Cvetomir Damyan Danail Daniel Darin Darko Denislav Desislav Deyan Dian Dimitar Dimo Dinko Diyan Dobrin Dobromir Doncho Dragomir Eduard Elin Emil Enyo Evgeni Evgeniy Filip Galen Galin Genadi Genko Georgi Gosho Grisha Hachadur Hristian Hristo Igor Ilian Iliya Iliyan Ilko Iskren Ivan Ivaylo Ivelin Ivo Kalin Kaloyan Kamen Karamfil Kiril Klement Konstantin Kosta Kostadin Krasen Krasimir Krassimir Kristian Kristiyan Krum Kuncho Lachezar Lazar Lilcho Ludmil Lyubomir Malin Manol Marcho Marian Marin Mario Marko Martin Metodi Mihail Milcho Milen Miroslav Momchil Nasko Nayden Nedelin Nedko Nedyalko Nikola Nikolay Ognyan Orlin Pavel Petar Petko Peycho Peyo Plamen Radomir Radoslav Radostin Rangel Rayko Rosen Rumen Samuil Sasho Shtilyan Simeon Slavcho Slavi Spas Stanimir Stanislav Stayko Stefan Stilyan Stoil Stoimen Stoyan Stoyko Stoyo Strahil Strati Stratimir Svetlin Svetlozar Svetoslav Tanko Teodor Tihomir Todor Trayan Trifon Tsvetan Tsvetomir Tzvetan Tzvetomir Valeri Vasil Velichko Velin Velizar Velko Ventsislav Veselin Vitomir Vladimir Volen Voyn Yan Yanaki Yanek Yanko Yasen Yavor Yordan Yovko Yulian Yuliyan Zahari Zdravko Zhelyo Zhivko Zlatomir Zvetomir Akalski Aladzhov Aleksandrov Aleksiev Andonov Andreev Anev Angatyan Angelov Arabov Arangelov Arnaudov Arsov Asparuhov Atanasov Avramov Avrionov Bachev Bakalov Balakov Baltanov Bandalovski Bankov Bardov Batashki Bayraktarov Berbatov Bibishkov Binev Bizhev Boev Bogdanov Bogomilov Bojinov Bondikov Bonev Borimirov Bornosuzov Botev Bozhilov Bozhinov Bozhkov Branekov Burov Cachev Chernev Chervenkov Chilibonov Chilikov Chipev Cholakov Chomakov Conkov Cvetanov Cvetkov Dafchev Danailov Danov Daskalov Davchev Delchev Delev Deliminkov Demirov Denchev Denev Dermendzhiev Deyanov Diev Dimitrov Dimov Dinev Djorov Dobrev Dobromirov Domakinov Domoschiev Domovchiyski Donchev Donev Donkov Dorovski Doshev Doynov Drazhev Drenkov Drenovichki Dyakov Dyankov Dyulgerov Dzhambazov Dzhevizov Ekimov Emilov Enev Eranosyan Etov Fidanin Filipov Gadjev Gadzhalov Gadzhev Gaganelov Galev Ganchev Gargorov Garov Genchev Genev Genkov Georgiev Gerdzhikov Getov Ginchev Ginev Goranov Gospodinov Gramatikov Grancharov Grigorov Guentchev Gyuzelev Harizanov Hazurov Houbchev Hristov Hristozov Hubchev Hubenov Ilchev Iliev Isakov Iskrenov Ivanchev Ivankov Ivanov Ivkov Kabranov Kadiev Kaftandzhiev Kakalov Kalchev Kaloyanchev Kamburov Kandilov Karadjinov Karadzhinov Karadzhov Karaibrahimov Karaivanov Karakanov Karamatev Karaneychev Karaslavov Karastoyanov Katev Katsalov Katsarov Kavdanski Kaziyski Kehayov Kerchev Kikov Kirchev Kirev Kiriakov Kirilov Kirkorov Kirov Kiryakov Kishishev Kitanov Kiutchoukov Koilov Kokaljiev Kolev Komunarov Koprivanov Koprivarov Koritarski Kosharov Koshlukov Kostadinov Kostenski Kostov Kotev Kotkov Kovachev Krastev Krastovchev Kremenliev Krosnov Krumov Krushev Krushkov Kubratov Kunchev Kushev Kutev Kuzmanov Kyuchukov Kyumurdzhiev Laskov Lazarov Letchkov Lichkov Liliev Lovkov Lozanov Lugo Lyubenov Madzhirov Makendzhiev Makriev Mamalev Manchev Mandov Manev Manolev Manolkov Manolov Marchev Marev Marinov Markov Matev Maviyski Mechechiev Mechedzhiev Mechev Metodiev Micanski Mihaylov Mihov Mihtarski Mikhailov Milanov Milenov Miliev Milushev Milyanov Minchev Mindev Minev Mirchev Mirkov Miryanski Mitashki Mitev Mitov Mitrev Mladenov Mokanov Mollov Monev Morozov Muhovski Murmarev Nablatanov Nachev Nakov Nanev Nankov Natev Naydenov Nedialkov Nenov Neychev Nikodimov Nikolov Nouri Nushev Ognyanov Olegov Orachev Orlinov Ovcharov Palankov Panchev Pandov Panev Panov Pargov Pashev Pashkulev Paskov Pavlov Pažin Peev Penev Peshev Petakov Petev Petkov Petrov Pirgov Pisarov Pisarski Plachkov Plugchiev Popnedelev Popov Radev Radukanov Rakarov Rangelov Raykov Redovski Romanov Rumenov Rusev Ruskov Sabev Sadakov Sakaliev Samokishev Sandanski Sapinev Sarmov Savov Sechkov Sendov Shalamanov Sheytanov Shopov Shterev Simeonov Sirakov Slabakov Slavkov Slavov Sofroniev Sokolov Sotirov Spahiev Spasov Stambolov Stanchev Stanev Stanishev Stankov Starokin Stavrev Stefanov Stoev Stoichkov Stoilov Stoyanov Stoychev Stoykov Stoynev Stratiev Svinarov Tabakov Tachev Tanev Tasevski Tashkov Tchipev Telkiyski Terziev Tihov Timonov Tinkov Todorov Tomash Tonev Topuzakov Toshev Trankov Traykov Trenchev Trendafilov Trenkov Trifonov Tsankov Tsonev Tsvetanov Tsvetarski Tunchev Ugrenov Uroumov Ushev Uzunov Vachev Valentinov Valiyski Valkanov Vanchev Vandev Varbanov Vargov Varnenski Vasilev Velev Velichkov Velinov Venkov Vidanov Videnov Vidinliev Vidolov Vitanov Vladimirov Vlaev Vodenicharov Voynov Vuchkov Vulev Vutov Vutsov Yablanski Yakimov Yanchev Yanchovski Yanev Yankov Yantchev Yordanov Yoshev Yotov Yovov Yurukov Zafirov ZagorÄić Zagorov Zakov Zanev Zdravkov Zenoviev Zhechev Zhekov Zhelev Zhelyazkov Zhilkov Zhotev Zlatev Zlatinov Zlatinski Zlatkov bygfoot-2.3.2/support_files/names/player_names_peru.xml0000644000175000017500000001754011225071372022407 0ustar eliaselias Abel Adan Adrian Aldo Alessandro Alex Alexander Alexis Alvaro Angel Angelo Antonio Armando Carlos Cesar Christian Claudio Damian Daniel David Diego Edgar Edison Edward Elmer Erick Ernesto Fabricio Federico Fernando Francisco Franco Frank German Giancarlo Gianfranco Gregorio Guido Guillermo Gustavo Hector Henry Hernan Ignacio Isaac Israel Ivan Jaime Jair Jairo Javier Jesus Jhoel Jhonny Jimmy Joel Johan John Jorge Jose Juan Julio Lucio Luis Luis Manuel Marco Mariano Mario Martin Mauricio Michael Miguel Moises Nestor Omar Oscar Pablo Paolo Paul Pedro Percy Piero Rafael Ramon Renzo Ricardo Richard Roberto Rodrigo Ronald Sandro Sebastian Sergio Victor Walter Wilder William Willy Wilmer Ytalo Aguirre Alva Alvarado Alvarez Aparicio Aponte Araujo Arenas Arias Arriaga Arriola Barreto Bazalar Bazan Begazo Benavides Bernales Bernui Bustamante Bustos Carmona Carranza Carrera Carrillo Cartagena Casas Cavada Cespedes Chacon Chavez Chiroque Chumpitaz Cisneros Colan Collantes Contreras Cordero Corrales Cruzado Curiel Delgado Diaz Dominguez Espejo Espinoza Fajardo Farfan Fernandez Figueroa Flores Gamarra Garate Garcia Gimenez Gomez Gonzales Gonzalez Guevara Guzman Heredia Hernandez Herrera Hinostroza Huaman Huertas Ibañez Ibarra Iglesias La Rosa La Torre Leal Linares Lobaton Lozada Lozano Magallanes Maldonado Manzano Manzo Marengo Martin Martinez Masias Medina Mendoza Mogollon Molina Montenegro Montes Mora Moran Neyra Orejuela Ortiz Oviedo Padilla Pelaez Pereda Pereyra Perez Pinto Plaza Ponte Portilla Prado Quiñonez Quinteros Quiroz Rabanal Ramirez Ramos Reaño Regalado Rengifo Revoredo Reyes Rivas Rivera Rodriguez Rojas Romero Roque Rubens Ruiz Saenz Salas Salazar Sanchez Silva Solis Soria Sosa Sotelo Sotil Soto Talledo Tenemas Torrealva Torres Ubillus Ugaz Uribe Valencia Valverde Vasquez Vegas Vicente Vilchez Villalta Villar Villarreal Villavicencio Zapata Zegarra Zevallos Zuñiga bygfoot-2.3.2/support_files/names/player_names_latinoamerica.xml0000644000175000017500000002067311225071372024245 0ustar eliaselias Adrián Andrés Ãlvaro Alberto Aldo Alejandro Angel Antonio Ariel Armando Bernardo Carlos Carmelo Charlie Cristian Damian Daniel Danilo David Diego Eduardo Ernesto Esteban Ezequiel Fabián Fabiano Fabricio Federico Felipe Fernando Francisco Gabriel Gerard Germán Gonzalo Guillermo Gustavo Hector Hernan Hugo Ivan Jaime Jacobo Javi Javier Jesus Joaquin Jonathan Jorge José Juan Julian Julio Leandro Leonardo Lionel Lucas Luís Manu Manuel Marcelo Marcos Mariano Mario Martín Mateo Matías Mauro Maxi Michael Miguel Nelson Oscar Pablo Paulo Pedro Rafael Ramiro Raul Rene Ricardo Richard Roberto Rodrigo Roman Ruben Rubens Samuel Santi Santiago Sergio Sebastián Silvio Simón Umberto Vicente Víctor Waldemar Walter Wáshington Abreu Acosta Aimar Alonso Alves Almeida Alvarez Antunes Añasco Angel Araldo Arambillete Aramburu Arango Arantes Barbosa Barreto Benítez Bonelli Bonetto Borges Bueno Burdisso Caballero Caceres Calleja Callejon Cambiasso Campos Carrizo Casquero Castillo Castillos Cetto Corrales Cortez Crespo Cruz Cuadrado da Costa da Silva de León Delgado Díaz Diniz Donati Dorado dos Santos Eller Eraildo Escudero Fagúndez Faria Fazio Figueroa Flores Fonseca Franco Fuentes Gadea Gago García Gavilan Giménez Godin Gómez Goncálvez González Guerrero Gutierrez Hernandez Herrera Hidalgo Lacruz Lavezzi Ledesma Leite Lima Llorente Lopez Márquez Martínez Mauro Melli Melo Méndez Mendoza Milito Miranda Moreira Moreno Monteiro Moya Muñoz Navarro Navas Olivera Ortiz Pacheco Paes Palacios Pavon Paz Pellegrini Pellerano Perea Pereira Pérez Piatti Pinto Pintos Prado Ramis Ramos Reyes Rinaldo Rivalta Rivera Rodríguez Salaberry Sanchez Santos Sanz Silva Silveira Sorin Sosa Suárez Souza Techera Telechea Torres Valdez Varela Vargas Vega Veracruz Veron Viera Villa Zabaleta Zanetti Zapata Zarate bygfoot-2.3.2/support_files/names/player_names_turkey.xml0000644000175000017500000006076711225071372022770 0ustar eliaselias Abanoz Acar Acun Adın Ahmet Ak Akagündüz Akın Akkoyun Akman Aksancak Aksoy AktaÅŸ Aktuna Akyel Akyüz Albayrak Ali Alican Alkan Alkis Altıntop Altıparmak Altinbas AltuntaÅŸ Arat Argun Arıca Arıcan Arıkan Arman Arslan Aslan AslantaÅŸ Aşık Atacan Ata Atak Ataman Atan AteÅŸ Avcı Ay Aydemir Aydın Aydinoglu Aydogdu Ayhan Aykaç Aykut Babacan Bahar BahtiyaroÄŸlu Baki Bakkal Balaban Balak Balcı Balta Barış Bartu Barut BaÅŸak BaÅŸci BaÅŸdaÄŸ BaÅŸtürk Bayar Bayer Baygin Baykara Bayrak Bayraktar Baytar Bekçi BekiroÄŸlu Bediroglu BelözoÄŸlu BeÅŸikci Bey Beycioglu Bıçakcı Biler Bilgin Bir Birdal Biryol Bolat Bolatlı Boral Bozkaya Bozkurt Bölükbaşı Budak Bulut Burcu Buruk Büyük Cahit Camci Can Cankat Catiroglu Cemis Cengiz Cenk Çesme Cevahir Ceviz Cevizoglu Çılgin Çolak Cora CoÅŸkun CoÅŸmaz CoÅŸkucu Çulcu Çakır Çakmak Çalımbay Çalışal Çalışkan Çatkıç Çelik Çelikzincir Çetin Çıkırıkçı ÇimÅŸir Çolak Çorlu Çökmüş Çubukçu DaÄŸ DaÄŸdelen DaÄŸlaroÄŸlu Dargin DaÅŸgün Datcu Davala Demir DemirbaÅŸ Demirel Demirhan Demirok Denizli Dereli DerelioÄŸlu DerviÅŸoÄŸlu Develi Dilmen Dirimlili DoÄŸan DoÄŸantez Duman Dunya Dursun Duruer DuymuÅŸ Ege Eken Eker Elmas Engin Eratlı Erbay Ercan Erdem Erdeniz Erdinç ErdoÄŸan ErdoÄŸdu Eren EriÅŸ Erkal Erkan Erkin Ersöz ErtuÄŸrul Eryol Esin Eser Fatih Getbay Gezici Gezmis Göllü Göktan Gönül Görgülü Göymen Güçer Güldüren Güler Gülesin Gülleri Gülselam Gülpembe Gültiken GüneÅŸ Güngör Güraçar Güreler Gürsoy Güven Güvenç Güvenışık Güzelses HacıoÄŸlu Halman HamzaoÄŸlu Has Hasancik Haspolatlı Havutçu Helvacı Heper Hikmet HocaoÄŸlu Hurmacı Ilgaz Irmak Işık İzzet İnan İnanç İnceefe İnceman İpekoÄŸlu İrtegün İşler Kabze Kaçar Kafkas Kahraman Kahveci KaloÄŸlu Kaner Kapısız Kapsal Kara Karabulut Karaca Karacan Karadeniz Karaduman KarakuÅŸ Karan Kartop KaÅŸ Kavuk Kaya Keçeli Keçici KeleÅŸ KerimoÄŸlu Keser Keskin Kılıç Kılıçkan Kınalı Kırıntılı Kısa Kıskanç Kıskaç Kıvrak Kocabey Kocaman Koç Koçak Konca Korkmaz Korkut Kök Köse Köstepen Közen Kuday Kulbilge KurÅŸunlu KurtuluÅŸ Kuru KuÅŸkapan Kutlu Küçükandonyadis Kül Lale Lalezar Leblebi Lemi Levrek Macit Malik Mamat Mandıralı Mansız Martin Mavi Mecit Mehmet MemiÅŸ Mercimek Merve Metin Muhammet Mustafa Mutlu Namlı Nas Nazik Nur Nurdan Ocak Oktay Okyay Olgun Onarıcı Onay Onur Ortakaya Osman Oymaz Ozan Öçal Ölmez Öncü Öngün Önür Ören Özalan Özaltay Özarı Özbayraktar Özbey Özcan Özdemir Özdilek Özdin Özen Özer Özgültekın Özgür Özkan Özköylü Özmert Özsoy Öztonga Öztorun Öztürk PamiroÄŸlu Parlak PaÅŸa PaÅŸalı Pembe Perdeci Perekli Polat Polatlı Recep Reçber Rengin Rıza Rutkay Sabankay SaÄŸat SaÄŸlam SaÄŸlık Sancaklı SaraloÄŸlu Sargın SarıoÄŸlu Saygin Sedef Selim SemercioÄŸlu Sen Sepici Seven Sevgi Seyhan Sezgin Somay Songülen Sonkaya Soysal Sönmez Sporel Sungur Sülün Süme Åžahin Åžakar Åžanlı ÅžaÅŸ Åžengül Åžentürk Åženyıl Åžeras Åžeren ÅžimÅŸek Şükür TandoÄŸan Tanman Tarakçı Tarkan TaÅŸdemir Tatan Tatlı Tayyip Teber TekelioÄŸlu Tekin Tekke Temiz TemizkanoÄŸlu Terim Topal Topçu Topraktepe Topuz Topuzer Toraman Tosun Tufan Tunc Tuncay Tuncer Tunç Turan Türk Türkmen Türkoglu Türkan Türker Türkmehmet Türkmen Tütüneker Uçar Uslanmaz Usta UÅŸak Uygun Uysal Uzun Üçüncü Ünal Ünlü Ünsal Üzümcü Verel Vidinli Yalçın Yalçıner Yaman Yarkın YaÅŸar Yavuz Yelen YeÅŸil Yeten Yetkiner Yıldırım Yıldız Yılmaz YiÄŸit YoÄŸurtçu YoldaÅŸ Yozgatlı Yula YücedaÄŸ Yücel Zafer Zahir Zan Zemzem Zengin Zengin ZeybekoÄŸlu Abdurrahman Adem Adnan Ahmet Ahmetcan Ali Alparslan Alpaslan Alpay Alper Altan AltuÄŸ Anıl Arda Arif Arcan Asaf Ata Atıf Atilla Atok Aydın Aydan Ayhan Aykut Aytaç Aytekin Basri Batuhan Bekir Bekircan Berkay Bilal Birol BoÄŸaç BoÄŸaçhan Burak Burakcan Burhan Bülent Cafer Cafercan Cahit Can Caner Cavit Celaleddin Cem CemÅŸit Cenk Cevat Ceyhun Cihat CoÅŸkun Cüneyt ÇaÄŸdaÅŸ ÇaÄŸrı Demirkan Deniz Denizcan Derya Devran DoÄŸa Dursun Ediz Efe Egemen Ekrem Elyasa Emrah Emre Emrecan Emrullah Ender Engin Ercan Erdal Erdinç Eren Ergün Erhan Ersen Erman Erol Ersin ErtuÄŸrul EÅŸfak Evren Fahri Faruk Fatih Fatihcan Ferdi Ferhat Feridun Fethi Fevzi Feyyaz Fırat Fikret Galip Gökçek Gökhan Göksu Güven Gündüz Gürhan Hadi Hakan Hakkı Halil Haluk Hamit Hamza Hasan Hikmet Hürriyet Hüseyin Hüsnü Hüzeyfe Ilgan Itri Irmak İshak İsmet Ismetcan İbrahim İlhan İlker İlyas İrfan İsmail Kaya Kayacan Kemal Kemalettin Kenan Kerem Kerim Koray KürÅŸat Lefter Lemi Levent Macit Mahir Mahmut Mahmutcan Malik Mehmet Mehmetcan Melih Meliksah Mert Mertcan Mesut Metin Mevlüt Mirkan Mithat Muhammet Murat Muratcan Musa Mustafa Mutlu Muzaffer Müjdat Mülayim Naci Necati Necip Necmi Nesim Nihat Nur Nuri Ogün OÄŸuz Okan Oktay Olcan Olgay OÄŸuzcan Onur Onurcan Orhan Orkun Osman Ozan Ömer Özden Özer Özgür Özgürcan Ragıp Rahim Ramazan Rasim Refik Recep Reha Remzi Rıdvan Rıza Rober Rüştü Sabri Saffet Salih Seçkin Sedat Selahattin Selçuk Selim Semih Sercan Serdal Serdar Sergen Serhat Serkan Sertan Servet Sezer Sezgin Sinan Suat Åžanver Åženol Åžeref Şükrü Taha Tanju Tarık Tayfun Tayfur Taylan Taylancan Tevfik Tolga Tolunay Tufan Tugay Tuna Turgay UÄŸur Umut Ümit Vahap Vahit Vedat Vefa Veli Volkan Yakup Yalçın Yalkin Yaser Yasin Yavuz Yıldıray Yusuf Zafer Zahir Zülfikar Zeki Ziya Zülfü bygfoot-2.3.2/support_files/names/player_names_greece.xml0000644000175000017500000005033611225071372022666 0ustar eliaselias Achillios Adonis Agapios Agorogiannis Alefantos Alekos Alexandris Alexandros Alexiades Alexios Alexiou Alexopoulos Alexoudis Amanatidis Anastasiadis Anastasios Anastasiou Anastopoulos Anatolakis Anatolios Andrianopoulos Antoniadis Antoniou Antzas Apollon Aposporis Apostolakis Apostolidis Arabatzis Ardizoglou Argus Aristides Aristokles Aristotelis Aristotle Aritzis Arsenios Athanasiadis Athanasios Atmatsidis Augustine Avramidis Babaniotis Bakakis Balafas Bantas Barboudis Basinas Belevonis Borbokis Boukouvalas Bourbos Bousinakis Boutzikos Carolos Chaitas Chalkias Charalabakis Charisteas Chatzikyriakos Chiotis Choutos Christophoros Christos Chronis Chrysafis Constantinos Costas Dabizas Damanakis Damaskinos Darlas Davourlis Dedes Dellas Demetios Dentsas Dhalambekis Dhionysatos Dimitriadis Dimitriou Dimopoulos Dimoutsos Dionysios Domazos Donis Eleftherakis Eleftherios Eleftheropoulos Eugenios Eusebios Evaggelinos Fakinos Felegakis Filakouris Foiros Fotakis Frantzeskos Frousos Fyssas Galakos Galitsios Gavrilopoulos Gekas Gentsoglou Georgamlis Georgatos Georgios Ghalas Ghrighoriou Giannakopoulos Giannis Giannou Giannoulis Gkougkoulakis Glouftsis Gogolos Golias Gonias Gougoulias Goumas Goumotsios Gounaris Grammatikopoulos Grammos Gregorios Grigoriou Hantzidis Hatzipanagis Herakles Hieronymos Hippolytus Iakovos Ignatios Ikonomopoulos Iliadis Ioannes Iosifidis Kafes Kagkiouzis Kaklamanos Kalafatis Kalitzakis Kalokairis Kamaras Kampantais Kapetanos Kapsis Karabellas Karademitros Karadimos Karageorgiou Karagiannis Karagounis Karakatsanis Karapialis Karataidis Karatziovalis Karavasilis Karipidis Karkamanis Karnezis Kartaris Kasapis Katechis Katergiannakis Katranas Katsambis Katsavakis Katsikogiannis Katsouranis Kiassos Kiliaras Kitsanelis Klokidis Kofidis Kolitsidakis Kolomitrousis Koltsidas Koltzos Komesidis Komvolidis Konstantakis Konstantinidis Konstantinou Konstantopoulos Kontis Kopitsis Korakakis Koskiniatis Kostakis Kostenoglou Kostikos Kostis Kostoulas Kotsios Kotsolis Koudas Kouis Koukoulitsios Kouloucheris Koutromanos Koutsoures Kouvas Kravaritis Krotsidhas Kyparissis Kyrastas Kyrgiakos Kyriakidis Kyriakos Kyriazis Kyros Kytides Lagos Lakis Lambropoulos Leandros Lemonis Leontiou Leventakos Liberopoulos Limniatis Linoxilakis Liolidis Liourdis Livathinos Lottas Loukanidis Loukas Loumpoutis Machlas Maistrellis Makarios Makos Malezas Maloumidis Maniatis Manikas Manolas Manousakis Manousos Mantzios Marangos Marinos Maris Markos Maropoulos Matsoukas Matthaios Matzourakis Mavrogenidis Mavros Melissis Mendrinos Messaris Michail Michailidis Michalopoulos Michopoulos Mikhalis Minou Mitilinaios Mitroglou Mitropoulos Mitsibonas Mitsis Miyiakis Moisiadis Moras Moris Moschogiannis Moschonas Mouratis Mousiaris Naintos Nakos Nalitzis Nastos Nebegleras Nectarios Negrepontis Nestoridis Nikolaidis Nikolaos Nikolaou Nikoloudis Nikopolidis Nikos Ninis Nioplias Orestes Ouzounidis Pagalis Paleologos Panagoulias Panourgias Pantidos Pantos Papadopoulos Papafloratos Papaioannou Papapostolou Papastathopoulos Papasterianos Papazoglou Pappas Parafestas Paraschos Pasas Passalis Patsatzoglou Paulos Pavlis Pericles Petropoulos Petros Philipakos Philippos Pierrakos Pitkas Pliatsikas Plitsis Poniros Poupakis Poursaitidis Poursanidis Prittas Prokopios Ravousis Rigas Rikka Rizos Rossidis Roussis Salpigidis Samaras Sapanis Sarafis Saravakos Sarganis Seitaridis Sideris Sifakis Simos Siois Siontis Skarmoutsos Skartados Skopelitis Socrates Sofianis Soiledis Sotirhos Sotiris Sourpis Spentzopoulos Spiridon Spiropoulos Stamatiadis Stamatopoulos Stathakis Stephanos Stogiannis Stoltidis Stratilatis Stravopodis Tachtsidis Taralidis Tatsis Tavlaridis Terzanidis Thanasis Theodoridis Theodosiadis Theodosios Theophilus Timotheos Titos Tomaras Topalidis Torosidis Toursounidis Tripotseris Tsalouchidis Tsianakas Tsiantakis Tsiartas Tsigas Tsiolis Tzanetis Tzatzos Tzavelas Tzimopoulos Tziolis Tziortziopoulos Tzorvas Vaitsis Vakouftsis Valaoras Vallas Vangelis Vasilis Vasilogiannis Vellidis Venetidis Venetis Vikelidis Vlachos Vlasopoulos Vokolos Vourghountzis Voutiritsas Vryzas Vyntra Xanthopoulos Xevghenis Yiovanakis Zagorakis Zapropoulos Zaradoukas Zikos Ziogas Zorbas Zouliotis Zouroudis Achilleas Achillios Adonis Agapios Akis Alekos Alexandros Alexios Alexis Alketas Anastasios Anatolios Andreas Angelos Anthimos Antonis Apollon Apostolos Argus Aristeidis Aristides Aristidis Aristokles Aristotelis Aristotle Arsenios Athanasios Augustine Avgerinos Carolos Charalabos Charalambos Charilaos Charis Chrisostomos Christophoros Christos Constantinos Costas Damaskinos Demetios Demis Dhimitris Dimitrios Dimosthenis Dinos Dionisis Dionysios Efstathios Efthimios Eleftherios Elias Elini Emmanouil Eugenios Eusebios Evangelos Fanis Filipos Frangiskos Georgios Giannis Giannoulis Giorgos Giourkas Gregorios Grigoris Haris Herakles Hieronymos Hippolytus Hristos Iakovos Ieroklis Ignatios Ilias Ioannes Ioannis Kiriakos Kleanthis Kleopas Konstantinos Kostas Koulis Kyriakos Kyros Lampros Leandros Leonidas Loukas Lysandros Makarios Makis Manolis Marinos Markos Matthaios Michalis Mikhalis Miltiadis Miltos Mimis Minas Mitsos Moris Nectarios Nikolaos Nikos Orestes Orestis Panagiotis Pantelis Paraskevas Paulos Pavlos Pericles Periklis Petros Philippos Prokopios Sakis Savvas Socrates Sotiris Spiridon Spiros Spyros Stathis Stavros Stefanos Stelios Stephanos Stergos Stratos Takis Tasos Thanasis Theaghenis Themis Themistoklis Theodosios Theodosis Theofanis Theologis Theophilus Thodoris Thomas Timotheos Titos Totis Traianos Tryfon Tsagkaris Vaggelis Vaios Vasilis Vassilis Yannis Yianis Yiannis Yiorghos Yiorgos Zisis bygfoot-2.3.2/support_files/names/player_names_denmark.xml0000644000175000017500000005323611225071372023057 0ustar eliaselias Ã…ge Aksel Albin Alf Alfred Anders Andreas Ansgar Anton Arne Arvid Asger Ã…smund Axel Bendt Bent Bernt Birger Bjarne Bjoern Bjørn Bo Christer Christoffer Dag Dagfinn Daniel Ebbe Edvard Egil Eilert Einar Eluf Emanuel Emil Enok Erik Erland Erlend Filip Finn Flemming Folke Frans Frederik Frej Fridtjof Fritjof Frode Georg Gregers Gudbrand Gulbrand Gunnar Gunne Gustav Hagen Haldor Halldor Halle Halvor Hans Harald Helge Hemming Henning Henrik Hjalmar Holger Ib Inge Ingemar Ingmar Ingolf Ingvar Ivar Jacob Jakob Jan Jannick Jarl Jens Jerrik Jesper Joakim Johan Johannes Jokum Jon Jorck Jørgen Jørn Josef Kai Kaj Karl Kasper Keld Kennet Kim Kjeld Klemens Knud Knut Konrad Kresten Kristen Kristian Kristoffer Lars Laurits Lauritz Leif Lennart Lorens Ludvig Mads Magnus Marius Mathias Mikael Mikkel Mogens Morten Nathanael Niels Nikolaj Njord Olaf Olav Ole Oskar Otto Ove Peder Per Peter Pontus Poul Preben Ragnar Ragnvald Ralf Ralph Rasmus Rikard Robert Rolf Ruben Rudolf Rune Severin Sigmund Sigurd Simon Søren Steen Stefan Stian Stig Svend Teodor Thomas Thorbjørn Thorstein Thorvald Tobias Tor Torben Tore Torgeir Torger Torsten Torvald Troels Trygve Tue Ture Tyge Ulf Ulrik Urban Valdemar Valentin Valter Verner Vidar Viggo Viktor Vilfred Vilhelm Vincent Waldemar Walter Werner Yngvar Yngve Aagaard Abdi Abildgaard Abrahamsen Adamsen Albertsen Albrechtsen Ali Andersen Andersson Andreasen Andreassen Andresen Antonsen Asmussen Astrup Axelsen Bach Bødker Bager Bagge Bagger Bøgh Bak Balle Bang Børgesen Bæk Bay Bülow Bech Beck Bendixen Bendtsen Bengtsson Bentsen Bentzen Berg Bergmann Bertelsen Berthelsen Beyer Bidstrup Bille Birch Birk Bisgaard Bitsch Bjørn Bjerg Bjerre Bjerregaard Bjerrum Bloch Blom Boesen Boisen Bonde Borch Borg Bork Borup Boye Boysen Brøgger Brandt Brøndum Brink Brix Bro Brodersen Brogaard Bruhn Bruun Buch Buhl Bundgaard Busch Busk Buus Callesen Carlsen Carlsson Carstensen Caspersen Celik Christensen Christiansen Christoffersen Christophersen Clausen Clemmensen Dahl Dalgaard Dall Dalsgaard Dam Damgaard Damkjær Damm Damsgaard Danielsen Daugaard Davidsen Degn Dideriksen Dinesen Dissing Ditlevsen Drejer Dreyer Due Dupont Duus Dyhr Ebbesen Eliasen Elkjær Ellegaard Enevoldsen Erichsen Eriksen Ernst Esbensen Eskesen Eskildsen Espensen Espersen Fabricius Falk Feddersen Fischer Fisker Fog Foged Fogh Frandsen Frank Frederiksen Friis From Frost Fuglsang Funch Gade Gammelgaard Geertsen Gotfredsen Gram Grøn Graversen Gravesen Green Gregersen Greve Groth Gundersen Haagensen Haahr Høgh Høj Højgaard Hald Hammer Hansen Hansson Harder Hartmann Hassan Haugaard Hauge Høyer Hede Hedegaard Hein Hemmingsen Hendriksen Henningsen Henriksen Hermann Hermansen Hertz Hinrichsen Hjort Hjorth Hoffmann Holm Holmberg Holmgaard Holst Holt Hougaard Hove Hussain Hussein Husted Hvid Hviid Ibrahim Ibsen Ipsen Isaksen Iversen Jacobsen Jakobsen Jansen Jønsson Jørgensen Jæger Jürgensen Jensen Jeppesen Jepsen Jespersen Jessen Jochumsen Joensen Johannesen Johannessen Johannsen Johansen Johansson Johnsen Jonassen Josefsen Juhl Junker Just Justesen Juul Kaas Karlsen Karlsson Kaspersen Kastrup Kaya Keller Khan Kilic Kirk Kirkeby Kirkegaard Kjøller Kjær Kjærgaard Kjærsgaard Kjærulff Kjeldgaard Kjeldsen Klausen Klemmensen Klitgaard Kloster Knudsen Koch Kock Koefoed Kofod Kofoed Korsgaard Krabbe Krag Kragelund Kragh Kramer Krarup Krüger Kristensen Kristiansen Kristoffersen Krog Krogh Krogsgaard Kromann Kronborg Kruse Kure Kvist Ladefoged Lang Lange Larsen Larsson Lassen Laugesen Lauridsen Lauritsen Lauritzen Laursen Lausen Laustsen Le Lehmann Lerche Leth Lind Lindberg Lindegaard Lindhardt Lindholm Lindstrøm Lorentsen Lorentzen Lorenzen Ludvigsen Lund Lundberg Lundgaard Lundsgaard Lykke Lynge Madsen Magnussen Mølgaard Møller MÃ¥nsson Mørch Marcussen Mark Mørk Markussen Martinsen Martinussen Mathiasen Mathiassen Mathiesen Matthiesen Matzen Müller Meier Meldgaard Meyer Michaelsen Michelsen Mikkelsen Mogensen Mortensen Mouritsen Mouritzen Munch Munk Nøhr Nørgaard Nørregaard Nørskov Nedergaard Neumann Nguyen Nicolaisen Nicolajsen Nielsen Nikolajsen Nilsson Nissen Norup Nyborg Nygaard Odgaard Olesen Olsen Olsson Østergaard Ottesen Ottosen Overgaard Ovesen Pagh Pallesen Paulsen Pedersen Persson Petersen Petersson Pham Philipsen Pihl Pilgaard Ploug Poulsen Povlsen Qvist Rahbek Rømer Rønne Rask Rasmussen Raun Ravn Riis Roed Rohde Rose Rosenberg Rosendahl Rosenkilde Rossen Rytter Søgaard Sahin Salling Salomonsen Samuelsen Sandberg Sander Søndergaard Sørensen Schmidt Schneider Schou Schrøder Schultz Schulz Schwartz Sejersen Severinsen Simonsen Sivertsen Skaarup Skøtt Skjødt Skou Skov Skovgaard Skriver Skytte Slot Sloth Smed Smedegaard Smidt Smith Sommer Sonne Stage Stæhr Steen Steenberg Steensen Steffensen Stephansen Stokholm Storgaard Storm Strøm Svane Svendsen Svenningsen Svensson Tang Tønnesen Terkelsen Terp Thøgersen Therkelsen Therkildsen Thomasen Thomassen Thomsen Thorsen Thorup Thrane Thuesen Thygesen Toft Tolstrup Torp Tran Troelsen True Truelsen Vad Vang Vedel Vester Vestergaard Vilhelmsen Villadsen Villumsen Vind Vinther Voss Wagner Warming Weber Westergaard Westh Willumsen Wind Winther Wolff Worm Wulff Yde bygfoot-2.3.2/support_files/names/player_names_hungary.xml0000644000175000017500000004013011225071372023100 0ustar eliaselias Ãdám Adrián Ãkos Alfréd Ambrus András Andreas Andrej Antal Ãrpád Attila Balázs Bálint Barnabás Béla Bence Benedek BenÅ‘ Bertalan Boldizsár Csaba Dániel Dávid Dénes DezsÅ‘ Elemér ErnÅ‘ Ferenc Flórián Franz Gábor Gáspár Gergely Géza György Gyula Imre Iosif István Iuliu Izidor Jakab János JenÅ‘ Joseph József Kálmán Károly Koloman Krisztián Ladislao Ladislas Lajos László Lázár Lóránd Lukács Marcell Márton Máté Mátyás Mihály Miklós Milán Nándor Nicolae Norbert Olivér Pál Péter Richárd Róbert Roland Ronald Rudolf Sándor Szabolcs Szilárd Tamás Tibor Vasile Viktor Vilmos Vladimir Zoltán Zsolt Zsombor Aczél Aknai Albert Andorka Andrusch Antal Avar Babos Bajner Bajzát Bakos Balajcza Balassa Balázs Bálint Balla Balog Balogh Bánföldi Bank Baranyai Bárányos Baratky Bardi Barna Baróti Barta Bartha Bartus Bencsics Bene Berde Berkessy Bernáth Bicskei Biró Bita Blum Bodnár Bodola Bodor Bogdán Bognár Bojtor Borbás Borbély Bori Boros Bozsik Böjte Böőr Braun Brlázs Bródy Budai Bujáki Bukovi Bukrán Burcsa Busai Buzánszky Buzsáky Bükszegi Czibor Czvitkovics Csapkay Cseke Csermelyi Csernyánszki Csiszár Csizmadia Csontos Csordás Csuhay Dajka Dalnoki Dárdai Deák Debreceni Deme Demjén Détári Dienes Disztl Dobos Domanyik Dombai Dombi Dorogi Dragóner Dudás Dunai Dzsudzsák Éger Egressy Éles Erdélyi ErÅ‘s Esterházy Fábián Faggyas Faragó Farkas Fazekas Feczesin Fehér Fekete Fenyvesi Ferenczi Filkor Filó Finta Fitos Fodor Fogl Fritz Futaki Futó Fülöp Füzi Gaál Gabala Gál Garaba Gáspár Géczi Gera Gosztonyi Gögh Göröcs Gróf Grosics Gujdár Gulácsi Gulyás Guzmics Gyánó Gyarmati Gyepes GyÅ‘ri Györök Habi Hajdú Hajnal Hajszán Halász Halmai Halmosi Hamar Hannich Hegedűs Hercegfalvi Herczeg Hidegkuti Hirzer Horváth Hrepka Hrutka Hullám Huszák Huszti Ihász Illés Illovszky Iszlai Jakab Jäkl Jónás Jovánczai Józsi Juhár Juhász Kádár Kaj Kalina Kálmár Kalocsay Kanta Káposzta Kardos Katona Kaucsar Kelemen Kenesei Kerekes Keresztúri Kertész Kincses Kiprich Király Kis Kiss Kisznyér Klement Kocsárdi Kocsis Kohut Koller Koman Komlósi Komora Konrád Koós Koplárovics Korcsmár Kormos Korolovszky Korsós Koszó Kovács Kovrig Kozerak Kozma KöllÅ‘ Kövesfalvi Kubala Kuharszki Kun Kuttik Kuttor Kű Kürschner Laczko Ladinsky Lakatos Lantos Lappints Lapsánszki László Lattenstein Leitold Lendvai Lengyel Lettrich Limperger Lipcsei Lipták Lisztes Lóránt LÅ‘w Lukács Madar Magasföldi Magyar Major Majoros Mándi Márton Máté Mátrai Mátyus Megyesi Mészáros Mészöly Mezey Miriuţă Miski Molnár Montvai Müller Nagy Nehadoma Némedi Nemes Németh Nikházi Nikolov Novák Nyári Nyers Nyilasi Oláh Orbán Oross Orosz Orsós Orth Pákolicz Pál Palotai Palotás Páncsics Pap Papp Pásztor Pataki Péter Petö Petschovsky Pintér Pisont Platko Pokorni Pollák Posza Preisinger Présinger Priskin Pusztai Rabóczki Rácz Rajczi Rajos Rákosi Rapp Regedei Remili Repasi Rezes Rósa Róth Rózsa Rudolf Rumbold Rusvay Sáfár Sallai Salloi Sándor Sánta Sárosi Sarus Sas Schaffer Schlosser Schróth Schwarz Sebes SebÅ‘k Senkey Simek Simon Sipos Sitku Smid Solymosi Somodi Somogyi Soós Sóvári Stark Sternberg Stieber Szabics Szabó Szakály Szalai Szalay Szalma Szamosi Szántó Szanyo Szatmári Székely Szekeres Széki Szélesi Szemerey Szendrei Szentes Szentmihályi Szép Szeverényi Szilágyi Szili Szilveszter Szlezák Szoboszlai SzÅ‘ke Sztani Sztipánovics Szusza Szűcs Takács Tamás Tichy Tihamér Timár Tisza Titkos Tokody Toldi Torghelle Torma Tóth Tököli Tölcséres TörÅ‘csik Török TÅ‘zsér Udvari Ujlaki Urban Urbányi Ursz Vadócz Valentényi Vanczák Váradi Varga Várhidi Vasas Vaskó Vass Vayer Véber Végh Veres Vermes Verpecz VetÅ‘ Vezér Vincze Viola Virág Vituska Vlaszák Völgyi Vörös Zakariás Zámbó Zavadszky Zsák Zsengellér Zsidai Zsivóczky Zsolnai bygfoot-2.3.2/support_files/bygfoot_tokens0000644000175000017500000001210211225071373020015 0ustar eliaselias################# # tokens for the live game commentary ################## # see # http://bygfoot.sourceforge.net/doc/1.9/def_howto.html # tokens in the live game commentary #------------------------------------ # general string_token_league_cup_name _LEAGUECUPNAME_ # also for news string_token_cup_round_name _CUPROUNDNAME_ # also for news string_token_attendance _AT_ # also for news string_token_result _RE_ # also for news string_token_time _TIME_ string_token_minute _MI_ string_token_minute_remaining _MR_ string_token_minute_total _MT_ string_token_yellow_limit _YELLOWLIMIT_ string_token_goals0 _GOALS0_ # also for news string_token_goals1 _GOALS1_ # also for news string_token_goal_diff _GD_ # also for news string_token_possession _POSS_ string_token_no_possession _NPOSS_ # misc string_token_extra _EX_ # team string_token_team_home _T0_ # also for news string_token_team_away _T1_ # also for news string_token_team_losing _TL_ # also for news string_token_team_winning _TW_ # also for news string_token_team_winningn _TWN_ # also for news string_token_team_losingn _TLN_ # also for news string_token_team _TT_ string_token_team_layer0 _TLAYER0_ # also for news string_token_team_layer1 _TLAYER1_ # also for news string_token_team_layerdiff _TLAYERDIFF_ # also for news string_token_team_avskill0 _TAVSKILL0_ # also for news string_token_team_avskill1 _TAVSKILL1_ # also for news string_token_team_avskilldiff _TAVSKILLDIFF_ # also for news # player string_token_player0 _P0_ string_token_player1 _P1_ string_token_player_goals0 _PLGOALS0_ string_token_player_goals_all0 _PLGOALSALL0_ string_token_player_goals1 _PLGOALS1_ string_token_player_goals_all1 _PLGOALSALL1_ string_token_player_yellows _PLYELLOWS_ # stat tokens string_token_stat_shots0 _SHOTS0_ # also for news string_token_stat_shots1 _SHOTS1_ # also for news string_token_stat_shot_per0 _SHOTPER0_ # also for news string_token_stat_shot_per1 _SHOTPER1_ # also for news string_token_stat_poss0 _POSS0_ # also for news string_token_stat_poss1 _POSS1_ # also for news string_token_stat_pen0 _PEN0_ # also for news string_token_stat_pen1 _PEN1_ # also for news string_token_stat_fouls0 _FOULS0_ # also for news string_token_stat_fouls1 _FOULS1_ # also for news string_token_stat_yellows0 _YELLOWS0_ # also for news string_token_stat_yellows1 _YELLOWS1_ # also for news string_token_stat_reds0 _REDS0_ # also for news string_token_stat_reds1 _REDS1_ # also for news string_token_stat_injs0 _INJS0_ # also for news string_token_stat_injs1 _INJS1_ # also for news # tokens for CPU strategy #-------------------------- # prematch string_token_opponent_skill _OPPSKILL_ string_token_avskilldiff _AVSKILLDIFF_ string_token_homeadv _HOMEADV_ string_token_cup _CUP_ string_token_goals_to_win _GOALSTOWIN_ # match string_token_subs_left _SUBSLEFT_ string_token_num_def _NUMDEF_ string_token_num_mid _NUMMID_ string_token_num_att _NUMATT_ string_token_form _FORMATION_ # tokens for news articles #------------------------------------ string_token_result_rew _REW_ string_token_result_rel _REL_ string_token_bool_cup _CUP_ string_token_bool_cup_knockout _CUPKO_ string_token_bool_cup_home_away _CUPHOMEAWAY_ string_token_cup_stage _CUPSTAGE_ string_token_bool_cup_neutral _CUPNEUTRAL_ string_token_bool_cup_national _CUPNATIONAL_ string_token_bool_cup_international _CUPINTERNATIONAL_ string_token_bool_cup_promrel _CUPPROMREL_ string_token_bool_cup_aux _CUPAUX_ string_token_bool_cup_penalties _CUPPEN_ string_token_bool_cup_extra _CUPET_ string_token_bool_cup_first_leg _CUPFIRSTLEG_ string_token_bool_cup_second_leg _CUPSECONDLEG_ string_token_cup_match_winner _CUPMATCHWINNER_ string_token_cup_match_loser _CUPMATCHLOSER_ string_token_cup_match_winnern _CUPMATCHWINNERN_ string_token_cup_match_losern _CUPMATCHLOSERN_ string_token_bool_multiple_scorers0 _MULTIPLESCORERS0_ string_token_bool_multiple_scorers1 _MULTIPLESCORERS1_ string_token_scorers0 _SCORERS0_ string_token_highscorer0 _HIGHSCORER0_ string_token_highscorer_goals0 _HIGHGOALS0_ string_token_scorers1 _SCORERS1_ string_token_highscorer1 _HIGHSCORER1_ string_token_highscorer_goals1 _HIGHGOALS1_ string_token_goal_diff_aggregate _GDAGG_ string_token_rank0 _RANK0_ string_token_oldrank0 _OLDRANK0_ string_token_rank1 _RANK1_ string_token_oldrank1 _OLDRANK1_ string_token_streak_won0 _WON0_ string_token_streak_lost0 _LOST0_ string_token_streak_won1 _WON1_ string_token_streak_lost1 _LOST1_ string_token_streak_league_won0 _LEAGUEWON0_ string_token_streak_league_lost0 _LEAGUELOST0_ string_token_streak_league_won1 _LEAGUEWON1_ string_token_streak_league_lost1 _LEAGUELOST1_ string_token_streak_unbeaten0 _UNBEATEN0_ string_token_streak_unbeaten1 _UNBEATEN1_ string_token_streak_league_unbeaten0 _LEAGUEUNBEATEN0_ string_token_streak_league_unbeaten1 _LEAGUEUNBEATEN1_ bygfoot-2.3.2/support_files/bygfoot_constants0000644000175000017500000010270111225071373020533 0ustar eliaselias######## # Bygfoot constants file. a lot of fine-tuning stuff gets loaded # from here. constants affecting the appearance of the game # can be found in 'bygfoot_app'. ######### #### float constants get divided by 100000 and loaded as floats #### so we write 50000 if we'd like to have 0.5 # commands for unix filesystem interaction string_fs_compress_command_unix zip string_fs_compress_switches_unix -q string_fs_uncompress_command_unix unzip string_fs_uncompress_switches_unix -qq -o string_fs_copy_file_command_unix cp string_fs_remove_file_command_unix rm string_fs_save_suffix_unix .zip # commands for win32 filesystem interaction string_fs_compress_command_win32 zip string_fs_compress_switches_win32 -q string_fs_uncompress_command_win32 unzip string_fs_uncompress_switches_win32 -qq -o string_fs_copy_file_command_win32 copy string_fs_remove_file_command_win32 erase string_fs_save_suffix_win32 .zip # number of seconds until messages disappear int_game_gui_message_duration 5 # number of seconds to delay for delayed messages int_game_gui_message_delay 3 # base values for stadium improvement: 500 seats and 5% int_stadium_improvement_base_seats 500 float_stadium_improvement_base_safety 5000 # values at which maximum discount is reached int_stadium_improvement_max_discount_seats 2000 float_stadium_improvement_max_discount_safety 20000 # maximum discount float_stadium_improvement_max_discount 40000 # wage unit factor for 500 seats or 5% safety float_stadium_improvement_wage_unit_factor_seats 2500000 float_stadium_improvement_wage_unit_factor_safety 1200000 # these determine how much the weekly seats and # safety increase can deviate from the base values 500 and 5% int_stadium_improvement_seats_variance 100 float_stadium_improvement_safety_variance 1000 # lower limit for player ages. float_player_age_lower 1800000 # upper limit for player ages. float_player_age_upper 3600000 # lower limit for player peak ages. float_player_peak_age_lower 2900000 # upper limit for player peak ages. float_player_peak_age_upper 3200000 # lower limit for player peak region. float_player_peak_region_lower 150000 # upper limit for player peak region. float_player_peak_region_upper 400000 # by how many years the peak age of goalies is # greater. float_player_peak_age_goalie_addition 200000 # limits for initial fitness (read it as 85%) float_player_fitness_lower 85000 # limits for initial fitness. float_player_fitness_upper 100000 # bounds for the contract time at player generation. float_player_contract_lower 100000 float_player_contract_upper 400000 # default contract value for youths float_player_contract_youth 400000 # bounds for the last skill update at player generation. float_player_lsu_lower 200000 float_player_lsu_upper 1000000 # stadium safety bounds at generation float_team_stadium_safety_lower 80000 float_team_stadium_safety_upper 100000 # ticket price; this determines together with # the player wages the size of the stadium at # generation. Also used in attendance # calculation int_team_stadium_ticket_price 25 # price vs attendace. This determines together # with the prices how high the attedace will be float_team_stadium_price_attendance_factor 4000 # factor for stadium size; this determines the income # of the user teams float_team_stadium_size_wage_factor 180000 # stadium safety deterioration values (per game) float_game_stadium_safety_deterioration_lower 200 float_game_stadium_safety_deterioration_upper 500 # journey cost factor for national and international games float_game_finance_journey_factor_national 30000 float_game_finance_journey_factor_international 60000 # how many spectators in a perfectly safe stadium float_game_stadium_attendance_percentage_lower 70000 float_game_stadium_attendance_percentage_upper 110000 # percentage increasing factor in cup games float_game_stadium_attendance_cup_national_factor 115000 float_game_stadium_attendance_cup_international_factor 125000 # how many rounds before the final there's full house int_game_stadium_attendance_cup_rounds_full_house 3 # below which rank (in pct. of the number of teams in the league) # there are more spectators float_game_stadium_attendance_rank_percentage 25000 # factor for an opponent with high rank float_game_stadium_attendance_rank_factor 110000 # exponent of the stadium safety (the bigger the greater # the influence of the safety on the percentage) float_game_stadium_attendance_safety_exponent 50000 # how many spectators there can be at most compared to # the average stadium size in the league float_game_stadium_attendance_average_exceed_factor 200000 # upper and lower percentages for attendance on neutral # ground (compared to the average capacity of cup teams # in international cups and average capacity of league 1 # teams in national cups) float_game_stadium_attendance_neutral_lower 90000 float_game_stadium_attendance_neutral_upper 145000 # reduce (in percentage) of capacity for different # stadium events float_game_stadium_safety_reduce_breakdown_lower 3000 float_game_stadium_safety_reduce_breakdown_upper 6000 float_game_stadium_safety_reduce_riots_lower 5000 float_game_stadium_safety_reduce_riots_upper 10000 float_game_stadium_safety_reduce_fire_lower 10000 float_game_stadium_safety_reduce_fire_upper 15000 # factor we multiply the safety reduction with to obtain the # capacity reduction; the bigger the higher the reduction float_game_stadium_capacity_reduce_factor 150000 # position weights determining what kind of player # gets picked in the live game for an event (depending # on the area the live game is in float_game_player_weight_attack_def 22500 float_game_player_weight_attack_mid 40000 float_game_player_weight_attack_fwd 120000 float_game_player_weight_midfield_def 50000 float_game_player_weight_midfield_mid 100000 float_game_player_weight_midfield_fwd 50000 float_game_player_weight_defend_def 100000 float_game_player_weight_defend_mid 50000 float_game_player_weight_defend_fwd 25000 # lsu addition for injured players who are older # than their peak age float_player_lsu_injured_old 150000 # percentage of league games a player has to participate # in to have his lsu increased float_player_lsu_games_percentage 30000 # probability that the lsu gets increased even # if the player didn't participate in that many games float_player_lsu_increase_prob 40000 # the lsu above which a skill update is considered float_player_lsu_update_limit 1500000 # 1 - probability that the update occurs right away float_player_lsu_update_base_prob 80000 # this determines the accuracy of the scout's # talent estimate. the smaller the better. float_player_etal_scout_factor 700000 # fitness limits below which fitness is shown # in orange and red etc. float_treeview_helper_limit_player_fitness_below1 85000 float_treeview_helper_limit_player_fitness_below2 70000 float_treeview_helper_limit_player_fitness_below3 60000 # contract limits below which contract time is shown # in orange and red etc. float_treeview_helper_limit_player_contract_below1 100000 float_treeview_helper_limit_player_contract_below2 70000 float_treeview_helper_limit_player_contract_below3 40000 # the factor that determines how much money the user has to pay # if he fires a player float_player_fire_wage_factor 1000000 # the integer that the cell data functions will interpret as an empty string. int_treeview_helper_int_empty -5 # number of results shown in the next opponent # info int_treeview_latest_results 10 # number of matches shown in the preview int_treeview_coming_matches 4 # number of |'s for an ideal 442 team in the opponent preview int_treeview_max_pipes 50 # the bounds determining the player positions in a newly created # team for players 13 to int_team_max_players. # player 11 is always the second goalie. float_player_pos_bound1 37550 float_player_pos_bound2 75100 # minimum number of players in a user team. int_team_min_players 11 # maximum number of players in a user team. int_team_max_players 22 # number of players in cpu teams. should be # less or equal int_team_max_players int_team_cpu_players 20 # highest skill and talent a player can have. float_player_max_skill 9900000 # determines initial money of the users int_initial_money_lower 70 int_initial_money_upper 100 # how many teams and players there # are in the league statistics int_stat_teams_len 3 int_stat_players_len 5 # percentage of team matches a goalie has to participate # in to get counted in the best goalies statistics float_stat_goalie_percentage 40000 # below and above which percentages of ranks # in the league table the user's success counter # gets incremented or decremented float_user_success_table_bound_upper 30000 float_user_success_table_bound_lower 70000 # how many points the user loses or gains (so that # his success counter converges to 0) if the team # rank is between the above bounds int_user_success_mediocre_rank_change 2 # success points for reaching some cup rounds int_user_success_international_winner 80 int_user_success_international_final 70 int_user_success_international_semis 60 int_user_success_international_quarter 40 int_user_success_national_winner 70 int_user_success_national_final 60 int_user_success_national_semis 50 int_user_success_national_quarter 30 # success points for promotion and relegation int_user_success_promotion 60 int_user_success_relegation 60 # points above or below which there might be a job # offer int_user_success_offer_limit 400 # base probability that the counter is considered at all float_user_success_counter_check 25000 # probability that user gets job offer or fired if he # is below or above the limit float_user_success_base_prob 50000 # factor determining the growth of the probability float_user_success_prob_factor 540 # how often a user may overdraw his bank account int_finance_overdraw_limit 3 # how many weeks until he's got to be positive int_finance_overdraw_positive 6 # wage factors for scout and physio # four apiece because of the different qualities float_finance_scout_factor1 200000 float_finance_scout_factor2 150000 float_finance_scout_factor3 100000 float_finance_scout_factor4 50000 float_finance_physio_factor1 60000 float_finance_physio_factor2 50000 float_finance_physio_factor3 40000 float_finance_physio_factor4 30000 # wage factor for youth coach float_finance_yc_factor1 350000 float_finance_yc_factor2 250000 float_finance_yc_factor3 180000 float_finance_yc_factor4 100000 # interest rate float_finance_interest 2000 # weight of player values and stadium capacity # for drawing credit and loan float_finance_credit_player_value_weight 6000 float_finance_credit_stadium_weight 3000000 # influence of the stadium safety on the value of the stadium float_finance_credit_stadium_safety_exponent 25000 # scaling factors for the drawing credit and loan float_finance_credit_factor_drawing 30000 float_finance_credit_factor_loan 70000 # number of weeks to pay back a loan int_finance_payback_weeks 15 # lower and upper limit for the current interest # and the change step between weeks float_finance_interest_lower 500 float_finance_interest_upper 5000 float_finance_interest_step 250 # live game scale configuration float_game_gui_live_game_scale_attack 30000 float_game_gui_live_game_scale_chance 45000 float_game_gui_live_game_scale_range 1000000 # live game speed (milliseconds int_game_gui_live_game_speed_grad -87500 int_game_gui_live_game_speed_max 3500010 # factor changing the speed when penalties float_game_gui_live_game_speed_penalties_factor 200000 # How much a player's talent can deviate from # the average talent in his team. float_player_average_talent_variance 7500 # these determine the value calculation of players. # value is a function of skill and talent involving # a power. float_player_value_skill_weight 65000 float_player_value_power 350000 # linear function parameters influencing the value # increase/reduction depending on the difference between # age and peak age; the higher the values, the bigger # the influence float_player_value_younger_factor 2000 float_player_value_older_factor 2500 # these determine the wage calculation of players. # wage depends on the value and a random factor near 1. float_player_wage_value_factor 1000 float_player_wage_random_dev 15000 # constants determining the probabilities for # the playing styles of cpu teams. float_team_playing_style_prob1 10000 float_team_playing_style_prob2 25000 float_team_playing_style_prob3 75000 float_team_playing_style_prob4 90000 # constants determining the probabilities for # the playing structures of cpu teams. float_team_playing_structure_prob1 15000 float_team_playing_structure_prob2 50000 float_team_playing_structure_prob3 70000 float_team_playing_structure_prob4 85000 # kinda hard to explain. # @see team_generate_players() # @see player_generate() float_team_skill_variance 7500 # maximum player skill changes in cpu teams at # the beginning of a new season in percent float_season_end_team_change_lower -4000 float_season_end_team_change_upper 4000 # additional percentage if a user was first league # champion float_season_end_user_champ_addition 2000 # additional percentage if a user was first league # champion and the team is among the best ones # (this means basically that we improve the top teams # so that they can challange the user's team better) float_season_end_user_champ_best_teams_addition 1500 # the table rank limit below which we count # a team as a top team int_season_end_user_champ_best_teams_limit 5 # how much the user's luck deteriorates if he # becomes champion float_season_end_user_champ_luck_factor 97500 # how much it regenerates if he's not champ float_season_end_user_champ_luck_factor_regen 101000 # lower limit for the user's luck float_luck_limit 90000 float_season_end_league_above_talent_factor 103000 # bounds for new teams when user's been fired # counted in the tables relative to his team int_team_new_bound_upper 10 int_team_new_bound_lower 20 # base probability that the ball gets from defending area # to midfield area. float_live_game_area_def_mid 50000 # influence of attack/defend values on the base probability; the lower # the smaller the influence. float_live_game_area_def_mid_team_exponent 100000 # base probability that the ball gets from midfield area # to attack area or back to defend area. float_live_game_area_mid_att 50000 float_live_game_area_mid_def 30000 # influence of attack/defend values on the base probability; the lower # the smaller the influence. float_live_game_area_mid_team_exponent 125000 # base probability that the ball gets from attacking area # to midfield area. float_live_game_area_att_mid 30000 # influence of attack/defend values on the base probability; the lower # the smaller the influence. float_live_game_area_att_mid_team_exponent 100000 # base probability of a general event (no foul, no injury, no goal etc.) float_live_game_event_general 50000 # base probability for possession change. float_live_game_possession_changes 20000 # influence of the team values on the possession change. float_live_game_possession_team_exponent 400000 # base prob for a scoring chance if a team is attacking. float_live_game_scoring_chance 30000 # team values influence on the scoring chance. float_live_game_scoring_chance_team_exponent 125000 # probability that it's the player in possession who # has the scoring chance. float_live_game_player_in_poss_shoots 30000 # prob that the scoring chance is a header float_live_game_scoring_chance_is_header 25000 # probability that a scoring chance is an own goal. float_live_game_scoring_chance_is_own_goal 1000 # base probability to score with a scoring chance. float_live_game_score_base_prob 30000 # base probability to score with a free kick. float_live_game_score_free_kick 5000 # base probability to score with a penalty. float_live_game_score_penalty 80000 # influence of the attacker/goalie skills on the probability to score. float_live_game_score_duel_exponent 30000 # influence of the team attacking/defending values on the probability to score. float_live_game_score_team_exponent 70000 # the smaller this number, the smaller the probability of # many stopping minutes after 90 or 45 minutes. float_live_game_break_base 60000 # the bigger this number, the faster the probability of # yet another additional minute after the 45th minute decays. float_live_game_45_break_exponent_factor 130000 # the bigger this number, the faster the probability of # yet another additional minute after the 90th minute decays. float_live_game_90_break_exponent_factor 70000 # the probability that the team that shot on the goal stays # in possession after a post or cross-bar hit. float_live_game_possession_after_post 30000 # probability that there is a passing event after a special event. float_live_game_general_event_second_player 50000 # constants for stadium events. # influence of the stadium safety on the stadium # event probability float_live_game_stadium_event_exponent 130 # probabilities of different events; should add # up to 10000 float_live_game_stadium_event_breakdown 60000 float_live_game_stadium_event_riots 30000 float_live_game_stadium_event_fire 10000 # foul probabilities. float_live_game_foul_base 7000 float_live_game_foul_max_inc 8000 # influence of boost on foul probability float_team_boost_foul_factor 40000 # if a team already got booked it fouls less often float_live_game_foul_prob_reduction_yellow 10000 float_live_game_foul_prob_reduction_red 20000 # a player who's already booked fouls more carefully float_live_game_foul_booked_reduction 50000 # probabilities for special foul consequences float_live_game_foul_red_injury 1500 float_live_game_foul_red 3800 float_live_game_foul_yellow 28000 # ban duration probabilities # should add up to 100000 float_live_game_ban_1 70000 float_live_game_ban_2 15000 float_live_game_ban_3 10000 float_live_game_ban_4 3000 float_live_game_ban_5 2000 # probability that the foul player is from the # team that has the ball float_live_game_foul_by_possession 20000 # injury probabilities. float_live_game_injury 1000 float_live_game_injury_goalie_factor 20000 float_live_game_injury_is_temp 75000 # probabilities for different injuries # these should add up to 1000 float_player_injury_concussion 20000 float_player_injury_pulled_muscle 20000 float_player_injury_hamstring 15000 float_player_injury_groin 15000 float_player_injury_frac_ankle 10000 float_player_injury_rib 7500 float_player_injury_leg 4000 float_player_injury_brok_ankle 4000 float_player_injury_arm 2000 float_player_injury_shoulder 1500 float_player_injury_ligament 700 float_player_injury_career_stop 300 # duration of the injuries (mean and deviance) int_player_injury_duration_concussion 2 int_player_injury_duration_dev_concussion 1 int_player_injury_duration_pulled_muscle 3 int_player_injury_duration_dev_pulled_muscle 1 int_player_injury_duration_hamstring 5 int_player_injury_duration_dev_hamstring 2 int_player_injury_duration_groin 5 int_player_injury_duration_dev_groin 2 int_player_injury_duration_frac_ankle 6 int_player_injury_duration_dev_frac_ankle 2 int_player_injury_duration_rib 8 int_player_injury_duration_dev_rib 4 int_player_injury_duration_leg 9 int_player_injury_duration_dev_leg 4 int_player_injury_duration_brok_ankle 11 int_player_injury_duration_dev_brok_ankle 5 int_player_injury_duration_arm 6 int_player_injury_duration_dev_arm 2 int_player_injury_duration_shoulder 10 int_player_injury_duration_dev_shoulder 5 int_player_injury_duration_ligament 22 int_player_injury_duration_dev_ligament 8 # probability of injury time decrease for # best and good physios (values of average and bad are # obtained by mirroring these # the values should add up to 10000 float_player_injury_recovery_best0 10000 float_player_injury_recovery_best1 65000 float_player_injury_recovery_best2 25000 float_player_injury_recovery_good0 15000 float_player_injury_recovery_good1 65000 float_player_injury_recovery_good2 20000 # fitness bounds after the player is recovered float_player_injury_recovery_fitness_lower 50000 float_player_injury_recovery_fitness_upper 70000 # fitness decrease when injury is temporary float_live_game_temp_injury_fitness_decrease_lower 2000 float_live_game_temp_injury_fitness_decrease_upper 8000 # probability of a free kick after a foul. float_live_game_free_kick_prob 15000 # probability of a penalty after a foul. float_live_game_penalty_prob 5000 # influence in % of the game style towards more attack. float_game_style_factor 7500 # influence of boost on player's skill. # these should be between 0 and 1 float_player_boost_skill_effect 12500 # influence of boost on player's fitness decay. float_player_boost_fitness_effect 80000 # influence of boost on injury probability. float_player_boost_injury_effect 80000 # influence of boost on cards probability. float_player_boost_card_effect 80000 # influence of team boost on probability that the team in possession # of the ball fouls float_team_boost_foul_by_possession_factor1 50000 float_team_boost_foul_by_possession_factor2 90000 # costs factor of boost per minute float_boost_cost_factor 2000 # probability that be better goalie gets substituted # when updating the cpu teams float_team_replace_worse_goalie 80000 # prob that new players come into the cpu team float_team_new_player_probability 5000 # upper and lower limits for the number of new players int_team_new_players_lower 1 int_team_new_players_upper 2 # upper and lower limits for the number of subs # in cpu teams int_team_subs_lower 1 int_team_subs_upper 3 # prob that the team style gets changed float_team_new_style 10000 # prob that the team structure gets changed float_team_new_structure 20000 # the influence of the fitness on the current skill. # this determines the player's contribution to the team # during a game. the higher the value the bigger the influence. float_player_fitness_exponent 25000 # skill update parameters for players not within # their peak region float_player_skill_update_younger_factor 250 float_player_skill_update_younger_add 250 float_player_skill_update_older_factor 300 float_player_skill_update_older_add 250 # how much the skill varies during peak region float_player_skill_update_peak 1500 # these determine the players' fitness decrease during # a match (depending on the peak age diff) float_player_fitness_decrease_younger_factor 3 float_player_fitness_decrease_older_factor 7 # addition value is the same for both, as it coincides # with the decrease in the peak region float_player_fitness_decrease_add 12 # player fitness increase parameters float_player_fitness_increase_younger_factor -850 float_player_fitness_increase_older_factor -1400 float_player_fitness_increase_add 15000 # sometimes it's more, sometimes it's less: # variance in percent float_player_fitness_increase_variance 25000 # goalies get affected less by the decrease float_player_fitness_decrease_factor_goalie 50000 # bounds for the home advantage factor float_game_home_advantage_lower 3000 float_game_home_advantage_upper 7000 # How the cskill of field players get weighted for the team values in # a match float_player_team_weight_defender_defense 100000 float_player_team_weight_defender_midfield 40000 float_player_team_weight_defender_attack 25000 float_player_team_weight_midfielder_defense 62500 float_player_team_weight_midfielder_midfield 100000 float_player_team_weight_midfielder_attack 62500 float_player_team_weight_forward_defense 20000 float_player_team_weight_forward_midfield 60000 float_player_team_weight_forward_attack 130000 # transfer list configuration # maximal number of players on the list int_transfer_max_players 20 # deadline in perc. of the longest league # e.g if a league has 100 matchdays deadline would be after # week 70 float_transfer_deadline_percentage 80000 # number of new players on the list each week int_transfer_new_players_lower 0 int_transfer_new_players_upper 3 # how long they stay on the list int_transfer_time_lower 4 int_transfer_time_upper 7 # percentage of players from international cup teams float_transfer_cup_percentage 25000 # restrictions applying to very good players float_transfer_good_player_skill_bound 9000 float_transfer_good_player_prob 50000 # scout deviance in percent of the players' values and wages # these values are the deviance for the best scout; the others # are obtained by multiplying it float_transfer_scout_deviance_value 2000 float_transfer_scout_deviance_wage 3000 # probability for an offer when a user # player's on the list float_transfer_offer_prob_max 50000 # reduce factor (multiplied by the scout value) float_transfer_offer_prob_reduce 10000 # deviance bounds of the fee from the value # values for average and bad scout are mirrored # best scout float_transfer_offer_fee_best_lower -5000 float_transfer_offer_fee_best_upper 15000 # good scout float_transfer_offer_fee_good_lower -8000 float_transfer_offer_fee_good_upper 12000 # bounds for contract time of a newly acquired player int_transfer_contract_lower 1 int_transfer_contract_upper 4 # wage increase/decrease in percentage for players above # or below their peak age for longer contracts than 1 year float_contract_scale_factor 3000 # max. number of offers when a new contract is negotiated int_contract_max_offers 3 # ratio we'd like to have between the number # of first and last names in a player name list # (ie. #first names /#last names) float_name_first_last_ratio 50000 # maximum number of possibilities we want to have # in a shortened name list (ie. #first * #last) int_name_max_product 2000 # probability that a name is chosen from a random # list instead of the specified one float_name_random_list_prob 20000 string_language_names БългарÑки Dansk Deutsch Ελληνικά English Español Français Italiano Nedersaksisch Polski Português Português-Brasilei Română Svenska 中文 Türkçe string_language_codes bg da de el C es fr it nl pl pt_PT pt_BR ro sv zh tr string_language_symbols flag_bulgaria.png flag_dk.png flag_germany.png flag_greece.png flag_england.png flag_spain.png flag_france.png flag_italy.png flag_netherlands.png flag_poland.png flag_portugal.png flag_brazil.png flag_romania.png flag_sweden.png flag_china.png flag_turkey.png string_language_defs country_bulgaria.xml country_denmark.xml country_germany.xml country_greece.xml country_england.xml country_spain.xml country_france.xml country_italy.xml country_netherlands.xml country_poland.xml country_portugal.xml country_brazil.xml country_romania.xml country_sweden.xml NONE country_turkey.xml # lower and upper limits of which percentage # of the player wages a sponsor pays; the actual # value depends on the team's success float_sponsor_wage_percentage_lower 20000 float_sponsor_wage_percentage_upper 70000 # percentage difference between shorter and longer # contracts. whether this counts positively or negatively # depends on whether the success counter is positive or negative float_sponsor_contract_length_factor 12000 # lower and upper limits for number of sponsor offers int_sponsor_offers_lower 1 int_sponsor_offers_upper 5 # limits for weeks without sponsor int_sponsor_without_weeks_lower 3 int_sponsor_without_weeks_upper 6 # probability that the current sponsor wants # to continue engagement if the team is completely # unsuccessful float_sponsor_continue_prob 10000 # how many live game units we check backwards to avoid # having the same commentary text too often int_lg_commentary_check_backwards 15 # default percentage for youth academy int_youth_academy_default_percentage 5 # upper and lower bounds for number of youths # in the academy int_youth_academy_youths_lower 1 int_youth_academy_youths_upper 2 # upper and lower values for the counter determining # when a new youth appears (in weeks) float_youth_academy_youth_counter_lower 1500000 float_youth_academy_youth_counter_upper 2500000 # upper and lower values for youth ages float_youth_academy_age_lower 1550000 float_youth_academy_age_upper 1750000 # weight of the coach for the average talent # between 0 and 1 float_youth_academy_coach_weight 25000 # upper and lower factor values for average talent # (actual value depends on coach and percentage) float_youth_academy_talent_factor_lower 67000 float_youth_academy_talent_factor_upper 105000 # youth talent variance (to have random # talents, not always the same) float_youth_academy_talent_variance 15000 # probabilities for the different positions # cumulative listing, adding up to 1 float_youth_academy_pos_goalie 10000 float_youth_academy_pos_defender 35000 float_youth_academy_pos_midfielder 35000 float_youth_academy_pos_forward 20000 # by how much the probability of getting the position # yearned for increases with a bad youth coach float_youth_academy_coach_search_addition 12000 # maximum percentage the user can devote to the youth academy int_youth_academy_max_percentage 25 # Last skill update addition when the user's average # youth coach is BEST float_youth_academy_lsu_addition_best 130000 # how much we substract from the above value when the # coach is worse float_youth_academy_lsu_penalty 20000 # how much the average youth coach and # investment percentage weighs; the higher # the slower the change of the value when # the user changes the coach (e.g. BAD -> BEST) # or the percentage (e.g. 5% -> 20%) float_youth_academy_average_weight 170000 # new youth counter decrease if the average percentage # is approx. 0 float_youth_academy_counter_decrease_min 100000 # additional lsu change if a youth plays a match float_youth_lsu_addition_match 150000 # how many youths there may be at most in the YA int_youth_academy_max_youths 10 # influence of various events on the streak # probabililty float_player_streak_add_startup 5000 float_player_streak_add_no_startup -3000 float_player_streak_add_sub_in 3000 float_player_streak_add_sub_out -2000 float_player_streak_add_goal 12000 float_player_streak_add_own_goal -15000 float_player_streak_add_assist 5000 float_player_streak_add_win 4000 float_player_streak_add_loss -4000 float_player_streak_add_goalie_save 2000 float_player_streak_add_goalie_goal -3000 float_player_streak_add_goalie_clean 6000 float_player_streak_add_injury -18000 float_player_streak_add_sendoff -12000 # influence of the streak on player values # in percent float_player_streak_influence_skill 7000 float_player_streak_influence_fitness_decrease -12000 float_player_streak_influence_fitness_increase 12000 # how many weeks there mustn't be an new streak int_player_streak_count_lower 3 int_player_streak_count_upper 6 # parameters (linear function) that determine how # fast the streak count decreases depending on the # current streak prob float_player_streak_count_decrease_factor 75000 float_player_streak_count_decrease_add 100000 # upper and lower bounds for streak lock length # (ie. how many weeks a player may not go on a new # streak) int_player_streak_lock_length_lower 3 int_player_streak_lock_length_upper 6 # upper and lower bounds for streak length float_player_streak_length_lower 150000 float_player_streak_length_upper 400000 # the two values determining the probability # that a player goes on a streak # maximum probabililty (when the player's streak_prob # is 1 or -1) float_player_streak_prob_max 40000 # probability at streak_prob=0 (this is >0 because # the streak_prob is between -1 and 1, not 0 and 1) float_player_streak_prob_zero 5000 # factors for the betting odds functions float_bet_better_factor 2430 float_bet_worse_factor -1290 # this determines how much worse the odds # are made because of betting commission float_bet_commission_decrease 25000 # how small the odds may become float_bet_lower_limit 5000 # how many wage units the user may wager at most float_bet_wager_limit_factor 50000 # how much the user may wager at most int_bet_wager_max 25000 # lower and upper bounds for the number # of new job offers when the job exchange gets updated int_job_new_offers_lower 4 int_job_new_offers_upper 8 # how often (in weeks) an update occurs int_job_update_interval 5 # percentage of international offers float_job_international_perc 70000 # number of success points per average skill # difference unit (needed when finding out whether # a user's application for a job is successful) int_job_application_points_per_av_skill 20 # how many points a league layer difference is worth int_job_application_points_per_layer 30 # how many points more are needed for an international # application int_job_application_points_international 200 # how many points a country rating difference is worth int_job_application_points_per_rating 80 # the chance that a new star player to be bought doesn't # balk because of other star players already on the team float_transfer_star_no_balk 12000 # the chance that a star player doesn't balk because # at contract renewal time float_contract_star_no_balk 25000 # skill limit for transfers defining what we call a star float_transfer_star_skill_limit 9000000 # skill limit for contract renewal defining what we call a star float_contract_star_skill_limit 9250000 # how much the presence of a star player decreases the # probability that a new one accepts an offer float_transfer_star_prob_decrease 15000 # probability of a star goalie accepting if there's # already one present float_transfer_star_goalie_accepts 12000 # wage unit factors for training camp hotel float_training_camp_factor1 500000 float_training_camp_factor2 1000000 float_training_camp_factor3 1500000 # number of training camps allowed for one season int_training_camps_per_season 12 # number of training camps allowed per week int_training_camps_week 2 # how many news articles to check backwards # to avoid news repetitions int_news_repetition_min_check_number 3 int_news_repetition_max_check_number 10 # how many news articles to keep in memory int_news_history_length 100 bygfoot-2.3.2/support_files/bygfoot_help0000644000175000017500000000355111225071373017452 0ustar eliaselias# this file contains info that gets displayed # in the help window string_contrib_title Authors string_contrib_entry Ronald Sterckx (gunnar@bygfoot.com) string_contrib_entry GyÅ‘zÅ‘ Both (gyboth@bygfoot.com) string_contrib_title Definitions team string_contrib_entry Mihai Floran (mihai@bygfoot.com) string_contrib_entry Christopher Hunter (chris@bygfoot.com) string_contrib_entry Ivan Ramirez (ircarrascal@bygfoot.com) string_contrib_title Artwork string_contrib_entry Mark D. Symonds, Marcelo Garrone string_contrib_title Windows port string_contrib_entry Simon Binns, Carlos Garces string_contrib_title Patches and ideas string_contrib_entry Mark Calderbank, Michal Rudolf, Mark Lawrenz string_contrib_title Translation management string_contrib_entry Mihai Floran (mihai@bygfoot.com) string_contrib_title Translations string_contrib_entry Benyuan Liu, Calvin Zhuang (Chinese) string_contrib_entry Alexandre Beraud, Arnaud Le Rouzic, Alexandre Coutherez, Forjan Frédéric, Marc Schneider (French) string_contrib_entry GyÅ‘zÅ‘ Both, Michael Trent, Mark Lawrenz (German) string_contrib_entry Tobe & Arne Deprez, Ronald Sterckx (Dutch) string_contrib_entry Marcelo Garrone, Carlos Garces (Spanish) string_contrib_entry Kristian Poul Herkild, Joe Dalton (Danish) string_contrib_entry Daniel Nylander (Swedish) string_contrib_entry Rostislav "zbrox" Raykov (Bulgarian) string_contrib_entry MichaÅ‚ Rudolf (Polish) string_contrib_entry Cristian Spoiala, Marin Florian, Mihai Floran (Romanian) string_contrib_entry Roberto Burceni, Basilio Silvio Greco (Italian) string_contrib_entry Valdinei Martins (Brazilian Portuguese) string_contrib_entry Marco Alves (Portuguese) string_contrib_entry Cem Uykun (Turkish) string_contrib_entry Ilias Makris (Greek) string_contrib_title Pictures string_contrib_entry Michael Dücker and public domain string_contrib_title Forgotten anyone? Write us!bygfoot-2.3.2/support_files/news/0000755000175000017500000000000011225071373016016 5ustar eliaseliasbygfoot-2.3.2/support_files/news/news_sv.xml0000644000175000017500000014167311225071373020240 0ustar eliaselias match _TLAYERDIFF_ = 0 and _GD_ G 3 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TL_ har inte en chans mot _TW_ _TL_ trashed by _TW_ Lopsided victory by _TW_ _TW_ win in blowout Humiliating defeat for _TL_ _TW_ [crush|humiliate|thrash|overwhelm|rout|overpower] _TL_ _TW_ humiliate _TL_ with _AT_ watching _TW_ display away dominance _TW_ trounce _TL_ in front of their home crowd _TW_ destroy _TL_ with their machine-like goal production. _TW_ dispatch _TL_ _RE_ at home. _TL_ goes to the dogs at _TW_. _TW_ vinner borta mot _REW_. _TW_ retain the upper hand in a match featuring a torrent of goals. _TL_ visar en kraftig svaghet pÃ¥ bÃ¥de offensivt och defensivt spel. _TL_ förlorar en match som dominerats av offensivt spel. _SCORERS_TWN__ score in devastating home win. _TL_ förstörs totalt av mÃ¥l frÃ¥n _SCORERS_TWN__. _HIGHSCORER_TWN__ nätar _HIGHGOALS_TWN__ mÃ¥l i en [sensationell|dominerande] vinst. _HIGHSCORER_TWN__ gör ett hat-trick i ett underhÃ¥llande möte. _HIGHGOALS_TLN__ mÃ¥l av _HIGHSCORER_TLN__ kan inte stoppa _TW_ frÃ¥n att vinna. MÃ¥l av _SCORERS_TLN__ räcker inte för att _TL_ ska vinna. match _TLAYERDIFF_ = 0 and _GD_ G 2 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TL_ har inte en chans mot _TW_ Walkover for _TW_ Easy home win for _TW_ _TW_ wins comfortably against _TL_ _TW_ dominerar _TL_ _TW_ dominate at _TL_ _TW_ dominerar borta _TW_ victorious despite _GOALS_TLN__ goals against _GOALS_TLN__ goals not enough for _TL_ _TW_ controls _TL_ in _REW_ effort. _TW_ dispatch _TL_ with a _RE_ home win. _TW_ keep the upper hand in a match with numerous goals. _TL_ lose the match of offenses. _SCORERS_TWN__ scores in convincing win by _TW_. _SCORERS_TWN__ [score|strike] in convincing home win by _TW_. _SCORERS_TWN__ [score|strike] in convincing away win by _TW_. _HIGHSCORER_TWN__ nets _HIGHGOALS_TWN__ goals in impressive victory. _HIGHSCORER_TWN__ scores _HIGHGOALS_TWN__ times. _HIGHSCORER_TWN__ gets hat-trick in an entertaining match. Hat-trick by _HIGHSCORER_TWN__ stuns _TL_. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ can't prevent _TL_ from losing. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ not enough for _TL_ to withstand _TW_. _TL_ loses despite getting _HIGHGOALS_TLN__ goals from _HIGHSCORER_TLN__. MÃ¥l av _SCORERS_TLN__ räcker inte eftersom _TL_ förlorar _REL_. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) 5 _TW_ [beat|overcome|defeat] _TL_ _REW_ _TL_ förlorar mot _TW_ _REL_ _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ vinner pÃ¥ övertid _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T0_ vs. _T1_ ends with a _RE_ _TW_ wins first leg of _CUPROUNDNAME_ against _TL_ _TW_ [beat|overcome|defeat] _TL_ in first leg _TW_ victorious at home against _TL_ Hemmavinst för _TW_ _TW_ vinner pÃ¥ hemmaplan _TW_ vinner pÃ¥ _TL_ Bortavinst för _TW_ _TW_ get away victory _WON_TWN__ victories in a row for _TW_ _LOST_TLN__ losses in a row for _TL_ _TW_ unbeaten since _UNBEATEN_TWN__ matches _TW_ extend winning streak to _WON_TWN__ _TL_ lose _LOST_TLN__th match in a row _TW_ win _WON_TWN__th league game in a row _TL_ remain luckless in league games _TW_ seem invincible in league matches Since _WON_TWN__ matches, _TW_ hammer every opponent. _TW_ just too strong for _TL_, win _REW_. _AT_ spectators watch their team win at home. _AT_ spectators celebrate the win against _TL_. _AT_ spectators commiserate with _TL_. Most of the spectators leave the stadium disappointedly before the match is over. _TW_ get the points against _TL_. _SCORERS_TWN__ [score|get the goals] against _TL_. _TW_ on top vs _TL_ thanks to goals by _SCORERS_TWN__. _SCORERS_TWN__ [score|strike] at _TL_. _SCORERS_TWN__ ensures victory against _TL_. _SCORERS_TWN__ only scorer against _TL_. _SCORERS_TWN__ defeats _TL_ single-handedly. _SCORERS_TWN__ is the only scorer against _TL_. _GOALS_TLN__ goals are not enough to win for _TL_. _TW_ win an entertaining match thanks to goals by _SCORERS_TWN__. _TL_ lose to _TW_ in a match of many goals. _TW_ pay with injuries for the win against _TL_. _TW_ improve to rank _RANK_TWN__ in the table. Thanks to the win, _TW_ move to rank _RANK_TWN__ in the _LEAGUECUPNAME_ table. _TW_ is now _LEAGUECUPNAME_ leader. _TW_ gain [_OLDRANK_TWN__ - _RANK_TWN__] positions in the table. _TL_ now only on rank _RANK_TLN__ in the table. _TL_ down to rank _RANK_TLN__ in the _LEAGUECUPNAME_ table. _TL_ lose [_RANK_TLN__ - _OLDRANK_TLN__] positions in the table. _TW_ convert almost all of their shots and get the win. _TL_ coach impressed by the efficiency of their opponent. match _TLAYERDIFF_ = 0 and _GD_ = 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T1_ get the draw at _T0_ _T0_ manage only a _RE_ tie at home Meagre draw for [_T0_|_T1_] Goal-less draw in _T0_ vs. _T1_ _T0_ and _T1_ share the points Eventful draw for [_T0_|_T1_] _T0_ vs. _T1_ is pure boredom [_T0_|_T1_] let down by horrible defense. [_T0_|_T1_] allow _GOALS1_ goals and should be satisfied with a tie. [_T0_|_T1_] allow _GOALS1_ and gets only a draw. Goals by _SCORERS0_ only ensure a _RE_ for _T0_. _SCORERS0_ saves the draw for _T0_ against _T1_. _SCORERS1_ saves the draw for _T1_ at _T0_. _T0_ and _T1_ bore _AT_ spectators with horrible, horrible play and an utterly disappointing _RE_. Both teams clearly lacked the energy in this match. The draw doesn't help either team. Neither _T0_ nor _T1_ can really be satisfied with a tie. Several of the _AT_ spectators die of boredom during an atrocious game. The two teams deliver repulsing football reminiscent of the days of Catenaccio. _AT_ spectators enjoy a lively game despite the _RE_ draw. The coach of [_T0_|_T1_] vows to concentrate on getting the defense in shape during the coming weeks. [_T0_|_T1_] combine good offense with costly mistakes and only gets the draw. [_T0_|_T1_] commit some easy mistakes and wastes victory. One mistake by [_T0_|_T1_] wastes victory. _T0_ waste their scoring chances and only get the draw. _T1_ waste their scoring chances and only get the draw. A wasted penalty shot will haunt _T1_'s players for a long time. A wasted penalty shot will haunt _T0_'s players for a long time. _T0_ only gets the draw but the unbeaten streak of _UNBEATEN0_ matches is still alive. _AT_ spectators watch _T0_ extend their unbeaten streak to _UNBEATEN0_. _T0_ unbeatable for _T1_ and extends streak to _UNBEATEN0_ matches without loss in _LEAGUECUPNAME_. match _TLAYERDIFF_ = 0 and _GD_ = 1 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Tight _REW_ for _TW_ _TW_ [beat|overcome|defeat] _TL_ in a [tight|close|tense] match _TW_ wins in a [tight|close|tense] match _TL_ frustrated about unnecessary loss _TL_ loses to _TW_ in a [tight|close|tense] encounter Pure excitement in _T0_ vs. _T1_ Close match with happy ending for _TW_ Exciting game at _T0_ _TW_ fortunate to get home win _TW_ win at _TL_ in a [tight|close|tense] game _AT_ spectators watch _TW_ come out only one goal ahead of _TL_. _AT_ spectators see a [tight|close|tense] encounter between two equal teams. _TW_ get a [tight|close|tense] but deserved _REW_ against _TL_. _TL_ should have gotten more than a disappointing and unfortunate _REL_ out of this match. _SCORERS_TWN__ get the game winning goal. One goal is enough for _TW_ to get the win in this match. One goal is enough for _TW_ to grab three points. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [beat|overcome|defeat] _TL_ As expected, _TW_ [beat|overcome|defeat] _TL_ _TW_ fulfill expectations _TW_ prove betting odds wrong, [beat|overcome|defeat] _TL_ _TW_ upset _TL_ _TL_ superior in theory, lose _REL_ _TL_ did their best but couldn't really hope to win here. _TW_ had a better team and used their advantage ruthlessly. _TW_ turn the football world upside down with a surprising _REW_ win. _TW_ are the weaker team, but their passion proved more than sufficient in this victory. Thanks to their exceedingly clever strategy, _TW_ are successful against the better team. match _TLAYERDIFF_ > 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T[_TLAYER0_ L _TLAYER1_]_ get unexpected draw _T[_TLAYER0_ L _TLAYER1_]_ withstands _T[_TLAYER0_ G _TLAYER1_]_ _LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ eke out a draw _T[_TLAYER0_ L _TLAYER1_]_ upset _T[_TLAYER0_ G _TLAYER1_]_ _T[_TLAYER0_ L _TLAYER1_]_ overcome class difference _T[_TLAYER0_ L _TLAYER1_]_ succumb to a superior opponent _T[_TLAYER0_ G _TLAYER1_]_ too strong for _T[_TLAYER0_ L _TLAYER1_]_ _T[_TLAYER0_ G _TLAYER1_]_ [beat|overcome|defeat] a brave opponent _T[_TLAYER0_ L _TLAYER1_]_ withstands the pressure from a nominally much better team and holds the draw. Nobody expected this result - except for the players and the coach of _T[_TLAYER0_ L _TLAYER1_]_. _T[_TLAYER0_ L _TLAYER1_]_ get a result nobody would have expected beforehand. _T[_TLAYER0_ L _TLAYER1_]_ put up a good fight, but _T[_TLAYER0_ G _TLAYER1_]_ are just too strong. _AT_ spectators watch as _T[_TLAYER0_ G _TLAYER1_]_ fulfill the expectations and keeps the upper hand against an overmatched opponent. _T[_TLAYER0_ G _TLAYER1_]_ thoroughly embarrassed by the _REL_ against a lower class opponent. _T[_TLAYER0_ L _TLAYER1_]_ shame _T[_TLAYER0_ G _TLAYER1_]_ with a _REW_ in _LEAGUECUPNAME_. _T[_TLAYER0_ L _TLAYER1_]_ don't let the class difference get to them and come throught with a _REW_. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins in|victorious in|takes] first leg of _LEAGUECUPNAME_ final _TW_ [beat|overcome|defeat] _TL_ in first leg of _LEAGUECUPNAME_ final _TL_ [loses|falls] to _TW_ in first leg of _LEAGUECUPNAME_ final _CUPMATCHLOSER_ lose _LEAGUECUPNAME_ final _CUPMATCHWINNER_ take _LEAGUECUPNAME_ crown _CUPMATCHWINNER_ win _LEAGUECUPNAME_ _CUPMATCHWINNER_ are _LEAGUECUPNAME_ winners _CUPMATCHWINNER_ [beat|overcome|defeat] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ final [Exciting|Spectacular] _LEAGUECUPNAME_ final [between|featuring] _T0_ and _T1_ _CUPMATCHLOSER_ only take silver in _LEAGUECUPNAME_ final _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ final _CUPMATCHWINNER_ are on top after a _REW_ in the second leg of the final. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourite for the title after getting the away win. _TW_ are almost there after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will tackle the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still get the title if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to grab the title. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the final. _CUPMATCHWINNER_ reache its final goal after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and win the title with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ win the title after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ win the cup single-handedly against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ get the cup winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win final after a _REW_. _SCORERS_CUPMATCHWINNERN__ scores against _CUPMATCHLOSER_ and is the first player to hoist the cup. _CUPMATCHWINNER_ cruise to the title against an overmatched opponent. _CUPMATCHWINNER_ dominant in the title games and deserves to take home the cup. _CUPMATCHLOSER_ [thrashed|mauled] by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have reached the final. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ vinner pÃ¥ förlängning _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins|victorious in|success in] first leg of _LEAGUECUPNAME_ semifinal _TW_ [beat|overcome|defeat] _TL_ first leg of _LEAGUECUPNAME_ semifinal _TL_ lose _RE_ in first leg of _LEAGUECUPNAME_ semifinal _CUPMATCHLOSER_ eliminated in _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ advance in _LEAGUECUPNAME_ _CUPMATCHWINNER_ through to _LEAGUECUPNAME_ final _CUPMATCHWINNER_ advance to _LEAGUECUPNAME_ final _CUPMATCHWINNER_ [beat|overcome|defeat] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ semifinal [Tense|Nailbiting] _LEAGUECUPNAME_ semifinal between _T0_ and _T1_ _CUPMATCHLOSER_ left empty-handed in _LEAGUECUPNAME_ semifinal _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ successful after a _REW_ in the second leg of the semifinal. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourite to advance to the final after getting the away win. _TW_ are almost through after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will [head to|go to|play|contest] the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still advance to the final if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to advance. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the semifinal. _CUPMATCHWINNER_ reache the final after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and comes through with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ advance after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ single-handedly ensures a shot at the title against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ gets the winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win semifinal after a _REW_. _CUPMATCHWINNER_ cruise to the finals against an overmatched opponent. _CUPMATCHWINNER_ dominant in both games and deserves to advance to the final. _CUPMATCHLOSER_ [thrashed|mauled] by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have come this far. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins|victorious in|success in] first leg of _LEAGUECUPNAME_ quarterfinal _TW_ [beat|overcome|defeat] _TL_ first leg of _LEAGUECUPNAME_ quarterfinal _TL_ lose _RE_ in first leg of _LEAGUECUPNAME_ quarterfinal _CUPMATCHLOSER_ eliminated in _LEAGUECUPNAME_ quarterfinal _CUPMATCHWINNER_ avancerar i _LEAGUECUPNAME_ _CUPMATCHWINNER_ vidare till semifinal i _LEAGUECUPNAME_ _CUPMATCHWINNER_ avancerar till semifinal i _LEAGUECUPNAME_ _CUPMATCHWINNER_ [beat|overcome|defeat] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ quarterfinal Tense _LEAGUECUPNAME_ quarterfinal between _T0_ and _T1_ _CUPMATCHLOSER_ left empty-handed in _LEAGUECUPNAME_ quarterfinal _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ quarterfinal _CUPMATCHWINNER_ successful after a _REW_ in the second leg of the quarterfinal. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourites to advance to the semifinal after getting the away win. _TW_ are almost through after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will [head to|go to|play|contest] the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still advance to the semis if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to advance. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the quarterfinal. _CUPMATCHWINNER_ reache the semifinal after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and come through with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ advance after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ single-handedly ensures a place in the semis against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ gets the winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win quarterfinal after a _REW_. _CUPMATCHWINNER_ cruise to the semifinals against an overmatched opponent. _CUPMATCHWINNER_ dominant in both games and deserve to advance to the semifinal. _CUPMATCHLOSER_ trashed by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have come this far. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 _T1_ gets the draw at _T0_ _T0_ and _T1_ tied after first leg match _T1_ content with a tie _TW_ [beat|overcome|defeat] _TL_ in first leg _TL_ förlorar första omgÃ¥ngen mot _TW_ Övertygande vinst för _TW_ i första omgÃ¥ngen _TW_ win [tight|close|tense] first leg _TL_ defeated in [tight|close|tense] first leg _TW_ will be hard to stop after the _REW_ victory. _TL_ can bury their hopes of advancing after getting trounced by _TW_ in the first match. _TW_ can already start preparing for the next round after having won _REW_. _TW_ win away and can hardly be stopped from advancing. After losing at home, _TL_ will have a really hard time in the second leg. _TW_ are in a great position for the second leg match after an easy away win. _TW_ build a nice cushion for the second leg with the _REW_ away win. _TW_ are now definitely in an enviable position and can advance by getting a draw at home. _TW_ are almost through after winning easily at home. _TL_ will try to equalise the _REL_ in the second leg, powered by their home crowd. A dominating performance at home by _TW_ should leave them with an easy task in the second leg. After a meager _REW_ home win by _TW_, this match-up is still up in the air. _TL_ can still advance, provided they win with at least two goals in the second leg. _TL_ scores away goals that can become very important overall. _TW_ defeats _TL_ but they really could have avoided those goals against. _T1_ can advance with a home win in the second leg. _AT_ spectators left unsatisfied after a meagre home draw by _T0_. _T0_ clearly have to improve in the second leg, otherwise it's game over. _T1_ only need a 0 : 0 draw in the second leg to advance to the next round. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 _CUPMATCHWINNER_ vidare till nästa omgÃ¥ng _CUPMATCHWINNER_ avancerar _CUPMATCHLOSER_ eliminated _CUPMATCHLOSER_ är ute _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Draw enough for _CUPMATCHWINNER_ _CUPMATCHWINNER_ advance with draw _CUPMATCHLOSER_ eliminated after _RE_ in second leg _REW_ against _TL_ not enough for _TW_ _REW_ not enough for _TW_ in second leg _TW_ eliminated despite winning _REW_ _CUPMATCHWINNER_ through in spite of loss _CUPMATCHWINNER_ advance [thanks to|on] away goal rule _CUPMATCHWINNER_ advance after _RE_ Tight overall score between _T0_ and _T1_ _CUPMATCHWINNER_ avancerar med endast ett mÃ¥l i skillnad _CUPMATCHLOSER_ ut efter en jämn match _CUPMATCHWINNER_ avancerar enkelt _CUPMATCHWINNER_ vidare till nästa omgÃ¥ng utan problem _CUPMATCHWINNER_ nÃ¥r enkelt nästa omgÃ¥ng _SCORERS_CUPMATCHWINNERN__ försäkrar att _CUPMATCHWINNER_ avancerar till nästa omgÃ¥ng av _LEAGUECUPNAME_. _CUPMATCHWINNER_ vidare tack vare mÃ¥l av _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ advance to next round thanks to _SCORERS_CUPMATCHWINNERN__. _AT_ spectators breathless after an exiting _RE_ in the second leg. The teams were more or less equal in these matches, but _CUPMATCHWINNER_ had luck on their side. _CUPMATCHLOSER_ would only have needed one more goal to win the match-up. This was one tough match-up, but _CUPMATCHLOSER_ are out after a _RE_ in the second leg. _CUPMATCHWINNER_ shows resilience against _CUPMATCHLOSER_ and advances to the next round after a scare. _CUPMATCHWINNER_ should give _SCORERS_CUPMATCHWINNERN__ a medal for shooting them into the next round. _SCORERS_CUPMATCHWINNERN__ score as _CUPMATCHWINNER_ squeezes by _CUPMATCHLOSER_. _CUPMATCHWINNER_ didn't face a real challenge in this match-up and deserve to advance. _CUPMATCHLOSER_ didn't stand a chance overall and are out. _CUPMATCHWINNER_ dominated this match-up and are still a contender for the title. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 _CUPMATCHWINNER_ vidare till nästa omgÃ¥ng _CUPMATCHWINNER_ avancerar _CUPMATCHLOSER_ eliminated _CUPMATCHLOSER_ är ute _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Draw enough for _CUPMATCHWINNER_ _CUPMATCHWINNER_ advance with draw _CUPMATCHLOSER_ eliminated after _RE_ in second leg _CUPMATCHWINNER_ advance with just one goal difference _CUPMATCHLOSER_ out after a close match _CUPMATCHWINNER_ advance easily _CUPMATCHWINNER_ comfortably through to next round _CUPMATCHWINNER_ reach next round easily _SCORERS_CUPMATCHWINNERN__ ensure that _CUPMATCHWINNER_ advance to the next round of _LEAGUECUPNAME_. _CUPMATCHWINNER_ through thanks to goals by _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ advance to next round thanks to _SCORERS_CUPMATCHWINNERN__. _AT_ spectators breathless after an exiting _RE_. The teams were more or less equal in this match, but _CUPMATCHWINNER_ had luck on their side. This was one tough match-up, but _CUPMATCHLOSER_ are out after a _RE_. _CUPMATCHWINNER_ shows resilience against _CUPMATCHLOSER_ and advances to the next round after a scare. _CUPMATCHWINNER_ should give _SCORERS_CUPMATCHWINNERN__ a medal for shooting them into the next round. _SCORERS_CUPMATCHWINNERN__ score as _CUPMATCHWINNER_ squeeze by _CUPMATCHLOSER_. _CUPMATCHWINNER_ didn't face a real challenge in this match-up and deserves to advance. _CUPMATCHLOSER_ didn't stand a chance in this game and are out. _CUPMATCHWINNER_ dominated this match-up and are still a contender for the title. bygfoot-2.3.2/support_files/news/news_de.xml0000644000175000017500000015602611225071373020176 0ustar eliaselias match _TLAYERDIFF_ = 0 and _GD_ G 3 _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ _TL_ ohne Chance bei _TW_ _TL_ völlig chancenlos gegen _TW_ Kantersieg für _TW_ Demütigende Niederlage für _TL_ _TW_ beherrscht _TL_ nach Belieben _TW_ demütigt _TL_ vor _AT_ Zuschauern [Glanzvorstellung|Galavorstellung|Glanzleistung] von _TW_ _TW_ besiegt _TL_ mit [Glanzvorstellung|Galavorstellung|Glanzleistung] Torreigen bei _T0_ gegen _T1_ _TW_ dominiert auswärts _TW_ nimmt _TL_ vor eigenen Zuschauern auseinander _TL_ wird durch die gnadenlose Tormaschine von _TW_ zerstört. _TW_ fertigt _TL_ zuhause _RE_ ab. _TL_ kommt bei _TW_ unter die Räder. _TW_ siegt _REW_ im Auswärtsspiel. In einem torreichen Spiel behält _TW_ die Oberhand. _TL_ zeigt sich sowohl in der Offensive als auch in der Defensive hoffnungslos schwach. _TL_ unterliegt in einem Spiel der Offensivabteilungen. _SCORERS_TWN__ erzielen die Tore beim haushohen Heimsieg. _TL_ wird durch Tore von _SCORERS_TWN__ regelrecht auseinandergenommen. _TL_ kommt durch Tore von _SCORERS_TWN__ unter die Räder. _HIGHSCORER_TWN__ erzielt _HIGHGOALS_TWN__ Tore bei [sensationellem|überragendem] Sieg. _HIGHSCORER_TWN__ erzielt Hattrick in einem unterhaltsamen Spiel. _HIGHGOALS_TLN__ Tore von _HIGHSCORER_TLN__ können die Niederlage von _TL_ nicht verhindern. Tore von _SCORERS_TLN__ sind nicht genug für _TL_ bei der _REL_ Niederlage. match _TLAYERDIFF_ = 0 and _GD_ G 2 _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ _TL_ chancenlos gegen _TW_ Klarer Sieg für _TW_ Klarer Heimsieg für _TW_ _TL_ unterliegt _TW_ [klar|eindeutig] _TL_ unterliegt auswärts [klar|eindeutig] _TW_ dominiert _TL_ _TW_ dominiert bei _TL_ _TW_ dominiert auswärts _TW_ siegt trotz _GOALS_TLN__ Gegentoren _GOALS_TLN__ nicht genug für _TL_ _TW_ beherrscht _TL_ deutlich beim _REW_ Sieg. _TW_ fertigt _TL_ zuhause _REW_ ab. In einem torreichen Spiel behält _TW_ die Oberhand. _TL_ unterliegt in einem Spiel der Offensivabteilungen. _SCORERS_TWN__ treffen beim hohen Sieg von _TW_. _SCORERS_TWN__ [erzielen die Tore|treffen] beim ungefährdeten Heimsieg von _TW_. _SCORERS_TWN__ [erzielen die Tore|treffen] beim ungefährdeten Auswärtssieg von _TW_. _HIGHSCORER_TWN__ erzielt _HIGHGOALS_TWN__ Tore beim überlegenen Sieg. _HIGHSCORER_TWN__ trifft _HIGHGOALS_TWN__-mal. _HIGHSCORER_TWN__ erzielt Hattrick in einem unterhaltsamen Spiel. Hattrick von _HIGHSCORER_TWN__ lässt _TL_ ohne Chance. _HIGHGOALS_TLN__ Tore von _HIGHSCORER_TLN__ können die Niederlage von _TL_ nicht verhindern. _HIGHGOALS_TLN__ Tore von _HIGHSCORER_TLN__ können die Niederlage von _TL_ nicht abwenden. _TL_ verliert trotz _HIGHGOALS_TLN__ Treffer von _HIGHSCORER_TLN__. Tore von _SCORERS_TLN__ sind nicht genug für _TL_ bei der _REL_ Niederlage. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ 5 _TW_ besiegt _TL_ mit _REW_ _TL_ unterliegt _TW_ _REL_ _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ _T0_ gegen _T1_ endet _RE_ _TW_ gewinnt Hinspiel in _CUPROUNDNAME_ gegen _TL_ _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel _TW_ siegt zuhause gegen _TL_ Heimsieg von _TW_ _TW_ zuhause erfolgreich _TW_ siegt bei _TL_ Auswärtssieg von _TW_ _TW_ auswärts erfolgreich _WON_TWN__-ter Sieg in Folge für _TW_ _LOST_TLN__-te Niederlage in Folge für _TL_ _TW_ seit _UNBEATEN_TWN__ Pflichtspielen ungeschlagen _TW_ baut Siegesserie auf _WON_TWN__ Spiele aus _TL_ verliert _LOST_TLN__-tes Pflichtspiel in Folge Auch _TL_ kann _TW_ nicht bezwingen _TW_ gewinnt _WON_TWN__-tes Ligaspiel in Folge _TL_ bleibt glücklos in der Liga _TW_ in der Liga nicht zu bezwingen _TW_ macht seit _WON_TWN__ Spielen alles platt. _TW_ lässt auch in der _WON_TWN__-ten Ligapartie dem Gegner keine Chance. _TW_ ist eine Nummer zu groß für _TL_ und siegt verdient _REW_. _AT_ Zuschauer sehen einen Heimsieg ihrer Mannschaft. _AT_ Zuschauer feiern den Sieg gegen _TL_. _AT_ Zuschauer leiden mit _TL_. Die Zuschauer verlassen nach der Heimniederlage früh das Stadion. _TW_ holt sich drei Punkte gegen _TL_. _SCORERS_TWN__ [erzielen die Tore|treffen] gegen _TL_. _TW_ behält die Oberhand dank Toren von _SCORERS_TWN__. _SCORERS_TWN__ [erzielen die Tore|treffen] in _TL_. _SCORERS_TWN__ sichert Sieg gegen _TL_. _SCORERS_TWN__ alleiniger Torschütze gegen _TL_. _SCORERS_TWN__ besiegt _TL_ im Alleingang. _SCORERS_TWN__ einziger Torschütze im Spiel gegen _TL_. _GOALS_TLN__ Treffer reichen nicht zum Sieg für _TL_. _TW_ siegt dank Toren von _SCORERS_TWN__ in einem unterhaltsamen Spiel. _TL_ unterliegt in einem torreichen Spiel gegen _TW_. _TW_ bezahlt den Sieg mit Verletzungen. Zum Unglück kommt auch noch Verletzungspech für _TL_ dazu. _TW_ steht jetzt auf Platz _RANK_TWN__ in der Tabelle. _TW_ steht dank Sieg auf Platz _RANK_TWN__ in der _LEAGUECUPNAME_-Tabelle. _TW_ erobert damit die Tabellenführung. _TW_ macht [_OLDRANK_TWN__ - _RANK_TWN__] Plätze gut in der Tabelle. _TL_ damit auf Rang _RANK_TLN__ in der Tabelle. _TL_ rutscht durch die Niederlage auf Platz _RANK_TLN__ in der _LEAGUECUPNAME_-Tabelle. _TL_ verliert [_RANK_TLN__ - _OLDRANK_TLN__] Plätze in der Tabelle. _TW_ siegt dank perfekter Chancenverwertung. _TL_ kann angesichts der Effektivität des Gegners nur staunen. match _TLAYERDIFF_ = 0 and _GDAGG_ = 0 _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ _T1_ holt Unentschieden bei _T0_ _T0_ kommt zuhause nicht über ein _RE_ hinaus Mageres Unentschieden für [_T0_|_T1_] Torloses Unentschieden bei _T0_ gegen _T_ _T0_ und _T1_ trennen sich _RE_ Punkteteilung bei _T0_ gegen _T1_ Abwechslungsreiches Remis für _T0_ Langeweile pur bei _T0_ gegen _T1_ [_T0_|_T1_] scheitert an Problemen in der Defensivabteilung. [_T0_|_T1_] lässt _GOALS1_ Tore zu und muss sich über ein Remis nicht wundern. [_T0_|_T1_] muss _GOALS1_ Treffer hinnehmen und holt nur ein Unentschieden. Tore von _SCORERS0_ reichen _T0_ nur für ein _RE_. _SCORERS0_ rettet Unentschieden für _T0_ gegen _T1_. _SCORERS1_ rettet Unentschieden für _T1_ in _T0_. _T0_ und _T1_ langweilen _AT_ Zuschauer mit Rumpelfussball und einem unsäglichen _RE_. Beiden Teams fehlte die Energie in dieser Partie. Faire Punkteteilung nach ausgeglichenem Spiel. Das Remis hilft aber keinem der beiden Teams weiter. Weder _T0_ noch _T1_ können mit einem Unentschieden zufrieden sein. Zahlreiche der _AT_ Zuschauer sterben an Langeweile während dieses unterirdischen Spiels. Die beiden Teams liefern einen Grottenkick aus der Zeit des Catenaccio. _AT_ werden trotz Unentschieden beim _RE_ gut unterhalten. Trainer von [_T0_|_T1_] will sich in den nächsten Wochen auf die Defensive konzentrieren. Gute Offensivleistung von [_T0_|_T1_] wird durch Leichtsinnsfehler kaputtgemacht. [_T0_|_T1_] verschenkt durch Fehler in der Verteidigung den Sieg. Ein Fehler kostet [_T0_|_T1_] den Sieg. Mangelhafte Chancenverwertung raubt _T0_ die Chance auf den Sieg. Mangelhafte Chancenverwertung raubt _T1_ die Chance auf den Sieg. Ein verschenkter Elfmeter wird den Spielern von _T1_ noch lange den Schlaf rauben. Ein verschenkter Elfmeter wird den Spielern von _T0_ noch lange den Schlaf rauben. _T0_ holt nur Unentschieden, ist aber seit _UNBEATEN0_ Matches ungeschlagen. Vor _AT_ Zuschauern bleibt _T0_ auch im _UNBEATEN0_-ten Spiel ohne Niederlage. _T0_ ist in der Liga auch für _T1_ nicht zu knacken und baut die Serie ohne Niederlage auf _UNBEATEN0_ aus. Mit dem _RE_ ist _T0_ nun schon seit _UNBEATEN0_ Begegnungen in der Liga ungeschlagen. match _TLAYERDIFF_ = 0 and _GD_ = 1 _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ Knappes _REW_ für _TW_ _TW_ siegt knapp gegen _TL_ _TW_ bezwingt _TL_ knapp Hauchdünner Sieg für _TW_ _TL_ ärgert sich über unnötige Niederlage _TL_ unterliegt _TW_ knapp Spannung pur bei _T0_ gegen _T1_ Enges Spiel endet glücklich für _TW_ Spannende Partie bei _T0_ Glücklicher Heimsieg für _TW_ _TW_ siegt bei _TL_ denkbar knapp Vor _AT_ Zuschauern behält _TW_ mit einem Tor Vorsprung die Oberhand. _AT_ Zuschauer sehen ein spannendes Spiel von zwei ausgeglichenen Mannschaften. _TW_ gewinnt mit einem knappen, aber verdienten _REW_ gegen _TL_. Es wäre für _TL_ wesentlich mehr als das undankbare _REL_ drin gewesen. Es wäre für _TL_ wesentlich mehr als das undankbare _REL_ drin gewesen. _SCORERS_TWN__ entscheidet das Spiel mit seinem Tor. Ein einziges Tor reicht für _TW_ für den Erfolg. Ein einziges Tor reicht für _TW_ für drei Punkte. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ _TW_ [besiegt|gewinnt gegen|bezwingt|schlägt] _TL_ Wie erwartet [besiegt|bezwingt|schlägt] _TW_ _TL_ _TW_ erfüllt Erwartungen der Experten _TW_ schlägt _TL_ erwartungsgemäß mit _REW_ _TW_ trotzt den Wettquoten und besiegt _TL_ _TW_ schafft kleine Sensation gegen _TL_ _TL_ nominell überlegen, verliert aber _RE_ Gegen _TW_ war nicht mehr drin für _TL_. _TW_ war auf dem Papier besser als _TL_ - und auf dem Platz auch. _TW_ hatte die bessere Mannschaft und nutzte den Vorteil gnadenlos. _TW_ stellt die Fussballwelt auf den Kopf mit dem überraschenden Sieg. _TW_ wurde schwächer eingeschätzt, macht aber alle Nachteile mit Leidenschaft mehr als wett. Dank einer cleveren Taktik gewinnt _TW_ gegen einen höher eingeschätzten Gegner. _TL_ muss sich an den eigenen Kopf fassen nach einer unnötigen Niederlage gegen einen auf dem Papier wesentlich schwächeren Widersacher. _TW_ demonstriert eindrucksvoll, wie ein homogen agierendes Team einen Gegner mit den besseren Einzelspielern überwältigen kann. match _TLAYERDIFF_ > 0 _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung _TW_ hat nach Verlängerung das besser Ende für sich _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen _TW_ behält die Nerven im Elfmeterschießen gegen _TL_ _T[_TLAYER0_ L _TLAYER1_]_ schafft überraschendes Unentschieden _T[_TLAYER0_ L _TLAYER1_]_ hält _T[_TLAYER0_ G _TLAYER1_]_ stand _LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ erkämpft Remis _T[_TLAYER0_ L _TLAYER1_]_ schlägt _T[_TLAYER0_ G _TLAYER1_]_ sensationell _T[_TLAYER0_ L _TLAYER1_]_ schafft Sensation _T[_TLAYER0_ L _TLAYER1_]_ siegt trotz Klassenunterschied _T[_TLAYER0_ L _TLAYER1_]_ muss sich der Übermacht beugen _T[_TLAYER0_ G _TLAYER1_]_ zu gut für _T[_TLAYER0_ L _TLAYER1_]_ _T[_TLAYER0_ G _TLAYER1_]_ bezwingt tapferen Gegner _T[_TLAYER0_ L _TLAYER1_]_ hält dem Druck des übermächtigen Gegners stand. Keiner hätte ein solches Ergebnis erwartet - ausser die Spieler und der Trainer von _T[_TLAYER0_ L _TLAYER1_]_. _T[_TLAYER0_ L _TLAYER1_]_ gelingt mit dem _RE_ ein Ergebnis, das kein Experte erwartet hatte. _T[_TLAYER0_ L _TLAYER1_]_ gibt alles, _T[_TLAYER0_ G _TLAYER1_]_ erweist sich jedoch als zu stark. _T[_TLAYER0_ G _TLAYER1_]_ erfüllt die Erwartungen und siegt vor _AT_ Zuschauern. _T[_TLAYER0_ G _TLAYER1_]_ lässt dem unterklassigen Gegner keine Chance. _T[_TLAYER0_ G _TLAYER1_]_ blamiert sich gegen den unterklassigen Gegner bis auf die Knochen. Nach der überraschenden Niederlage nimmt die Polizei Ermittlungen wegen des Verdachts auf Manipulation auf. _T[_TLAYER0_ L _TLAYER1_]_ fügt _T[_TLAYER0_ G _TLAYER1_]_ vor _AT_ Zuschauern eine demütigende Pokalniederlage zu. _T[_TLAYER0_ L _TLAYER1_]_ lässt sich nicht durch den Klassenunterschied verunsichern und siegt _RE_. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung _CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen _CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_ _TW_ [gewinnt|siegt im|siegreich im] Hinspiel im _LEAGUECUPNAME_-Finale _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel des _LEAGUECUPNAME_-Endspiels _TL_ unterliegt _RE_ im Hinspiel des _LEAGUECUPNAME_-Endspiels _CUPMATCHLOSER_ unterliegt in _LEAGUECUPNAME_-Finale _CUPMATCHWINNER_ gewinnt _LEAGUECUPNAME_ _CUPMATCHWINNER_ _LEAGUECUPNAME_-Sieger _CUPMATCHWINNER_ gewinnt _LEAGUECUPNAME_-Finale _CUPMATCHWINNER_ besiegt _CUPMATCHLOSER_ in _LEAGUECUPNAME_-Finale Spannendes _LEAGUECUPNAME_-Finale zwischen _T0_ und _T1_ _CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Finale _CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Finale _CUPMATCHWINNER_ ist nach dem _REW_ im Final-Rückspiel erfolgreich. _TL_ hofft, das _RE_ im Rückspiel wettmachen zu können. _TL_ steckt nach der Heimniederlage tief in der Patsche. _TW_ hat sich eine ausgezeichnete Ausgangsposition für das Rückspiel geschaffen. _TW_ ist der Titel so kaum noch zu nehmen. _TW_ hat nach der überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen auf den Titel. _TW_ geht mit einem mageren Tor Vorsprung ins Rückspiel. Nur noch wenige Experten geben _TL_ jetzt noch eine Chance auf den _LEAGUECUPNAME_-Titel. _TL_ hat immer noch alle Chancen, den Pokal zu holen. _TL_ immer noch zuversichtlich, mit einer guten Leistung im Rückspiel das _RE_ wieder wettzumachen. Das _RE_ im Rückspiel reicht _CUPMATCHWINNER_, um den Titel zu holen. Anhänger von _CUPMATCHLOSER_ ziehen nach dem enttäuschenden _RE_ randalierend durch die Innenstadt. _CUPMATCHWINNER_ endlich am Ziel, nachdem auch _CUPMATCHLOSER_ bezwungen ist. _CUPMATCHWINNER_ ist auch von _CUPMATCHLOSER_ nicht aufzuhalten und gewinnt den Titel mit einem _REW_. _SCORERS_CUPMATCHWINNERN__ verhelfen ihrem Team vor _AT_ Zusehern in einer Partie voller Spannung zum Titel. _SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_. _SCORERS_CUPMATCHWINNERN__ entscheidet mit seinem Treffer die Partie gegen _CUPMATCHLOSER_ und bringt die Fans von _CUPMATCHWINNER_ zum Ausrasten. _CUPMATCHWINNER_ kontrolliert die Finalbegegnung und gewinnt mit _REW_ den Titel. _SCORERS_CUPMATCHWINNERN__ trifft gegen _CUPMATCHLOSER_ und darf den Pokal auf der Ehrenrunde tragen. _CUPMATCHWINNER_ beherrscht _CUPMATCHLOSER_ in allen Belangen und gewinnt verdient das Finale. _CUPMATCHWINNER_ dominierte in den beiden Finalbegegnungen und gewinnt verdient den Pokal. _CUPMATCHLOSER_ wird in einer einseitigen Begegnung durch Tore von _SCORERS_CUPMATCHWINNERN__ zerlegt und muss bei der Siegerehrung zuschauen. _CUPMATCHLOSER_ wird in einem letztlich einseitigen Finale bezwungen und muss bei der Siegerehrung zuschauen. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung _CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen _CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_ _TW_ [gewinnt|siegt im|siegreich im] Hinspiel im _LEAGUECUPNAME_-Halbfinale _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel des _LEAGUECUPNAME_-Halbfinals _TL_ unterliegt _RE_ im Hinspiel des _LEAGUECUPNAME_-Halbfinals _CUPMATCHLOSER_ scheidet im _LEAGUECUPNAME_-Halbfinale aus _CUPMATCHWINNER_ kommt weiter in _LEAGUECUPNAME_ _CUPMATCHWINNER_ ist im _LEAGUECUPNAME_-Finale _CUPMATCHWINNER_ kommt ins _LEAGUECUPNAME_-Finale _CUPMATCHWINNER_ besiegt _CUPMATCHLOSER_ im _LEAGUECUPNAME_-Halbfinale Spannendes _LEAGUECUPNAME_-Halbfinale zwischen _T0_ und _T1_ _CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Halbfinale _CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Halbfinale _CUPMATCHWINNER_ ist nach dem _REW_ im Halbfinal-Rückspiel erfolgreich. _TL_ hofft, das _RE_ im Rückspiel wettmachen zu können. _TL_ steckt nach der Heimniederlage tief in der Patsche. _TW_ hat sich eine ausgezeichnete Ausgangsposition für das Rückspiel geschaffen. _TW_ ist mit einem Bein im Finale. _TW_ hat nach der überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen aufs Weiterkommen. _TW_ geht mit einem mageren Tor Vorsprung ins Rückspiel. Nur noch wenige Experten geben _TL_ jetzt noch eine Chance auf das Finale. _TL_ hat immer noch alle Chancen, weiterzukommen. _TL_ immer noch zuversichtlich, mit einer guten Leistung im Rückspiel das _RE_ wieder wettzumachen. Das _RE_ im Rückspiel reicht _CUPMATCHWINNER_, um weiterzukommen. Anhänger von _CUPMATCHLOSER_ ziehen nach dem enttäuschenden _RE_ randalierend durch die Innenstadt. _CUPMATCHWINNER_ erreicht das Endspiel, nachdem _CUPMATCHLOSER_ bezwungen ist. _CUPMATCHWINNER_ ist auch von _CUPMATCHLOSER_ nicht aufzuhalten und zieht mit _REW_ ins Finale ein. _SCORERS_CUPMATCHWINNERN__ verhelfen ihrem Team vor _AT_ Zusehern in einer Partie voller Spannung zur Endspielteilnahme. _SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_. _SCORERS_CUPMATCHWINNERN__ entscheidet mit seinem Treffer die Partie gegen _CUPMATCHLOSER_ und bringt die Fans von _CUPMATCHWINNER_ zum Ausrasten. _CUPMATCHWINNER_ kontrolliert die Begegnung und zieht ins Finale ein. _SCORERS_CUPMATCHWINNERN__ trifft gegen _CUPMATCHLOSER_ und zieht mit _CUPMATCHWINNER_ ins Endspiel ein. _CUPMATCHWINNER_ beherrscht _CUPMATCHLOSER_ in allen Belangen und kommt verdient ins Finale. _CUPMATCHWINNER_ dominierte in den beiden Halbfinalbegegnungen und zieht verdient ins Endspiel ein. _CUPMATCHLOSER_ wird in einer einseitigen Begegnung durch Tore von _SCORERS_CUPMATCHWINNERN__ zerlegt und scheidet aus. _CUPMATCHLOSER_ wird in einer letztlich einseitigen Begegnung bezwungen und scheidet aus. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung _CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen _CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_ _TW_ [gewinnt|siegt im|siegreich im] Hinspiel im _LEAGUECUPNAME_-Viertelfinale _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel des _LEAGUECUPNAME_-Viertelfinals _TL_ unterliegt _RE_ im Hinspiel des _LEAGUECUPNAME_-Viertelfinals _CUPMATCHLOSER_ scheidet im _LEAGUECUPNAME_-Viertelfinale aus _CUPMATCHWINNER_ kommt weiter in _LEAGUECUPNAME_ _CUPMATCHWINNER_ erreicht _LEAGUECUPNAME_-Vorschlussrunde _CUPMATCHWINNER_ kommt ins _LEAGUECUPNAME_-Halbfinale _CUPMATCHWINNER_ besiegt _CUPMATCHLOSER_ im _LEAGUECUPNAME_-Viertelfinale Spannendes _LEAGUECUPNAME_-Viertelfinale zwischen _T0_ und _T1_ _CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Viertelfinale _CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Viertelfinale _CUPMATCHWINNER_ ist nach dem _REW_ im Rückspiel des _LEAGUECUPNAME_-Viertelfinals erfolgreich. _TL_ hofft, das _RE_ im Rückspiel wettmachen zu können. _TL_ steckt nach der Heimniederlage tief in der Patsche. _TW_ hat sich eine ausgezeichnete Ausgangsposition für das Rückspiel geschaffen. _TW_ ist jetzt mit einem Bein im Halbfinale. _TW_ hat nach der überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen aufs Weiterkommen. _TW_ geht mit einem mageren Tor Vorsprung ins Rückspiel. Nur noch wenige Experten geben _TL_ jetzt noch eine Chance auf das Halbfinale. _TL_ hat immer noch alle Chancen, weiterzukommen. _TL_ immer noch zuversichtlich, mit einer guten Leistung im Rückspiel das _RE_ wieder wettzumachen. Das _RE_ im Rückspiel reicht _CUPMATCHWINNER_, um weiterzukommen. Anhänger von _CUPMATCHLOSER_ ziehen nach dem enttäuschenden _RE_ randalierend durch die Innenstadt. _CUPMATCHWINNER_ erreicht das Halbfinale, nachdem _CUPMATCHLOSER_ bezwungen ist. _CUPMATCHWINNER_ ist auch von _CUPMATCHLOSER_ nicht aufzuhalten und zieht mit _REW_ ins Halbfinale ein. _SCORERS_CUPMATCHWINNERN__ verhelfen ihrem Team vor _AT_ Zusehern in einer Partie voller Spannung zur Halbfinalteilnahme. _SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_. _SCORERS_CUPMATCHWINNERN__ entscheidet mit seinem Treffer die Partie gegen _CUPMATCHLOSER_ und bringt die Fans von _CUPMATCHWINNER_ zum Ausrasten. _CUPMATCHWINNER_ kontrolliert die Begegnung und zieht in die Vorschlussrunde ein. _SCORERS_CUPMATCHWINNERN__ trifft gegen _CUPMATCHLOSER_ und zieht mit _CUPMATCHWINNER_ ins Halbfinale ein. _CUPMATCHWINNER_ beherrscht _CUPMATCHLOSER_ in allen Belangen und kommt verdient eine Runde weiter. _CUPMATCHWINNER_ dominierte in den beiden Viertelfinalbegegnungen und zieht verdient in die Vorschlussrunde ein. _CUPMATCHLOSER_ wird in einer einseitigen Begegnung durch Tore von _SCORERS_CUPMATCHWINNERN__ zerlegt und scheidet aus. _CUPMATCHLOSER_ wird in einer letztlich einseitigen Begegnung bezwungen und scheidet aus. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 _T1_ schafft Unentschieden bei _T0_ Hinspiel zwischen _T0_ und _T1_ endet unentschieden _T1_ zufrieden nach Unentschieden _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel _TL_ hat das Nachsehen im Hinspiel gegen _TW_ Überzeugender Sieg für _TW_ im Hinspiel _TL_ unterliegt [klar|deutlich] in Hinspiel Knapper Sieg für _TW_ im Hinspiel _TL_ unterliegt nur knapp in Hinspiel _TW_ ist kaum mehr aufzuhalten nach dem klaren _REW_-Sieg. _TL_ steckt jetzt tief in der Krise und kann das Weiterkommen wohl schon abschreiben. _TW_ darf nach dem _REW_ vor _AT_ Zuschauern fast schon aufs Weiterkommen anstoßen. _TW_ ist nach dem Auswärtserfolg mit einem Bein in der nächsten Runde. _TL_ kann seine Hoffnungen auf die nächste Runde nach der Heimpleite fast schon begraben. Hervorragende Voraussetzungen für _TW_ nach dem überzeugenden Auswärtssieg. _TW_ schafft mit dem _REW_-Auswärtssieg ein bequemes Polster fürs Rückspiel. _TW_ hat jetzt die besseren Karten und kann schon mit einem Unentschieden zuhause weiterkommen. _TW_ ist nach dem klaren Heimsieg mit einem Bein in der nächsten Runde. _TL_ muss nun versuchen, das _REL_ vor heimischem Publikum wettzumachen. Hervorragende Voraussetzungen für _TW_ nach dem überzeugenden Heimsieg. Nach dem mageren _REW_-Heimsieg für _TW_ ist noch alles offen in dieser Paarung. _TL_ muss mit zwei Toren Vorsprung zuhause gewinnen, um weiterzukommen. _TL_ erzielt wichtige Auswärtstore und hat nun gute Karten für das Rückspiel. _TW_ gewinnt, ärgert sich aber, hier _GOALS1_ Gegentore zugelassen zu haben. _T1_ ist mit einem Heimerfolg im Rückspiel weiter. _AT_ Zuschauer sehen ein mageres Unentschieden ihrer Mannschaft. _T0_ muss sich im Rückspiel steigern, sonst droht das Ausscheiden. _T1_ reicht jetzt ein 0 : 0 im Rückspiel, um eine Runde weiterzukommen. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 _CUPMATCHWINNER_ ist in der nächsten Runde _CUPMATCHWINNER_ [ist|kommt] weiter _CUPMATCHLOSER_ scheidet aus _CUPMATCHLOSER_ draussen _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung _CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen _CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_ Unentschieden reicht _CUPMATCHWINNER_ _CUPMATCHWINNER_ kommt mit Unentschieden weiter _CUPMATCHLOSER_ scheidet nach _RE_ im Rückspiel aus _TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_, scheidet aus _REW_ reicht nicht für _TW_ im Rückspiel _TW_ draussen trotz _REW_ _CUPMATCHWINNER_ kommt trotz Niederlage weiter _CUPMATCHWINNER_ kommt dank Auswärtstorregelung weiter _CUPMATCHWINNER_ weiter nach _RE_ Knappes Gesamtergebnis zwischen _T0_ und _T1_ _CUPMATCHWINNER_ mit einem Tor Vorsprung weiter _CUPMATCHLOSER_ scheidet knapp aus _CUPMATCHLOSER_ nach knappem Gesamtergebnis draussen _CUPMATCHWINNER_ locker weiter _CUPMATCHWINNER_ ohne Probleme weiter _CUPMATCHWINNER_ kommt locker in die nächste Runde _SCORERS_CUPMATCHWINNERN__ machen die Sache klar für _CUPMATCHWINNER_. _CUPMATCHWINNER_ kommt dank der Tore von _SCORERS_CUPMATCHWINNERN__ weiter. _SCORERS_CUPMATCHWINNERN__ schießt _CUPMATCHWINNER_ eine Runde weiter. _CUPMATCHWINNER_ kommt dank _SCORERS_CUPMATCHWINNERN__ weiter. _AT_ Zuschauer halten den Atem an beim spannenden _RE_ im Rückspiel. Die beiden Teams schenkten sich nichts in diesen Begegnungen, doch _CUPMATCHWINNER_ hat das bessere Ende für sich. _CUPMATCHLOSER_ fehlt ein einziges Tor, um weiterzukommen. Diese Paarung hatte es in sich, doch nach dem _RE_ muss sich _CUPMATCHLOSER_ mit dem Ausscheiden abfinden. _CUPMATCHWINNER_ hält durch gegen _CUPMATCHLOSER_ und kommt denkbar knapp in die nächste Runde. _CUPMATCHWINNER_ kann sich bei _SCORERS_CUPMATCHWINNERN__ fürs Weiterkommen bedanken. _SCORERS_CUPMATCHWINNERN__ treffen beim knappen Sieg für _CUPMATCHWINNER_. _CUPMATCHWINNER_ war letztlich ungefährdet in diesen Begegnungen und kommt verdient eine Runde weiter. _CUPMATCHLOSER_ ist im Gesamtergebnis chancenlos und fliegt raus. _CUPMATCHLOSER_ hätte das Weiterkommen nicht verdient nach dem _RE_. _CUPMATCHWINNER_ dominierte die beiden Begegnungen und kann weiter auf den Titel hoffen. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 _CUPMATCHWINNER_ ist in der nächsten Runde _CUPMATCHWINNER_ [ist|kommt] weiter _CUPMATCHLOSER_ scheidet aus _CUPMATCHLOSER_ draussen _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung _CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich _CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen _CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_ Unentschieden reicht _CUPMATCHWINNER_ _CUPMATCHWINNER_ kommt mit Unentschieden weiter _CUPMATCHLOSER_ scheidet nach _RE_ aus _CUPMATCHWINNER_ mit einem Tor Vorsprung weiter _CUPMATCHLOSER_ scheidet knapp aus _CUPMATCHLOSER_ nach knappem Gesamtergebnis draussen _CUPMATCHWINNER_ locker weiter _CUPMATCHWINNER_ ohne Probleme weiter _CUPMATCHWINNER_ kommt locker in die nächste Runde _SCORERS_CUPMATCHWINNERN__ machen die Sache klar für _CUPMATCHWINNER_. _CUPMATCHWINNER_ kommt dank der Tore von _SCORERS_CUPMATCHWINNERN__ weiter. _SCORERS_CUPMATCHWINNERN__ schießt _CUPMATCHWINNER_ eine Runde weiter. _CUPMATCHWINNER_ kommt dank _SCORERS_CUPMATCHWINNERN__ weiter. _AT_ Zuschauer halten beim spannenden _RE_ den Atem an. Die beiden Teams schenkten sich nichts in dieser Partie, doch _CUPMATCHWINNER_ hat das bessere Ende für sich. _CUPMATCHLOSER_ fehlt ein einziges Tor, um weiterzukommen. Diese Paarung hatte es in sich, doch nach dem _RE_ muss sich _CUPMATCHLOSER_ mit dem Ausscheiden abfinden. _CUPMATCHWINNER_ hält durch gegen _CUPMATCHLOSER_ und kommt denkbar knapp in die nächste Runde. _CUPMATCHWINNER_ kann sich bei _SCORERS_CUPMATCHWINNERN__ fürs Weiterkommen bedanken. _SCORERS_CUPMATCHWINNERN__ treffen beim knappen Sieg für _CUPMATCHWINNER_. _CUPMATCHWINNER_ war letztlich ungefährdet in dieser Begegnung und kommt verdient eine Runde weiter. _CUPMATCHLOSER_ ist bei dieser Paarung chancenlos und fliegt raus. _CUPMATCHLOSER_ hätte das Weiterkommen nicht verdient nach dem _RE_. _CUPMATCHWINNER_ dominierte die Begegnung und kann weiter auf den Titel hoffen. bygfoot-2.3.2/support_files/news/news_da.xml0000644000175000017500000014302211225071373020162 0ustar eliaselias match _TLAYERDIFF_ = 0 and _GD_ G 3 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen _TL_ har ikke en chance mod _TW_ _TL_ knust af _TW_ Skæv sejr af _TW_ _TW_ vinder let sejr Ydmygende nederlag for _TL_ _TW_ [knuser|ydmyger|slÃ¥r|overmander|kuer|har overmagten over] _TL_ _TW_ ydmyger _TL_ med _AT_ tilskuere _TW_ har udebanedominans _TW_ vinder stort over _TL_ foran deres hjemmepublikum _TW_ knuser _TL_ med deres robotagtige mÃ¥lmaskine. _TW_ ekspederer _TL_ _RE_ hjemme. _TL_ gÃ¥r i hundene pÃ¥ _TW_. _TW_ vinder _REW_ ude. _TW_ bevarer overmagten i en kamp med masser af mÃ¥l. _TL_ viser en alarmerende svaghed bÃ¥de offensivt og defensivt. _TL_ taber en kamp domineret af offensivt spil. _SCORERS_TWN__ scorer i overbevisende hjemmesejr. _TL_ fuldstændig knust af mÃ¥l fra _SCORERS_TWN__. _HIGHSCORER_TWN__ laver _HIGHGOALS_TWN__ mÃ¥l i [sensationel|overbevisende] sejr. _HIGHSCORER_TWN__ laver et hattrick i en underholdende kamp. _HIGHGOALS_TLN__ mÃ¥l af _HIGHSCORER_TLN__ kan ikke forhindre _TW_ i at vinde. MÃ¥l af _SCORERS_TLN__ er ikke nok til at _TL_ kan vinde. match _TLAYERDIFF_ = 0 and _GD_ G 2 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen _TL_ har ikke en chance mod _TW_ Barnemad for _TW_ Nem hjemmesejr for _TW_ _TW_ vinder komfortabelt mod _TL_ _TW_ dominerer _TL_ _TW_ dominerer _TL_ _TW_ dominerer ude _TW_ vinder pÃ¥ trods af at der bliver scoret _GOALS_TLN__ mod dem _GOALS_TLN__ mÃ¥l ikke nok for _TL_ _TW_ har styr pÃ¥ _TL_ i _REW_ indsats. _TW_ ekspederer _TL_ med _RE_ hjemmesejr. _TW_ kommer sejrrig ud i en kamp med mange mÃ¥l. _TL_ taber den offensive kamp. _SCORERS_TWN__ scorer i overbevisende sejr af _TW_. _SCORERS_TWN__ [scorer|netter] i overbevisende hjemmesejr af _TW_. _SCORERS_TWN__ [scorer|netter] i overbevisende udesejr af _TW_. _HIGHSCORER_TWN__ netter _HIGHGOALS_TWN__ mÃ¥l i imponerende sejr. _HIGHSCORER_TWN__ scorer _HIGHGOALS_TWN__ gange. _HIGHSCORER_TWN__ laver hattrick i underholdende kamp. Hattrick af _HIGHSCORER_TWN__ lammer _TL_. _HIGHGOALS_TLN__ mÃ¥l af _HIGHSCORER_TLN__ kan ikke forhindre _TL_ i at tabe. _HIGHGOALS_TLN__ mÃ¥l af _HIGHSCORER_TLN__ er ikke nok til at holde _TL_ pÃ¥ afstand af _TW_. _TL_ taber pÃ¥ trods af _HIGHGOALS_TLN__ mÃ¥l fra _HIGHSCORER_TLN__. MÃ¥l af _SCORERS_TLN__ ikke nok da _TL_ taber _REL_. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) 5 _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ _TL_ taber til _TW_ _REL_ _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen _T0_ versus _T1_ ender med _RE_ _TW_ vinder første kamp i _CUPROUNDNAME_ mod _TL_ _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i første kamp _TW_ sejrrig hjemme mod _TL_ Hjemmesejr til _TW_ _TW_ vinder hjemme _TW_ vinder over _TL_ Udebanesejr for _TW_ _TW_ fÃ¥r udebanesejr _WON_TWN__ sejre i træk for _TW_ _LOST_TLN__ nederlag i træk for _TL_ _TW_ ubesejret i _UNBEATEN_TWN__ kampe _TW_ udvinder sejrsrækken til _WON_TWN__ _TL_ taber _LOST_TLN__. kamp i træk _TW_ vinder _WON_TWN__. ligakamp i træk _TL_ har stadig ikke held i ligakampene _TW_ virker uovervindelige i ligakampene I _WON_TWN__ kampe har _TW_ knust alle modstandere. _TW_ er bare for stærke for _TL_, vinder _REW_. _AT_ tilskuere ser deres hold vinde hjemme. _AT_ tilskuere fejrer sejren over _TL_. _AT_ tilskuere viser deres medfølelse med _TL_. De fleste af tilskuerne forlader skuffet stadion før kampen er over. _TW_ fÃ¥r pointene mod _TL_. _SCORERS_TWN__ [scorer|laver mÃ¥lene] mod _TL_. _TW_ vinder over _TL_ takket være mÃ¥l af _SCORERS_TWN__. _SCORERS_TWN__ [scorer|hamrer bolden ind] pÃ¥ _TL_. _SCORERS_TWN__ sikrer sejr mod _TL_. _SCORERS_TWN__ scorer kun imod _TL_. _SCORERS_TWN__ besejrer ene mand _TL_. _SCORERS_TWN__ er den eneste mÃ¥lscorer mod _TL_. _GOALS_TLN__ mÃ¥l er ikke nok til at sejre for _TL_. _TW_ vinder en underholdende kamp takket være mÃ¥l af _SCORERS_TWN__. _TL_ taber til _TW_ i en kamp med mange mÃ¥l. _TW_ betaler med skader for sejren over _TL_. _TW_ stiger til nummer _RANK_TWN__ i tabellen. Takket være sejren bevæger _TW_ sig til placeringen _RANK_TWN__ i tabellen for _LEAGUECUPNAME_. _TW_ er nu førende i _LEAGUECUPNAME_. _TW_ stiger [_OLDRANK_TWN__ - _RANK_TWN__] pladser i tabellen. _TL_ er nu kun placeret som nummer _RANK_TLN__ i tabellen. _TL_ falder til nummer _RANK_TLN__ i tabellen for _LEAGUECUPNAME_. _TL_ taber [_RANK_TLN__ - _OLDRANK_TLN__] pladser i tabellen. _TW_ scorer pÃ¥ næsten alle deres chancer og vinder derfor. Træneren hos _TL_ er imponeret over effektiviteten hos modstanderen. match _TLAYERDIFF_ = 0 and _GD_ = 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtid _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ i straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen _T1_ fÃ¥r uafgjort mod _T0_ _T0_ fÃ¥r kun en _RE_ uafgjort hjemme Knap uafgjort for [_T0_|_T1_] MÃ¥lløs uafgjort i kampen _T0_ mod _T1_ _T0_ og _T1_ deler pointene Begivenhedsrig uafgjort for [_T0_|_T1_] _T0_ vs. _T1_ er det rene kedsomhed [_T0_|_T1_] skuffes af frygteligt forsvar. [_T0_|_T1_] indkasserer _GOALS1_ mÃ¥l og bør være tilfredse med en uafgjort. [_T0_|_T1_] indkasserer _GOALS1_ og fÃ¥r kun en uafgjort. MÃ¥l af _SCORERS0_ sikrer kun _RE_ for _T0_. _SCORERS0_ redder uafgjort for _T0_ mod _T1_. _SCORERS1_ redder en uafgjort _T1_ mod _T0_. _T0_ og _T1_ keder _AT_ tilskuere med frygteligt spil og en meget skuffende _RE_. Begge hold mangler tydeligvis energien i denne kamp. Det uafgjorte resultat hjælper ingen af holdene. Hverken _T0_ eller _T1_ kan være tilfredse med en uafgjort. Flere af de _AT_ tilskuere dør af kedsomhed i en gyselig kamp. De to hold leverer afskyende fodboldminder fra tiden med Catenaccio. _AT_ tilskuere nyder en livlig kamp pÃ¥ trods af den uafgjorte _RE_. Træneren for [_T0_|_T1_] lover at koncentrere sig om at fÃ¥ forsvaret i form i de kommende uger. [_T0_|_T1_] kombinerer en god offensiv med dyrbare fejltagelser og fÃ¥r kun uafgjort. [_T0_|_T1_] begÃ¥r nogle indlysende fejl og taber sejren. En fejl af [_T0_|_T1_] gør at sejren forsvinder. _T0_ brænder deres mÃ¥lchancer og fÃ¥r kun uafgjort. _T1_ brænder deres mÃ¥lchancer og fÃ¥r kun uafgjort. Et brændt straffe vil forfølge _T1_s spillere i lang tid. Et brændt straffe vil forfølge _T0_s spillere i lang tid. _T0_ fÃ¥r kun uafgjort men den fortsatte række af ubesejrede kampe med i alt _UNBEATEN0_ kampe stÃ¥r stadig. _AT_ tilskuere ser _T0_ udvide deres række af ubesejrede kampe til i alt _UNBEATEN0_. _T0_ kunne ikke slÃ¥s af _T1_ og udvider rækken af ubesejrede kampe i _LEAGUECUPNAME_ til _UNBEATEN0_. match _TLAYERDIFF_ = 0 and _GD_ = 1 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ i straffespark _TW_ bevarer nerverne i straffesparkkonkurrencen Lige _REW_ for _TW_ _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i en [tæt|lige|spændende] kamp _TW_ vinder i en [tæt|lige|spændende] kamp _TL_ frustreret over unødvendige tab _TL_ taber til _TW_ i et [tæt|lige|spændende] møde Ren fornøjelse i mødet mellem _T0_ og _T1_ Tæt kamp med en god udgang for _TW_ Underholdende kamp pÃ¥ _T0_ _TW_ er heldige med at fÃ¥ hjemmesejr _TW_ vinder over _TL_ i en [tæt|lige|spændende] kamp _AT_ tilskuere ser _TW_ vinde med kun et mÃ¥l mere end _TL_. _AT_ tilskuere ser et [tæt|lige|spændende] møde mellem to lige hold. _TW_ fÃ¥r en [tæt|lige|spændende] men fortjent _REW_ mod _TL_. _TL_ burde have fÃ¥et mere ud af denne kamp end en skuffende og uheldig _REL_. _SCORERS_TWN__ scorer kampens afgørende mÃ¥l. Et mÃ¥l er ikke nok for _TW_ til at vinde denne kamp. Et mÃ¥l er nok til at _TW_ snupper alle tre point. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkkonkurrencen _TW_ [slÃ¥r|vinder over|besejrer] _TL_ Som forventet, _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _TW_ indfrier forventningerne _TW_ beviser at væddemÃ¥lene var forkerte, [slÃ¥r|vinder over|besejrer] _TL_ _TW_ ophidser _TL_ _TL_ overlegen i teori, taber _REL_ _TL_ gjorde deres bedste men kunne ikke rigtig hÃ¥be pÃ¥ at vinde her. _TW_ havde et bedre hold og brugte deres fordel skÃ¥nselsløst. _TW_ vender op og ned pÃ¥ fodboldverden ved en overraskende _REW_ sejr. _TW_ er det dÃ¥rligste hold, men deres passion viste sig mere end nok til sejr. Takket være deres meget klogere strategi, har _TW_ succes mod et langt bedre hold. match _TLAYERDIFF_ > 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen _T[_TLAYER0_ L _TLAYER1_]_ fÃ¥r uventet uafgjort _T[_TLAYER0_ L _TLAYER1_]_ holder stand mod _T[_TLAYER0_ G _TLAYER1_]_ _LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ fÃ¥r en uafgjort _T[_TLAYER0_ L _TLAYER1_]_ ophidser _T[_TLAYER0_ G _TLAYER1_]_ _T[_TLAYER0_ L _TLAYER1_]_ overvinder klasseforskellen _T[_TLAYER0_ L _TLAYER1_]_ bukker under for en bedre modstander _T[_TLAYER0_ G _TLAYER1_]_ for stærk for _T[_TLAYER0_ L _TLAYER1_]_ _T[_TLAYER0_ G _TLAYER1_]_ [slÃ¥r|vinder over|besejrer] en modig modstander _T[_TLAYER0_ L _TLAYER1_]_ modstÃ¥r presset fra et bedre hold og holder det uafgjorte resultat. Ingen forventede dette resultat - undtagen spillerne og træneren hos _T[_TLAYER0_ L _TLAYER1_]_. _T[_TLAYER0_ L _TLAYER1_]_ opnÃ¥r et resulat ingen ville have ventet pÃ¥ forhÃ¥nd. _T[_TLAYER0_ L _TLAYER1_]_ kæmper bravt, men _T[_TLAYER0_ G _TLAYER1_]_ er bare for stærke. _AT_ tilskuere ser pÃ¥ mens _T[_TLAYER0_ G _TLAYER1_]_ opfylder forventningerne og bevarer styringen mod en overmatchet modstander. _T[_TLAYER0_ G _TLAYER1_]_ er fuldstændig ydmyget af _REL_ mod en lavererangerende modstander. _T[_TLAYER0_ L _TLAYER1_]_ skammer _T[_TLAYER0_ G _TLAYER1_]_ med _REW_ i _LEAGUECUPNAME_. _T[_TLAYER0_ L _TLAYER1_]_ lod ikke klasseforskellen vise sig og kom igennem med en _REW_. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkkonkurrencen _TW_ [vinder|er sejrrig i|kommer bedst ud af] første finalekamp i _LEAGUECUPNAME_ _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i første finalekamp i _LEAGUECUPNAME_ _TL_ [taber til|falder mod] _TW_ i første finalekamp i _LEAGUECUPNAME_ _CUPMATCHLOSER_ taber finalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ erobrer kongekronen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ vinder _LEAGUECUPNAME_ _CUPMATCHWINNER_ er vinder af _LEAGUECUPNAME_ _CUPMATCHWINNER_ [slÃ¥r|vinder over|besejrer] _CUPMATCHLOSER_ i finalen i _LEAGUECUPNAME_ [Spændende|Underholdende] finale i _LEAGUECUPNAME_ [mellem|der blev spillet af] _T0_ og _T1_ _CUPMATCHLOSER_ fÃ¥r kun sølv i finalen i _LEAGUECUPNAME_ _CUPMATCHLOSER_ taber _REL_ i finalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ er sejrrig efter en _REW_ i den anden kamp i finalen. _TL_ hÃ¥ber at udligne resultatet _RE_ i den anden kamp. _TL_ er [i problemer|urolig|irriteret] efter at have tabt den første kamp hjemme. _TW_ er den klare favorit til titlen efter sejr ude. _TW_ er næsten fremme ved mÃ¥let efter udesejr. _TW_ vinder hjemme og vil ikke nemt kunne stoppes i den anden kamp. _TW_ vil møde den anden kamp med kun et mÃ¥l i forspring. Satserne for væddemÃ¥lene mod _TL_ stiger før den anden kamp. _TL_ kan stadig vinde titlen hvis de tager sig sammen i den anden kamp. _TL_ er stadig fortrøstningsfuld med at kunne udligne i den anden kamp, hvis de forbereder sig godt. _RE_ i den anden kamp er nok for _CUPMATCHWINNER_ til at fÃ¥ titlen. Fan fra _CUPMATCHLOSER_ ødelægger dele af indre by efter skuffende _RE_ i finalen. _CUPMATCHWINNER_ nÃ¥r sit endelige mÃ¥l efter at have overmandet _CUPMATCHLOSER_. _CUPMATCHWINNER_ kan ikke stoppes af _CUPMATCHLOSER_ og vinder titlen med _REW_. _SCORERS_CUPMATCHWINNERN__ hjælper _CUPMATCHWINNER_ med at vinde titlen efter en spændende kamp overværet af _AT_. _SCORERS_CUPMATCHWINNERN__ vinder pokalen helt alene mod _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ laver det afgørende pokalmÃ¥l mod _CUPMATCHLOSER_. _CUPMATCHWINNER_ har kontrollen, vinder finale efter _REW_. _SCORERS_CUPMATCHWINNERN__ scorer mod _CUPMATCHLOSER_ og er den første spiller til at løfte pokalen. _CUPMATCHWINNER_ skøjter til titlen mod en underlegen modstander. _CUPMATCHWINNER_ dominerer i titelkampene og fortjener at hjembringe pokalen. _CUPMATCHLOSER_ [knust|overløbet] af mÃ¥l fra _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ havde ikke en chance i disse kampe, og i tilbageblik bør de være glade for at have nÃ¥et finalen. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkkonkurrencen _TW_ [vinder|er sejrrig i|er ovenpÃ¥ efter] første semifinalekamp i _LEAGUECUPNAME_ _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i første semifinalekamp i _LEAGUECUPNAME_ _TL_ taber _RE_ i første semifinalekamp i _LEAGUECUPNAME_ _CUPMATCHLOSER_ elimineret i semifinalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ gÃ¥r videre i _LEAGUECUPNAME_ _CUPMATCHWINNER_ igennem til finalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ gÃ¥r videre til finalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ [slÃ¥r|vinder over|besejrer] _CUPMATCHLOSER_ i semifinalen i _LEAGUECUPNAME_ [Tæt|Neglebidende] _LEAGUECUPNAME_ semifinale mellem _T0_ and _T1_ _CUPMATCHLOSER_ efterladt med intet efter semifinale i _LEAGUECUPNAME_ _CUPMATCHLOSER_ taber _REL_ i semifinale i _LEAGUECUPNAME_ _CUPMATCHWINNER_ har succes efter _REW_ i den anden kamp af semifinalen. _TL_ hÃ¥ber at udligne _RE_ i den anden kamp. _TL_ er [i problemer|urolig|irriteret] efter at have tabt den første kamp hjemme. _TW_ er klar favorit til at gÃ¥ videre til finalen efter udesejr. _TW_ er næsten videre efter udesejr. _TW_ vinder hjemme og bliver ikke nem at stoppe i den anden kamp. _TW_ vil [gÃ¥ til|komme ud til|spille|starte] den anden kamp med kun 1 mÃ¥l bedre.. Indsatser pÃ¥ væddemÃ¥l mod _TL_ stiger før den anden kamp. _TL_ kan stadig gÃ¥ videre til finalen hvis de tager sig sammen i den anden kamp. _TL_ er stadig overbevidst om, at de kan udligne i den anden kamp, hvis de forbereder sig godt. _RE_ i den anden kamp er nok til videre avancement for _CUPMATCHWINNER_. Fan af _CUPMATCHLOSER_ ødelægger dele af indre by efter skuffende _RE_ i semifinalen. _CUPMATCHWINNER_ nÃ¥r finalen efter at have kontrolleret _CUPMATCHLOSER_. _CUPMATCHWINNER_ kan ikke stoppes af _CUPMATCHLOSER_ og kommer videre med _REW_. _SCORERS_CUPMATCHWINNERN__ hjælper _CUPMATCHWINNER_ med at vinde titlen efter en spændende kamp overværet af _AT_. _SCORERS_CUPMATCHWINNERN__ sikrer pÃ¥ egen hÃ¥nd en mulighed for titlen mod _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ scorer det afgørende mÃ¥l mod _CUPMATCHLOSER_. _CUPMATCHWINNER_ har kontrollen, vinder semifinalen efter _REW_. _CUPMATCHWINNER_ skøjter til titlen mod en underlegen modstander. _CUPMATCHWINNER_ dominerer i begge kampe og fortjener at komme i finalen. _CUPMATCHLOSER_ [knust|overløbet] af mÃ¥l fra _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ havde ikke en chance i disse kampe, og i tilbageblik bør de være glade for at have nÃ¥et finalen. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtiden _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen _TW_ [vinder|sejrrig i|har succes i] første kamp af kvartfinalen i _LEAGUECUPNAME_ _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i første kvartfinalekamp i _LEAGUECUPNAME_ _TL_ taber _RE_ i første kvartfinalekamp i _LEAGUECUPNAME_ _CUPMATCHLOSER_ elimineret i kvartfinalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ gÃ¥r videre i _LEAGUECUPNAME_ _CUPMATCHWINNER_ videre til semifinalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ gÃ¥r videre til semifinalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ [slÃ¥r|vinder over|besejrer] _CUPMATCHLOSER_ i kvartfinalen i _LEAGUECUPNAME_ Spændende kvartfinale i _LEAGUECUPNAME_ mellem _T0_ og _T1_ _CUPMATCHLOSER_ gÃ¥r tomhÃ¥ndet fra kvartfinalen i _LEAGUECUPNAME_ _CUPMATCHLOSER_ taber _REL_ i kvartfinalen i _LEAGUECUPNAME_ _CUPMATCHWINNER_ succesfuld efter _REW_ i den anden kvartfinalekamp. _TL_ hÃ¥ber at udligne _RE_ i den anden kamp. _TL_ er [i problemer|urolig|irriteret] efter at have tabt den første kamp hjemme. _TW_ er klare favoritter til at gÃ¥ videre til semifinalen efter udesejr. _TW_ er næsten videre efter udesejr. _TW_ vinder hjemme og vil ikke nemt kunne stoppes i den anden kamp. _TW_ vil [gÃ¥ til|komme ud til|spille|starte] den anden kamp med kun 1 mÃ¥l bedre. VæddemÃ¥l mod _TL_ stiger før den anden kamp. _TL_ kan stadig komme i semifinalerne hvis de tager sig sammen i den anden kamp. _TL_ er stadig fortrøstningsfuld med at kunne udligne i den anden kamp, hvis de forbereder sig godt. _RE_ i den anden kamp er nok til at _CUPMATCHWINNER_ gÃ¥r videre. Fan af _CUPMATCHLOSER_ ødelægger dele af indre by efter skuffende _RE_ i kvartfinalen. _CUPMATCHWINNER_ nÃ¥r semifinalen efter at have kontrolleret _CUPMATCHLOSER_. _CUPMATCHWINNER_ kan ikke stoppes af _CUPMATCHLOSER_ og er videre med _REW_. _SCORERS_CUPMATCHWINNERN__ hjælper _CUPMATCHWINNER_ med at komme videre efter en spændende kamp overværet af _AT_ tilskuere. _SCORERS_CUPMATCHWINNERN__ sikrer pÃ¥ egen hÃ¥nd en plads i semifinalerne i kampen mod _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ laver det afgørende mÃ¥l mod _CUPMATCHLOSER_. _CUPMATCHWINNER_ i kontrol, vinder kvartfinale efter _REW_. _CUPMATCHWINNER_ skøjter mod semifinalerne mod en underlegen modstander. _CUPMATCHWINNER_ dominerer i begge kampe og fortjener at komme i semifinalen. _CUPMATCHLOSER_ knust af mÃ¥l fra _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ havde ikke en chance i disse kampe og burde i tilbageblik sikkert være glad for at være kommet sÃ¥ langt. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 _T1_ fÃ¥r uafgjort pÃ¥ _T0_ _T0_ og _T1_ spillede uafgjort i første kamp _T1_ tilfreds med uafgjort _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i første kamp _TL_ taber første kamp mod _TW_ Overbevisende sejr af _TW_ i første kamp _TW_ vinder [tæt|lige|spændende] første kamp _TL_ besejret i [tæt|lige|spændende] første kamp _TW_ vil være svære at stoppe efter sejr pÃ¥ _REW_. _TL_ mÃ¥ begrave deres hÃ¥b om videre avancement efter de blev jordet af _TW_ i den første kamp. _TW_ kan allerede begynde forberedelserne pÃ¥ den næste runde efter at have vundet _REW_. _TW_ vinder ude og kan næppe stoppes i at gÃ¥ videre. Efter nederlag hjemme vil _TL_ fÃ¥ det svært i den anden kamp. _TW_ er i en god position før den anden kamp efter en nem udebanesejr. _TW_ lægger et godt grundlag for den anden kampe med deres _REW_ udebanesejr. _TW_ er nu definitivt i en god position og kan gÃ¥ videre med uafgjort hjemme. _TW_ er næsten videre efter en nem hjemmesejr. _TL_ vil forsøge at udligne _REL_ i den anden kamp, hjulpet frem af deres hjemmepublikum. En overlegen kamp hjemme af _TW_ bør gøre det til en nem opgave i den anden kamp. Efter en snæver _REW_ hjemmesejr af _TW_, er denne kamp stadig Ã¥ben. _TL_ kan stadig gÃ¥ videre, forudsat at de vinder med mindst 2 mÃ¥l i den anden kamp. _TL_ laver udebanemÃ¥l som kan blive meget afgørende samlet set. _TW_ besejrer _TL_ men de kunne godt have undgÃ¥et at inkassere de mÃ¥l. _T1_ kan gÃ¥ videre med en sejr hjemme i den anden kamp. _AT_ tilskuere efterladt utilfredse efter en mager uafgjort hjemme af _T0_. _T0_ skal tydeligvis forbedre sig i anden kamp, ellers er det slut. _T1_ har kun brug for uafgjort 0 : 0 i den anden kamp for at gÃ¥ videre til næste runde. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 _CUPMATCHWINNER_ videre til næste runde _CUPMATCHWINNER_ gÃ¥r videre _CUPMATCHLOSER_ elimineret _CUPMATCHLOSER_ er ude _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtid _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ i straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen Uafgjort nok for _CUPMATCHWINNER_ _CUPMATCHWINNER_ gÃ¥r videre med uafgjort _CUPMATCHLOSER_ ude efter _RE_ i anden kamp _REW_ mod _TL_ er ikke nok for _TW_ _REW_ er ikke nok for _TW_ i den anden kamp _TW_ elimineret pÃ¥ trods af sejr i _REW_ _CUPMATCHWINNER_ videre trods nederlag _CUPMATCHWINNER_ gÃ¥r videre [takket være|pÃ¥ grund af] reglen om mÃ¥l pÃ¥ udebane _CUPMATCHWINNER_ gÃ¥r videre efter _RE_ Tæt samlet pointantal mellem _T0_ og _T1_ _CUPMATCHWINNER_ gÃ¥r videre med kun et mÃ¥l i mÃ¥ldifference _CUPMATCHLOSER_ ude efter en tæt kamp _CUPMATCHWINNER_ gÃ¥r nemt videre _CUPMATCHWINNER_ komfortabelt videre til næste runde _CUPMATCHWINNER_ nÃ¥r nemt næste runde _SCORERS_CUPMATCHWINNERN__ sikrer at _CUPMATCHWINNER_ fortsætter til næste runde af _LEAGUECUPNAME_. _CUPMATCHWINNER_ videre takket være mÃ¥l af _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ gÃ¥r videre til næste runde takket være _SCORERS_CUPMATCHWINNERN__. _AT_ tilskuere er Ã¥ndeløse efter en spændende _RE_ i 2. halvleg. Holdene var mere eller mindre lige gode i disse kampe, men _CUPMATCHWINNER_ havde heldet pÃ¥ deres side. _CUPMATCHLOSER_ havde kun brug for et mere mÃ¥l for at vinde kampen. Dette var en hÃ¥rd kamp, men _CUPMATCHLOSER_ er ude efter _RE_ i 2. halvleg. _CUPMATCHWINNER_ viser god modstand mod _CUPMATCHLOSER_ og fortsætter til næste runde efter en spændende kamp. _CUPMATCHWINNER_ bør give _SCORERS_CUPMATCHWINNERN__ en medalje for at skyde dem ind i den næste runde. _SCORERS_CUPMATCHWINNERN__ scorer som _CUPMATCHWINNER_ klemmes af _CUPMATCHLOSER_. _CUPMATCHWINNER_ mødte reelt ingen modstand i denne kamp og fortjener at gÃ¥ videre. _CUPMATCHLOSER_ havde ikke en chance i denne kamp og er ude. _CUPMATCHWINNER_ dominerede denne kamp og er stadig en udfordrer til titlen. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 _CUPMATCHWINNER_ videre til den næste runde _CUPMATCHWINNER_ gÃ¥r videre _CUPMATCHLOSER_ elimineret _CUPMATCHLOSER_ er ude _TW_ [slÃ¥r|vinder over|besejrer] _TL_ i overtid _TW_ sejrrig i overtiden _TW_ [slÃ¥r|vinder over|besejrer] _TL_ _REW_ pÃ¥ straffespark _TW_ bevarer nerverne i straffesparkskonkurrencen Uafgjort nok for _CUPMATCHWINNER_ _CUPMATCHWINNER_ gÃ¥r videre efter uafgjort _CUPMATCHLOSER_ elimineret efter _RE_ i anden halvleg _CUPMATCHWINNER_ gÃ¥r videre kun 1 mÃ¥l bedre _CUPMATCHLOSER_ ude efter en tæt kamp _CUPMATCHWINNER_ fortsætter nemt _CUPMATCHWINNER_ nemt videre til næste runde _CUPMATCHWINNER_ nÃ¥r nemt næste runde _SCORERS_CUPMATCHWINNERN__ sikrer at _CUPMATCHWINNER_ fortsætter til næste runde af _LEAGUECUPNAME_. _CUPMATCHWINNER_ videre takket være mÃ¥l af _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ gÃ¥r videre til næste runde takket være _SCORERS_CUPMATCHWINNERN__. _AT_ tilskuere er Ã¥ndeløse efter en spændende _RE_. Holdene var mere eller mindre lige gode i denne kamp, men _CUPMATCHWINNER_ havde heldet pÃ¥ deres side. Dette var en hÃ¥rd kamp, men _CUPMATCHLOSER_ er ude efter _RE_. _CUPMATCHWINNER_ viser god modstand mod _CUPMATCHLOSER_ og fortsætter til næste runde efter en spændende kamp. _CUPMATCHWINNER_ bør give _SCORERS_CUPMATCHWINNERN__ en medalje for at sende dem ind i den næste runde. _SCORERS_CUPMATCHWINNERN__ scorer som _CUPMATCHWINNER_ presses af _CUPMATCHLOSER_. _CUPMATCHWINNER_ mødte reelt ingen modstand i denne kamp og fortjener at gÃ¥ videre. _CUPMATCHLOSER_ havde ikke en chance i denne kamp og er ude. _CUPMATCHWINNER_ dominerede denne kamp og er stadig en udfordrer til titlen. bygfoot-2.3.2/support_files/news/news_el.xml0000644000175000017500000020512011225071373020174 0ustar eliaselias match _TLAYERDIFF_ = 0 and _GD_ G 3 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) Η _TW_ [νικά τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στην παÏάταση Η _TW_ νικηφόÏα στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στη διαδικασία των πέναλτι _TL_ δεν αντιστέκεται καθόλου εναντίον στη _TW_ Η _TL_ διαλÏεται από τη _TW_ ΕÏκολη νίκη για _TW_ Ξέσπασμα της _TW_ Εξευτελιστική ήττα της _TL_ Η _TW_ [διαλÏει|εξευτελίζει|κατατÏοπώνει] τη _TL_ Η _TW_ εξευτελίζει τη _TL_ μπÏοστά σε _AT_ θεατές Η _TW_ κυÏιαÏχεί εκτός Η _TW_ θÏιαμβέυει της _TL_ μπÏοστά στο κοινό της Η _TW_ διαλÏει τη _TL_ . Η _TW_ νικά τη _TL_ _RE_ . Η _TW_ κεÏδίζει εκτός τη _REW_. Η _TW_ κÏατάει το πάνω χέÏι σε ένα ματς που έχει πολλά γκολ. Η _TL_ δείχνει ανυσηχητική αδυναμία τόσο στην άμυνα όσο και στην επίθεση. Η _TL_ χάνει ένα ματς που κυÏιαÏχείται από τις επιθέσεις. Η _TL_ διασÏÏεται με γκολ των _SCORERS_TWN__. Ο _HIGHSCORER_TWN__ βάζει _HIGHGOALS_TWN__ γκολ σε μία [εντυπωσιακή|επιβλητική] νίκη. Ο _HIGHSCORER_TWN__ κάνει χατ-Ï„Ïικ σε μία χοÏταστική αναμέτÏηση. Τα _HIGHGOALS_TLN__ γκολ από τον _HIGHSCORER_TLN__ δεν σταματοÏν την _TW_ από τη νίκη. Τα γκολ από τους _SCORERS_TLN__ δεν είναι αÏκετά για να νικήσει η _TL_. match _TLAYERDIFF_ = 0 and _GD_ G 2 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει] τη _TL_ στην παÏάταση Η _TW_ νικηφόÏα στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στη διαδικασία των πέναλτι Η _TL_ δεν έχει καμία ευκαιÏία απέναντι στη _TW_ ΠεÏίπατος για τη _TW_ ΕÏκολη εντός έδÏας νίκη για τη _TW_ Η _TW_ κεÏδίζει άνετα τη _TL_ Η _TW_ επικÏατεί απέναντι στη _TL_ Η _TW_ κυÏιαÏχεί πάνω στη _TL_ Η _TW_ κυÏιαÏχεί εκτός Η _TW_ κεÏδίζει παÏά τα _GOALS_TLN__ γκολ εναντίον της Τα _GOALS_TLN__ γκολ δεν είναι αÏκετά για τη _TL_ Η _TW_ κεÏδίζει με _REW_ τη _TL_. Η _TW_ νικάει τη _TL_ με _RE_ στο σπίτι της. Η _TW_ κÏατάει το πάνω χέÏι σε ένα αγώνα με πολλά γκολ. Η _TL_ χάνει ένα επιθετικό ματς. Οι _SCORERS_TWN__ σκοÏάÏουν σε μία πειστική νίκη της _TW_. Οι _SCORERS_TWN__ σκοÏάÏουν σε μία πειστική εντός έδÏας νίκη της _TW_. Οι _SCORERS_TWN__ σκοÏάÏουν σε μία πειστική εκτός έδÏας νίκη της _TW_. Ο _HIGHSCORER_TWN__ βάζει _HIGHGOALS_TWN__ γκολ σε μία εντυπωσιακή νίκη. Ο _HIGHSCORER_TWN__ σκοÏάÏει _HIGHGOALS_TWN__ φοÏές. Ο _HIGHSCORER_TWN__ πετυχαίνει χατ-Ï„Ïικ σε ένα χοÏταστικό ματς. Το χατ-Ï„Ïικ από τον _HIGHSCORER_TWN__ Ïίχνει στο κανάβατσο τη _TL_. Τα _HIGHGOALS_TLN__ γκολ από τον _HIGHSCORER_TLN__ δεν αποτÏέπουν την ήττα της _TL_. Τα _HIGHGOALS_TLN__ γκολ από τον _HIGHSCORER_TLN__ δεν είναι αÏκετά για τη _TL_ να μην ηττηθεί από την _TW_. Η _TL_ χάνει παÏόλο που έβαλε _HIGHGOALS_TLN__ γκολ από τον _HIGHSCORER_TLN__. Τα γκολ από τους _SCORERS_TLN__ δεν είναι αÏκετά για τη _TL_ που χάνει _REL_. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) 5 Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ με _REW_ Η _TL_ χάνει από τη _TW_ με _REL_ Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στη διαδικασία των πέναλτι Ο αγώνας _T0_ εναντίον της _T1_ λήγει _RE_ Η _TW_ κεÏδίζει τον Ï€Ïώτο αγώνα του _CUPROUNDNAME_ εναντίον της _TL_ Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στον Ï€Ïώτο αγώνα Η _TW_ νικήτÏια σε εντός έδÏας αγώνα εναντίον της _TL_ Εντός έδÏας νίκη για τη _TW_ Η _TW_ κεÏδίζει εντός έδÏας Η _TW_ κεÏδίζει εκτός έδÏας τη _TL_ Εκτός έδÏας νίκη για _TW_ Η _TW_ πετυχαίνει εκτός έδÏας νίκη _WON_TWN__ συνεχόμενες νίκες για τη _TW_ _LOST_TLN__ συνεχόμενες ήττες για τη _TL_ Η _TW_ χωÏίς ήττα για _UNBEATEN_TWN__ αγώνες Η _TW_ επεκτείνει το σεÏί νικών της σε _WON_TWN__ Η _TL_ χάνει τον _LOST_TLN__ σεÏί αγώνα Η _TW_ κεÏδίζει τον _WON_TWN__ σεÏί αγώνα της λίγκας Η _TL_ παÏαμένη άτυχη στα παιχνίδια της λίγκας Η _TW_ δείχνει ανίκητη στους αγώνες της λίγκας Εδώ και _WON_TWN__ αγώνες, η _TW_ διαλÏει κάθε αντίπαλο. Η _TW_ Ï€Î¿Î»Ï Î´Ï…Î½Î±Ï„Î® για τη_TL_, κεÏδίζει _REW_. _AT_ θεατές παÏακολουθοÏν την εντός έδÏας νίκη της ομάδας τους. _AT_ θεατές γιοÏτάζουν τη νίκη εναντίον της _TL_. _AT_ θεατές συμπάσχουν με τη _TL_. Οι πεÏισσότεÏοι από τους θεατές αποχωÏοÏν απαγοητευμένοι Ï€Ïιν το τέλος του αγώνα. Η _TW_ κεÏδίζει τους βαθμοÏÏ‚ απέναντι στη _TL_. Οι _SCORERS_TWN__ [σκοÏάÏουν|βάζουν τα γκολ] απέναντι στη _TL_. Η _TW_ στην κοÏυφή απέναντι στη _TL_ χάÏι σε γκόλ των _SCORERS_TWN__. Οι _SCORERS_TWN__ [σκοÏάÏουν|χτυποÏν] απέναντι στη _TL_. Ο _SCORERS_TWN__ διασφαλίζει τη νίκη εναντίον της _TL_. Ο _SCORERS_TWN__ μόνος σκόÏÎµÏ ÎµÎ½Î±Î½Ï„Î¯Î¿Î½ της _TL_. Ο _SCORERS_TWN__ νικάει μόνος του τη _TL_. Ο _SCORERS_TWN__ είναι ο μόνος σκόÏÎµÏ ÎµÎ½Î±Î½Ï„Î¯Î¿Î½ της _TL_. _GOALS_TLN__ γκολ δεν είναι αÏκετά για νίκη της _TL_. Η _TW_ νικάει σε ένα διασκεδαστικό αγώνα χάÏις σε γκολ των _SCORERS_TWN__. Η _TL_ χάνει από τη _TW_ σε έναν αγώνα με πολλά γκολ. Η _TW_ πετυχαίνει μια Ï€ÏÏÏεια νίκη (με Ï„ÏαυματισμοÏÏ‚) απέναντι στη _TL_. Η _TW_ βελτιώνει την βαθμολογική της θέση στη _RANK_TWN__ του πίνακα. ΧάÏις στη νίκη, η _TW_ μετακινείται στη _RANK_TWN__ θέση του Î²Î±Î¸Î¼Î¿Î»Î¿Î³Î¹ÎºÎ¿Ï Ï€Î¯Î½Î±ÎºÎ± της _LEAGUECUPNAME_. Η _TW_ είναι τώÏα επικεφαλής της _LEAGUECUPNAME_. Η _TW_ κεÏδίζει [_OLDRANK_TWN__ - _RANK_TWN__] θέσεις στον βαθμολογικό πίνακα. Η _TL_ βÏίσκεται τώÏα στη _RANK_TLN__ θέση του Î²Î±Î¸Î¼Î¿Î»Î¿Î³Î¹ÎºÎ¿Ï Ï€Î¯Î½Î±ÎºÎ±. Η _TL_ κατεβαίνει στη _RANK_TLN__ θέση του Î²Î±Î¸Î¼Î¿Î»Î¿Î³Î¹ÎºÎ¿Ï Ï€Î¯Î½Î±ÎºÎ± της _LEAGUECUPNAME_. Η _TL_ χάνει [_RANK_TLN__ - _OLDRANK_TLN__] θέσεις στον βαθμολογικό πίνακα. Η _TW_ αξιοποιεί σχεδόν όλα τα σουτ της και παίÏνει τη νίκη. Ο Ï€Ïοπονητής της _TL_ εντυπωσιάστηκε από την αποτελεσματικότητα του αντιπάλου. match _TLAYERDIFF_ = 0 and _GD_ = 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) Η _T1_ παίÏνει την ισοπαλία στην έδÏα της _T0_ Η _T0_ δεν καταφέÏνει να πάÏει τίποτε άλλο από μία ισοπαλία με _RE_ εντός έδÏας Απλή ισοπαλία για τη [_T0_|_T1_] Λευκή ισοπαλία στον αγώνα της _T0_ εναντίον της _T1_ Οι _T0_ και _T1_ μοιÏάζονται τους βαθμοÏÏ‚ ΠεÏιπετειώδης ισοπαλία για τη [_T0_|_T1_] Ο αγώνας _T0_ - _T1_ είναι απλά βαÏετός Η [_T0_|_T1_] Ï€Ïοδόθηκε από την απαγοητευτική της άμυνα και έμεινε στην ισοπαλία. Η [_T0_|_T1_] δέχεται _GOALS1_ γκολ και Ï€Ïέπει να είναι ικανοποιημένη με μία ισοπαλία. Η [_T0_|_T1_] δέχεται _GOALS1_ γκολ και πέÏνει μόνο την ισοπαλία. Τα γκολ των _SCORERS0_ διασφαλίζουν μόνο μία ισοπαλία _RE_ για τη_T0_. Ο _SCORERS0_ σώζει την ισοπαλία της _T0_ εναντίον της _T1_. Ο _SCORERS1_ σώζει την ισοπαλία για τη _T1_ εναντίον της _T0_. Και οι δÏο ομάδες είχαν έλλειψη της απαÏαίτητης ενέÏγειας γι' αυτό τον αγώνα. Η ισοπαλία δεν βοηθά καμία ομάδα. ΟÏτε η _T0_, οÏτε και η _T1_ μποÏοÏν να είναι ικανοποιημένες με μία ισοπαλία. Πολλοί από τους _AT_ θεατές κοιμοÏνται στην διάÏκεια ενός βαÏÎµÏ„Î¿Ï Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï. Οι δÏο ομάδες φέÏνουν στη μνήμη τις ημέÏες του κατενάτσιο. _AT_ θεατές απολαμβάνουν ένα θαυμάσιο παιχνίδι παÏά την ισοπαλία με _RE_. Ο Ï€Ïοπονητής της [_T0_|_T1_] υπόσχεται να επικεντÏώσει στο σουλοÏπωμα της άμυνας της επόμενες εβδομάδες. Η [_T0_|_T1_] συνδυάζει καλή επίθεση με Ï„Ïαγικά λάθη και πέÏνει μόνο την ισοπαλία. Η [_T0_|_T1_] διαπÏάττει κάποια εÏκολα λάθη και χαÏαμίζει τη νίκη. Ένα λάθος από τη [_T0_|_T1_] χαÏαμίζει τη νίκη. Η _T0_ χαÏαμίζει τις ευκαιÏίες της και πέÏνει μόνο την ισοπαλία. Η _T1_ χαÏαμίζει τις ευκαιÏίες της και πέÏνει μόνο την ισοπαλία. Ένα χαμένο πέναλτι θα κυνηγά τους παίκτες της _T1_ για Ï€Î¿Î»Ï ÎºÎ±Î¹ÏÏŒ. Ένα χαμένο πέναλτι θα κυνηγά τους παίκτες της _T0_ για Ï€Î¿Î»Ï ÎºÎ±Î¹ÏÏŒ. Η _T0_ παίÏνει μόνο την ισοπαλία αλλά το ανίκητο σεÏί των _UNBEATEN0_ αγώνων παÏαμένει. _AT_ θεατές παÏακολουθοÏν τη _T0_ να επεκτείνει το ανίκητο της σεÏί σε _UNBEATEN0_ αγώνες. Η _T0_ δεν χάνει από τη _T1_ και επεκτείνει το σεÏί της σε _UNBEATEN0_ αγώνες χωÏίς ήττα στη _LEAGUECUPNAME_. match _TLAYERDIFF_ = 0 and _GD_ = 1 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) Η _TW_ [νικάει τη|υπεÏισχÏει της|κεÏδίζει τη] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της] _TL_ _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στη διαδικασία των πέναλτι ΑμφίÏÏοπο παιχνίδι με _REW_ για τη _TW_ Η _TW_ [νικάει τη|υπεÏισχÏει της|κεÏδίζει τη] _TL_ σε έναν [αμφίÏÏοπο|κλειστό|αγωνιώδες] αγώνα Η _TW_ κεÏδίζει έναν [αμφίÏÏοπο|κλειστό|αγωνιώδες] αγώνα Η _TL_ είναι απαγοητευμένη λόγω της ήττας Η _TL_ χάνει από τη _TW_ σε μία [αμφίÏÏοπη|κλειστή|αγωνιώδη] αναμέτÏηση Κλειστός αγώνας με ευτυχή κατάληξη για τη _TW_ ΣυναÏπαστικό παιχνίδι στην έδÏα της _T0_ Η _TW_ αÏκετά τυχεÏή για μία εντός έδÏας ήττα Η _TW_ κεÏδίζει στην έδÏα της _TL_ σε ένα [αμφίÏÏοπο|κλειστό|αγωνιώδες] παιχνίδι _AT_ θεατές παÏακολουθοÏν τη _TW_ να κεÏδίζει με ένα γκολ διαφοÏά τη _TL_. _AT_ θεατές παÏακολουθοÏν μία [αμφίÏÏοπη|κλειστή|αγωνιώδη] αναμέτÏηση δÏο ισοδÏναμων ομάδων. Η _TW_ κεÏδίζει ένα [αμφίÏÏοπο|κλειστό|αγωνιώδες] αλλά πανάξιο _REW_ εναντίον της _TL_. Η _TL_ έπÏεπε να κεÏδίσει πεÏισσότεÏο από ένα _REL_ από αυτόν τον αγώνα. Ο _SCORERS_TWN__ πετυχαίνει το νικητήÏιο γκολ. Ένα γκολ είναι αÏκετό για τη _TW_ για να πάÏει τη νίκη σε αυτό το παιχνίδι. Ένα γκολ είναι αÏκετό για τη _TW_ για να παÏει τους Ï„Ïεις βαθμοÏÏ‚ της νίκης. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στη παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στην διαδικασία των πέναλτι Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ Όπως ήταν αναμενόμενο,η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ Η _TW_ δικαιώνει τις Ï€Ïοσδοκίες Η _TW_ αποδεικνÏει λάθος τις Ï€Ïοβλέψεις και [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ Η _TW_ κεÏδίζει αναπάντεχα τη _TL_ Η _TL_ καλÏτεÏη στη θεωÏία, χάνει _REL_ Η _TL_ έκανε ÏŒ,τι μποÏοÏσε αλλά τελικά έχασε. Η _TW_ είχε καλÏτεÏη ομάδα και κέÏδισε φυσιολογικά . Η _TW_ μπεÏδεÏει πεÏισσότεÏο τα Ï€Ïάγματα με μία νίκη με _REW_ επί του φαβοÏί. Η _TW_ είναι η πιο αδÏνατη ομάδα, αλλά το πάθος των παικτών της είναι αÏκετό για τη νίκη. ΧάÏις στην έξυπνη στÏατηγική της, η _TW_ κέÏδισε απέναντι στην καλÏτεÏη ομάδα. match _TLAYERDIFF_ > 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στη διαδικασία των πέναλτι Η _T[_TLAYER0_ L _TLAYER1_]_ παίÏνει αναπάντεχη ισοπαλία Η _T[_TLAYER0_ L _TLAYER1_]_ αντέχει την επίθεση της _T[_TLAYER0_ G _TLAYER1_]_ _LEAGUECUPNAME_: Η _T[_TLAYER0_ L _TLAYER1_]_ μόλις που καταφέÏνει να πάÏει μία ισοπαλία Η _T[_TLAYER0_ L _TLAYER1_]_ κάνει την έκπληξη απέναντι στη _T[_TLAYER0_ G _TLAYER1_]_ Η _T[_TLAYER0_ L _TLAYER1_]_ υπεÏισχÏει της διαφοÏάς κλάσης Η _T[_TLAYER0_ L _TLAYER1_]_ υποκÏπτει σε έναν ισχυÏότεÏο αντίπαλο Η _T[_TLAYER0_ G _TLAYER1_]_ Ï€Î¿Î»Ï Î´Ï…Î½Î±Ï„Î® για τη _T[_TLAYER0_ L _TLAYER1_]_ Η _T[_TLAYER0_ G _TLAYER1_]_ [νικάει|κεÏδίζει] έναν γενναίο αντίπαλο Η _T[_TLAYER0_ L _TLAYER1_]_ αντέχει την πίεση από ένα στα χαÏτιά ισχυÏότεÏο αντίπαλο και κÏατάει την ισοπαλία. Κανείς δεν πεÏίμενε αυτό το αποτέλεσμα εκτός από τους παίκτες και τον Ï€Ïοπονητή της _T[_TLAYER0_ L _TLAYER1_]_. Η _T[_TLAYER0_ L _TLAYER1_]_ παίÏνει ένα αποτέλεσμα που κανείς δεν πεÏίμενε Ï€Ïιν τον αγώνα. Η _T[_TLAYER0_ L _TLAYER1_]_ αντιστέκεται ηÏωϊκά, αλλά η _T[_TLAYER0_ G _TLAYER1_]_ είναι Ï€Î¿Î»Ï Î´Ï…Î½Î±Ï„Î®. _AT_ θεατές παÏακολουθοÏν τη _T[_TLAYER0_ G _TLAYER1_]_ να επιβεβαιώνει τα Ï€Ïογνωστικά και να κÏατάει το πάνω χέÏι απέναντι σε έναν υποδεέστεÏο αντίπαλο. Η _T[_TLAYER0_ G _TLAYER1_]_ εξευτελίζεται με_REL_ απέναντι σε έναν κατώτεÏο αντίπαλο. Η _T[_TLAYER0_ L _TLAYER1_]_ εξευτελίζει τη _T[_TLAYER0_ G _TLAYER1_]_ με _REW_ στη _LEAGUECUPNAME_. Η _T[_TLAYER0_ L _TLAYER1_]_ δεν αφήνει τη διαφοÏά κλάσης να φανεί και κεÏδίζει _REW_. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στην διαδικασία των πέναλτι Η _TW_ [κεÏδίζει τον|νικήτÏια στον] Ï€Ïώτο αγώνα του Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _TW_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στον Ï€Ïώτο αγώνα του Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _TL_ χάνει από τη _TW_ στον Ï€Ïώτο αγώνα του Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _CUPMATCHLOSER_ χάνει στον τελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ κεÏδίζει το Ï„Ïόπαιο του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ κεÏδίζει το _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ ανακηÏÏσεται [κυπελλοÏχος|Ï„ÏοπαιοÏχος|κάτοχος] του _LEAGUECUPNAME_ Η_CUPMATCHWINNER_ [νικάει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ final [ΣυναÏπαστικός|θεαματικός|εκπληκτικός] τελικός του_LEAGUECUPNAME_ Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½ _T0_ και _T1_ Η _CUPMATCHLOSER_ δεν κεÏδίζει τίποτε άλλο από το αÏγυÏÏŒ μετάλλιο στον τελικό του _LEAGUECUPNAME_ Η _CUPMATCHLOSER_ χάνει _REL_ στον τελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ στην κοÏυφή μετά από το _REW_ στον δεÏτεÏο αγώνα του τελικοÏ. Η _TL_ ελπίζει να ανατÏέψει το _RE_ στον δεÏτεÏο αγώνα. Η _TL_ είναι σε δÏσκολη θέση μετά την εντός έδÏας ήττα στον Ï€Ïώτο αγώνα Η _TW_ είναι φαβοÏί για τον τίτλο μετά την εκτός έδÏας νίκη στον Ï€Ïώτο αγώνα. Η _TW_ αγκαλιάζει τον τίτλο μετά την εκτός έδÏας νίκη στον Ï€Ïώτο αγώνα. Η _TW_ κεÏδίζει εντός έδÏας και δÏσκολα θα αποκλειστεί στον δεÏτεÏο αγώνα. Η _TW_ πάει στον δεÏτεÏο αγώνα μόνο με ένα γκολ πλεονέκτημα. Οι πιθανότητες εναντίον της _TL_ για τον δεÏτεÏο αγώνα αυξάνονται. Η _TL_ Ï€Ïοφταίνει να πάÏει τον τίτλο αν συγκεντÏωθεί κατάλληλα στον δεÏτεÏο αγώνα. Η _TL_ πιστεÏει ότι μποÏεί να πάÏει τον τίτλο αν συγκεντÏωθεί κατάλληλα για τον δεÏτεÏο αγώνα. Το _RE_ στον δεÏτεÏο αγώνα είναι αÏκετό για τη _CUPMATCHWINNER_ για να κατακτήσει τον τίτλο. Οι οπαδοί της _CUPMATCHLOSER_ καταστÏέφουν καταστήματα στο κέντÏο της πόλης μετά το απαγοητευτικό _RE_ στον τελικό. Η _CUPMATCHWINNER_ φτάνει στην κατάκτηση του Ï„Ïοπαίου νικώντας τη _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ είναι ασταμάτητη και κεÏδίζει τον τίτλο με _REW_ εναντίον της _CUPMATCHLOSER_. Οι _SCORERS_CUPMATCHWINNERN__ σπÏώχνουν τη _CUPMATCHWINNER_ στην κατάκτηση του τίτλου μετά από έναν εντυπωσιακό αγώνα που παÏακολουθοÏν _AT_ θεατές. Ο _SCORERS_CUPMATCHWINNERN__ κεÏδίζει μόνος του το κÏπελλο εναντίον της _CUPMATCHLOSER_. Ο _SCORERS_CUPMATCHWINNERN__ πετυχαίνει το νικητήÏιο γκολ εναντίον της _CUPMATCHLOSER_. Ο _CUPMATCHWINNER_ κεÏδίζει τον τελικό με _REW_. Ο _SCORERS_CUPMATCHWINNERN__ σκοÏάÏει εναντίον της _CUPMATCHLOSER_ και είναι ο Ï€Ïώτος παίκτης που σηκώνει το κÏπελλο. Ο _CUPMATCHWINNER_ φτάνει στον τίτλο υπεÏισχÏοντας του αντιπάλου. Η _CUPMATCHWINNER_ κυÏίαÏχη στα παιχνίδια τίτλου αξίζει να πάÏει το κÏπελλο στο σπίτι της. Η _CUPMATCHLOSER_ συντÏίβεται με γκολ των _SCORERS_CUPMATCHWINNERN__. Η _CUPMATCHLOSER_ δεν είχε καμία πιθανότητα για νίκη σε αυτοÏÏ‚ τους αγώνες και μάλλον Ï€Ïέπει να είναι ευχαÏιστημένη που έφτασε ως εδώ. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της] _TL_ με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στην διαδικασία των πέναλτι Η _TW_ [κεÏδίζει|νικήτÏια] στον Ï€Ïώτο αγώνα του Î·Î¼Î¹Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στον Ï€Ïώτο αγώνα του Î·Î¼Î¹Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _TL_ χάνει με _RE_ στον Ï€Ïώτο αγώνα του Î·Î¼Î¹Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _CUPMATCHLOSER_ αποκλείεται στον ημιτελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται στον τελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ πεÏνά στον τελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ Ï€ÏοχωÏάει για τον τελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ [κεÏδίζει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _CUPMATCHLOSER_ στον ημιτελικό του _LEAGUECUPNAME_ Αγωνιώδης ημιτελικός του _LEAGUECUPNAME_ Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½_T0_ και _T1_ Η _CUPMATCHLOSER_ έφυγε άπÏακτη από τον ημιτελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ κεÏδίζει με _REW_ στον δεÏτεÏο αγώνα του ημιτελικοÏ. Η _TL_ ελπίζει να ανατÏέψει το _RE_ στον δεÏτεÏο αγώνα. Η _TL_ βÏίσκεται σε [Ï€Ïόβλημα|τέλμα] μετά την ήττα στον Ï€Ïώτο εντός έδÏας αγώνα. Η _TW_ είναι το απόλυτο φαβοÏί για να πεÏάσει στον τελικό μετά την εκτός έδÏας νίκη. Η _TW_ έχει σχεδόν Ï€ÏοκÏιθεί μετά την εκτός έδÏας νίκη. Η _TW_ κεÏδίζει εντός έδÏας με διαφοÏά και δεν θα αποκλειστεί εÏκολα ενόψει του δευτέÏου αγώνα. Η _TW_ will πάει στον δεÏτεÏο αγώνα μόνο με ένα γκολ πλεονέκτημα. Οι πιθανότητες εναντίον της _TL_ για τον δεÏτεÏο αγώνα αυξάνονται . Η _TL_ Ï€Ïοφταίνει να Ï€ÏοκÏιθεί στον τελικό αν συγκεντÏωθεί κατάλληλα στον δεÏτεÏο αγώνα. Η _TL_ πιστεÏει ότι μποÏεί να πάει στον τελικό αν συγκεντÏωθεί κατάλληλα για τον δεÏτεÏο αγώνα. Το _RE_ στον δεÏτεÏο αγώνα είναι αÏκετό για τη _CUPMATCHWINNER_ να Ï€ÏοχωÏήσει. Οι οπαδοί της _CUPMATCHLOSER_ καταστÏέφουν το κέντÏο της πόλης μετά το απαγοητευτικό _RE_ στον ημιτελικό. Η _CUPMATCHWINNER_ πάει στον τελικό μετά τη νίκη της επί της _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ είναι ασταμάτητη και παει στον τελικό με ένα _REW_ εναντίον της _CUPMATCHLOSER_ . Οι _SCORERS_CUPMATCHWINNERN__ βοηθοÏν τη _CUPMATCHWINNER_ να Ï€ÏοκÏιθεί μετά από έναν συναÏπαστικό αγώνα που παÏακολουθοÏν _AT_ θεατές. Ο _SCORERS_CUPMATCHWINNERN__ μόνος του νικάει τη _CUPMATCHLOSER_ και στέλνει την ομάδα του στον τελικό. Ο _SCORERS_CUPMATCHWINNERN__ πετυχαίνει το νικητήÏιο γκολ εναντίον της _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ ελέγχοντας τον αγώνα, κεÏδίζει τον ημιτελικό μετά από ένα _REW_. Η _CUPMATCHWINNER_ φτάνει στον τελικό διαλÏοντας τον αντίπαλο. Η _CUPMATCHWINNER_ κυÏιαÏχεί και στα δÏο παιχνίδια και αξίζει να πάει στον τελικό. Η _CUPMATCHLOSER_ νικήθηκε κατά κÏάτος με γκολ των _SCORERS_CUPMATCHWINNERN__. Η _CUPMATCHLOSER_ δεν είχε καμία πιθανότητα για νίκη σε αυτοÏÏ‚ τους αγώνες και μάλλον Ï€Ïέπει να είναι ευχαÏιστημένη που έφτασε ως εδώ. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της] _TL_ με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στην διαδικασία των πέναλτι Η _TW_ [κεÏδίζει|νικήτÏια] στον Ï€Ïώτο αγώνα του Ï€ÏÎ¿Î·Î¼Î¹Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _TL_ στον Ï€Ïώτο αγώνα του Ï€ÏÎ¿Î·Î¼Î¹Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _TL_ χάνει με _RE_ στον Ï€Ïώτο αγώνα του Ï€ÏÎ¿Î·Î¼Î¹Ï„ÎµÎ»Î¹ÎºÎ¿Ï Ï„Î¿Ï… _LEAGUECUPNAME_ Η _CUPMATCHLOSER_ αποκλείεται στον Ï€Ïοημιτελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται στα ημιτελικά του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ πεÏνά στα ημιτελικά του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ Ï€ÏοχωÏάει για τα ημιτελικά του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ [κεÏδίζει τη|υπεÏισχÏει της|κατατÏοπώνει τη] _CUPMATCHLOSER_ στον Ï€Ïοημιτελικό του _LEAGUECUPNAME_ Αγωνιώδης Ï€Ïοημιτελικός του _LEAGUECUPNAME_ Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½_T0_ και _T1_ Η _CUPMATCHLOSER_ έφυγε άπÏακτη από τον Ï€Ïοημιτελικό του _LEAGUECUPNAME_ Η _CUPMATCHWINNER_ κεÏδίζει με _REW_ στον δεÏτεÏο αγώνα του Ï€ÏοημιτελικοÏ. Η _TL_ ελπίζει να ανατÏέψει το _RE_ στον δεÏτεÏο αγώνα. Η _TL_ βÏίσκεται σε [Ï€Ïόβλημα|τέλμα] μετά την ήττα στον Ï€Ïώτο εντός έδÏας αγώνα. Η _TW_ είναι το απόλυτο φαβοÏί για να πεÏάσει στα ημιτελικά μετά την εκτός έδÏας νίκη. Η _TW_ έχει σχεδόν Ï€ÏοκÏιθεί μετά την εκτός έδÏας νίκη. Η _TW_ κεÏδίζει εντός έδÏας με διαφοÏά και δεν θα αποκλειστεί εÏκολα ενόψει του δευτέÏου αγώνα. Η _TW_ will πάει στον δεÏτεÏο αγώνα μόνο με ένα γκολ πλεονέκτημα. Οι πιθανότητες εναντίον της _TL_ για τον δεÏτεÏο αγώνα αυξάνονται . Η _TL_ Ï€Ïοφταίνει να Ï€ÏοκÏιθεί στα ημιτελικά αν συγκεντÏωθεί κατάλληλα στον δεÏτεÏο αγώνα. Η _TL_ πιστεÏει ότι μποÏεί να πάει στα ημιτελικά αν συγκεντÏωθεί κατάλληλα για τον δεÏτεÏο αγώνα. Το _RE_ στον δεÏτεÏο αγώνα είναι αÏκετό για τη _CUPMATCHWINNER_ να Ï€ÏοχωÏήσει. Οι οπαδοί της _CUPMATCHLOSER_ καταστÏέφουν το κέντÏο της πόλης μετά το απαγοητευτικό _RE_ στον Ï€Ïοημιτελικό. Η _CUPMATCHWINNER_ πάει στα ημιτελικά μετά τη νίκη της επί της _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ είναι ασταμάτητη και παει στα ημιτελικά με ένα _REW_ εναντίον της _CUPMATCHLOSER_ . Οι _SCORERS_CUPMATCHWINNERN__ βοηθοÏν τη _CUPMATCHWINNER_ να Ï€ÏοκÏιθεί μετά από έναν συναÏπαστικό αγώνα που παÏακολουθοÏν _AT_ θεατές. Ο _SCORERS_CUPMATCHWINNERN__ μόνος του νικάει τη _CUPMATCHLOSER_ και στέλνει την ομάδα του στα ημιτελικά. Ο _SCORERS_CUPMATCHWINNERN__ πετυχαίνει το νικητήÏιο γκολ εναντίον της _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ ελέγχοντας τον αγώνα, κεÏδίζει τον Ï€Ïοημιτελικό μετά από ένα _REW_. Η _CUPMATCHWINNER_ φτάνει στα ημιτελικά διαλÏοντας τον αντίπαλο. Η _CUPMATCHWINNER_ κυÏιαÏχεί και στα δÏο παιχνίδια και αξίζει να πάει στα ημιτελικά. Η _CUPMATCHLOSER_ νικήθηκε κατά κÏάτος με γκολ των _SCORERS_CUPMATCHWINNERN__. Η _CUPMATCHLOSER_ δεν είχε καμία πιθανότητα για νίκη σε αυτοÏÏ‚ τους αγώνες και μάλλον Ï€Ïέπει να είναι ευχαÏιστημένη που έφτασε ως εδώ. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 Η _T1_ παίÏνει την ισοπαλία από τη _T0_ Οι _T0_ και _T1_ ισόπαλες μετά τον Ï€Ïώτο αγώνα Η _T1_ Ï€Ïέπει να είναι ικανοποιημένη και με την ισοπαλία Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της] _TL_ στον Ï€Ïώτο αγώνα Η _TL_ χάνει τον Ï€Ïώτο αγώνα από τη _TW_ Πειστική νίκη από τη _TW_ στον Ï€Ïώτο αγώνα Η _TW_ κεÏδίζει έναν [κλειστό|αγωνιώδες|αμφίÏÏοπο] Ï€Ïώτο αγώνα Η _TL_ χάνει σε έναν [κλειστό|αγωνιώδες|αμφίÏÏοπο] Ï€Ïώτο αγώνα Η _TW_ δεν σταματιέται εÏκολα μετά τη νίκη με _REW_. Οι ελπίδες για Ï€ÏόκÏιση της _TL_ στον επόμενο γÏÏο, διαλÏονται μετά τη συντÏιβή της από τη _TW_στον Ï€Ïώτο αγώνα. Η _TW_ μποÏεί ήδη να Ï€Ïοετοιμάζεται για τον επόμενο γÏÏο μετά τη νίκη με _REW_. Η _TW_ κεÏδίζει εκτός έδÏας και δÏσκολα θα χάσει την Ï€ÏόκÏιση. Μετά την εντός έδÏας ήττα στον Ï€Ïώτο αγώνα, η _TL_ θα έχει δÏσκολη αποστολή για τον δεÏτεÏο αγώνα. Η _TW_ βÏίσκεται σε πλεονεκτική θέση για τον δεÏτεÏο αγώνα μετά από μία εÏκολη εκτός έδÏας νίκη. Η _TW_ χτίζει μία διαφοÏά ασφαλείας για τον δεÏτεÏο αγώνα χάÏις στην εκτός έδÏας νίκη με _REW_. Η _TW_ βÏίσκεται σε πλεονεκτική θέση και μποÏεί να Ï€ÏοκÏιθεί παίÏνοντας μία ισοπαλία εντός έδÏας. Η _TW_ έχει σχεδόν πεÏάσει μετά την εÏκολη εντός έδÏας νίκη. Η_TL_ θα Ï€Ïοσπαθήσει να ανατÏέψει το _REL_ στον δεÏτεÏο αγώνα, βοηθοÏμενη από τον κόσμο της. Μία εκπληκτική εμφάνιση της _TW_ στον Ï€Ïώτο εντός έδÏας αγώνα απλοποιεί τα Ï€Ïάγματα για τον δεÏτεÏο εκτός. Μετά από μία δÏσκολη εντός έδÏας νίκη με _REW_ από τη _TW_, η αναμέτÏηση είναι ακόμα ανοιχτή. Η _TL_ μποÏεί ακόμα να Ï€ÏοκÏιθεί, αν νικήσει με δÏο τουλάχιστον γκολ διαφοÏά στον δεÏτεÏο αγώνα. Η _TL_ πετυχαίνει πάνω από ένα εκτός έδÏας γκολ που μποÏοÏν να αποδειχτοÏν χÏυσά. Η _TW_ κεÏδίζει τη _TL_ αλλά δέχτηκε αχÏείαστα γκολ. Η _T1_ μποÏεί να Ï€ÏοκÏιθεί με μία νίκη στον δεÏτεÏο εντός έδÏας αγώνα. Οι _AT_ θεατές έμειναν ανικανοποίητοι μετά από μία εντός έδÏας ισοπαλία της _T0_. Η _T0_ Ï€Ïέπει να παÏουσιαστεί βελτιωμένη στον δεÏτεÏο αγώνα αν θέλει να έχει πιθανότητες Ï€ÏόκÏισης. Για τη _T1_ φτάνει και ένα απλό 0 : 0 στον δεÏτεÏο αγώνα για να Ï€ÏοκÏιθεί στον επόμενο γÏÏο. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 Η _CUPMATCHWINNER_ στον επόμενο γÏÏο Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται Η _CUPMATCHLOSER_ αποκλείεται Η _CUPMATCHLOSER_ έξω από τη συνέχεια του Î¸ÎµÏƒÎ¼Î¿Ï Î— _TW_ [κεÏδίζει την|υπεÏισχÏει της] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της] _TL_ με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στην διαδικασία των πέναλτι Η ισοπαλία είναι αÏκετή για τη _CUPMATCHWINNER_ Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται με ισοπαλία Η _CUPMATCHLOSER_ αποκλείεται μετά το _RE_ στον δεÏτεÏο αγώνα Το _REW_ εναντίον της _TL_ δεν είναι αÏκετό για τη _TW_ Το _REW_ στον δεÏτεÏο αγώνα δεν είναι αÏκετό για τη _TW_ Η _TW_ αποκλείεται παÏά τη νίκη της με _REW_ Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται παÏά τη ήττα της Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται χάÏις στα εκτός έδÏας γκολ Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται μετά το _RE_ Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται μόνο με ένα γκολ διαφοÏά Η _CUPMATCHLOSER_ έξω μετά από μία αμφίÏÏοπη αναμέτÏηση [ΕÏκολη|Άνετη] Ï€ÏόκÏιση της _CUPMATCHWINNER_ Η _CUPMATCHWINNER_Ï€ÏοκÏίνεται άνετα στον επόμενο γÏÏο Οι _SCORERS_CUPMATCHWINNERN__ διασφαλίζουν την Ï€ÏόκÏιση της _CUPMATCHWINNER_ στον επόμενο γÏÏο του _LEAGUECUPNAME_. Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται στον επόμενο γÏÏο χάÏις σε γκολ των _SCORERS_CUPMATCHWINNERN__. Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται στον επόμενο γÏÏο χάÏις σε γκολ του _SCORERS_CUPMATCHWINNERN__. _AT_ θεατές παÏακολουθοÏν έναν συναÏπαστικό δεÏτεÏο αγώνα που λήγει _RE_. Οι δÏο ομάδες ήταν πεÏίπου ισοδÏναμες, απλώς η _CUPMATCHWINNER_ ήταν πιό τυχεÏή. Η _CUPMATCHLOSER_ χÏειαζόταν απλώς ένα επιπλέον γκολ για να κεÏδίσει την αναμέτÏηση Ήταν μία αμφίÏÏοπη αναμέτÏηση και η _CUPMATCHLOSER_ αποκλείεται μετά από ένα _RE_ στον δεÏτεÏο αγώνα. Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται δÏσκολα στον επόμενο γÏÏο νικώντας τη _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ Ï€Ïέπει να βÏαβεÏσει τους _SCORERS_CUPMATCHWINNERN__ που την έσπÏωξαν με τα γκολ τους στον επόμενο γÏÏο. Οι _SCORERS_CUPMATCHWINNERN__ πετυχαίνουν τα γκολ στην Ï€ÏόκÏιση της _CUPMATCHWINNER_ εναντίον της _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ αξίζει την Ï€ÏόκÏιση στον επόμενο γÏÏο. Η_CUPMATCHLOSER_ είναι κατώτεÏη και φυσιολογικά αποκλείεται. Η_CUPMATCHWINNER_ κυÏιαÏχεί στην αναμέτÏηση και είναι φαβοÏί για τον τίτλο. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 Η _CUPMATCHWINNER_ στον επόμενο γÏÏο Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται Η _CUPMATCHLOSER_ αποκλείεται Η _CUPMATCHLOSER_ έξω από τη συνέχεια του Î¸ÎµÏƒÎ¼Î¿Ï Î— _TW_ [κεÏδίζει την|υπεÏισχÏει της] _TL_ στην παÏάταση Η _TW_ νικήτÏια στην παÏάταση Η _TW_ [κεÏδίζει τη|υπεÏισχÏει της] _TL_ με _REW_ στα πέναλτι Οι παίκτες της _TW_ ελέγχουν καλÏτεÏα τα νεÏÏα τους στην διαδικασία των πέναλτι Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται μόνο με ένα γκολ διαφοÏά Η _CUPMATCHLOSER_ έξω μετά από μία αμφίÏÏοπη αναμέτÏηση [ΕÏκολη|Άνετη] Ï€ÏόκÏιση της _CUPMATCHWINNER_ Η _CUPMATCHWINNER_Ï€ÏοκÏίνεται άνετα στον επόμενο γÏÏο Οι _SCORERS_CUPMATCHWINNERN__ διασφαλίζουν την Ï€ÏόκÏιση της _CUPMATCHWINNER_ στον επόμενο γÏÏο του _LEAGUECUPNAME_. Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται στον επόμενο γÏÏο χάÏις σε γκολ των _SCORERS_CUPMATCHWINNERN__. Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται στον επόμενο γÏÏο χάÏις σε γκολ του _SCORERS_CUPMATCHWINNERN__. Ήταν μία αμφίÏÏοπη αναμέτÏηση και η _CUPMATCHLOSER_ αποκλείεται μετά από ένα _RE_ στον δεÏτεÏο αγώνα. Η _CUPMATCHWINNER_ Ï€ÏοκÏίνεται δÏσκολα στον επόμενο γÏÏο νικώντας τη _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ Ï€Ïέπει να βÏαβεÏσει τους _SCORERS_CUPMATCHWINNERN__ που την έσπÏωξαν με τα γκολ τους στον επόμενο γÏÏο. Οι _SCORERS_CUPMATCHWINNERN__ πετυχαίνουν τα γκολ στην Ï€ÏόκÏιση της _CUPMATCHWINNER_ εναντίον της _CUPMATCHLOSER_. Η _CUPMATCHWINNER_ αξίζει την Ï€ÏόκÏιση στον επόμενο γÏÏο. Η_CUPMATCHLOSER_ είναι κατώτεÏη και φυσιολογικά αποκλείεται. Η_CUPMATCHWINNER_ κυÏιαÏχεί στην αναμέτÏηση και είναι φαβοÏί για τον τίτλο. bygfoot-2.3.2/support_files/news/news_nl.xml0000644000175000017500000015046611225071373020221 0ustar eliaselias!. match _TLAYERDIFF_ = 0 and _GD_ G 3 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ wint in de extra tijd _TW_ [verslaan|winnen van|zegevieren tegenen van|zegevieren tegen] _TL_ _REW_ met strafschoppen _TW_ houd het hoofd koel tijdens de strafschoppen _TL_ heeft geen schijn van een kans bij _TW_ _TL_ trashed by _TW_ Lopsided victory by _TW_ _TW_ win in blowout Vernederende nederlaag voor _TL_ _TW_ [crush|humiliate|thrash|overwhelm|rout|overpower] _TL_ _TW_ humiliate _TL_ with _AT_ watching _TW_ display away dominance _TW_ trounce _TL_ in front of their home crowd _TW_ destroy _TL_ with their machine-like goal production. _TW_ dispatch _TL_ _RE_ at home. _TL_ goes to the dogs at _TW_. _TW_ win _REW_ away. _TW_ retain the upper hand in a match featuring a torrent of goals. _TL_ show an alarming weakness both on the offense and on the defense. _TL_ lose a match dominated by offense. _SCORERS_TWN__ score in devastating home win. _TL_ utterly destroyed by goals from _SCORERS_TWN__. _HIGHSCORER_TWN__ nets _HIGHGOALS_TWN__ goals in [sensational|dominating] win. _HIGHSCORER_TWN__ scores a hat-trick in an entertaining encounter. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ can't stop _TW_ from winning. Goals by _SCORERS_TLN__ are not enough for _TL_ to win. match _TLAYERDIFF_ = 0 and _GD_ G 2 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TL_ don't stand a chance against _TW_ Walkover for _TW_ Easy home win for _TW_ _TW_ wins comfortably against _TL_ _TW_ dominates _TL_ _TW_ dominate at _TL_ _TW_ dominate away _TW_ victorious despite _GOALS_TLN__ goals against _GOALS_TLN__ goals not enough for _TL_ _TW_ controls _TL_ in _REW_ effort. _TW_ dispatch _TL_ with a _RE_ home win. _TW_ keep the upper hand in a match with numerous goals. _TL_ lose the match of offenses. _SCORERS_TWN__ scores in convincing win by _TW_. _SCORERS_TWN__ [score|strike] in convincing home win by _TW_. _SCORERS_TWN__ [score|strike] in convincing away win by _TW_. _HIGHSCORER_TWN__ nets _HIGHGOALS_TWN__ goals in impressive victory. _HIGHSCORER_TWN__ scores _HIGHGOALS_TWN__ times. _HIGHSCORER_TWN__ gets hat-trick in an entertaining match. Hat-trick by _HIGHSCORER_TWN__ stuns _TL_. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ can't prevent _TL_ from losing. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ not enough for _TL_ to withstand _TW_. _TL_ loses despite getting _HIGHGOALS_TLN__ goals from _HIGHSCORER_TLN__. Goals by _SCORERS_TLN__ not enough as _TL_ loses _REL_. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) 5 _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ _TL_ loses to _TW_ _REL_ _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T0_ vs. _T1_ ends with a _RE_ _TW_ wins first leg of _CUPROUNDNAME_ against _TL_ _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in first leg _TW_ victorious at home against _TL_ Home victory for _TW_ _TW_ win at home _TW_ win at _TL_ Away win for _TW_ _TW_ get away victory _WON_TWN__ victories in a row for _TW_ _LOST_TLN__ losses in a row for _TL_ _TW_ unverslaan|winnen van|zegevieren tegenen since _UNBEATEN_TWN__ matches _TW_ extend winning streak to _WON_TWN__ _TL_ lose _LOST_TLN__th match in a row _TW_ win _WON_TWN__th league game in a row _TL_ remain luckless in league games _TW_ seem invincible in league matches Since _WON_TWN__ matches, _TW_ hammer every opponent. _TW_ just too strong for _TL_, win _REW_. _AT_ spectators watch their team win at home. _AT_ spectators celebrate the win against _TL_. _AT_ spectators commiserate with _TL_. Most of the spectators leave the stadium disappointedly before the match is over. _TW_ get the points against _TL_. _SCORERS_TWN__ [score|get the goals] against _TL_. _TW_ on top vs _TL_ thanks to goals by _SCORERS_TWN__. _SCORERS_TWN__ [score|strike] at _TL_. _SCORERS_TWN__ ensures victory against _TL_. _SCORERS_TWN__ only scorer against _TL_. _SCORERS_TWN__ verslaan|winnen van|zegevieren tegens _TL_ single-handedly. _SCORERS_TWN__ is the only scorer against _TL_. _GOALS_TLN__ goals are not enough to win for _TL_. _TW_ win an entertaining match thanks to goals by _SCORERS_TWN__. _TL_ lose to _TW_ in a match of many goals. _TW_ pay with injuries for the win against _TL_. _TW_ improve to rank _RANK_TWN__ in the table. Thanks to the win, _TW_ move to rank _RANK_TWN__ in the _LEAGUECUPNAME_ table. _TW_ is now _LEAGUECUPNAME_ leader. _TW_ gain [_OLDRANK_TWN__ - _RANK_TWN__] positions in the table. _TL_ now only on rank _RANK_TLN__ in the table. _TL_ down to rank _RANK_TLN__ in the _LEAGUECUPNAME_ table. _TL_ lose [_RANK_TLN__ - _OLDRANK_TLN__] positions in the table. _TW_ convert almost all of their shots and get the win. _TL_ coach impressed by the efficiency of their opponent. match _TLAYERDIFF_ = 0 and _GD_ = 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T1_ get the draw at _T0_ _T0_ manage only a _RE_ tie at home Meagre draw for [_T0_|_T1_] Goal-less draw in _T0_ vs. _T1_ _T0_ and _T1_ share the points Eventful draw for [_T0_|_T1_] _T0_ vs. _T1_ is pure boredom [_T0_|_T1_] let down by horrible defense. [_T0_|_T1_] allow _GOALS1_ goals and should be satisfied with a tie. [_T0_|_T1_] allow _GOALS1_ and gets only a draw. Goals by _SCORERS0_ only ensure a _RE_ for _T0_. _SCORERS0_ saves the draw for _T0_ against _T1_. _SCORERS1_ saves the draw for _T1_ at _T0_. _T0_ and _T1_ bore _AT_ spectators with horrible, horrible play and an utterly disappointing _RE_. Both teams clearly lacked the energy in this match. The draw doesn't help either team. Neither _T0_ nor _T1_ can really be satisfied with a tie. Several of the _AT_ spectators die of boredom during an atrocious game. The two teams deliver repulsing football reminiscent of the days of Catenaccio. _AT_ spectators enjoy a lively game despite the _RE_ draw. The coach of [_T0_|_T1_] vows to concentrate on getting the defense in shape during the coming weeks. [_T0_|_T1_] combine good offense with costly mistakes and only gets the draw. [_T0_|_T1_] commit some easy mistakes and wastes victory. One mistake by [_T0_|_T1_] wastes victory. _T0_ waste their scoring chances and only get the draw. _T1_ waste their scoring chances and only get the draw. A wasted penalty shot will haunt _T1_'s players for a long time. A wasted penalty shot will haunt _T0_'s players for a long time. _T0_ only gets the draw but the unverslaan|winnen van|zegevieren tegenen streak of _UNBEATEN0_ matches is still alive. _AT_ spectators watch _T0_ extend their unverslaan|winnen van|zegevieren tegenen streak to _UNBEATEN0_. _T0_ unverslaan|winnen van|zegevieren tegenable for _T1_ and extends streak to _UNBEATEN0_ matches without loss in _LEAGUECUPNAME_. match _TLAYERDIFF_ = 0 and _GD_ = 1 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Tight _REW_ for _TW_ _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in a [tight|close|tense] match _TW_ wins in a [tight|close|tense] match _TL_ frustrated about unnecessary loss _TL_ loses to _TW_ in a [tight|close|tense] encounter Pure excitement in _T0_ vs. _T1_ Close match with happy ending for _TW_ Exciting game at _T0_ _TW_ fortunate to get home win _TW_ win at _TL_ in a [tight|close|tense] game _AT_ spectators watch _TW_ come out only one goal ahead of _TL_. _AT_ spectators see a [tight|close|tense] encounter between two equal teams. _TW_ get a [tight|close|tense] but deserved _REW_ against _TL_. _TL_ should have gotten more than a disappointing and unfortunate _REL_ out of this match. _SCORERS_TWN__ get the game winning goal. One goal is enough for _TW_ to get the win in this match. One goal is enough for _TW_ to grab three points. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ As expected, _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _TW_ fulfill expectations _TW_ prove betting odds wrong, [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _TW_ upset _TL_ _TL_ superior in theory, lose _REL_ _TL_ did their best but couldn't really hope to win here. _TW_ had a better team and used their advantage ruthlessly. _TW_ turn the football world upside down with a surprising _REW_ win. _TW_ are the weaker team, but their passion proved more than sufficient in this victory. Thanks to their exceedingly clever strategy, _TW_ are successful against the better team. match _TLAYERDIFF_ > 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T[_TLAYER0_ L _TLAYER1_]_ get unexpected draw _T[_TLAYER0_ L _TLAYER1_]_ withstands _T[_TLAYER0_ G _TLAYER1_]_ _LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ eke out a draw _T[_TLAYER0_ L _TLAYER1_]_ upset _T[_TLAYER0_ G _TLAYER1_]_ _T[_TLAYER0_ L _TLAYER1_]_ verslaan|winnen van|zegevieren tegen class difference _T[_TLAYER0_ L _TLAYER1_]_ succumb to a superior opponent _T[_TLAYER0_ G _TLAYER1_]_ too strong for _T[_TLAYER0_ L _TLAYER1_]_ _T[_TLAYER0_ G _TLAYER1_]_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] a brave opponent _T[_TLAYER0_ L _TLAYER1_]_ withstands the pressure from a nominally much better team and holds the draw. Nobody expected this result - except for the players and the coach of _T[_TLAYER0_ L _TLAYER1_]_. _T[_TLAYER0_ L _TLAYER1_]_ get a result nobody would have expected beforehand. _T[_TLAYER0_ L _TLAYER1_]_ put up a good fight, but _T[_TLAYER0_ G _TLAYER1_]_ are just too strong. _AT_ spectators watch as _T[_TLAYER0_ G _TLAYER1_]_ fulfill the expectations and keeps the upper hand against an overmatched opponent. _T[_TLAYER0_ G _TLAYER1_]_ thoroughly embarrassed by the _REL_ against a lower class opponent. _T[_TLAYER0_ L _TLAYER1_]_ shame _T[_TLAYER0_ G _TLAYER1_]_ with a _REW_ in _LEAGUECUPNAME_. _T[_TLAYER0_ L _TLAYER1_]_ don't let the class difference get to them and come throught with a _REW_. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins in|victorious in|takes] first leg of _LEAGUECUPNAME_ final _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in first leg of _LEAGUECUPNAME_ final _TL_ [loses|falls] to _TW_ in first leg of _LEAGUECUPNAME_ final _CUPMATCHLOSER_ lose _LEAGUECUPNAME_ final _CUPMATCHWINNER_ take _LEAGUECUPNAME_ crown _CUPMATCHWINNER_ win _LEAGUECUPNAME_ _CUPMATCHWINNER_ are _LEAGUECUPNAME_ winners _CUPMATCHWINNER_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ final [Exciting|Spectacular] _LEAGUECUPNAME_ final [between|featuring] _T0_ and _T1_ _CUPMATCHLOSER_ only take silver in _LEAGUECUPNAME_ final _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ final _CUPMATCHWINNER_ are on top after a _REW_ in the second leg of the final. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourite for the title after getting the away win. _TW_ are almost there after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will tackle the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still get the title if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to grab the title. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the final. _CUPMATCHWINNER_ reache its final goal after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and win the title with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ win the title after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ win the cup single-handedly against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ get the cup winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win final after a _REW_. _SCORERS_CUPMATCHWINNERN__ scores against _CUPMATCHLOSER_ and is the first player to hoist the cup. _CUPMATCHWINNER_ cruise to the title against an overmatched opponent. _CUPMATCHWINNER_ dominant in the title games and deserves to take home the cup. _CUPMATCHLOSER_ [thrashed|mauled] by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have reached the final. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins|victorious in|success in] first leg of _LEAGUECUPNAME_ semifinal _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ first leg of _LEAGUECUPNAME_ semifinal _TL_ lose _RE_ in first leg of _LEAGUECUPNAME_ semifinal _CUPMATCHLOSER_ eliminated in _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ advance in _LEAGUECUPNAME_ _CUPMATCHWINNER_ through to _LEAGUECUPNAME_ final _CUPMATCHWINNER_ advance to _LEAGUECUPNAME_ final _CUPMATCHWINNER_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ semifinal [Tense|Nailbiting] _LEAGUECUPNAME_ semifinal between _T0_ and _T1_ _CUPMATCHLOSER_ left empty-handed in _LEAGUECUPNAME_ semifinal _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ successful after a _REW_ in the second leg of the semifinal. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourite to advance to the final after getting the away win. _TW_ are almost through after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will [head to|go to|play|contest] the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still advance to the final if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to advance. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the semifinal. _CUPMATCHWINNER_ reache the final after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and comes through with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ advance after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ single-handedly ensures a shot at the title against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ gets the winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win semifinal after a _REW_. _CUPMATCHWINNER_ cruise to the finals against an overmatched opponent. _CUPMATCHWINNER_ dominant in both games and deserves to advance to the final. _CUPMATCHLOSER_ [thrashed|mauled] by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have come this far. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins|victorious in|success in] first leg of _LEAGUECUPNAME_ quarterfinal _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ first leg of _LEAGUECUPNAME_ quarterfinal _TL_ lose _RE_ in first leg of _LEAGUECUPNAME_ quarterfinal _CUPMATCHLOSER_ eliminated in _LEAGUECUPNAME_ quarterfinal _CUPMATCHWINNER_ advance in _LEAGUECUPNAME_ _CUPMATCHWINNER_ through to _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ advance to _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ quarterfinal Tense _LEAGUECUPNAME_ quarterfinal between _T0_ and _T1_ _CUPMATCHLOSER_ left empty-handed in _LEAGUECUPNAME_ quarterfinal _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ quarterfinal _CUPMATCHWINNER_ successful after a _REW_ in the second leg of the quarterfinal. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourites to advance to the semifinal after getting the away win. _TW_ are almost through after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will [head to|go to|play|contest] the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still advance to the semis if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to advance. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the quarterfinal. _CUPMATCHWINNER_ reache the semifinal after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and come through with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ advance after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ single-handedly ensures a place in the semis against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ gets the winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win quarterfinal after a _REW_. _CUPMATCHWINNER_ cruise to the semifinals against an overmatched opponent. _CUPMATCHWINNER_ dominant in both games and deserve to advance to the semifinal. _CUPMATCHLOSER_ trashed by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have come this far. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 _T1_ gets the draw at _T0_ _T0_ and _T1_ tied after first leg match _T1_ content with a tie _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in first leg _TL_ loses first leg against _TW_ Convincing win by _TW_ in first leg _TW_ win [tight|close|tense] first leg _TL_ verslaan|winnen van|zegevieren tegened in [tight|close|tense] first leg _TW_ will be hard to stop after the _REW_ victory. _TL_ can bury their hopes of advancing after getting trounced by _TW_ in the first match. _TW_ can already start preparing for the next round after having won _REW_. _TW_ win away and can hardly be stopped from advancing. After losing at home, _TL_ will have a really hard time in the second leg. _TW_ are in a great position for the second leg match after an easy away win. _TW_ build a nice cushion for the second leg with the _REW_ away win. _TW_ are now definitely in an enviable position and can advance by getting a draw at home. _TW_ are almost through after winning easily at home. _TL_ will try to equalise the _REL_ in the second leg, powered by their home crowd. A dominating performance at home by _TW_ should leave them with an easy task in the second leg. After a meager _REW_ home win by _TW_, this match-up is still up in the air. _TL_ can still advance, provided they win with at least two goals in the second leg. _TL_ scores away goals that can become very important overall. _TW_ verslaan|winnen van|zegevieren tegens _TL_ but they really could have avoided those goals against. _T1_ can advance with a home win in the second leg. _AT_ spectators left unsatisfied after a meagre home draw by _T0_. _T0_ clearly have to improve in the second leg, otherwise it's game over. _T1_ only need a 0 : 0 draw in the second leg to advance to the next round. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 _CUPMATCHWINNER_ through to the next round _CUPMATCHWINNER_ advances _CUPMATCHLOSER_ eliminated _CUPMATCHLOSER_ are out _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Draw enough for _CUPMATCHWINNER_ _CUPMATCHWINNER_ advance with draw _CUPMATCHLOSER_ eliminated after _RE_ in second leg _REW_ against _TL_ not enough for _TW_ _REW_ not enough for _TW_ in second leg _TW_ eliminated despite winning _REW_ _CUPMATCHWINNER_ through in spite of loss _CUPMATCHWINNER_ advance [thanks to|on] away goal rule _CUPMATCHWINNER_ advance after _RE_ Tight overall score between _T0_ and _T1_ _CUPMATCHWINNER_ advance with just one goal difference _CUPMATCHLOSER_ out after a close match _CUPMATCHWINNER_ advance easily _CUPMATCHWINNER_ comfortably through to next round _CUPMATCHWINNER_ reach next round easily _SCORERS_CUPMATCHWINNERN__ ensure that _CUPMATCHWINNER_ advance to the next round of _LEAGUECUPNAME_. _CUPMATCHWINNER_ through thanks to goals by _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ advance to next round thanks to _SCORERS_CUPMATCHWINNERN__. _AT_ spectators breathless after an exiting _RE_ in the second leg. The teams were more or less equal in these matches, but _CUPMATCHWINNER_ had luck on their side. _CUPMATCHLOSER_ would only have needed one more goal to win the match-up. This was one tough match-up, but _CUPMATCHLOSER_ are out after a _RE_ in the second leg. _CUPMATCHWINNER_ shows resilience against _CUPMATCHLOSER_ and advances to the next round after a scare. _CUPMATCHWINNER_ should give _SCORERS_CUPMATCHWINNERN__ a medal for shooting them into the next round. _SCORERS_CUPMATCHWINNERN__ score as _CUPMATCHWINNER_ squeezes by _CUPMATCHLOSER_. _CUPMATCHWINNER_ didn't face a real challenge in this match-up and deserve to advance. _CUPMATCHLOSER_ didn't stand a chance overall and are out. _CUPMATCHWINNER_ dominated this match-up and are still a contender for the title. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 _CUPMATCHWINNER_ through to the next round _CUPMATCHWINNER_ advances _CUPMATCHLOSER_ eliminated _CUPMATCHLOSER_ are out _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ in extra time _TW_ victorious in extra time _TW_ [verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen|verslaan|winnen van|zegevieren tegen] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Draw enough for _CUPMATCHWINNER_ _CUPMATCHWINNER_ advance with draw _CUPMATCHLOSER_ eliminated after _RE_ in second leg _CUPMATCHWINNER_ advance with just one goal difference _CUPMATCHLOSER_ out after a close match _CUPMATCHWINNER_ advance easily _CUPMATCHWINNER_ comfortably through to next round _CUPMATCHWINNER_ reach next round easily _SCORERS_CUPMATCHWINNERN__ ensure that _CUPMATCHWINNER_ advance to the next round of _LEAGUECUPNAME_. _CUPMATCHWINNER_ through thanks to goals by _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ advance to next round thanks to _SCORERS_CUPMATCHWINNERN__. _AT_ spectators breathless after an exiting _RE_. The teams were more or less equal in this match, but _CUPMATCHWINNER_ had luck on their side. This was one tough match-up, but _CUPMATCHLOSER_ are out after a _RE_. _CUPMATCHWINNER_ shows resilience against _CUPMATCHLOSER_ and advances to the next round after a scare. _CUPMATCHWINNER_ should give _SCORERS_CUPMATCHWINNERN__ a medal for shooting them into the next round. _SCORERS_CUPMATCHWINNERN__ score as _CUPMATCHWINNER_ squeeze by _CUPMATCHLOSER_. _CUPMATCHWINNER_ didn't face a real challenge in this match-up and deserves to advance. _CUPMATCHLOSER_ didn't stand a chance in this game and are out. _CUPMATCHWINNER_ dominated this match-up and are still a contender for the title. bygfoot-2.3.2/support_files/news/news_ro.xml0000644000175000017500000000375411225071373020225 0ustar eliaselias match _GD_ = 1 _TW_ învinge pe _TN_ _TN_ trece de _TW_ în _LEAGUECUPNAME_ _TW_ pierde în faÅ£a _TN_ într-un meci foarte strâns. match _CUP_ = 0 and _GD_ G 1 _TW_ [bate|învinge|ucide] _TL_! _TL_ pierde în favoarea _TW_! _TW_ ÅŸterge pe _TL_! _TL_ pierde din nou! _TL_ e deja într-o lume a mizeriei! _LEAGUECUPNAME_: _TL_ pierde împotriva _TW_! Rezultat: _RE_ _TL_ nu are nicio ÅŸansă împotriva unui baraj de _GOALS_TWN__. _RE_ este măgulitor pentru _TL_. _TW_ este pur ÅŸi simplu prea puternică. _TW_: _RE_ împotriva _TL_. _TL_ e copleÅŸită de _SHOTS_TWN__ ÅŸuturi. _SCORERS_TWN__ asigură victoria pentru _TW_. _TW_ trece pe locul _RANK_TWN__ în _LEAGUECUPNAME_. _TW_ se mută pe locul _RANK_TWN__ în _LEAGUECUPNAME_. _TW_ pe primul loc după ce a învins pe _TL_ _RE_. Echipa _TW_ a ajuns la _WON_TWN__ câştiguri consecutive. _TL_ pierde seria de câştiguri consecutive pentru _LOST_TLN__! _TW_ învinge _WON_TWN__th într-o harţă în _LEAGUECUPNAME_. _TL_ pierde _LOST_TLN__th în gălăgie în _LEAGUECUPNAME_. bygfoot-2.3.2/support_files/news/news_en.xml0000644000175000017500000014150711225071373020206 0ustar eliaselias match _TLAYERDIFF_ = 0 and _GD_ G 3 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TL_ don't stand a chance at _TW_ _TL_ trashed by _TW_ Lopsided victory by _TW_ _TW_ win in blowout Humiliating defeat for _TL_ _TW_ [crush|humiliate|thrash|overwhelm|rout|overpower] _TL_ _TW_ humiliate _TL_ with _AT_ watching _TW_ display away dominance _TW_ trounce _TL_ in front of their home crowd _TW_ destroy _TL_ with their machine-like goal production. _TW_ dispatch _TL_ _RE_ at home. _TL_ goes to the dogs at _TW_. _TW_ win _REW_ away. _TW_ retain the upper hand in a match featuring a torrent of goals. _TL_ show an alarming weakness both on the offense and on the defense. _TL_ lose a match dominated by offense. _SCORERS_TWN__ score in devastating home win. _TL_ utterly destroyed by goals from _SCORERS_TWN__. _HIGHSCORER_TWN__ nets _HIGHGOALS_TWN__ goals in [sensational|dominating] win. _HIGHSCORER_TWN__ scores a hat-trick in an entertaining encounter. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ can't stop _TW_ from winning. Goals by _SCORERS_TLN__ are not enough for _TL_ to win. match _TLAYERDIFF_ = 0 and _GD_ G 2 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TL_ don't stand a chance against _TW_ Walkover for _TW_ Easy home win for _TW_ _TW_ wins comfortably against _TL_ _TW_ dominates _TL_ _TW_ dominate at _TL_ _TW_ dominate away _TW_ victorious despite _GOALS_TLN__ goals against _GOALS_TLN__ goals not enough for _TL_ _TW_ controls _TL_ in _REW_ effort. _TW_ dispatch _TL_ with a _RE_ home win. _TW_ keep the upper hand in a match with numerous goals. _TL_ lose the match of offenses. _SCORERS_TWN__ scores in convincing win by _TW_. _SCORERS_TWN__ [score|strike] in convincing home win by _TW_. _SCORERS_TWN__ [score|strike] in convincing away win by _TW_. _HIGHSCORER_TWN__ nets _HIGHGOALS_TWN__ goals in impressive victory. _HIGHSCORER_TWN__ scores _HIGHGOALS_TWN__ times. _HIGHSCORER_TWN__ gets hat-trick in an entertaining match. Hat-trick by _HIGHSCORER_TWN__ stuns _TL_. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ can't prevent _TL_ from losing. _HIGHGOALS_TLN__ goals by _HIGHSCORER_TLN__ not enough for _TL_ to withstand _TW_. _TL_ loses despite getting _HIGHGOALS_TLN__ goals from _HIGHSCORER_TLN__. Goals by _SCORERS_TLN__ not enough as _TL_ loses _REL_. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) 5 _TW_ [beat|overcome|defeat] _TL_ _REW_ _TL_ loses to _TW_ _REL_ _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T0_ vs. _T1_ ends with a _RE_ _TW_ wins first leg of _CUPROUNDNAME_ against _TL_ _TW_ [beat|overcome|defeat] _TL_ in first leg _TW_ victorious at home against _TL_ Home victory for _TW_ _TW_ win at home _TW_ win at _TL_ Away win for _TW_ _TW_ get away victory _WON_TWN__ victories in a row for _TW_ _LOST_TLN__ losses in a row for _TL_ _TW_ unbeaten since _UNBEATEN_TWN__ matches _TW_ extend winning streak to _WON_TWN__ _TL_ lose _LOST_TLN__th match in a row _TW_ win _WON_TWN__th league game in a row _TL_ remain luckless in league games _TW_ seem invincible in league matches Since _WON_TWN__ matches, _TW_ hammer every opponent. _TW_ just too strong for _TL_, win _REW_. _AT_ spectators watch their team win at home. _AT_ spectators celebrate the win against _TL_. _AT_ spectators commiserate with _TL_. Most of the spectators leave the stadium disappointedly before the match is over. _TW_ get the points against _TL_. _SCORERS_TWN__ [score|get the goals] against _TL_. _TW_ on top vs _TL_ thanks to goals by _SCORERS_TWN__. _SCORERS_TWN__ [score|strike] at _TL_. _SCORERS_TWN__ ensures victory against _TL_. _SCORERS_TWN__ only scorer against _TL_. _SCORERS_TWN__ defeats _TL_ single-handedly. _SCORERS_TWN__ is the only scorer against _TL_. _GOALS_TLN__ goals are not enough to win for _TL_. _TW_ win an entertaining match thanks to goals by _SCORERS_TWN__. _TL_ lose to _TW_ in a match of many goals. _TW_ pay with injuries for the win against _TL_. _TW_ improve to rank _RANK_TWN__ in the table. Thanks to the win, _TW_ move to rank _RANK_TWN__ in the _LEAGUECUPNAME_ table. _TW_ is now _LEAGUECUPNAME_ leader. _TW_ gain [_OLDRANK_TWN__ - _RANK_TWN__] positions in the table. _TL_ now only on rank _RANK_TLN__ in the table. _TL_ down to rank _RANK_TLN__ in the _LEAGUECUPNAME_ table. _TL_ lose [_RANK_TLN__ - _OLDRANK_TLN__] positions in the table. _TW_ convert almost all of their shots and get the win. _TL_ coach impressed by the efficiency of their opponent. match _TLAYERDIFF_ = 0 and _GD_ = 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T1_ get the draw at _T0_ _T0_ manage only a _RE_ tie at home Meagre draw for [_T0_|_T1_] Goal-less draw in _T0_ vs. _T1_ _T0_ and _T1_ share the points Eventful draw for [_T0_|_T1_] _T0_ vs. _T1_ is pure boredom [_T0_|_T1_] let down by horrible defense. [_T0_|_T1_] allow _GOALS1_ goals and should be satisfied with a tie. [_T0_|_T1_] allow _GOALS1_ and gets only a draw. Goals by _SCORERS0_ only ensure a _RE_ for _T0_. _SCORERS0_ saves the draw for _T0_ against _T1_. _SCORERS1_ saves the draw for _T1_ at _T0_. _T0_ and _T1_ bore _AT_ spectators with horrible, horrible play and an utterly disappointing _RE_. Both teams clearly lacked the energy in this match. The draw doesn't help either team. Neither _T0_ nor _T1_ can really be satisfied with a tie. Several of the _AT_ spectators die of boredom during an atrocious game. The two teams deliver repulsing football reminiscent of the days of Catenaccio. _AT_ spectators enjoy a lively game despite the _RE_ draw. The coach of [_T0_|_T1_] vows to concentrate on getting the defense in shape during the coming weeks. [_T0_|_T1_] combine good offense with costly mistakes and only gets the draw. [_T0_|_T1_] commit some easy mistakes and wastes victory. One mistake by [_T0_|_T1_] wastes victory. _T0_ waste their scoring chances and only get the draw. _T1_ waste their scoring chances and only get the draw. A wasted penalty shot will haunt _T1_'s players for a long time. A wasted penalty shot will haunt _T0_'s players for a long time. _T0_ only gets the draw but the unbeaten streak of _UNBEATEN0_ matches is still alive. _AT_ spectators watch _T0_ extend their unbeaten streak to _UNBEATEN0_. _T0_ unbeatable for _T1_ and extends streak to _UNBEATEN0_ matches without loss in _LEAGUECUPNAME_. match _TLAYERDIFF_ = 0 and _GD_ = 1 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Tight _REW_ for _TW_ _TW_ [beat|overcome|defeat] _TL_ in a [tight|close|tense] match _TW_ wins in a [tight|close|tense] match _TL_ frustrated about unnecessary loss _TL_ loses to _TW_ in a [tight|close|tense] encounter Pure excitement in _T0_ vs. _T1_ Close match with happy ending for _TW_ Exciting game at _T0_ _TW_ fortunate to get home win _TW_ win at _TL_ in a [tight|close|tense] game _AT_ spectators watch _TW_ come out only one goal ahead of _TL_. _AT_ spectators see a [tight|close|tense] encounter between two equal teams. _TW_ get a [tight|close|tense] but deserved _REW_ against _TL_. _TL_ should have gotten more than a disappointing and unfortunate _REL_ out of this match. _SCORERS_TWN__ get the game winning goal. One goal is enough for _TW_ to get the win in this match. One goal is enough for _TW_ to grab three points. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [beat|overcome|defeat] _TL_ As expected, _TW_ [beat|overcome|defeat] _TL_ _TW_ fulfill expectations _TW_ prove betting odds wrong, [beat|overcome|defeat] _TL_ _TW_ upset _TL_ _TL_ superior in theory, lose _REL_ _TL_ did their best but couldn't really hope to win here. _TW_ had a better team and used their advantage ruthlessly. _TW_ turn the football world upside down with a surprising _REW_ win. _TW_ are the weaker team, but their passion proved more than sufficient in this victory. Thanks to their exceedingly clever strategy, _TW_ are successful against the better team. match _TLAYERDIFF_ > 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _T[_TLAYER0_ L _TLAYER1_]_ get unexpected draw _T[_TLAYER0_ L _TLAYER1_]_ withstands _T[_TLAYER0_ G _TLAYER1_]_ _LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ eke out a draw _T[_TLAYER0_ L _TLAYER1_]_ upset _T[_TLAYER0_ G _TLAYER1_]_ _T[_TLAYER0_ L _TLAYER1_]_ overcome class difference _T[_TLAYER0_ L _TLAYER1_]_ succumb to a superior opponent _T[_TLAYER0_ G _TLAYER1_]_ too strong for _T[_TLAYER0_ L _TLAYER1_]_ _T[_TLAYER0_ G _TLAYER1_]_ [beat|overcome|defeat] a brave opponent _T[_TLAYER0_ L _TLAYER1_]_ withstands the pressure from a nominally much better team and holds the draw. Nobody expected this result - except for the players and the coach of _T[_TLAYER0_ L _TLAYER1_]_. _T[_TLAYER0_ L _TLAYER1_]_ get a result nobody would have expected beforehand. _T[_TLAYER0_ L _TLAYER1_]_ put up a good fight, but _T[_TLAYER0_ G _TLAYER1_]_ are just too strong. _AT_ spectators watch as _T[_TLAYER0_ G _TLAYER1_]_ fulfill the expectations and keeps the upper hand against an overmatched opponent. _T[_TLAYER0_ G _TLAYER1_]_ thoroughly embarrassed by the _REL_ against a lower class opponent. _T[_TLAYER0_ L _TLAYER1_]_ shame _T[_TLAYER0_ G _TLAYER1_]_ with a _REW_ in _LEAGUECUPNAME_. _T[_TLAYER0_ L _TLAYER1_]_ don't let the class difference get to them and come throught with a _REW_. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins in|victorious in|takes] first leg of _LEAGUECUPNAME_ final _TW_ [beat|overcome|defeat] _TL_ in first leg of _LEAGUECUPNAME_ final _TL_ [loses|falls] to _TW_ in first leg of _LEAGUECUPNAME_ final _CUPMATCHLOSER_ lose _LEAGUECUPNAME_ final _CUPMATCHWINNER_ take _LEAGUECUPNAME_ crown _CUPMATCHWINNER_ win _LEAGUECUPNAME_ _CUPMATCHWINNER_ are _LEAGUECUPNAME_ winners _CUPMATCHWINNER_ [beat|overcome|defeat] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ final [Exciting|Spectacular] _LEAGUECUPNAME_ final [between|featuring] _T0_ and _T1_ _CUPMATCHLOSER_ only take silver in _LEAGUECUPNAME_ final _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ final _CUPMATCHWINNER_ are on top after a _REW_ in the second leg of the final. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourite for the title after getting the away win. _TW_ are almost there after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will tackle the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still get the title if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to grab the title. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the final. _CUPMATCHWINNER_ reache its final goal after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and win the title with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ win the title after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ win the cup single-handedly against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ get the cup winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win final after a _REW_. _SCORERS_CUPMATCHWINNERN__ scores against _CUPMATCHLOSER_ and is the first player to hoist the cup. _CUPMATCHWINNER_ cruise to the title against an overmatched opponent. _CUPMATCHWINNER_ dominant in the title games and deserves to take home the cup. _CUPMATCHLOSER_ [thrashed|mauled] by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have reached the final. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins|victorious in|success in] first leg of _LEAGUECUPNAME_ semifinal _TW_ [beat|overcome|defeat] _TL_ first leg of _LEAGUECUPNAME_ semifinal _TL_ lose _RE_ in first leg of _LEAGUECUPNAME_ semifinal _CUPMATCHLOSER_ eliminated in _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ advance in _LEAGUECUPNAME_ _CUPMATCHWINNER_ through to _LEAGUECUPNAME_ final _CUPMATCHWINNER_ advance to _LEAGUECUPNAME_ final _CUPMATCHWINNER_ [beat|overcome|defeat] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ semifinal [Tense|Nailbiting] _LEAGUECUPNAME_ semifinal between _T0_ and _T1_ _CUPMATCHLOSER_ left empty-handed in _LEAGUECUPNAME_ semifinal _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ successful after a _REW_ in the second leg of the semifinal. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourite to advance to the final after getting the away win. _TW_ are almost through after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will [head to|go to|play|contest] the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still advance to the final if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to advance. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the semifinal. _CUPMATCHWINNER_ reache the final after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and comes through with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ advance after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ single-handedly ensures a shot at the title against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ gets the winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win semifinal after a _REW_. _CUPMATCHWINNER_ cruise to the finals against an overmatched opponent. _CUPMATCHWINNER_ dominant in both games and deserves to advance to the final. _CUPMATCHLOSER_ [thrashed|mauled] by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have come this far. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out _TW_ [wins|victorious in|success in] first leg of _LEAGUECUPNAME_ quarterfinal _TW_ [beat|overcome|defeat] _TL_ first leg of _LEAGUECUPNAME_ quarterfinal _TL_ lose _RE_ in first leg of _LEAGUECUPNAME_ quarterfinal _CUPMATCHLOSER_ eliminated in _LEAGUECUPNAME_ quarterfinal _CUPMATCHWINNER_ advance in _LEAGUECUPNAME_ _CUPMATCHWINNER_ through to _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ advance to _LEAGUECUPNAME_ semifinal _CUPMATCHWINNER_ [beat|overcome|defeat] _CUPMATCHLOSER_ in _LEAGUECUPNAME_ quarterfinal Tense _LEAGUECUPNAME_ quarterfinal between _T0_ and _T1_ _CUPMATCHLOSER_ left empty-handed in _LEAGUECUPNAME_ quarterfinal _CUPMATCHLOSER_ lose _REL_ in _LEAGUECUPNAME_ quarterfinal _CUPMATCHWINNER_ successful after a _REW_ in the second leg of the quarterfinal. _TL_ hope to equalize the _RE_ in the second leg. _TL_ are [in trouble|mired|vexed] after losing the first leg at home. _TW_ are the clear favourites to advance to the semifinal after getting the away win. _TW_ are almost through after winning away. _TW_ win at home and won't be stopped easily in the second leg. _TW_ will [head to|go to|play|contest] the second leg with only one goal ahead. Betting odds against _TL_ rise for the second leg match. _TL_ can still advance to the semis if they pull themselves together for the second leg. _TL_ still confident to equalize in the second leg if they prepare well. _RE_ in the second leg is enough for _CUPMATCHWINNER_ to advance. _CUPMATCHLOSER_ fans destroy parts of downtown after the disappointing _RE_ in the quarterfinal. _CUPMATCHWINNER_ reache the semifinal after having subdued _CUPMATCHLOSER_. _CUPMATCHWINNER_ can't be stopped by _CUPMATCHLOSER_ and come through with a _REW_. _SCORERS_CUPMATCHWINNERN__ help _CUPMATCHWINNER_ advance after an exciting match watched by a crowd of _AT_. _SCORERS_CUPMATCHWINNERN__ single-handedly ensures a place in the semis against _CUPMATCHLOSER_. _SCORERS_CUPMATCHWINNERN__ gets the winning goal against _CUPMATCHLOSER_. _CUPMATCHWINNER_ in control, win quarterfinal after a _REW_. _CUPMATCHWINNER_ cruise to the semifinals against an overmatched opponent. _CUPMATCHWINNER_ dominant in both games and deserve to advance to the semifinal. _CUPMATCHLOSER_ trashed by goals from _SCORERS_CUPMATCHWINNERN__. _CUPMATCHLOSER_ didn't stand a chance in these matches and, in retrospect, should probably be glad to have come this far. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 _T1_ gets the draw at _T0_ _T0_ and _T1_ tied after first leg match _T1_ content with a tie _TW_ [beat|overcome|defeat] _TL_ in first leg _TL_ loses first leg against _TW_ Convincing win by _TW_ in first leg _TW_ win [tight|close|tense] first leg _TL_ defeated in [tight|close|tense] first leg _TW_ will be hard to stop after the _REW_ victory. _TL_ can bury their hopes of advancing after getting trounced by _TW_ in the first match. _TW_ can already start preparing for the next round after having won _REW_. _TW_ win away and can hardly be stopped from advancing. After losing at home, _TL_ will have a really hard time in the second leg. _TW_ are in a great position for the second leg match after an easy away win. _TW_ build a nice cushion for the second leg with the _REW_ away win. _TW_ are now definitely in an enviable position and can advance by getting a draw at home. _TW_ are almost through after winning easily at home. _TL_ will try to equalise the _REL_ in the second leg, powered by their home crowd. A dominating performance at home by _TW_ should leave them with an easy task in the second leg. After a meager _REW_ home win by _TW_, this match-up is still up in the air. _TL_ can still advance, provided they win with at least two goals in the second leg. _TL_ scores away goals that can become very important overall. _TW_ defeats _TL_ but they really could have avoided those goals against. _T1_ can advance with a home win in the second leg. _AT_ spectators left unsatisfied after a meagre home draw by _T0_. _T0_ clearly have to improve in the second leg, otherwise it's game over. _T1_ only need a 0 : 0 draw in the second leg to advance to the next round. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 _CUPMATCHWINNER_ through to the next round _CUPMATCHWINNER_ advances _CUPMATCHLOSER_ eliminated _CUPMATCHLOSER_ are out _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Draw enough for _CUPMATCHWINNER_ _CUPMATCHWINNER_ advance with draw _CUPMATCHLOSER_ eliminated after _RE_ in second leg _REW_ against _TL_ not enough for _TW_ _REW_ not enough for _TW_ in second leg _TW_ eliminated despite winning _REW_ _CUPMATCHWINNER_ through in spite of loss _CUPMATCHWINNER_ advance [thanks to|on] away goal rule _CUPMATCHWINNER_ advance after _RE_ Tight overall score between _T0_ and _T1_ _CUPMATCHWINNER_ advance with just one goal difference _CUPMATCHLOSER_ out after a close match _CUPMATCHWINNER_ advance easily _CUPMATCHWINNER_ comfortably through to next round _CUPMATCHWINNER_ reach next round easily _SCORERS_CUPMATCHWINNERN__ ensure that _CUPMATCHWINNER_ advance to the next round of _LEAGUECUPNAME_. _CUPMATCHWINNER_ through thanks to goals by _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ advance to next round thanks to _SCORERS_CUPMATCHWINNERN__. _AT_ spectators breathless after an exiting _RE_ in the second leg. The teams were more or less equal in these matches, but _CUPMATCHWINNER_ had luck on their side. _CUPMATCHLOSER_ would only have needed one more goal to win the match-up. This was one tough match-up, but _CUPMATCHLOSER_ are out after a _RE_ in the second leg. _CUPMATCHWINNER_ shows resilience against _CUPMATCHLOSER_ and advances to the next round after a scare. _CUPMATCHWINNER_ should give _SCORERS_CUPMATCHWINNERN__ a medal for shooting them into the next round. _SCORERS_CUPMATCHWINNERN__ score as _CUPMATCHWINNER_ squeezes by _CUPMATCHLOSER_. _CUPMATCHWINNER_ didn't face a real challenge in this match-up and deserve to advance. _CUPMATCHLOSER_ didn't stand a chance overall and are out. _CUPMATCHWINNER_ dominated this match-up and are still a contender for the title. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 _CUPMATCHWINNER_ through to the next round _CUPMATCHWINNER_ advances _CUPMATCHLOSER_ eliminated _CUPMATCHLOSER_ are out _TW_ [beat|overcome|defeat] _TL_ in extra time _TW_ victorious in extra time _TW_ [beat|overcome|defeat] _TL_ _REW_ in penalties _TW_ hold their nerves in penalty shoot-out Draw enough for _CUPMATCHWINNER_ _CUPMATCHWINNER_ advance with draw _CUPMATCHLOSER_ eliminated after _RE_ in second leg _CUPMATCHWINNER_ advance with just one goal difference _CUPMATCHLOSER_ out after a close match _CUPMATCHWINNER_ advance easily _CUPMATCHWINNER_ comfortably through to next round _CUPMATCHWINNER_ reach next round easily _SCORERS_CUPMATCHWINNERN__ ensure that _CUPMATCHWINNER_ advance to the next round of _LEAGUECUPNAME_. _CUPMATCHWINNER_ through thanks to goals by _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ advance to next round thanks to _SCORERS_CUPMATCHWINNERN__. _AT_ spectators breathless after an exiting _RE_. The teams were more or less equal in this match, but _CUPMATCHWINNER_ had luck on their side. This was one tough match-up, but _CUPMATCHLOSER_ are out after a _RE_. _CUPMATCHWINNER_ shows resilience against _CUPMATCHLOSER_ and advances to the next round after a scare. _CUPMATCHWINNER_ should give _SCORERS_CUPMATCHWINNERN__ a medal for shooting them into the next round. _SCORERS_CUPMATCHWINNERN__ score as _CUPMATCHWINNER_ squeeze by _CUPMATCHLOSER_. _CUPMATCHWINNER_ didn't face a real challenge in this match-up and deserves to advance. _CUPMATCHLOSER_ didn't stand a chance in this game and are out. _CUPMATCHWINNER_ dominated this match-up and are still a contender for the title. bygfoot-2.3.2/support_files/news/news_tr.xml0000644000175000017500000015630211225071373020230 0ustar eliaselias match _TLAYERDIFF_ = 0 and _GD_ G 3 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ bu sefer _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda zafere ulaÅŸtı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltı atışları sonunda sevindiler. _TL_ , _TW_ karşısında ÅŸansı yoktu. _TW_ , _TL_ takımına karşı net bir galibiyet aldı : _RE_ _TW_ takımından zayıf rakibine karşı net bir galibiyet: _RE_ . _TW_ sonunda patladı _TL_ utandıran bir yenilgi aldı _TW_ , _TL_ takımını [parçaladı|utandırdı|süpürdü|ezdi geçti|hezimete uÄŸrettı|sürklase etti|dize getirdi|yerle bir etti|batırdı|iyi çarptı|alay konusu yaptı] _TW_ , _TL_ takımını _AT_ seyirci önünde [parçaladı|utandırdı|süpürdü|ezdi geçti|hezimete uÄŸrettı|sürklase etti|dize getirdi|yerle bir etti|batırdı|iyi çarptı|alay konusu yaptı] _TW_ üstünlüğünü gösterdi _TW_ , _TL_ takımını taraftarları önünde bozguna uÄŸrattı _TW_ , _TL_ takımını gol makineleriyle vurdu. _TW_ , _TL_ takımını _RE_ ile evine gönderdi. _TL_ gücü yeterli gelmedi, _TW_ kolay sıyrıldı. _TW_ , _REW_ skorla kazanmasını bildi. _TW_ attığı gollerle ne kadar tehlikeli bir takım olduÄŸunu ispatladı. _TL_ defansta ve hücümda alarm vermeye devam ediyor : _RE_ _TL_ hücüm gücü yeterli gelmeyince yine kaybetti. _SCORERS_TWN__ evlerinde ezici bir skora imza attılar. _TW_ takımı _SCORERS_TWN__ skorerleri ile rakibini tamamen ezdi. _HIGHSCORER_TWN__ gol makinesi tam _HIGHGOALS_TWN__ gol attı, _TW_ [sansasyonel|ezici] bir galibiyet aldı. _HIGHSCORER_TWN__ bu maçta hat-trick yaparak maçın yıldızı oldu. _HIGHGOALS_TLN__ gol atan _HIGHSCORER_TLN__ takımını kurtaramadı. _TW_ yine galibiyeti kopardı. _TL_ takımında golleri atan _SCORERS_TLN__ galibiyette yeterli olamadı. match _TLAYERDIFF_ = 0 and _GD_ G 2 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _TL_ rakibine karşı koyamadı _TW_ rahat kazandı Kolay sonuç: _TW_ _TW_ evinde kolay galip geldi. _TW_ , _TL_ karşı rahat kazandı. _TW_ maça hükmetti, _TL_ üzgün. _TW_ hakim olan taraftı , _TL_ üzgün _TW_ oyuna ve maça hakimlerdi. _TW_ takımı _GOALS_TLN__ gol yemesine raÄŸmen kazanmasını bildi. _GOALS_TLN__ gol _TL_ takımına galibiyet için yeterli olmadı _TW_ kontrolü elden bırakmadı, _TL_ takımını _REW_ skorla geçti. _TW_ , _TL_ takımını _RE_ ile evine gönderdi. _TW_ sayısız gol kaçırdıkları maçta galibiyeti elde etti. _TL_ hücümda durdular ve maçı kaybettiler. _SCORERS_TWN__ ,_TW_ galibiyetinde skorlara imza atanlar oldu. Evindeki maçta , _TW_ takımında _SCORERS_TWN__ [sonuca|neticeye] imzalarını attılar. Deplasmanda , _TW_ takımında _SCORERS_TWN__ [sonuca|neticeye] imzalarını attılar. _HIGHSCORER_TWN__ gol makineleriyle _HIGHGOALS_TWN__ gol atarak [sansasyonel|ezici] bir galibiyet aldı _HIGHSCORER_TWN__ skoru _HIGHGOALS_TWN__ defa deÄŸiÅŸtirdi. _HIGHSCORER_TWN__ bu maçta hat-trick yaparak maçın yıldızı oldu. Hat-trick yapan _HIGHSCORER_TWN__ , _TL_ takımını sersemletti. _HIGHGOALS_TLN__ gol atan _HIGHSCORER_TLN__ takımını kurtaramadı. _TL_ maÄŸlubiyet için üzgün. _HIGHGOALS_TLN__ gol atan _HIGHSCORER_TLN__ takımını kurtaramadı. _TW_ yine galibiyeti kopardı. _TL_ takımına _HIGHGOALS_TLN__ gol atan _HIGHSCORER_TLN__ yeterli olamadı. Takımının golleri atan _SCORERS_TLN__ , _TL_ takımını maÄŸlubiyetten kurtaramadı: _REL_. match _TLAYERDIFF_ = 0 and _GOALS0_ != _GOALS1_ and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) 5 _TW_ , _REW_ sonuçla _TL_ takımını [yendi|devirdi|maÄŸlup etti] _TL_ _REL_ lik sonuçla _TW_ takımına kaybetti _TW_ _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _T0_ ve _T1_ karşılaÅŸmasında sonuç: _RE_ _TW_ , _CUPROUNDNAME_ karşılaÅŸmasında _TL_ takımını yendi _TW_ , _TL_ takımını ilk ayakta [devirdi|yendi|iÅŸini bitirdi] _TW_ evinde yine _TL_ takımını yendi. İç saha galibiyeti _TW_ takımından geldi _TW_ evinde kazanmasını bildi _TW_ , _TL_ takımına karşı kazandı Deplasmanda güzel bir galibiyet aldı _TW_ _TW_ deplasmanda galibiyet aldı _TW_ için _WON_TWN__ . galibiyet. _TL_ için _LOST_TLN__ . maÄŸlubiyet. _TW_ hala _UNBEATEN_TWN__ maçtır yenilmiyor _TW_ galibiyet serisini _WON_TWN__ maça çıkardı. _TL_ ligdeki _LOST_TLN__ . maÄŸlubiyetiyle üzülüyor. _TW_ ligdeki _WON_TWN__ . galibiyetiyle övünüyor. _TL_ ligdeki ÅŸanssızlığı hala devam ediyor. _TW_ lig maçlarındaki yenilmezliÄŸini sürdürüyor. _WON_TWN__ maçtan beri, _TW_ bileÄŸini büken olmadı. _TW_ takımı _TL_ takımına karşı oldukça güçlüydü, _REW_. _AT_ taraftar takımlarının evindeki bu galibiyetine tanıklık etmekle gururlandılar. _AT_ taraftar takımlarının _TL_ galibiyetini kutladı. _AT_ taraftar _TL_ takımının acılarını paylaÅŸtı. _TL_ takımı taraftarları maç bitmeden kızgınlıkla stadı terkettiler. _TW_ puanları _TL_ den kaptı. _SCORERS_TWN__ , _TL_ takımına karşı [golleri attı|tabelayı deÄŸiÅŸtirdi]. _TW_ , _TL_ zaferinde _SCORERS_TWN__ gol ayaklarına teÅŸekkür etmeli. _SCORERS_TWN__ [golcüleri|gol makinelerini] _TL_ durduramadı. _SCORERS_TWN__ , _TL_ galibiyetini saÄŸlama aldılar. _SCORERS_TWN__ maçın neticesine imza attı, _TL_ kaybeden taraftı. _SCORERS_TWN__ , _TL_ takımına yetti. _SCORERS_TWN__ maçın tek skoreri oldu. _GOALS_TLN__ gol _TL_ galibiyeti için yeterli olmadı. _TW_ enteresan maçta _SCORERS_TWN__ gol ayaklarına çok ÅŸey borçlu. _TL_ gol attıkları maçta _TW_ yenilmekten kurtulamadı. _TW_ maçtaki galibiyetinin bedelini sakatlıklarıyla ödedi. _TW_ gruptaki sıralamasını _RANK_TWN__ olarak ileriye taşıdı. _LEAGUECUPNAME_ kupasında ,_TW_ takımı sıralamada _RANK_TWN__ . _TW_ artık _LEAGUECUPNAME_ kupasında lider. _TW_ sıralamada [_OLDRANK_TWN__ - _RANK_TWN__] basamak üste çıktı. _TL_ sıralamadaki yeri _RANK_TLN__ . _LEAGUECUPNAME_ kupasında _TL_ sıralamada _RANK_TLN__ sırada kaldı. _TL_ sıralamada [_RANK_TLN__ - _OLDRANK_TLN__] basamak alta düştü. _TW_ hemen hemen tüm ÅŸutları gol oldu. _TL_ antrenörünün hatalı taktikleri bu ağır yenilgiyi hazırladı. match _TLAYERDIFF_ = 0 and _GD_ = 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _T1_ , _T0_ dan beraberliiÄŸi kopardı. _T0_ , _RE_ skorla evinde sadece beraberlik alabildi. Kimsenin sevinemediÄŸi bir beraberlik [_T0_|_T1_] Golsüz beraberlik ve sevinemeyen iki takım : _T0_ ve _T1_ _T0_ ve _T1_ puanları paylaÅŸtılar Olaylarla dolu bir beraberlik : [_T0_|_T1_] _T0_ , _T1_ bu maç oldukça sıkıcıydı. [_T0_|_T1_] takımı berbat defansıyla dikkat çekti. [_T0_|_T1_] , _GOALS1_ gol attı ve beraberlikten mutlu deÄŸil. [_T0_|_T1_] _GOALS1_ attı ama alabildiÄŸi sadece beraberlik. Goals by _SCORERS0_ only ensure a _RE_ for _T0_. _SCORERS0_ ile _T0_ yine _T1_ takımından beraberliÄŸi kopardı. _SCORERS1_ maÄŸlubiyete izin vermedi ve beraberliÄŸi kurtardılar. _T0_ ve _T1_ takımlarının _AT_ futbolseveri, izlerken çok sıkıldıkları maçta , tabeladaki _RE_ skoruna baktıkça kahroluyorlardır. Her iki takımda bu maçta enerjilerini ortaya koyamadılar. Beraberlik her iki takıma da yaramadı. Ne _T0_ takımı ne de _T1_ takımı beraberlikten mutlu deÄŸil. _AT_ futbolsever bu zevksiz maçta sıkıntıdan patladı. Her iki takımda futbol oynamayı unutmuÅŸ gibiydi. _AT_ seyirci , oynanan futboldan ve alınan beraberlikten _RE_ mutlu. [_T0_|_T1_] takımının teknik direktörü, gelecek haftalar için defans anlayışlarında önemli iyileÅŸtirmeler yapması gerekiyor. [_T0_|_T1_] açık futbol oynanan karşılaÅŸmada pahalı hatalar sonucu getirdi. [_T0_|_T1_] bazı basit hatalar bu sonucu ortaya cıkardı. Bir basit hata ile [_T0_|_T1_] galibiyeti kaçırdı. _T0_ galibiyet ÅŸanslarını cömertçe harcadı ve beraberlikle yetindi. _T1_ galibiyet ÅŸanslarını cömertçe harcadı ve beraberlikle yetindi. _T1_ takımı oyuncularının aklı uzun süre maçtaki penaltıda kaldı. _T0_ takımı oyuncularının aklı uzun süre maçtaki penaltıda kaldı. _T0_ sadece beraberlik aldı ancak yenilmezlik ünvanı hala _UNBEATEN0_ maç olarak devam ediyor. _AT_ taraftar, _T0_ yenilmezlik serisinin _UNBEATEN0_ maça çıkmasına ÅŸahit oldular. match _TLAYERDIFF_ = 0 and _GD_ = 1 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _TW_ takımı için güzel bir sonuç: _REW_ _TW_ , _TL_ takımını [gergin|oldukça gergin|tansiyonu yüksek] geçen karşılaÅŸmada [yendi|maÄŸlup etti|bozguna uÄŸrattı]. _TW_ , [gergin geçen|sinirli geçen|tansiyonu yüksek] maçta galip gelmesini bildi. _TL_ gereksiz top kayıpları yenilgiyi getidi. _TL_ , _TW_ karşısında [beklenmedik|çok gergin oyunuyla|tansiyonu yüksek geçen karşılaÅŸmada] yenilgi aldı. _T0_ ve _T1_ maçında heyecan doruktaydı. Denk giden maçta ÅŸansını deÄŸerlendiren _TW_ oldu. _T0_ için heyecanlı bir maç oldu _TW_ evindeki maçta gerçekten ÅŸansı yaver gitti. _TW_ , [gergin geçen|bir hayli gergin geçen|tansiyonu yüksek] maçta galip gelmesini bildi. _AT_ taraftar , _TW_ takımının _TL_ karşısında galibiyeti elde etmesine sevindiler. _AT_ taraftar, iki takım arasında [gergin geçen|oldukça gergin geçen|tansiyonu yüksek] bir maç seyretmiÅŸ oldular. _TW_ için [gergin geçen|oldukça gergin geçen|tansiyonu yüksek] bir maç oldu fakat _REW_ sonuçla _TL_ takımını yendiler. _SCORERS_TWN__ takımının galibiyet golünü attı. _TW_ takımına bu maçı kazanması için bir gol yetti. _TW_ takımına 3 puan almaları için bir gol yetti. match _TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _TW_ , _TL_ takımını [yendi|maÄŸlup etti|altetti] BeklenildiÄŸi gibi,galibiyeti alan taraf _TW_ oldu. _TW_ beklentileri yerine getirdi _TW_ kendilerine bahis oynamayanları üzmüş oldu, _TL_ takımını [yendiler|maÄŸlup ettiler|dize getirdiler] _TW_ , _TL_ takımını oyunuyla bozdu _TL_ maç başında üstün gözüksede sonuç beklenildiÄŸi gibi olmadı, _REL_ kaybettiler _TL_ ellerinden gelenin en iyisi yapmaya çalıştılar,ama yeterli deÄŸildi. _TW_ iyi olan takımdı ve avantajlarını kullanmasını bildiler. _TW_ ; futbol camiasına güzel bir sürprizle _REW_ skorla galibiyet alarak geri döndü _TW_ zayıf görünen takımdı, fakat hırs ve inançlarıyla bu baÅŸarıya imza attılar. _TW_ çok akıllı stratejileriyle bu maçta baÅŸarıya imza attılar.Antrenör farkı bu olsa gerek. match _TLAYERDIFF_ > 0 and (_CUPKO_ = 0 or _CUPHOMEAWAY_ = 0 or _CUPFIRSTLEG_ = 1) _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _T[_TLAYER0_ L _TLAYER1_]_ beklenmedik beraberlik _T[_TLAYER0_ L _TLAYER1_]_ direndiler _T[_TLAYER0_ G _TLAYER1_]_ _LEAGUECUPNAME_: _T[_TLAYER0_ L _TLAYER1_]_ beraberlik _T[_TLAYER0_ L _TLAYER1_]_ üzgün _T[_TLAYER0_ G _TLAYER1_]_ _T[_TLAYER0_ L _TLAYER1_]_ klas farkı ortaya çıktı _T[_TLAYER0_ L _TLAYER1_]_ üstün bir rakip oldu _T[_TLAYER0_ G _TLAYER1_]_ çok güçlüydü _T[_TLAYER0_ L _TLAYER1_]_ _T[_TLAYER0_ G _TLAYER1_]_ cesur oynayan rakiplerini [yendiler|maÄŸlup ettiler|dize getirdiler]. _T[_TLAYER0_ L _TLAYER1_]_ üzerlerindeki baskıyı bir kenara bırakıp çok daha iyi oynadılar ve beraberliÄŸi kurtardılar. Hiç kimse bu sonucu beklemiyordu, - _T[_TLAYER0_ L _TLAYER1_]_ takımının cesur oyunucu ve teknik direktörü hariç. _T[_TLAYER0_ L _TLAYER1_]_ istedikleri sonucu aldılar ve hiçkimse maçtan önce bu sonu beklemiyordu. _T[_TLAYER0_ L _TLAYER1_]_ maç içinde çok iyi savaÅŸtılar, fakat _T[_TLAYER0_ G _TLAYER1_]_ onlardan çok daha güçlülerdi. _AT_ taraftarın beklentileri yerine getiren _T[_TLAYER0_ G _TLAYER1_]_ rakibine karşı üstün bir oyun ortaya koydu. _T[_TLAYER0_ G _TLAYER1_]_ bir alt sınıftaki rakibe karşı aldıkları _REL_ sonuçla gerçekten utanç duymalılar. _T[_TLAYER0_ L _TLAYER1_]_ onlara takım oyunlarıyla izin vermediler ve _REW_ sonucu aldılar. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0 _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi]. _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü]. _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _TW_ _LEAGUECUPNAME_ kupasi final ilk ayağında [galibiyeti aldı|avantajı ele geçirdi|yüzü gülen taraf oldu]. _TW_ , _TL_ takımını _LEAGUECUPNAME_ final ilk ayağında [yendi|geçti|bitirdi]. _TL_ , _TW_ takımına _LEAGUECUPNAME_ final ilk ayağında maÄŸlup oldu. _CUPMATCHLOSER_ takımı _LEAGUECUPNAME_ finalinde kaybetti. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ kupayı kaldırdı. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ kupasını müzesine götürdü _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ zirvede bitirdi,kupa ÅŸampiyonu oldu. _CUPMATCHWINNER_ _CUPMATCHLOSER_ takımını _LEAGUECUPNAME_ finalinde [yendi|maÄŸlup etti|iÅŸini bitirdi]. _T0_ ve _T1_ takımları arasında [Heyecanlı|Mükemmel] _LEAGUECUPNAME_ finali oldu. _CUPMATCHLOSER_ , _LEAGUECUPNAME_ finalinde ikincilikle yetindi. _CUPMATCHLOSER_ , _REL_ sonuçla _LEAGUECUPNAME_ finalinde kaybeden takım oldu. _CUPMATCHWINNER_ _REW_ skoru sonrası final ikinci maçında Kupayı alan ekip oldu. _TL_ aldıkları _RE_ sonuç ile ikinci maçta durumu eÅŸitlemesi çok zor. _TL_ takımı ilk maçta evinde kaybetmelerinin ardından [endiÅŸeli|moral bozukluÄŸu içerisinde|umutları tükenmiÅŸ durumda]. _TW_ deplasmanda aldıkları galibiyetle kupaya bir adım daha yaklaÅŸtılar. _TW_ deplasman galibiyeti ile inançlarını tazelemiÅŸ oldular. _TW_ evlerinde galibiyeti aldı ve ikinci maçta kolay kolay durdurulamayacak bir takım olduklarını gösterdiler. _TW_ galibiyeti almış olabilir,ancak ikinci maçta bu sonuç yeterli gelmeyebilir. _TL_ takımının ikinci maç için hala ÅŸansları var ancak o maçta sahada herÅŸeylerini ortaya koymalılar _TL_ takımı ikinci maç için iyi bir hazırlık yaptıkları takdirde eÅŸitliÄŸi yakalamaları mümkün. _RE_ bu sonuç _CUPMATCHWINNER_ takımının ikinci maçta kupayı almasına yeterli geldi. _CUPMATCHLOSER_ taraftarları , _RE_ sonuçla biten final sonrası takımlarını yuhalayıp, öfkeden stadı darmadağın ettiler. _CUPMATCHWINNER_ ile _CUPMATCHLOSER_ finalinde sonuca giden ve kupayı alan _CUPMATCHWINNER_ oldu. _CUPMATCHWINNER_ , _CUPMATCHLOSER_ tarafından durdurulamadı ve _REW_ lik sonuçla kupayı müzesine götürme baÅŸarısını gösterdi. _CUPMATCHWINNER_ takımına kupayı kazanırken skorerleri _SCORERS_CUPMATCHWINNERN__ yardım etti ; _AT_ seyirciyi de futbola doyurdular. _SCORERS_CUPMATCHWINNERN__ attıkları gollerle kupayı _CUPMATCHLOSER_ elinden kapıp kendi takımlarına götürdüler. _SCORERS_CUPMATCHWINNERN__ kupayı _CUPMATCHLOSER_ takımının almasına attıkları gollerle izin vermedi. _CUPMATCHWINNER_ maçın tüm kontrolü kendilerindeydi, _REW_ skorla finalde kupayı kaldırdılar. _SCORERS_CUPMATCHWINNERN__ attıkları gollerle _CUPMATCHLOSER_ takımını bozguna uÄŸrattılar ve bu kupa onların elinde ilk defa yükseldi. _CUPMATCHWINNER_ oyunu sürekli forse ettiler ve bu kupayı almak için haklı bir oyun ortaya koydular. _CUPMATCHLOSER_ , rakip gol ayakları _SCORERS_CUPMATCHWINNERN__ [füzelerine|gollerine] engel olamadılar. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0 _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _TW_ _LEAGUECUPNAME_ kupasi yarı final ilk ayağında [galibiyeti aldı|avantajı ele geçirdi|yüzü gülen taraf oldu]. _TW_ , _TL_ takımını _LEAGUECUPNAME_ yarı final ilk ayağında [yendi|geçti|bitirdi]. _TL_ , _TW_ takımına _LEAGUECUPNAME_ yarı final ilk ayağında maÄŸlup oldu. _CUPMATCHLOSER_ takımı _LEAGUECUPNAME_ yarı finalinde kaybetti. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ finaline adını yazdırdı. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ finale çıktı. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ final maçında oynamaya hak kazandı. _CUPMATCHWINNER_ _CUPMATCHLOSER_ takımını _LEAGUECUPNAME_ yarı finalinde [yendi|maÄŸlup etti|iÅŸini bitirdi]. _T0_ ve _T1_ takımları arasında [Heyecanlı|Mükemmel] _LEAGUECUPNAME_ yarı finali oldu. _CUPMATCHLOSER_ , _LEAGUECUPNAME_ finaline adını yazdıramadı ve maçtan elleri boÅŸ ayrıldı. _CUPMATCHLOSER_ , _REL_ sonuçla _LEAGUECUPNAME_ yarı finalinde kaybeden takım oldu. _CUPMATCHWINNER_ _REW_ skoru sonrası yarı final ikinci maçında, finale ulaÅŸan ekip oldu. _TL_ aldıkları _RE_ sonuç ile yarı final ikinci maçında durumu eÅŸitlemesi çok zor. _TL_ takımı yarı final ilk maçında evinde kaybetmelerinin ardından [endiÅŸeli|moral bozukluÄŸu içerisinde|umutları tükenmiÅŸ durumda]. _TW_ deplasmanda aldıkları galibiyetle finale bir adım daha yaklaÅŸtılar. _TW_ deplasman galibiyeti ile final oynama inançlarını tazelemiÅŸ oldular. _TW_ evlerinde galibiyeti aldı ve yarı final ikinci maçta kolay kolay durdurulamayacak bir takım olduklarını gösterdiler. _TW_ galibiyeti almış olabilir,ancak ikinci maç için bir gol farkı yeterli gelmeyebilir. _TL_ takımının ikinci maç için hala ÅŸansları var ancak o maçta sahada herÅŸeylerini ortaya koymalılar. _TL_ ikinci maç için iyi bir hazırlık yaptıkları takdirde eÅŸitliÄŸi yakalamaları mümkün. _RE_ bu sonuç _CUPMATCHWINNER_ takımının ikinci maçta finale gitmesine yeterli geldi. _CUPMATCHLOSER_ taraftarları , _RE_ sonuçla biten yarıfinal sonrası takımlarını yuhalayıp, öfkeden stadı darmadağın ettiler. _CUPMATCHWINNER_ ile _CUPMATCHLOSER_ yarıfinalinde, sonuca giden ve finale çıkan _CUPMATCHWINNER_ oldu. _CUPMATCHWINNER_ , _CUPMATCHLOSER_ tarafından durdurulamadı ve _REW_ lik sonuçla finale adını yazdırma baÅŸarısını gösterdi. _CUPMATCHWINNER_ takımına finale çıkarken, skorerleri _SCORERS_CUPMATCHWINNERN__ yardım etti ; _AT_ seyirciyi de futbola doyurdular. _SCORERS_CUPMATCHWINNERN__ attıkları gollerle final biletini _CUPMATCHLOSER_ elinden kapıp kendi takımlarına götürdüler. _SCORERS_CUPMATCHWINNERN__ bu futbolcular _CUPMATCHLOSER_ takımının finale çıkmasına attıkları gollerle izin vermedi. _CUPMATCHWINNER_ maçın tüm kontrolü kendilerindeydi, _REW_ skorla finale çıkarken pek zorlanmadılar. _CUPMATCHWINNER_ oyunu sürekli forse ettiler ve finale çıkmak için haklı bir oyun ortaya koydular. _CUPMATCHLOSER_ , rakip gol ayakları _SCORERS_CUPMATCHWINNERN__ [füzelerine|gollerine] engel olamadılar.Yarı finalde elendiler. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0 _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _TW_ _LEAGUECUPNAME_ kupasi çeyrek final ilk ayağında [galibiyeti aldı|avantajı ele geçirdi|yüzü gülen taraf oldu]. _TW_ , _TL_ takımını _LEAGUECUPNAME_ çeyrek final ilk ayağında [yendi|geçti|bitirdi]. _TL_ , _TW_ takımına _LEAGUECUPNAME_ çeyrek final ilk ayağında maÄŸlup oldu. _CUPMATCHLOSER_ takımı _LEAGUECUPNAME_ çeyrek finalinde kaybetti. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ yarı finaline adını yazdırdı. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ yarı finale çıktı. _CUPMATCHWINNER_ takımı _LEAGUECUPNAME_ yarı final maçında oynamaya hak kazandı. _CUPMATCHWINNER_ _CUPMATCHLOSER_ takımını _LEAGUECUPNAME_ çeyrek finalinde [yendi|maÄŸlup etti|iÅŸini bitirdi]. _T0_ ve _T1_ takımları arasında [Heyecanlı|Mükemmel] _LEAGUECUPNAME_ çeyrek finali oldu. _CUPMATCHLOSER_ , _LEAGUECUPNAME_ yarı finaline adını yazdıramadı ve çeyrek finalden elleri boÅŸ ayrıldı. _CUPMATCHLOSER_ , _REL_ sonuçla _LEAGUECUPNAME_ çeyrek finalinde kaybeden takım oldu. _CUPMATCHWINNER_ _REW_ skoru sonrası çeyrek final ikinci maçında, yarı finale ulaÅŸan ekip oldu. _TL_ aldıkları _RE_ sonuç ile çeyrek final ikinci maçında durumu eÅŸitlemesi çok zor. _TL_ takımı çeyrek final ilk maçında evinde kaybetmelerinin ardından [endiÅŸeli|moral bozukluÄŸu içerisinde|umutları tükenmiÅŸ durumda]. _TW_ deplasmanda aldıkları galibiyetle yarı finale bir adım daha yaklaÅŸtılar. _TW_ deplasman galibiyeti ile yarı final oynama inançlarını tazelemiÅŸ oldular. _TW_ evlerinde galibiyeti aldı ve çeyrek final ikinci maçta kolay kolay durdurulamayacak bir takım olduklarını gösterdiler. _TW_ galibiyeti almış olabilir,ancak ikinci maç için bir gol farkı yeterli gelmeyebilir. _TL_ takımının ikinci maç için hala ÅŸansları var ancak o maçta sahada herÅŸeylerini ortaya koymalılar. _TL_ ikinci maç için iyi bir hazırlık yaptıkları takdirde eÅŸitliÄŸi yakalamaları mümkün. _RE_ bu sonuç _CUPMATCHWINNER_ takımının ikinci maçta yarı finale gitmesine yeterli geldi. _CUPMATCHLOSER_ taraftarları , _RE_ sonuçla biten çeyrek final sonrası takımlarını yuhalayıp, öfkeden stadı darmadağın ettiler. _CUPMATCHWINNER_ ile _CUPMATCHLOSER_ çeyrek finalinde, sonuca giden ve yarı finale çıkan _CUPMATCHWINNER_ oldu. _CUPMATCHWINNER_ , _CUPMATCHLOSER_ tarafından durdurulamadı ve _REW_ lik sonuçla yarı finale adını yazdırma baÅŸarısını gösterdi. _CUPMATCHWINNER_ takımına yarı finale çıkarken, skorerleri _SCORERS_CUPMATCHWINNERN__ yardım etti ; _AT_ seyirciyi de futbola doyurdular. _SCORERS_CUPMATCHWINNERN__ attıkları gollerle yarı final biletini _CUPMATCHLOSER_ elinden kapıp kendi takımlarına götürdüler. _SCORERS_CUPMATCHWINNERN__ bu futbolcular _CUPMATCHLOSER_ takımının yarı finale çıkmasına attıkları gollerle izin vermedi. _CUPMATCHWINNER_ maçın tüm kontrolü kendilerindeydi, _REW_ skorla yarı finale çıkarken pek zorlanmadılar. _CUPMATCHWINNER_ yarı final yolculuÄŸuna çıkıyor. _CUPMATCHWINNER_ oyunu sürekli forse ettiler ve yarı finale çıkmak için haklı bir oyun ortaya koydular. _CUPMATCHLOSER_ , rakip gol ayakları _SCORERS_CUPMATCHWINNERN__ [füzelerine|gollerine] engel olamadılar.Çeyrek finalde elendiler. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1 _T1_ beraberliÄŸi _T0_ takımından kurtardı _T0_ ve _T1_ ilk maçta berabere kaldılar _T1_ beraberlikten memnun _TW_ ilk maçta rakibi _TL_ [yendi|maÄŸlup etti|dize getirdi]. _TL_ ilk maçta rakibine karşı kaybetti İlk karşılaÅŸmada _TW_ takımından tatmin edici bir galibiyet geldi _TW_ ilk maçta galibiyet elde etti,ancak üst tur için yeterli olmayabilir. _TL_ ilk maçta avantajlı bir yenilgi aldı. _TW_ takımını _REW_ sonuç sonrası durdurmak bir hayli güç olacak. _TL_ takımı bu maç sonunda tüm umutlarını sahaya gömmüş oldu._TW_ oldukça baÅŸarılıydı maç boyunca. _TW_ , _REW_ sonuç sonrası hazırlıklarını bir sonraki tur için yapmaya baÅŸladı. _TW_ deplasmanda kazanmasıyla üst tura yakın olan taraf oldu. _TL_ takımı evinde aldığı bu maÄŸlubiyetle ,ikinci tur için ÅŸanslarını oldukça düşürdüler. _TW_ bu kolay deplasman galibiyeti sonunda ikinci maç için iÅŸleri epey kolayladı diyebiliriz. _TW_ takımı _REW_ deplasman galibiyeti sonrasında , arkalarına rahat bir yastık aldılar. _TW_ ÅŸimdi kesinlikle iyi bir pozisyondalar ve evlerinde alacakları bir beraberlik onlara yeterli olacak. _TW_ evindeki bu galibiyetin, bir sonraki tur için yeterli olduÄŸunu düşünüyorlar olmalılar. _TL_ aldıkları sonucu ikinci karşılaÅŸmada dengelemek için ; evlerindeki maçta çok çalışmaları gerekecek. _TW_ evlerinde gerçekten iyi bir performans gösterdiler, ancak ikinci maçta bu skor yeterli olabilecek mi? ilerde göreceÄŸiz. _TW_ nin evinde aldığı _REW_ galibiyet sonunda , diyebiliriz ki ikinci maç hala ortada. _TL_ takımı eÄŸer ikinci maçta 2 gol atabilme baÅŸarısını gösterebilirse, sonraki tur için hala ÅŸansı var. _TL_ : deplasmanda attıkları bu gol kendilerine sonraki maç için önemli bir avantaj saÄŸladı. _TW_ , _TL_ takımını yenmiÅŸ olabilir ancak,onların hedefleri için bu goller yeterli olabilecekmi acaba? _T1_ ikinici maçta evinde galibiyet alırsa ÅŸansı olabilir. _AT_ taraftarın olduÄŸu karşılaÅŸmada _T0_ takımı evinde umutsuz bir sonuç aldı.Beraberlik. _T0_ takımının ikinci karşılaÅŸmada gerçekten çok iyi oynaması gerekiyor, yoksa bu kendileri için yolun sonu olacak. _T1_ takımının ikinci maçta alacağı 0 : 0 lık beraberlik,kendilerine bir sonraki tur için yeterli olacak. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1 _CUPMATCHWINNER_ bir üst tura çıktı _CUPMATCHWINNER_ yoluna devam etti _CUPMATCHLOSER_ elendi. _CUPMATCHLOSER_ kupa dışında. _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet ald _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _CUPMATCHWINNER_ takımına beraberlik yetti. _CUPMATCHWINNER_ beraberlikle yoluna devam etti. _CUPMATCHLOSER_ , _RE_ sonuçla ikinci maç sonunda elendi _REW_ sonucuyla _TW_ , _TL_ takımını elemesine yetmedi _REW_ bu sonuç, _TW_ takımına ikinci maçta yaramadı. _TW_ güzel sonuca raÄŸmen elendiler: _REW_ _CUPMATCHWINNER_ kaybetmesine raÄŸmen... _CUPMATCHWINNER_ deplasmanda atılan gol kuralına teÅŸekkür etmeli. _CUPMATCHWINNER_ _RE_ sonucunda avantajlı olan taraftı. _CUPMATCHWINNER_ sadece bir gol averajı ile sevindiler _CUPMATCHLOSER_ denk geçen maçta kupa dışı kaldılar. _CUPMATCHWINNER_ kolayca bir üst turda _CUPMATCHWINNER_ rahatca bir üst turda. _CUPMATCHWINNER_ üst tura kolayca çıktı. _SCORERS_CUPMATCHWINNERN__ attıkları gollerle _CUPMATCHWINNER_ takımının _LEAGUECUPNAME_ kupasında bir üst tura geçmesinde önemli rol oynadılar. _CUPMATCHWINNER_ golcülerine teÅŸekkür etmeli _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ bir sonraki turda... ayrıca golcüleri _SCORERS_CUPMATCHWINNERN__ günündeydi. _AT_ taraftar ikinci maçtaki, _RE_ sonuç sonrası nefes nefese kaldı. Her iki takımda biribirine denk güçtelerdi, fakat _CUPMATCHWINNER_ ÅŸanslı gününde olan taraftı. _CUPMATCHLOSER_ takımının maçı kazanması için sadece bir gol yeterliydi ama olmadı. Çok sıkı bir eÅŸleÅŸmeydi ancak, _CUPMATCHLOSER_ , _RE_ skor sonrası ikinci maçta elenmiÅŸ oldu. CUPMATCHWINNER_ , _CUPMATCHLOSER_ takımına karşı müthiÅŸ bir direnç gösterdi ve bir sonraki tura yükseldiler. _CUPMATCHWINNER_ takımı bir sonraki tura yükselmelerini saÄŸlayan gol ayaklarına _SCORERS_CUPMATCHWINNERN__ madalya takmalılar. _SCORERS_CUPMATCHWINNERN__ gol ayaklarıyla _CUPMATCHWINNER_ takımı, rakibi _CUPMATCHLOSER_ takımını hizaya soktu. _CUPMATCHWINNER_ gerçek kimliklerini gösterdikleri karşılaÅŸmada kupa tecrübeleriyle turu geçmeyi baÅŸardılar. _CUPMATCHLOSER_ ÅŸanslarını yeterince kullanamadılar ve kupanın dışında kaldılar. _CUPMATCHWINNER_ bu maçta hakim olan taraftı ve hala kupada en iddialı takım olduklarını gösterdiler. match 25 _CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPHOMEAWAY_ = 0 _CUPMATCHWINNER_ yeni tura merhaba dedi _CUPMATCHWINNER_ bir üst turda _CUPMATCHLOSER_ ÅŸanssız günlerinden birini yaÅŸadılar,elendiler. _CUPMATCHLOSER_ Artık kupada yok _TW_ , _TL_ takımını uzatmalar sonunda [yendi|geçti|bitirdi] _TW_ uzatmalarda gelen zaferle galibiyet aldı _TW_ , _TL_ takımını _REW_ sonuçla penaltılarla da olsa [yendi|galibiyet elde etti|üzdü] _TW_ penaltılarda soÄŸukkanlı oldular ve istedikleri sonucu aldılar _CUPMATCHWINNER_ takımına Beraberlik yetti. _CUPMATCHWINNER_ beraberlikteki avatajıyla kupayı aldı ikinci turda _CUPMATCHLOSER_ _RE_ sonuçla elendi _CUPMATCHWINNER_ sadece bir gol averajıyla turu geçti _CUPMATCHLOSER_ denk geçen maçta turu geçemedi _CUPMATCHWINNER_ kolayca turu geçen taraf oldu _CUPMATCHWINNER_ rahatça bir sonraki turda _CUPMATCHWINNER_ sonraki tura kolayca ulaÅŸtı _SCORERS_CUPMATCHWINNERN__ attıkları gollerle _CUPMATCHWINNER_ takımının _LEAGUECUPNAME_ kupasında bir üst tura geçmesinde önemli rol oynadılar. _CUPMATCHWINNER_ golcülerine teÅŸekkür etmeli _SCORERS_CUPMATCHWINNERN__. _CUPMATCHWINNER_ bir sonraki turda... ayrıca golcüleri _SCORERS_CUPMATCHWINNERN__ günündeydi. _AT_ taraftar , _RE_ sonuç sonrası nefes nefese kaldı. Her iki takımda biribirine denk güçtelerdi, fakat _CUPMATCHWINNER_ ÅŸanslı gününde olan taraftı. Çok sıkı bir eÅŸleÅŸmeydi ancak, _CUPMATCHLOSER_ , _RE_ skor sonrası ikinci maçta elenmiÅŸ oldu. _CUPMATCHWINNER_ , _CUPMATCHLOSER_ takımına karşı müthiÅŸ bir direnç gösterdi ve bir sonraki tura yükseldiler. _CUPMATCHWINNER_ takımı bir sonraki tura yükselmelerini saÄŸlayan gol ayaklarına _SCORERS_CUPMATCHWINNERN__ madalya takmalılar. _SCORERS_CUPMATCHWINNERN__ gol ayaklarıyla _CUPMATCHWINNER_ takımı, rakibi _CUPMATCHLOSER_ takımını hizaya soktu. _CUPMATCHWINNER_ gerçek kimliklerini gösterdikleri karşılaÅŸmada kupa tecrübeleriyle turu geçmeyi baÅŸardılar. _CUPMATCHLOSER_ ÅŸanslarını yeterince kullanamadılar ve kupanın dışında kaldılar. _CUPMATCHWINNER_ bu maçta hakim olan taraftı ve hala kupada en iddialı takım olduklarını gösterdiler. bygfoot-2.3.2/support_files/strategy/0000755000175000017500000000000011225071373016704 5ustar eliaseliasbygfoot-2.3.2/support_files/strategy/strategy_normal2.xml0000644000175000017500000001141611225071372022724 0ustar eliaselias normal2 352, balanced, best players play 1 352 442 433 532 343 best off balanced 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend defender midfielder defender forward midfielder defender anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/strategy/strategy_attack1.xml0000644000175000017500000001141311225071372022677 0ustar eliaselias attack1 433, attack, best players play 1 433 343 352 442 532 best off attack 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend defender midfielder defender forward midfielder defender anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/strategy/strategy_attack2.xml0000644000175000017500000001141211225071372022677 0ustar eliaselias attack2 343, attack, best players play 1 343 433 352 442 532 best off attack 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend defender midfielder defender forward midfielder defender anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/strategy/strategy_defence.xml0000644000175000017500000000301311225071372022735 0ustar eliaselias defence defensive 1 442 352 433 532 343 best off balanced anti anti on forward midfielder defender defender forward midfielder bygfoot-2.3.2/support_files/strategy/strategy_defend.xml0000644000175000017500000001141211225071372022573 0ustar eliaselias defend 532, defend, best players play 1 532 442 352 433 343 best off defend 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend defender midfielder defender forward midfielder defender anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/strategy/strategy_gy.xml0000644000175000017500000001141211225071372021765 0ustar eliaselias gy 442, balanced, best players play 1 442 352 433 532 343 best off balanced 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend defender midfielder defender forward midfielder defender anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/strategy/strategy_fit.xml0000644000175000017500000001142011225071372022127 0ustar eliaselias fit 442, balanced, fittest players play 1 442 352 433 532 343 fittest balanced off 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend defender midfielder defender forward midfielder defender anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/strategy/strategy_gy2.xml0000644000175000017500000001227311225071372022055 0ustar eliaselias gy2 442, balanced, best players play 1 442 352 433 532 343 best off balanced 532 442 352 defend 532 442 352 all-out-defend fittest fittest anti 433 343 352 attack 343 433 352 on all-out-attack 532 442 352 defend 532 442 352 all-out-defend 442 532 352 best on balanced defender midfielder forward defender midfielder defender midfielder forward anti midfielder defender defender midfielder defender anti midfielder midfielder defender anti forward midfielder defender on forward midfielder defender forward midfielder defender on forward midfielder defender bygfoot-2.3.2/support_files/hints/0000755000175000017500000000000011225071373016167 5ustar eliaseliasbygfoot-2.3.2/support_files/hints/bygfoot_hints_nl0000644000175000017500000000314011225071372021456 0ustar eliaseliasstring_hint Je kan een opgeslagen spel laden vanaf de opdrachtregel door de bestandsnaam als een argument mee te geven (bv. 'bygfoot mijnspel.zip'). De '.zip' extentie kan weggelaten worden. Als het bestand in the standaard opgeslagen spelen map staat mag je ook het volledige pad weglaten. string_hint Als uw scout beter is, zullen er meer spelerattributen (bv. Leeftijd) getoond worden in de transferlijst en wanneer je andere teams aan het bekijken bent. string_hint Goede scouts schatten de waarde en de lonen van de speler juister. string_hint Goede scouts schatten de talentwaarden van een speler juister. string_hint Met een goede kine zullen de spelers (gemiddeld) sneller van blessures terugkeren. string_hint Bygfoot heeft een beetje opdrachtregel parameters. Voer 'bygfoot -h' uit om de te bekijken string_hint Met boost zullen de spelers (van uw team) beter spelen, maar uw spelers zullen meer blessures en rode kaarten krijgen. Hun fitheid zal ook sneller achteruitgaan. Met anti-boost zal het omgekeerde gebeuren. string_hint Als je meer investeert in uw jeugdacadmie zullen er meer en betere jeugdspelers zijn. string_hint Met een betere jeugdcoach zullen er betere spelers in uw jeugdacademie zijn, ze zullen ook sneller beter worden. string_hint Uw jeugdspelers zullen sneller beter worden als je ze meer laat spelen. string_hint Als uw stadion heel veilig is zullen er meer spelers naar uw matchen komen kijken, maar je zal nooit 100.000 supporters in een 4de klasse match krijgen. string_hint In de 2de spelerslijst kan je spelers sorteren door op de colomhoofding te klikken. bygfoot-2.3.2/support_files/hints/bygfoot_hints_tr0000644000175000017500000000445011225071372021477 0ustar eliaseliasstring_hint İsterseniz komut satırından Bygfoot için tek bir argüman ile dosyaadı vererek bir kayıtlı oyun yükleyebilirsiniz. Bir '.zip' uzantılı dosya kabul edilebilir. EÄŸer dosya varsayılan kayıt klasöründe ise dosyanın tam yolunu göstermeniz gerekir. string_hint Yetenek Avcınız yeterince iyi ise, transfer listesinde daha yetenekli futbolcuları ve ayrıca diÄŸer takımlardaki yetenekli futbolcuları görebilirsiniz . string_hint İyi Yetenek Avcıları ile oyuncuların deÄŸerlerini ve ücretlerini daha doÄŸru deÄŸerlerle göstertebilirsiniz. string_hint İyi Yetenek Avcıları ile oyuncuların yeteneklerini daha doÄŸru deÄŸerlerle göstertebilirsiniz. string_hint İyi bir Takım Doktoru ile, futbolcular sakatlıklarda daha hızlı iyileÅŸir. (Ne kadar iyi doktor, o kadar hızlı iyileÅŸme). string_hint Çok önemli bir iÅŸiniz varsa Bygfoot oynamaya sakın baÅŸlamayın. Bitiremeyebilirsiniz (iÅŸinizi, oyunu deÄŸil :P). string_hint Bygfoot oldukça kullanışlı komut satırı parametrelerine sahiptir. Mesela 'bygfoot -h' ile özetleri görmek mümkündür. string_hint Takım desteÄŸi açıkken (HIZLI), futbolcular daha iyi oynarlar fakat bunun yanında sakatlıklıklar ve kırmızı kartlar gelebilir, ayrıca kondüsyonları çabuk azalır. Takım desteÄŸi YAVAS olduÄŸunda, tam tersidir. string_hint 'Genç oyuncu akademisi desteÄŸi' ne kadar fazla ise, daha iyi gençler gelecek ve daha sık aralıklarla akademiye kayıt olacaktır. string_hint Daha iyi bir Genç takım antrenörü ile, daha iyi gençler akademinize kayıt olacaktır. İyi bir antrenör ile gençler daha iyi ve hızlı geliÅŸecektir. string_hint Gençlerinizi Takımınızda oynattığınız sürece,onların geliÅŸimi daha çabuk olacaktır. string_hint EÄŸer Stadınız daha güvenlikli ise,daha çok seyirci stadınıza gelecektir. Bununla birlikte bir 4.lig maçında 100.000 seyirci beklemeyin.Üst liglerde seyirsi sayısı her zaman daha fazladır,bununla birlikte daha fazla seyirci için bilet fiyatlarında ayarlamalar yapabilirsiniz. string_hint İkinci oyuncu listesinde sütun baÅŸlıklarına tıklayarak futbolcularınızı özelliklerine göre sıralayabilirsiniz. string_hint Futbolcuların Sarı ve Kırmızı kartları her karşılaÅŸma için ayrı ayrı sayılmaktadır.bygfoot-2.3.2/support_files/hints/bygfoot_hints_it0000644000175000017500000000412611225071372021466 0ustar eliaseliasstring_hint Puoi caricare una partita precedentemente salvata dalla riga di comando, passando come singolo argomento a Bygfoot il nome del file. L'estensione '.zip' puo' essere omessa. Se il file e' nella cartella predefinita per i salvataggi, puoi omettere anche il percorso completo. string_hint Migliore sara' il tuo osservatore, e maggiori saranno le caratteristiche che puoi vedere nella finestra dei trasferimenti o quando stai osservando la rosa di altre squadre. string_hint Un buon osservatore stima il valore dei giocatori e il relativo stipendio in modo piu' accurato. string_hint Un buon osservatore stima il talento dei giocatori in modo piu' accurato. string_hint Con un buon fisioterapista, i giocatori recupereranno prima dai loro infortuni. string_hint Non cominciare a giocare a Bygfoot se hai un lavoro urgente da svolgere. Non lo finirai.(il lavoro, non il gioco!). string_hint Bygfoot ha alcuni parametri per la riga di comando. Chiama 'bygfoot -h' per vedere l'elenco. string_hint Con il boost acceso, i calciatori giocheranno meglio ma i cartellini rossi e gli infortuni saranno piu' frequenti, e la loro forma calera' piu velocemente. Con il boost impostato su anti, tutti questi cambiamenti saranno invertiti. string_hint Piu' alto sara' l'investimento nella squadra giovanile, e migliori saranno i giocatori che ne faranno parte, inoltre il numero di iscrizioni aumentera'. string_hint Migliore e' il tuo allenatore delle giovanili, e migliore sara' la qualita' dei giocatori che entreranno a far parte delle giovanili. Con un buon allenatore, i giovani svilupperanno il loro potenziale in minor tempo. string_hint I tuoi giovani cresceranno prima se li fai giocare in prima squadra. string_hint Piu' alta sara' la sicurezza del tuo stadio e piu' spettatori verrano a vedere le partite. Non avrai, comunque, 100.000 spettatori se giochi in serie C. string_hint Nella seconda lista della rosa, puoi ordinare i tuoi giocatori cliccando sull'intestazione di colonna. string_hint I cartellini gialli e quelli rossi saranno conteggiati separatamente per ogni competizione. bygfoot-2.3.2/support_files/hints/bygfoot_hints_de0000644000175000017500000000423411225071372021442 0ustar eliaseliasstring_hint Ein Bygfoot-Spielstand kann geladen werden, indem man die Datei als auf der Kommandozeile als Argument übergibt. Die Erweiterung '.zip' kann weggelassen werden. Befindet sich die Datei im Standard-Save-Verzeichnis, so kann auch der volle Pfad weggelassen werden. string_hint Je besser Ihr Spielbeobachter ist, desto mehr Spielereigenschaften erscheinen in der Transferliste und beim Durchstöbern anderer Teams. string_hint Gute Spielerbeobachter schätzen Wert und Gehalt der Spieler genauer ein. string_hint Gute Spielerbeobachter schätzen den Talentwert der Spieler genauer ein. string_hint Wenn Sie einen guten Physio haben, erholen sich die Spieler schneller von einer Verletzung (im Schnitt, jedenfalls). string_hint Spielen Sie nicht, wenn Sie etwas Dringendes zu erledigen haben. Sie könnten gezwungen sein, es gegen 4 Uhr morgens zu erledigen, nachdem Sie aufgestiegen sind. string_hint Bygfoot hat einige Kommandozeilenargumente. Rufen Sie Bygfoot mit der '-h' oder '--help' option auf, um einen Überblick zu bekommen. string_hint Mit eingeschaltetem Boost spielen die Spieler besser, aber die Wahrscheinlichkeit von Spielverweisen und Verletzungen nimmt zu, und die Fitness lässt stärker nach. Mit Anti-Boost gilt in allem das umgekehrte. string_hint Je mehr Sie in die Jugendförderung stecken, desto besser sind die Nachwuchsspieler, die sich in der Nachwuchsmannschaft anmelden. Es kommen auch öfter Jugendliche in die Mannschaft. string_hint Je besser der Nachwuchstrainer ist, desto besser sind die Nachwuchsspieler, die sich in der Nachwuchsmannschaft anmelden. Unter einem guten Trainer entwickeln sich die Jugendlichen auch schneller. string_hint Die Nachwuchsspieler entwickeln sich schneller, wenn Sie öfters mal in der Profimannschaft spielen dürfen. string_hint Wenn Ihr Stadion sehr sicher ist, kommen mehr Zuschauer. Aber Sie werden natürlich keine 100.000 Zuschauer in einem Viertliga-Spiel haben. string_hint In der zweiten Spielerliste können sie die Spieler sortieren, indem Sie auf die Spaltenüberschriften klicken. string_hint Gelbe und rote Karten eines Spielers werden für jeden Wettbewerb extra gezählt. bygfoot-2.3.2/support_files/hints/bygfoot_hints_en0000644000175000017500000000336111225071372021454 0ustar eliaseliasstring_hint You can load a savegame from the command line by giving the filename as single argument to Bygfoot. The '.zip' extension can be omitted. If the file is in the default saves directory, you may also omit the full path. string_hint The better your scout is, the more player attributes you can see in the transfer list window and when browsing other teams. string_hint Good scouts estimate players' values and wages more accurately. string_hint Good scouts estimate players' talent values more accurately. string_hint With a good physio, players will recover from injuries faster (on average, anyway). string_hint Do not start playing Bygfoot if you have urgent work to do. You won't finish it (the work, not the game). string_hint Bygfoot has quite a few command line parameters. Call 'bygfoot -h' to see a summary. string_hint With boost on, players will play better but red cards and injuries are likelier to occur, and their fitness decreases faster. With boost set to anti, all these changes are reversed. string_hint The higher your investment in your youth academy, the better the youths that register will be, and they'll register more often, too. string_hint The better your youth coach is, the better the youths that register at your academy. With a good coach, the youths will develop faster, too. string_hint Your youths will develop faster if you let them play in your team. string_hint If your stadium is very secure, more people will come to watch games. You won't get 100.000 spectators in a 4th league match, however. string_hint In the second player list, you can sort your players by clicking on the column headers. string_hint The yellow and red cards of a player are counted separately for each competition. bygfoot-2.3.2/support_files/hints/bygfoot_hints_el0000644000175000017500000000667211225071372021462 0ustar eliaseliasstring_hint ΜποÏείτε να φοÏτώσετε ένα αποθηκευμένο παιχνίδι (savegame) δίνοντας το όνομα του αÏχείου ως ένα απλό ÏŒÏισμα στο Bygfoot. Η κατάληξη .zip μποÏεί να παÏαληφθεί. Αν το αÏχείο είναι στον Ï€Ïοεπιλεγόμενο κατάλογο αποθήκευσης, μποÏεί να παÏαληφθεί και η πλήÏης διαδÏομή. string_hint Όσο καλÏτεÏος είναι ο ÏƒÎºÎ¬Î¿Ï…Ï„ÎµÏ ÏƒÎ±Ï‚, τόσες πεÏισσότεÏες ιδιότητες ενός παίκτη μποÏείτε να δείτε στη λίστα μεταγÏαφών και κατά την πεÏιήγηση άλλων ομάδων. string_hint Καλοί ÏƒÎºÎ¬Î¿Ï…Ï„ÎµÏ Ï…Ï€Î¿Î»Î¿Î³Î¯Î¶Î¿Ï…Î½ ακÏιβέστεÏα τις τιμές και τους μισθοÏÏ‚ των παικτών. string_hint Καλοί ÏƒÎºÎ¬Î¿Ï…Ï„ÎµÏ ÎµÎºÏ„Î¹Î¼Î¿Ïν ακÏιβέστεÏα τις τιμές ταλέντων των παικτών. string_hint Με έναν καλό φυσιοθεÏαπευτή, οι παίκτες θα αναÏÏώνουν από Ï„ÏαυματισμοÏÏ‚ πιο γÏήγοÏα (κατά μέσο ÏŒÏο, βέβαια). string_hint Μην αÏχίζετε το Bygfoot αν έχετε να κάνετε κάποια επείγουσα δουλειά. Δεν θα τελειώσετε ποτέ (τη δουλειά, όχι το παιχνίδι). string_hint Το Bygfoot έχει μεÏικές παÏαμέτÏους γÏαμμής εντολών. Πατήστε 'bygfoot -h' για να δείτε μία σÏνοψη. string_hint Με ενεÏγοποιημένη την ώθηση, οι παίκτες παίζουν καλÏτεÏα αλλά είναι πιθανότεÏο να συμβοÏν κόκκινες κάÏτες και Ï„Ïαυματισμοί και η φυσική τους κατάσταση μειώνεται πιο γÏήγοÏα. Αν τεθεί στο αντί, όλες αυτές οι αλλαγές αντιστÏέφονται. string_hint Όσο μεγαλÏτεÏη η επένδυση σας στην ακαδημία νέων, τόσο καλÏτεÏοι νέοι θα εγγÏάφονται σε αυτή και θα εγγÏάφονται συχνότεÏα. string_hint Όσο καλÏτεÏος ο Ï€Ïοπονητής νέων, τόσο καλÏτεÏοι οι νέοι που θα εγγÏάφονται στην ακαδημία σας. Με έναν καλό Ï€Ïοπονητή, οι νέοι θα αναπτÏσσονται γÏηγοÏότεÏα. string_hint Οι νέοι σας θα αναπτÏσσονται γÏηγοÏότεÏα αν τους αφήνετε να παίζουν στην ομάδα σας. string_hint Αν το γήπεδο σας είναι Ï€Î¿Î»Ï Î±ÏƒÏ†Î±Î»Î­Ï‚, πεÏισσότεÏοι άνθÏωποι θα έÏχονται να δουν τα παιχνίδια. Εν τοÏτοις δεν θα έχετε 100.000 θεατές σε έναν αγώνα της τέταÏτης κατηγοÏίας. string_hint Στην δεÏτεÏη λίστα παικτών μποÏείτε να ταξινομήσετε τους παίκτες σας με κλικ στις επικεφαλίδες στηλών. string_hint Οι κίτÏινες και κόκκινες κάÏτες ενός παίκτη μετÏιοÏνται ξεχωÏιστά για κάθε διοÏγάνωση. bygfoot-2.3.2/support_files/hints/bygfoot_hints_es0000644000175000017500000000314411225071372021460 0ustar eliaseliasstring_hint Puedes cargar una partida salvada desde linea de comandos con el nombre del archivo como argumento de Bygfoot. La extensión '.zip se puede omitir. Si el archivo esta en el directorio por defecto, también se puede omitir la ruta completa. string_hint Cuanto mejor es tu ojeador, más atributos de del jugador pueden ser vistos en la ventana de transferencias cuando se miran otros equipos. string_hint Con mejores ojeadores los sueldos y valores de los jugadores se estiman mejor. string_hint Los buenos ojeadores estiman mejor el talento de un jugador. string_hint Con un buen fisio, los jugadores se recuperarán antes de las lesiones. string_hint Bygfoot tiene algunos parámetros en linea de comandos. Usa 'bygfoot -h' para ver la lista. string_hint Con la motivación activada, jugaras mejor pero puede haber más tarjetas y lesiones y su forma física empeorará más rápido. Con la motivación desactivada, ocurrirá lo contrario. string_hint Cuanto mayor sea la inversión en la academia, reclutaras mejores juveniles y además, más a menudo. string_hint Con mejor entrenador de juveniles, mejor serán los jugadores que entren en tu academia. Con un buen entrenador, los juveniles aprenderán también más rápido. string_hint Los jóvenes se desarrollarán más rápido si juegan en el equipo. string_hint Si el estadio es muy seguro, acudirá más gente a ver los partidos. No puedes tener más de 100.000 espectadores en el 4º partido de liga aun así. string_hint En la segunda lista de jugadores, puedes ordenar los jugadores pulsando en las cabeceras de las columnas. bygfoot-2.3.2/support_files/hints/bygfoot_hints_sv0000644000175000017500000000326411225071372021504 0ustar eliaseliasstring_hint Du kan läsa in ett sparat spel frÃ¥n kommandoraden genom att ange filnamnet som ett enda argument till Bygfott. Filändelsen ".zip" kan utelämnas. Om filen finns i standardkatalogen för sparade spel kan du även utelämna hela sökvägen. string_hint Ju bättre din talangscout är, ju fler spelarattribut kan du se i övergÃ¥ngslistan och när du bläddrar i andra lag. string_hint Bra talangscouter kan uppskatta spelarnas värden och löner pÃ¥ ett mer exakt sätt. string_hint Bra talangscouter kan uppskatta spelarnas värden pÃ¥ ett mer exakt sätt. string_hint Med en bra fysik kan spelarna Ã¥terhämta sig frÃ¥n skador fortare (i alla fall i genomsnitt). string_hint Bygfoot har ett antal kommandoradsparametrar. Anropa "bygfoot -h" för att se ett sammandrag. string_hint Med boost pÃ¥ kommer spelarna att spela bättre med röda kort och skadar kommer att inträffa oftare och deras form minskar snabbare. Med boost satt till anti, blir alla dessa ändringar omvända. string_hint Ju högre din investering i din fotbollsskola är, ju bättre är ungdomarna som registreras där, och de kommer ocksÃ¥ att registera sig oftare. string_hint Ju bättre din ungdomsledare är, desto bättre är ungdomarna som registreras i din skola. Med en bra ledare kommer ungdomarna även att utvecklas snabbare. string_hint Dina ungdomar kommer att utvecklas snabbare om du lÃ¥ter dem spela i ditt lag. string_hint Om din stadium är mycket säker kommer fler personer och tittat pÃ¥ matcherna. Du kommer dock inte att fÃ¥ 100000 Ã¥skÃ¥dare pÃ¥ en match i en lägre liga. string_hint I andra spelarlistan, kan du sortera dina spelare genom att klicka pÃ¥ kolumnens huvud. bygfoot-2.3.2/support_files/hints/bygfoot_hints_bg0000644000175000017500000000573711225071372021453 0ustar eliaseliasstring_hint Може да зареждате запазена игра от ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´, като подадете файловото име като проÑÑ‚ аргумент към командата. Разширението ".zip" може да бъде пропуÑнато. Ðко файлът е в Ñтандартната папка за запазените игри, може Ñъщо да пропуÑнете и пътÑÑ‚ към файла. string_hint Колкото по-добър е разузнавачът Ви, толкова повече атрибути на играчите може да виждате в ÑпиÑъка за транÑфер и когато разглеждате чужди отбори. string_hint Добрите разузнавачи преценÑÑ‚ ÑтойноÑтта и заплатите на играчите по-точно. string_hint Добрите разузнавачи преценÑÑ‚ талантите на играчите по-точно. string_hint С добър физиотерапевт, играчите ще Ñе възÑтановÑват от контузии по-бързо (в повечето Ñлучаи). string_hint Bygfoot има доÑта параметри за ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´. Ð’ терминал напишете "bygfoot -h", за да видите обобщение. string_hint Когато тлаÑъкът е включен, играчите играÑÑ‚ по-добре, но е по-вероÑтно да има контузии и червени картони. Също така тонуÑÑŠÑ‚ на играчите Ñпада по-бързо. При тлаÑък наÑтроен на анти, вÑички тези промени за Ñ Ð¾Ð±Ñ€Ð°Ñ‚ÐµÐ½ знак. string_hint Колкото повече инвеÑтирате в младежката Ñи академиÑ, толкова по-добри ще Ñа младежите, които Ñе запиÑват и ще Ñе запиÑват и по-чеÑто. string_hint Колкото по-добър е треньорът на младежите, толкова по-добри ще Ñа младежите запиÑващи Ñе в академиÑта. С добър треньор, младежите ще Ñе развиват по-бързо. string_hint Младежите Ви ще развиват качеÑтвата Ñи по-бързо, ако им позволите да играÑÑ‚ в оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ð¾Ñ‚Ð±Ð¾Ñ€. string_hint Ðко Ñтадионът Ви е много Ñигурен, повече хора ще идват да гледат мачовете. Ðо въпреки това не може да имате 100 000 души публика в мач за четвърта лига. string_hint Във Ð²Ñ‚Ð¾Ñ€Ð¸Ñ ÑпиÑък Ñ Ð¸Ð³Ñ€Ð°Ñ‡Ð¸, може да Ñортирате играчите като натиÑкате върху заглавната чаÑÑ‚ на колоните. bygfoot-2.3.2/support_files/hints/bygfoot_hints_zh0000644000175000017500000000356711225071372021503 0ustar eliaseliasstring_hint ÌáÊŸ Äã¿ÉÒÔÖ±œÓÚ¹ýÃüÃîÃÃÀ޶ÃÈ¡œø¶È(×÷ΪbygfootµÄ²ÎÊý),.zipµÄºó׺¿ÉÒÔʡȥ,µ±ŽæµµÔÚĬÈÃÎÄŒþŒÃÖÃʱ,ÄãÒ²¿ÉÒÔÊ¡ÂÔÃêÕû·Ÿ¶ string_hint ÌáÊŸ ÄãµÄÇòÌœÄÜÊԜǿ,ÄãŸÃÄÜÔڲ鿎±ðµÄÇò¶Ó»òÕßת»áÃñíʱ¿ŽµœžüÃ꟡µÄÇòÔ±ÃÅâ string_hint ÌáÊŸ ºÃµÄÇòÌœÄܹ»×ŒÈ·µÄ·ÖÎö³öÇòÔ±µÄŒÛÖµºÃ¹€×Ê string_hint ÌáÊŸ ºÃµÄÇòÌœÄܹ»×ŒÈ·µÄÅöÃÇòÔ±µÄDZÃÅ  string_hint ÌáÊŸ ºÃµÄ¶ÓÒœÄܹ»Ê¹ÇòÔ±žü¿ìµÄŽÓÉ˲¡ÖÃ»ÖžŽ string_hint ÌáÊŸ BygfootÖ»ÓúÜÉÙµÄÃüÃîÃòÎÊý,²ÎŒû 'bygfoot -h' string_hint ÌáÊŸ ÔÚŒÓǿģʜÃÂ,ÇòÔ±»áÓÞüºÃµÄ·¢»Ó,µ«ÊÇÒ²»áÔöŒÓÇòÔ±µÃºì»ÆÅƺÃÉ˲¡µÄŒžÂÊ,ËûÃǵĜ¡¿µ×Ž¿öÒ²»áܵµÄžü¿ì.µ±ÉèÖÃŒÓǿģʜΪantiʱ,¿ÉÒÔ±ÜÃâÒÔÉõÄÇé¿ö string_hint ÌáÊŸ Äã¶ÔÇàÄê¶ÓµÄö×ÊÔœ¶à,ÄãÇò¶Ó×¢²áµÄ¶ÓÔ±µÄˮ׌ŸÃ»áÔœžß,ìʱҲ»ážüŒÓƵ·± string_hint ÌáÊŸ ÇàÄê¶ÓœÌ÷µÄˮƜԜžß,×¢²áÄãµÄÇàÄê¶ÔµÄÇòÔ±µÄˮƜŸÃ»áÔœžß.ÓÃÒ»žöºÃµÄœÌ÷,ÇàÄê¶ÓÇòÔ±µÄ³É³€Ò²»ážüŒÓÑžËÙ string_hint ÌáÊŸ µ±Äãµ÷ÓÃÇàÄê¶ÓÔÚÄãµÄÇò¶ÓÖñÈÈüʱ,ËûÃǟûá³É³€µÄžüŒÓÑžËÙ string_hint ÌáÊŸ Çò³¡µÄ°²È«ÃµÊýÔœžß,¹ÛÖڟûáÔœ¶à,ŒŽ±ãÈçŽË,ÄãÒ²²»»áÔÚÒ»žöËÄŒ¶ÃªÈüÖÃÓ­À޳¬¹ý100,000Ö®¶àµÄÇòÃÔ string_hint ÌáÊŸ ÔÚºò²¹ÇòÔ±ÃñíÖÃ,Äã¿ÉÒÔÚ¹ýµ¥»÷¶¥¶ËµÄÃà¹ØÀžÄ¿À޶ÔÇòÔ±œøÃÃÃ…Ã…Ãò bygfoot-2.3.2/support_files/hints/bygfoot_hints_ro0000644000175000017500000000371311225071372021473 0ustar eliaseliasstring_hint PuteÅ£i încărca un jos salvat din linia de comandă prin numele fiÅŸierului ca argument simplu. Extensia '.zip' poate fi omisă. Dacă fiÅŸierul este în directorul standard de salvări, puteÅ£i omite de asemenea ÅŸi calea întreagă. string_hint Cu cât căutătorul de talente e mai bun, cu atât puteÅ£i vedea mai multe atribute în lista de transferuri ÅŸi când navigaÅ£i alte echipe. string_hint Căutătorul de talente bun estimează valoarea ÅŸi salariul jucătorilor mai exact. string_hint Căutătorul de talente bun estimează talentul jucătorilor mai exact. string_hint Cu un bun maseur, jucătorii îşi vor reveni din accidentări mai repede (în medie). string_hint Nu începeÅ£i să jucaÅ£i Bygfoot dacă aveÅ£i ceva urgent de făcut. Nu veÅ£i termina (munca, nu jocul!). string_hint Bygfoot are doar puÅ£ini parametrii de comandă de linie. ScrieÅ£i 'bygfoot -h' pentru un sumar. string_hint Cu stimularea pornită, jucătorii vor juca mai bine, dar cartonaÅŸele roÅŸii ÅŸi accidentările sunt mai probabile, iar ajustarea scade mai repede. Cu stimularea setată anti, toate acestea sunt inversate. string_hint Cu cât investiÅ£ia în academia de tineret este mai mare, cu atât juniorii care se înregistrează sunt mai buni ÅŸi se vor ÅŸi înregistra mai des. string_hint Cu cât mai bun este antrenorul de juniori, cu atât juniorii care se înregistrează în academie sunt mai buni. Cu un antrenor bun, juniorii se vor ÅŸi dezvolta mai repede. string_hint Juniorii dumneavoastră se vor dezvolta mai rapid dacă îi lăsaÅ£i să joace în echipa dumneavoastră. string_hint Dacă stadionul dumneavoastră este foarte sigur, mai multă lume va veni să vizioneze meciul. TotuÅŸi, nu veÅ£i avea 100.000 de spectatori în liga a patra. string_hint ÃŽn a doua listă de jucători, jucătorii pot fi sortaÅ£i apăsând capul de coloană. string_hint CartonaÅŸele galbene ÅŸi roÅŸii ale unui jucător sunt calculate separat pentru fiecare competiÅ£ie.bygfoot-2.3.2/support_files/hints/bygfoot_hints_da0000644000175000017500000000355111225071372021437 0ustar eliaseliasstring_hint Du kan indlæse et gemt spil fra kommandolinjen, ved at give filnavnet som argument til Bygfoot. Efternavnet .zip kan udelades. Hvis filen er i den normale mappe for gemte spil, behøver du ikke skrive hele stien til filen. string_hint Jo bedre din talentspejder er, des flere spillerattributter kan du se i transferlisten og pÃ¥ spillerne i de andre klubber. string_hint Gode talentspejdere vurderer spillernes værdier og lønninger mere præcist. string_hint Gode talentspejdere vurderer spillernes talentværdier mere præcist. string_hint Med en god fysioterapeut, vil spillerne hurtigere komme sig efter skader (sÃ¥dan gennemsnitligt set, altsÃ¥). string_hint Begynd ikke at spille Bygfoot hvis du har arbejde, der haster. Du fÃ¥r ikke gjort det færdigt (arbejdet altsÃ¥, ikke spillet). string_hint Bygfoot har en del kommandolinjeparametre. Tast »bygfoot -h« for en oversigt. string_hint Med boost sat til vil spillerne yde bedre, men sandsynligheden for at fÃ¥ skader og røde kort vil stige, og deres form vil falde hurtigere. Med boost slÃ¥et fra, er det naturligvis omvendt. string_hint Jo mere, du investerer i dit ungdomsakademi, des bedre unge spillere vil begynde pÃ¥ akademiet, og der vil ogsÃ¥ være flere, der begynder. string_hint Jo bedre, din ungdomstræner er, des bedre unge spillere vil begynde pÃ¥ akademiet. Med en god træner, vil de unge ogsÃ¥ udvikle sig hurtigere. string_hint Dine ungdomsspillere vil udvikle sig hurtigere, hvis du lader dem spille pÃ¥ dit hold. string_hint Hvis dit stadion har meget høj sikkerhed, vil flere folk komme til kampene. Du vil dog ikke fÃ¥ 100.000 tilskuere til en kamp i 4. division. string_hint I den anden spillerliste, kan du sortere dine spillere ved at klikke pÃ¥ kolonnehovederne. string_hint De gule og røde kort hos en spiller tæller kun i den konkurrence, de er uddelt i. bygfoot-2.3.2/support_files/hints/bygfoot_hints_fr0000644000175000017500000000422311225071372021457 0ustar eliaseliasstring_hint Vous pouvez charger une partie sauvegardée depuis une ligne de commande en tapant simplement Bygfoot. L'extension ".zip" pouvant être oubliée. Si le fichier se situe dans le répertoire de sauvegardes par défaut, vous pouvez également vous passer du chemin complet. string_hint Meilleur est le recruteur et plus vous pouvez voir d'informations sur un joueur dans la fenêtre de la liste des transferts ou lorsque vous parcourez d'autres équipes. string_hint De bons recruteurs estiment les valeurs et salaires des joueurs avec plus de précision. string_hint De bons recruteurs estiment le talent des joueurs avec plus de précision. string_hint De bons kinés permettent aux joueurs de récupérer plus rapidement lors de blessures (en moyenne). string_hint Ne commencez pas à jouer à Bygfoot si vous avez un travail urgent à faire. Vous ne le finiriez pas. (votre travail, pas le jeu) string_hint bygfoot à quelques paramètres en ligne de commande. Tapez "bygfoot -h" pour voir un résumé des commandes. string_hint Avec le Boost activé, les joueurs joueront mieux mais ils seront plus succeptibles de se blesser ou de prendre des cartons rouges. De plus, leur forme diminuera plus vite. Avec le Boost en mode "anti", tous ces changements seront inversés. string_hint Plus vous investissez dans votre centre de formation et meilleurs seront les jeunes qui vous rejoindront ainsi que la fréquence à laquelle ils rejoindont votre club. string_hint Plus votre entraineur des jeunes est performant et meilleurs seront les jeunes qui rejoindront votre centre de formation. Un bon entraineur permettra également aux jeunes de se développer plus vite. string_hint Vos jeunes se developperont plus vite si vous les laissez jouer dans votre équipe. string_hint Si votre stade est très sur, plus de monde viendra voir des matches. Vous n'atteindrez cependant pas 100.000 spectateurs au niveau national. string_hint Dans la seconde liste des joueurs, vous pouvez classer vos joueurs en cliquant sur le titre de la colonne. string_hint Les cartons jaunes et rouges d'un joueur sont comptés séparémment pour chaque compétition. bygfoot-2.3.2/support_files/bygfoot_app0000644000175000017500000002401711225071373017302 0ustar eliaselias# this file contains all the constants (mostly string constants) # that are related to the appearance of the game -- treeview colours, # icons etc. ################################################### # treeview background and foreground colours ###### ################################################### # font attributes for the help window string_help_window_title_attribute size='large' string_help_window_program_name_attribute weight='bold' size='large' # colours of the live game commentary for the away team string_treeview_live_game_commentary_away_fg black string_treeview_live_game_commentary_away_bg lightgrey # font attributes for the live game window result. string_treeview_helper_live_game_result_attributes weight='bold' size='large' # default background and foreground in treeviews string_treeview_helper_color_default_background white string_treeview_helper_color_default_foreground black # player list colours # colours for user players on the transfer list for # which there is an offer string_treeview_helper_color_transfer_offer_user_fg white string_treeview_helper_color_transfer_offer_user_bg darkgreen # colours for players on the list that have # an accepted offer by the current user string_treeview_helper_color_transfer_offer_accepted_current_fg white string_treeview_helper_color_transfer_offer_accepted_current_bg darkorange # colours for players on the list that have # an accepted offer by another user string_treeview_helper_color_transfer_offer_accepted_other_fg white string_treeview_helper_color_transfer_offer_accepted_other_bg darkred # colours for cpu players for which the user just # placed an offer string_treeview_helper_color_transfer_offer_fg black string_treeview_helper_color_transfer_offer_bg lightblue # player attribute colours string_treeview_helper_color_player_pos_goalie_bg black string_treeview_helper_color_player_pos_goalie_fg white string_treeview_helper_color_player_pos_defender_bg darkgreen string_treeview_helper_color_player_pos_defender_fg white string_treeview_helper_color_player_pos_midfielder_bg darkblue string_treeview_helper_color_player_pos_midfielder_fg white string_treeview_helper_color_player_pos_forward_bg darkred string_treeview_helper_color_player_pos_forward_fg white # position colours when injured or banned string_treeview_helper_color_player_pos_disabled_fg black string_treeview_helper_color_player_pos_disabled_bg gray80 string_treeview_helper_color_player_injury lightgreen string_treeview_helper_color_player_banned red string_treeview_helper_color_player_yellow_danger yellow string_treeview_helper_color_player_fitness_normal darkgreen string_treeview_helper_color_player_fitness_below1 darkorange string_treeview_helper_color_player_fitness_below2 orangered string_treeview_helper_color_player_fitness_below3 red # see also the int constants for contract limits string_treeview_helper_color_player_contract_normal darkgreen string_treeview_helper_color_player_contract_below1 darkorange string_treeview_helper_color_player_contract_below2 orangered string_treeview_helper_color_player_contract_below3 red # colours for cskill in wrong position string_treeview_helper_color_player_bad_cskill_bg lightblue string_treeview_helper_color_player_bad_cskill_fg red # fixture list colours # the header, e.g. 'champions' league round robin' string_treeview_fixture_header_bg lightgrey string_treeview_fixture_header_fg black # team of current user string_treeview_current_user_bg darkblue string_treeview_current_user_fg white # teams of other users string_treeview_user_bg wheat string_treeview_user_fg black # background of the team and league/cup symbols string_treeview_symbol_bg lightgrey # background for the teams in a table string_treeview_table_first tomato string_treeview_table_promotion lightblue string_treeview_table_relegation lightgreen string_cup_highlight1 lightblue string_cup_highlight2 khaki string_cup_highlight3 gold # colour for expenses in the finances string_treeview_finances_expenses_fg red # background colour of a stadium event in the stats string_treeview_stadium_event_bg orange # foregrounds for positive or negative skill difference # in the oppononent info string_treeview_opponent_skill_positive_fg darkred string_treeview_opponent_skill_negative_fg darkgreen # colours for a next match not this week string_treeview_opponent_match_later_bg khaki string_treeview_opponent_match_later_fg black # foreground of own team bar in the opponent preview string_treeview_opponent_value_colour_fg darkgreen # background and foreground colours for # the function cells in the memorable matches # window string_treeview_helper_mmatches_replay_fg white string_treeview_helper_mmatches_replay_bg darkgreen string_treeview_helper_mmatches_remove_fg white string_treeview_helper_mmatches_remove_bg darkred string_treeview_helper_mmatches_export_fg black string_treeview_helper_mmatches_export_bg lightblue string_treeview_helper_mmatches_add_fg black string_treeview_helper_mmatches_add_bg khaki # background for the W/L/D column in the season result # treeview string_treeview_helper_season_results_win_bg green string_treeview_helper_season_results_loss_bg red string_treeview_helper_season_results_draw_bg khaki ############################################# # various colours ########################### ############################################# # live game scale configuration string_game_gui_live_game_scale_color_defend lightblue string_game_gui_live_game_scale_color_midfield khaki string_game_gui_live_game_scale_color_attack gold string_game_gui_live_game_scale_color_chance orange string_game_gui_live_game_scale_color_goal red string_game_gui_live_game_scale_color_miss lightgreen # colour indicating ball possession during a live game string_live_game_possession_color darkblue ############################################# # icons in treeviews ######################## ############################################# # meter icons (style, boost) in the main window string_game_gui_style_all_out_attack_icon style_all_atk.png string_game_gui_style_attack_icon style_atk.png string_game_gui_style_balanced_icon style_bal.png string_game_gui_style_defend_icon style_def.png string_game_gui_style_all_out_defend_icon style_all_def.png string_game_gui_boost_on_icon boost_on.png string_game_gui_boost_off_icon boost_off.png string_game_gui_boost_anti_icon boost_anti.png # icons used in live games string_live_game_event_start_match_icon whistle.png string_live_game_event_lost_possession_icon lost_possession.png string_live_game_event_penalty_icon penalty.png string_live_game_event_scoring_chance_icon scoring_chance.png string_live_game_event_header_icon header.png string_live_game_event_goal_icon goal.png string_live_game_event_own_goal_icon goal_own.png string_live_game_event_post_icon post.png string_live_game_event_cross_bar_icon cross_bar.png string_live_game_event_save_icon save.png string_live_game_event_miss_icon miss.png string_live_game_event_foul_icon foul.png string_live_game_event_foul_yellow_icon yellow.png string_live_game_event_send_off_icon red.png string_live_game_event_injury_icon injury.png string_live_game_event_temp_injury_icon injury_temp.png string_live_game_event_stadium_breakdown_icon stadium_brkn.png string_live_game_event_stadium_fire_icon stadium_fire.png string_live_game_event_stadium_riots_icon stadium_riot.png string_live_game_event_substitution_icon sub.png string_live_game_event_structure_change_icon structure_change.png # icons for the league stats view string_treeview_league_stats_off_teams_icon style_all_atk.png string_treeview_league_stats_def_teams_icon style_all_def.png string_treeview_league_stats_scorers_icon scoring_chance.png string_treeview_league_stats_goalies_icon save.png # icons for the season history string_treeview_season_hist_league_champions_icon champion.png string_treeview_season_hist_cup_champions_icon win_final.png # icons in the user history view string_treeview_helper_user_history_symbol_start_game_icon start_game.png string_treeview_helper_user_history_symbol_fire_finances_icon fire_finance.png string_treeview_helper_user_history_symbol_fire_failure_icon fire_failure.png string_treeview_helper_user_history_symbol_end_season_icon end_season.png string_treeview_helper_user_history_symbol_win_final_icon win_final.png string_treeview_helper_user_history_symbol_lose_final_icon lose_final.png string_treeview_helper_user_history_symbol_reach_cup_round_icon reach_cup_round.png string_treeview_helper_user_history_symbol_job_offer_accepted_icon job_offer.png string_treeview_helper_user_history_symbol_promoted_icon promoted.png string_treeview_helper_user_history_symbol_relegated_icon relegated.png string_treeview_helper_user_history_symbol_champion_icon champion.png # arrow icons in the tables string_treeview_table_up_icon table_up.png string_treeview_table_down_icon table_down.png string_treeview_table_stay_icon table_stay.png # player status icons string_treeview_helper_player_status_hot_streak player_status_hot.png string_treeview_helper_player_status_cold_streak player_status_cold.png string_treeview_helper_player_status_injury player_status_injury.png string_treeview_helper_player_status_ban player_status_ban.png string_treeview_helper_player_status_ok string_treeview_helper_player_status_yellow_danger player_status_yellow.png # betting cell string_treeview_helper_color_user_bet_fg black string_treeview_helper_color_user_bet_bg lightblue # colours for foreign countries in the job exchange list string_treeview_helper_color_job_international_fg black string_treeview_helper_color_job_international_bg lightblue # attributes for the news window string_news_window_week_number_attribute style='oblique' string_news_window_title_small_attribute size='small' string_news_window_title_attribute weight='bold' size='large' string_news_window_subtitle_attribute style='oblique' string_news_window_league_cup_attribute weight='bold' bygfoot-2.3.2/support_files/pixmaps/0000755000175000017500000000000011225071373016523 5ustar eliaseliasbygfoot-2.3.2/support_files/pixmaps/menu_player_shoots.png0000644000175000017500000000061111225071372023145 0ustar eliaselias‰PNG  IHDR Ù˰tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*IDATxœcø¿ÿ®Kt¹ëê Àgm]³hbšumŠ/NEý‡ÏE,ß4ãÀº×o^ãTdºü ìž'âkÏ÷Ìî?sp+vEz. œþÉ2u§áŠcß¾~Æ®HsÁ~ž•fï÷Ÿ¼§uŽ+™^þÍ{ðCÓÆµ?¾}Á®èÍ—ïÑ›÷Ü6ûí¾þÛ'üýûEÑׯ_Ïœ9³yóæÞÝØ9ãüŽE{¶®:váÊ·ïßJ—tl|~ë%Ãëׯ-Z4kÖ¬+Vœ½yÿÒõ@­'ÏŸ»tCRpòô’=]ŽÓ@ÖýüùóþýûGŽY»ýàíÛ·ŸþáÅ. ÿ¾þý}æòß·ŸÐUÿûçî«¿¯¿zy¡áåÁ»Ïÿ<óøÉ¼Ë§ýûƒpqvó‡Äe®ß¯™z´¨kTÃñúõÙ—oÍYtºa˦üïÃ5¸$-´Ž_yýÁ#¿ÂÍ:Þ=P [í&màiÞ™±vâìJï§ g.®[³g×’–9‡Å­[,b–/Ýu:°h3‡NÅÏ_~ý™Ã`7‹!wc་º+9"¯Æï_}èÄ„}'Ûï岘¬â3+©z±¸M;ƒbʹë/n—ªdõi•‰>ì3{¹ZÇ[¯.l9qáw_N^µãúýwJîSÃJ×3©ç‰ZÔí=qŸáû®77¦:?ií³CW@òÿÿ½»÷~üù{õѳƒgι+·œ3 š¼sóÉÈÒMõÓüðóÝ'R°ê_Ͼ;uvÿþýGŽ¿}÷PäÏÏß7o<þÿþýñóOî¾kíí ïß¿Ÿ™<Í_ ;wî<+"ò”ˆž30\áä<¦¥uÀÅåXO϶mÛ@*¶,Xp†886YYÍLNn®­-,,©˜™‘±‰a37÷&‡Í••»6o^ºtéÞ½{¡µefUÕìüü¥ ®Y³æØ±c/_¾Ds; ;ƒyIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/end_season.png0000644000175000017500000000134611225071372023053 0ustar eliaselias‰PNG  IHDR ²ÕtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*qIDATxœuRïORQæoècëOèC[}+›LsæèÇRÓ™Z+#mEÅÏ P¦ KÅ¥J˜%l*bþJf `š B6 .ZÜ^¹÷žÎ•¾zvvö¼Ïû>ÛyÞ=4pô!ñ8|3é¿1?ÈÆ‰gö`Øï€%-;”ŒÿXåA°³³)ÝÈ’[³|Jóý^è„ >ÔŒ§ØÜ`lLRè¡2ƒæîÔ l­íë[=Š» ôÝn×™†ý -’ð¡pòAs`ž¦îgÓ¡Òeù_wÜOל‚ÑJd²*•Šù®ë1¸w†jµ×egˆg!ƒ‡×)å~hó€YÔ¬N?Ì¡Úsµº^©¬uÎ'¤åû¬œå7\Œu>ÉΫ.;y±ð8‚D(%†F?¶ jέº¦´âÒÞ'^Ï"‹Uô^+t-NÒénjϮ}UÑE'ÄŠ>YeOK©Ã1A)‰Y]\ÃT?*têÛ½ì<'óËŒO^c•ߌÚÞvÔåRÿ~ã3eÕ'7ÙZœ^sÒÀhcÅAý% C'1à@Œ+n§&^d• <ÆåívHtyîiuŠ0ÉÁd×®½7ŽlªˆªIC;".±ñ¯LKÊýò[?GTÒë†×ãÀs^4;Ä_^¶Ñb¾Qït™÷¬6æSîUŽ´ZÛ/œ×JšxŒØpG'‡Ž ãÝ/lƒ#=:com¿' A’js à•™^YÇÕ8–Ž©¶#ÛV÷$Yq~ÒY¬z¨t»g`H¬V]&ƒ­¬Ø §6„¢{0j§$âÙ``X2TIâ¨lþúíê¼¥÷LIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/lose_final.png0000644000175000017500000000060411225071372023044 0ustar eliaselias‰PNG  IHDR Ô »÷tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*IDATxœ]O±jƒõ‡2æ+œÜƒ“B³8¦A\R ˆ6 ‚[pt¨u°¸ RPAH¨¹ZÓÞpܽw÷î2MÓ0 ˲ ‚àt:åy>ý⺮eYEQ$I†aEÛí¶iÏólÛFÒ4eY¶®kß÷a&hš>ŸÏ<ÏgY†€ÂõzÕu]Eè5MCQt·ÛÝn·‡øï™§ Ã0ÇÍ·§—pG’¤WäA_.Ã0Æq›ªªv]_Ì4$IbFEQ‚ à8þG xc½ŽV«O(À|Û¶3 = ‡ƒ·X|l÷}?Ó²,›æ†}-—Õfó¦(ÊçUUÅq¼ß¿›¦ nžàÍ•vîñVIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/win_final.png0000644000175000017500000000063011225071372022676 0ustar eliaselias‰PNG  IHDR Ô »÷tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*#IDATxœcøÿÿÿß¿ä‹gÎÝuh÷úÛ·nü‡†-[¶¬]»öÞ½{Ïú¸Ïë×vóUõ&>|ؾ}û¦M›._¾\RRòþýû£{×ÿ½šòe‡CU‚é¹sçêêê®_¿Î4áÇË–-ëèèøs"ü@—z€»Ù¤I“þüù2n ИæçÖ8™ªÊr„Ýÿ‘ÀÖ«æ¶Å!‹€¤¿ÿ¾jÕªÿþmݸrI{È·ÏïŸ?ŽJ¤&Fe(¶ÄJô'‹m«—ˈvE1¼·1ï×:ÍßûBþÏ2º2t?~üˆ.Í Iï ü{w)Ñ%ñë×/„ôœ©íŸVjþ9–ùïÙž-Ý.kf”¡»üý«GWÎ_²dÉš5k€®ÿ(oºg‹IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/reach_cup_round.png0000644000175000017500000000052711225071372024075 0ustar eliaselias‰PNG  IHDR ä…ªÖtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*âIDATxœ…Akƒ0†ýá…á¡¿AtBÞ$Ä3VÒ4­ª JöÔ›v2ßÇAa§”Šã¸,Ë<ÏüZGÈM-Bº5o›™ì‰¢( C­µùØ­#¤çž})$Ë2ß÷#·À9¯ëúAJy¸çsÉcËsmÛBnVš%nRj¿Žöû.Ip½j)v@åú~jš 8M; ”v ί§ÃY òg†;·p¢ÝKX 5ÁÇþ^?µtʨ¦7IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/champion.png0000644000175000017500000000067011225071372022532 0ustar eliaselias‰PNG  IHDR Ô »÷tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*CIDATxœcøzg,;{îü¿ÿà" @ü÷ïߎ¾…öñ2ÝÛx´“´;W—6üùó*ýõëW›ÈJÁ¢Œ‚6¢µ 6e…E ïß¿Ãðëׯ7oÞÄeõ292dÌ({ý…Y5L¡añ³gÏ€R ?þüöí›lX5x;ƒN¼RñÅ85cÏ>üøñƒá÷ïß@é3g.Hé{ËÌ?Ì S*S3çúõoß¾…JþüyÑ¢¢šžrÖ)Òr†<úá'OžÊ :ûãÇÚºŽ‡o¹ÏÊИ½Ã3¯(t<ÈåGž`–¶H¸üdåª-Ë–­áqɶZvðöí; —¥CCE•s'=ô… œ¥Xá¬ü‚.¨4ÐúýN¤d·Ý4Óß?éüù+÷ï?€ }tÐ9@GÁ$³÷hÜ`yIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/fire_failure.png0000644000175000017500000000076411225071372023374 0ustar eliaselias‰PNG  IHDR ä…ªÖtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*IDATxœcø >¾z|õÀªŸ_?ýÇÐøßïœÛÜ‘tjýTœ~|ýøïß_„ÀÃ÷÷\?¼§†GWŽÎ+›ß¶åüáÛï¼útóä±™S6ÍÝ‹Sßß?\:Ù˜¸Àœ5Ó˜!ÍI¸0™a]×þß?ÿðÃç÷ßfÔm²çÏod¸Ê°ñè¶+@Á;uu^¼Àçéeý{&3|ó`hÝ´ȽŸ¿ÝÙùó»w@öŸ'O¾~ýŠ®aNúцg@·õ®rþü¹1<|ž›Û—ž†„~ÕÖvÝÂâÃK†ÇC5œÝ2ûìÔëþ?¶ý P5e»MŠßºukñ¢E;'MÚµ]Qq[i)TÃïŸßá d¼{ùi~ûöõ³ŸÞwâ‡÷ïßµmÞ¼yúôé'LèÎqªÙ IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/history/fire_finance.png0000644000175000017500000000073711225071372023350 0ustar eliaselias‰PNG  IHDR ä…ªÖtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*jIDATxœcø¾~q×âw/bJ¦Ðß×wŽÎª™•nòëÇW,~|ùð÷Ïo±''ÿŸ™¹¶9âß¿¿X4<¿}~~¾ý”²íÛ—Þ¾yþÍÓ{ŸÞß8ûlë¼¶ÄU_>þB(¬©ùÿìHÐx žu3Ψ®0f˜ DN M˜f­i‡@Jýú_ZúŸ‡ç¿”Ôÿ’?<¼ù¡'ÿ˜ƒÀˆN[Þy¿~üý¿hÑ ÿÞÞÿû?>Oï^u¢ˆ.{ùÏžÿÿõõÿø€=”u]„k8´é!Hhñâÿüü K^¾DÑôq}ü~3–Ùp {V߃Êyyý·²úŽÐp`ý KŽ9!Z«jc÷Á5Ìj<ûÿâÅÿçÎý·±ùù?"ªáÛ§· ‹C@æýy®azíéÿ«WÿWRúÏÆö?6öÿ«W€z Œ?¿ÿ-è¸D»VÞ½{åT:4B€ÚºjËøIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_youth_academy.png0000644000175000017500000000136611225071372023115 0ustar eliaselias‰PNG  IHDR ši::tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*IDATxœmR]HSa>w݆Êð"’ÉîR©(„2£@Á¼ ÌyÓ]]Hˆ„S›ItæÙ::5¶¦þï8ž™sþlæ~Ô:j̹l*–nìÈœKwæ~üú†‡hÐ|ïó¼Ïûýð!íퟯ ‰¬®nAÑ_IÇÓV`xRO+é›ó,ÁEMápT/Úæi\9996<žÝVÙ4;gÝ·ã}¥Ó¹“¬Ëˉ½½³ãã ÙåÙA¥¥±íEE烩ttqÑ®V‡¶|Öž5­5wõ>éV_^^òžo7ÉÏÀ™B•(.V"\®ŠÏ7F£Ñ‚MY™>bà ¡PèÆ}< Â¥¥–yÆv¥r¹Ö†¬®#0Œrœ®SÔ,{zÀ­Ru,cmš¦KJ¬$IêtKb±ó1®þî@Qkû|¾»õ³J¥Ãp [}–¾´â99ýI;‰HzGŸ¢ò­ïÀ®éZ=J9/6‚ii¶×’H$Þ ˜¯?5ˆ¬°Ý~A™™•æ×³¼†ÞÓßÑMf‡d殎éõ• ¤Ü 2 Ûé÷^ …ßà¬ÆFGGǾ5²êÓûÎÏA~>Íá(ärKJ>¦ÝîæÜy›MŒšíš¯ã$9£×Ï ‹6›+ŽTV;W±Zt:7÷½Ç³Ÿ†ðûýyyz`eâ‡nppD¡PhµS:Ý”Åb),<.ªW …çµ-Û¶ªª†aØp0"ãruÛLzñ»›5#Š±Ð¸ÕDÄÐÐð䤞ÿhC¦™€?*s&™9&Rvþ/Hò“´¯¿ëƒŠ¢Ü?/üÚÝ/Ï âa¿¬¢³©µ›üve$9»©èIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/bygfoot_splash.png0000644000175000017500000005374211225071372022266 0ustar eliaselias‰PNG  IHDRYæöÏbKGDÿÿÿ ½§“ pHYs  šœtIMEÖ !qEm IDATxÚì}wx\Åõö{·¯V«¾êÅj–dKrï½á‚ÁcÀ˜05”ðƒ„$$„„¤‡0˜bª ¶1ƽ7Ù–‹$[½—]IÛûî|ì dYZíݽwµ+ßó<÷kï™3sÎ;gÎÌœCBjDQT€‰ÒÝOª×+B &DQÔ ‹üƒÒÝç·Lkl"„”ƒ#Ž8 ý 5¥(*@ €ˆ^é"„Ä#€•h `!ä@¯ßä4½&˜¯ !+8±æˆ£à!^¶ùN ç‡Ù9ˆ”8ÚûBˆÀŸ\ð.€8‘戣à"A¶9w߇ÈBlEMÐL±õóû³žåD™#Ž8eŠ’ùýâp$BH'ªq¢ ûð3Wl1Il•ëdy<᥇Ÿ I7Gq4L-Y ¡å›õ²Q±#/àsCËG ÈòC”í|< ®]ö¨û¶.tr ËG±H´Vé· ÔÞ|,Ù#çÿ°ÀåóEµ—¾Š5þ!uZÖ";§#ø\K–lÈ€¬Å¬Nñô;/¼æAvÓ›ÅãºUß Ä™WséK;_ Ý]pËŸÜø¾’w|8â@Ö#9ìfþX¡PVy­‚lkãaáöM×ÿÜjÑ<‰OvÓ½—Ïo¼Áá°.¸î¦Oš9ðáˆ#dY‡Å#ÈJe Ãdi϶O–å5ÕîúÓi+îÿ _[ñåF¸®ærÄGÈöON§Í#È&¥ÍªAhžýõ‰LFïÓ·Š2ê[×­°ÞdåñÅgy<¾Ên7Oq:mc.ÿ 2¯è'zNì9â(° Ë`"NG¢ãÏ4cÑ«m׊»`ßö2.Ÿ{ÿï‡eRï¿óøâ3ŠÄñ/͸îïÇ’'[Àn3R»¿¾+O,‰¢Àm rÄã«ÉádÉ& ô/¬î‰K¿ž›ºóòï"ûA"(¾2:®àO«ÖŸØ"H{¢þð@ ÃâUŸUöþGqî‚ YûÀ Ë*‡;€”y3úÈ®§þl³j¯»b…aǧÌ}á±âÉ«î¶>q ë»»@1Ðo|D5œAvËÆùs[¼@È•}žüÎ-ëOþU&Ov1ÿø B‡vþ,;,<Ù8~ú¯[¹Þ~ 27¾q† ô›PŠ7½ŸŽ–“’o?[ñK£¾uMŸO­Š¤‰¿¿eý‰Íîrœ8‡Øÿ»ô‹%¯?j6©®OËZüÓñÓÝÁõ gÉ!øñ@ˆÄ‘]à hö|sOqÕÅ_p8,#®èž 3wô?[pã†Rp>Ö¤šŠ/¢í|üQƒ®y5¾Hu`é­_áÆsøZ²AN:M½Ð“å' S ›˜šîjÑÖ®{X«®¹ }|¬AØ¥©ó_|¼hÒc­œB†YÌjÞ×.¸µ³½ôaB‘ †•߸v×/ù|çOÂÕä5ã.Ðk¥ž~—§tÐ9°ã‘ŠÒwŸsØM™WO$q{oX³ó™¸Äq&`Cvm¹sRmÅWOÙíÆœž¿ñø¢Ö¹ËÞú™"i‚5ÈÆ”ó£swÁUd2*Ã<ýWÒ «ÓÔ‹¶~¼ø~uç¥uèç„€,'†99€ -ð¹XòZÒɃÏ=n2´Ï¿¢ Н›0ó™ÿË-¼CΧ>ìÝA¯´V‹Fâé÷ä´YêPŸÃß?9ªìÌÏØmƬ~­ôˆ´mkªøaX°_&ଟ>´mÓòEÕß>Mˆ³ÏJŒ²å¹ç×gþ®›49 ²YtRÏ–l¾!v„©¦âËØÃ»ž|P¯©_:Ð;"IÔ¹5]ú‹@(å;2d2*_m˜ñ¨¦«ò–~~&é9Ëþ<÷ú·¸KÎ]<–Ífð²î+£!±äª¯Ú}êÀ®W¶¾“‡¾(û„¿}U ”r×aCŒvm^{ýëLËZü×ëoÛº›Ókd¡Nv›Ñ“»ÀÉã ƒÊÊ+;ýfê©C¼Ïa7GFÆäžLÍ\TÒÚp °Sy~¶ÅÔUèÍ_ôÙØ©¿à–“Á"ƒv3%Hˆ7ï¶7»¹¿I3+ÕŸ¯úl/7¦ÁkÐ 7KÖkrØÍž,¾ ºí¤í®Úù³WK˜›;Ç´7»n9‘1¹uœ2=•~!·äÐópØÍñÅ7ñøB,<¹4)}öÁióÿrR*‹¿"ûÄ™£ͲYuÙWŠ(Ïš_|÷óó–¿s Ü)‚kÎ’ Ÿ¬ÃnÐ’¥(^PìÁï]ܰþ^Û”ÆìЃDcwØ­Ñ@ˆCê°;¤ZuÍ"­ºfQ—òÂ'·¬?¹¡÷‡6«^v¥|òME“nÆ¢WJÁ"à@6hAÖaØ]@—%Û¥¼0‘‰r:;J—èÔu_Ê£FX8Ëgèhôø‡ZtêºgKOüíi§ÃqÅXw\¸ÀÆÞK"=ÿÏã f>óû‰³~_ÁM˜È9ÈZÅk=荒£í-'äm‡zm}”A×e³ê¥¡Ô"H-BQ¸E(Ž0‹Ä‘æ„äÉÊÔÌ…ÝL‚ɨÉõ·yãÜ_ÞñÐ¥ù1áÄuèhêüËFÝùàÞ­÷­R¶ž¼‘§äQgúÊžXcPÖ6eî /OþY-°Ȳ-~[?N‡Õ“%Kú.Ãvm¾ãamwõ /Š&bilMᄇߛ<çýmgkÃÁ(‡ÝËTÇé5õS¿Ü0ý¾Õ÷–üס¥E¡eÕ=Ç>2èš?¯*Û”f·™„fþö* 5Ì=­OðXvþªVîòG!sºÀé´I<°¬¯ ;ì™·€ÅÔ™]]þùÂÉsþXáo;«Ê7å3Í»ªíôòí›–«–ݶu'²CO2yŠcÌ”'ëÜÿì@óŠ~Òæ6.8€ ,;kX¸ ÂïR–EÄ(Fú¯WWppé­ß¼ÇD?´5ËÿõUÛîÚ·íÍÜëß<ÊéGÃ|8wAðY²bO¿w«.FÇ(F™{rØ`eŠÄ‘­cïûpú—Ïx²Jè¶»ªˆ-%©(ýßCc¦@Ç–¬gwAFî Ÿ,ZùñwB‘Œ±“ ¥Ç_͵Z´I¬õqˆk*¾Èš0ó™rNtƒ‹:ÛKÃí|| _ ¶MzüHFÎ2%>…–%ëð ²F}[To>³dÛÍn¨ÙQš¿ª‰öÕUn?¾ï·ÿÇÿB‘\Ÿ<ùhvÁê¦>|Rågß!Híùcîn¼–,ŸnU¹ì©¦e-©1ò†!Í(púÈ‹Ó[ößÊÖÓ“Ö>Ró¼H,wpÑ І´»ÀlTFöða³x„8<‚²Åܼë«5ÏvÏ|æõ‰³žõëTA·ª"l÷–;ŸtØÍr6x—ÉSªVß{úU©,ÞÖkܰwë½3/_ظÚé°†…G¤]Ês÷ËLÔwd×/Æ'¦NkÉbhbGÔöM7< UW•—¾«»î¦O^1òÆ!ZPöí/³I•~é܆ì¢IVsÃQùdíƒfdøèÔu2ïÊ´IK=ÿpdLîK¹£×4ûÚ¶Ý_¯»ÕjÑ$ô±<;ÇOzcnáÚÚ¦Úï*Jÿ7­£åÄ4§Ó.¦[~VÞÍû¥²ø+Ž5Ö|wùüû·÷”§×6æÕ]þ:yÄÈÛýíëŠsï®y²º[Ya2*%±ŠBuRú¬‚¿ŒÈ½¡º¦âó~¿•ÉS:èôÃÎ/V¯vØÍý³Û 5ß'¤e-R VNjæõšŸV¼wîÄßsÎýË2£¾-y w»”Š>z-÷g…Ù•]°ºáäçÌÎ~¢“i»«s¿Þ8ï¶UëO|:\7Lß¡×6¦÷þ›<*sH-ïœQ·VW”¾óÿ[ê÷¥$¦NÓ e?©ÚKåmM‡]Ê‹qÚî*…^Û'Ìè¸þöíßrðÇY²WX>ƒm|@KÃþi›Þ=íǯyެ¼•û¯úbTW|6àm¬¤´™5ÞZAßµfNgG©Ç›]g½<=-kÑvo-žüµE“ûïÑÝ¿[~ö­Enkø*2èšSïûÍÝÇ÷ýŒÌÕÑzrü·Ÿ­Ô,]½y×p܈¨¬¶Þ +ʬ+šøØå¡”å´¬ëºEâHµÕ¢‰rMŠ“T²]¯ÑÐ!jm8«j?§î¼¤Ðkâ ú–8“Qçìç:ºP( æ|xÃdC @ŒÝcB™A"íÖkR{»j*¾\ðÁ¿2òø|‘MÓ]•Ù/’S|{^ñ]5ÞÞ©CÏT•}²hPÀ¯ß;IÓUu02&Çë+°ÅÇô…/Ÿ›0󙲃ß=:­¦üóYãè²ü®»¼eÞ¡kg^÷’á&¸ËnÛúí¹“ÿ¬²Y´¢ÄÔéíiÙ‹•|¾xÈ#^ÅÄÕ´5ïri˜jÓi£ÚšŽE)[OÆu)Ëâ´êšXƒ®)Îhh³Y´r:®ŠÇ8¥¥KÃÙ’õÚ]@Q|犟ìÿð«÷¦Ýc4´]±)rðöC£Æ=°S‘8Þ0X?”úSÁ©¸Å›q:m¢c{=}ñªÏ÷ÒåU,‰" Wl<¢žõû³¶?4¯¹~ï€ø$çOþûyd†~Ì”'«†“FEá˜0ã7•}”dÈåxdáç{@Öá°Šz·ÉfÕó†6QdtŽi ï5ÝUÒ¶ÆÃqçc5]•±:mCœQßk6ªbq0ÂEñ ¾â®3²¡rA0 ó"¢FØnX»ë£-ÌYg6uÆxS®"ibÙì¥ÿ==Xœ<ðܨS‡þ¸ÄéuÂÆúªí“-fõ±$Êî ÏQ1¹–ïܽ£¡úÛ’½[ï½É¨o÷¡çxGv?µ¦¹~ßñQãî?¯Hœ 1ê[Å:mC˜Qß&u:¬¼ˆè,݈ܡ½–:\¬ŸÑãl:ò5ݪò,§Ã"îY%^:ÿAê᯴˜»#Ó;–ÝöÍ&Eâx­ÝnæíÛvß´¶Æ#¹&C{ŒÝn”²ÞhŠ2™9 Ù=äøâ?~Œb´éú5;>Þ¾iùm&C»Ç<[á‘-KWoÙ1ÿ'ö?;ºäПn kM:ì&IÙé7rÇMÿÕexOÏ^ڵꞿùhá*uç¥ –¼úÊo¦ÕW~3m W"crnY_ò C÷í¯iëgòœ?Øùå­±ñÅíøÕåŸ%íùú®u=òcÔ·Äïý枥…9yúð‹stšÚä€Î .åÜ"BàгբÛmz_œ®¥?>i¢aõ½%FÇÔô~ʈù¥·Ýþc™<Ùî©îc{3Æ€í¡ÚË[FÃÛᩎ[Ö—|Ÿ<¥‚ AÐtU¦Ÿ:øÜÁáíP²òoV®Zò­ 3Ÿ©À?}äÏ3úÊOgǹœýÛ\h€u¡ì Ë=x‚Å’õ`ç£];,"‹Y-éYšËä)ŽÕ÷žþjï¶û¦4ÕîÊ7Ú£ŠDDe¶å޾£tòÜçËÜõ ˜Cµ7Ëcz”m%©.‚#¿I‘8ÎFC»TÕv&'¸|gÉØ]ô§ ºUQÞ¼§î¼‘2EÓóo¾@‚…+6žp¢­éHTxDš)<"­'óëUBfеˆ»”çå1Š"Lžl¡(ÆN{ª@mÏ;F}›¨¹~o\Gˉ¸.åE…ºóR¼A×GðÕòù›P$SBÍç‹°âÎ};70›ßÑr‚Qåmm8˜t÷/Û¦-xé§ý“¶»FZ{yKRl|‘&5saç n.«AlY¦Ö+ëQ«®‘'¤LÑ÷÷[bêt]àZSñeByéÿòU­%©FC[4ä®=¹pÅÆãý•žèȽ¦=wôš¢]Y-Z~cÍwŠ–†ƒ ªö3 êÎK f£2’ÇÚÇÏxúÓýˈZeë©L¦Ê%ÄÁ?{ì¯ ªÊ?-ÎοåbFîòæäôÙÝÅG.ú~óš-'²ŠN|ôЬÅÿ,õ8ñwWʃfúµd¹S×2Èê5Þ½× G¯ìž¨¹nOÌžoî^¨×6^‘Y–ÇÙ&ÏþãE:}"G »`µ2»`µÀ×ÄP/±š5‚Ø„b=ý+J±â'ûvn~öUÛé fû»^Qzü•¹¥Ç_PnŽM(n5îÁ‹yÅ뚯A¹|4]•‰î)‰ºpê_³RGÌWfæ­PæÊJ^|ËçNp {%™M*¯âÃô-royÙ³uýU—0¶qö²7GDgù}#F™aC$llö­P(ÃÊŸìßõå{Ó–v)/°²b³é%mMG²ÛšŽdßÿL×´ù9œ;zMk0Z>FC»¨¢ôÝ4Šâ“#ol‹ŽÍc=ZŹ÷ò2óVè6Ðjêb‚­Ÿ¸ÓÈ^Ec¦i¢·÷Ð@BQ8–®Þ²ï³wƯtß0b ÚÆ˜}Ûî».6¾xsŒb´!Xäƒ'öm`ìåó;V4Tm«Yñ“}û(žÀÙûß-'S=Éœ@ º4Åm| gõ |R3j3r®¯¬¯Ú:ÒÓ{]ª‹ o—Aái޼¢ŸtôÓWPKÃÁ¨ï>¿e‰"yRóŠ;÷ ÆAŒˆÎ²ÍZò߃»·Üy¯Gͼ%»Í(¾tnÈi ^ªÞͦ.Á·ŸÞ0³­éHÆ•ãv SÙZrV‘4Ñ-Ñq­ Êü¬F}K¤^Û‘jéï}EâU{ó±Œ`’Î’ ,:3‚ÏgÍÜg=’¶»&Ön7 Áà·Òc-°Ùôbº6A|odáÊ‚±ëÏBhšëö¤ÏS·ø³·Ç]ß`Ýö-uêàs…L×™–µ¸¥oM Õß& ô~rƜΠÓúkãœlÐýæ…J§%¤L1$¤Lõ¸ñâtÚøÍu{b™¬·£ådˆÄÖ`ï£ÙK_/‹ÓζŽ*ÛN'u¶—F 5¿å¥ï¤ëµ ï««Üš[yñ“d&ëÌyãU-ÚÇô~zö5' *—A¯kµ\6ƒŸ/ê·ì¤´™ÊÎö³ñA²È'23‚Tï‰#-žRµcÔM‘<Ù8²pmg(õ“"qœùƵ»Kn\»goDt¶† Á±Z4â²³o1,Ö’05s×¼U—mÊÙüÁœé³ZìÏ2Ôlê’èÔuWœÛv8,‚Ö†ƒ1}ã)´!gÉÿ‡j L7xÞmVIë«¶Çsä RFÌ3,]½¹D ³³¡¬¥ÿËJ?ZRÚLƒDçµk¤½ùhâÿ›>¶¿r;ZN ¸áj6©‚ dy®_Ð'égzùUª†êIN§£’Çã{í3êÛ…Íu»#UígÃ¥²xkVÞÍÑY–áà*šôXGuÅçîMAFéüÉd$¤|8dgfív#mÙ­®ø"m¢ª¼!:®Àô£%z@ÞPµ=ÖjÑ+Ïé´SÄi§œN;e1w 5]—ÃušÙ@çUíç¢òsv¶—F“S¿õ£ëÙÚË[’­mHðcJV‹–oÐ6ѾåFœvÞ±½OçM|¬©òâGñ UÛŒ†6¿¬M“¡MªU׆EDe^11w«Ê%íÍÇcƒÊ’åñ™Þøâ‚Ë ²!sºÀå´÷.$TÉáÿ—•‘»¼”Ç\Ê„8Qwù›¨òÒw›jv*K¿¼—Å2lfû´ÌEEÒDµ²õ£V•Ýf\<ýFÒ¸iOµš§úªm1N§Í§au—·$Õ]Þ’Äd{šëöDGŒ½·÷9Zêü©§²} >ÈŠ¸1Èz^ìxó–²õTÔ¡gÎ^òŸz‡ÃJ©ÚÏJ/Ÿÿ@QSñE¼Qß:¨Õ’˜2U7Ü–Tc§>ÕôýW·1¾t½tîÝ”qÓž¢“#ŒЩ(ý_r0õo—òB8€î>À|Ĺ 8õlÉz­ Kþ›^_¹UaÐ5KqÐRì¤ôÙú!èV-žœQ·êNîÿAÝuYÆd¹Ýªòðæú}Q)sõè¤SŸK*;óv¢A×TJÚîš+R€Ûm&ž¦«Rl:Ä‚»€£A@6|²½À‡¢ÕV½¶vöO¾@âLɘgŽKªâ)O¶øö¡l¦Ë½pê?‰)skÙnwg…¸äðŸÓKÐE7ÚŽu©½å¸Œîär ;–lÈ€‰Õ¬²]Gʈù¡(|X bÁØ{5§þÑjÔ·0š¥¾rk¬É¨j–†Å±ºvöè_“‚`{ü^²* ÆFòxd¸š ¹Ó]ª²0¶ëÈu»z¸ !'@^ÑO:Ïý £›>‡™WvúuÅ„™Ï(ÙlkãÁˆ ÕN½å†/SÁÙNŸ@–;Ap­€l·ª\Êj‡eÎìüU†á<ÓN|D}öØË‰L/e+Jß›0ó™.¶Úm2*ùš®JI°ö+ïÇèVn•%0ñøÜé‚¡p„ X-žA×Äê,=k±N Ö™Ã#ÒHjæ"]cÍF­B­ºF\_µ="#g™ ëGÙZÌý*–Æ9{ëRBòd_ q:ìæ ’'žq {%u´–HÙ®#gôí8º5äÎè i™Y(;ýFLFÎ2VnÊu´œjMNŸmê-;a’ÒfššjwÕ Åùd¯eõ>gßaõzb˜,Ñž9r¥õZXJȽÁ"–Ä8,æ.FǾ¾z{¸A×,’ÉSß«½¼EÌ}𖵨ÒW—Ò³—ƒdùÜé‚@ƒ¬0@E«®T•ʪ’ÿ ŽÇò®…§(bâ ­­ ]§ºxúõÈÉsžg4Ä¢ºë²@Õv:hý±RY‚#F1ÊÙ¼"£sœA7öÜé‚€®&CÂ]`1«y{·®%N;kÃHHÑÄG×’ðÅÆÛ[0^né±W¢Ò³—ZS§[™+óÕÈà^,7õ';‰i3íá‘v½¦>h OàÉ'Ë"`dƒútª½TðÝç7ÇhÕ5¬ iîè5FIXÜ55ÃÇ%Œa%άÝn¢vm¾#ví#5^†šðH&Ãwà IDAT£ŠwùüûáÁÜ—£Æ=Øïå‰4·ÞwVUWùµ¤öÒqSÝ.±Í¢ÒÕ'ä;]P :KÖjÑPÕ埋«Ê6Išë÷ЉÓÎzc¦y’s ùK¢W´ÎšW´ÎêtØt- û…ågß–V•m÷Ç –,GÃdÕ—ø-õû…õUÛ„5߉KÀ”*5s¡5FQHX臠^zÅ( AQ<ÂÖ´Í~n·©‹§_“s?æ½×â­ìðøB¤f.t¦f.486^Í¥/~+,"*‹€Ùá ²Äé T¥ü–ú}‚ÖÆC‚¶¦#|“¡}È–PÅ“Ÿ¸&Nô%>_©,ÁiÔ·²Ò÷V‹ÖoÙ*;ó–Ølê ÚÍH¡(‚äßm÷…Ïܵ¶@ƒ,/B|òdd ²9]`µè¨ª²Oµ—¾´6æÛ¬Ú °ò¢bó9Ë®Y¡“…'£žP°6«Î/u:í8wâïâ`î¿‚±÷ÚDâŸ&ôœeN±$šXÌÝÓEâx_ ¾–d}Èq& –¬QßN}óÑBq—òBÐY$Å“·ãžÕe©P¶•°#\Â0¿6«Ë>åë4uAkÅR<ÆLyÒá+¹…kNý;`«¨ÄÔé=¾cîAA–õÓg½$F€KbH^Ѻkzé.Oe¯¥1~ìùSÿsß区Í‘ê—ìŒ{?¹pêßksbê .nÁp³d q¢ºü³ ±Â ?%aØ5í› HeÍ¢‘Hbø|š\µÝ5ho>´V,_ Áä9Ïû=AÇ&#>y2éh9Ë21mwa(,YBYøaÇõÕÞ| zmcÐ1.q3žfBàBzÙ%‹Hc­l›Íà3HV–}Ôý6q泈ˆÊd¬ ÆÞ‡Ž–¬·9.aÂd Àd Ï@9³~E°Ó÷•'%ã³ï^þo)Ç5.R[kew:^ÁˆìþÉÍ»ïmŸÅeÄ£èŽ68Oz±”ü•Ì$+ïÀne÷! èÁQ`‰AkÓW{e;ŒÝÁd<>…?™Ž1ËŠ¹‘ïÙhöDu7uûô¾38@,céÏ— ,Šùˆ‹#gdwÅ)…"3Žø!qÙ³êJê‚\GÎÌøÆB®s£Þ[DˆebX ̇€Õ´kà°;Àг–õ]† ë'YŒ ËžZŠèähVÊWŒP¸Vë„ö§IDÏ1ê.`Ñ’­båñ)Œœå×8\= KœšV bÒbh}gè .K6*)ËžZ†ðXöbÔÄD(äÐvèX)?c\:'èC²<³ß…ÕFÔ®ÏCja*ÂcÃÑÕØR7$Lñø<ä͉q7ŒcU1†Ë ]ì¬hºš»iƒ¬ÅÈÂD'GC(q½5ëÌ0ëL°š<ǯQd)°ôçK g?–KtJ + +ñ‘Z˜Ê ú,åßú¤ñ\#¾ûûN8®8 b™+Ÿ]ªãÕC°ôå#nŠ—!<†Wo‰M+_ÝLß/+`6Lö”,L¿sz¿å:옴&Õ&˜4F5F˜4&Õ®½„)·OP˜;‘‰ì„ÌM-Jƒ@ÄÝ?2%òSŸ¸ÝW vç?¿ÿ`Àb°àë¾Eo ¢0F/…¢ÅEÈ%ܨҤ˜ÔÖʶéËAX$³ [´¸h@àæ ø ŠIÙ¤5±Rîˆ #8!bwÏhØQ݇íꓦ&) ç ùwÃX^W‘TĦ¯ ›ÆÈöž€½Ywï#â#Ÿã iÓ0^&Å£1–óÇ-ÈúxíTuª!kx|–s¨ä(nƒØ’uÚéƒlD²À™›À Ã<ƤÅðõ]Æ•œ8œíÛË Ùñ|RçW{âFÄ‘¨Ä({( †›WÆw§"â#ð3;¦Ì€¬Ýæl&›ºðœ<*Ù¹à§óí ï<w0õš¿èÔ4”62®ä<ß9€|y¤øìxRu¬Ú¯mýœ©Ùv_êUéX¹ß,:|™ä80ed|Jvg3Ûr¶eìò1¶I«&Ù(Å K<ºý²Œƒ,_èȦMwùð¨ÏòEQ²§åXBeüõzVV…:¥–ÙDsÍé£ÀýŸÁf¶±jÅŠÂDdîýsM#ÆgعÁc—ǘ´€ñóo|ú–,q/s‘”Ÿ$l­hõ h3'Ž°Ê¢Âl¡2Ž:•žƒEݪ¡†d9}ôÂ]à‘ì;E{ý›k_ôØB}D|„“<ö):9ÊÎãó侹ĒuÀGwTþì<“/ KQ&Ü7€"Ÿ‡ÈÄH{ws7£.¾€ç€î¨Ìəޣ 7ë-´d-kJ–):9ÚJchÒYYⲄìÃENCQýYÆýwáqáö¹÷ÍéN.H¶rxŠN‰¶2²BÃW%˜¸j’úІC1Þ×Ç'oš fÁzcu ®S¬ ,¾àÀ4˜@Öb°0jÉF%GYoøÍòv©\êäoÈ@Ö€Ñ`©|!Ïg€‚yùšK*”µ*¯üÅ3ïš¡ŒLŒ4‡Ú8:lal¿úÍiˆ€,cŽzY´Ì¾ü××·HåRî¨ÉRƸ ]ÉW%ŒLå ù~£¢( 3ÖÍèØòǯÓÛ5¿ ;oVž&Ç‘i_xw ׂ^{–†t•€X VÆîêÌ/è ‹ ³pƒ7´<ÆeÄÚâ2âLªz3‡‘)@&¶ù»tÏŠ·/xd~ã¾7÷§Ø­ö~WP‰y‰†éwNo Õqd d$ØŽp]sº8˜%; sV#3˜HQ só»0t;ÁÜÒ©œ5²SU¯¢|”/ä;£’£Ì1)ѦØôXs܈8³"SaJ„Œ GÖ¤,µõeI|Ky‹Üasð@ 8Ưß>fi±ÊÇsÔÃdAB d‡¥.ú|©{ÖaÑ2›4Bjá08xÌŸ×Yy¸2JY«4öŸ$\bK)LÑŒŸ¡É›¡ˆ¬úÓ™ ÝÒŸ/ÑÙÌ6^WS—X!µË¢eöáp …/à±Òwød90 ~ød™9abP8 õwÖ °ü××_Úþò·9í•íWE‘æñy$oöȶì)ÙÝIùI–òFyäQ("!'Á:œÆQ ²„<>åÀÐ,§½,YÚƒ íÐ2À5B!÷d¹Ác‘„!®ÿÕ²òS_”$wTwÈ»šºÂ6/!'^;å¶)õŠLÅ€ƒëÏÔG´^j•KÂ%ö¼ÙyÒ©G/ú\,`esJ.±d¹qd}²d•5JFr–ˆeb |ð sƒÇ. „L½}J}Ï¿'Åãó<¶õðÆ#¿¿øC„èöÊöðÅO,¾Ä£7+v,Y©\báVŠCËŸO «i׈##§ „R‘ ÃûˆÉ°PðcÑ—^Nêýo»ÕŽa8¶¬Œ£P"dÅý!‘KÌð!vÄ`d5ZùZ¥N¬ïÔ‰õ]±±Ë 6éÌ"q˜È-³„ÇÈ,á±áy|„E*—\Ó>aŸÜçšâ.&gZL‡?‘Tdë‰ÌFñ(ç¸ÇÕ„èØ| …!+“‘4B:;Ž6Ê¥¬úDu|ãù¦„î¦îHxæT®ëR S:²&eu$JÖ°äÇZ]ôÉ’m½ÔÊX~‘Th AEä–¿ýPöÔì†sߞ˗ÅÈ “WO*K.HîâÆÑ[°bɆE†ýYM5Fá©/K²K“ Ý™/eè”:yùÞ yùÞŠlq¸Øœ2*¥mÂMã«£“£Mׂ>údÉvTu0–J&¢»œáÀ4HyœrÛäˉ¹ icÒºø‚ :Vôã( Y9ÆfôE¿l;¯äËSYe{Ëóì;c·;-z‹¤æD͈ڒÚôì)Ù5Sn|Y-³g}ôd¯`¬»¹[êëŒÖ?ÈŠƒÁ]À)DQFLÑΣ +±bɆDŽèê×Ùm¥ç¾=7Ú¬3‡±6P«:R•Swª.#n~Ť[&V Å~_\ ÎMä^î¯Xsª6ŽÉˆeâ`¶d9¦I»ƒ"NB D'7Ž4Œ ©ÈÌt™<>Ïá¶d½"«ÉÊßùSZÊ[–CÜnµ /ì¼PÔx®1yé“KF$D˜‡›>Òqh¯lg4´$¸@–Sš¤¬S…_Øy!»ñ|c†Õ`•:N>Å£œ‘ ]nšx6{JV7ŽÞ¬è„Œƒ¬,F¦¡(Ê+ÝR·ª¥;^ýn®¶C;ükÚ4±_=·ùºù?¿/­(µk8éb ë‘9i„”Ѽђ‰ [À©ŸÔt¾)æØ'Ç&v5u'^U±“ðÔ­š¸Ýÿݽ@$nO+NëäÆ0ð–¬6-FUÉPår²åð¿FÀtHø«=U¿çõ½×9lŽÁnýQg·•æ§§íçÆÐ3B ó–ldbd×` Ûx¾)vç?¿_â´;ÁÐN‡Spìãcó!»Ç,-®úHûtA|v¼Š1„ ˜8¾ÅY¥¤Ê£UIûßÞ¿Øiwzµãlè2ÈAÃu­Ž£·Ëz:­òÔ÷š6tÏk{ Àö¦“Ÿœ“Ý•Vœ¦ u}ôd;Ea"ƒÕhõû„@, ãåÀtˆÉj²òþïàuÞ,ˆÃÅzÐpG]«ã¨nQK™n„"S1 ÈÚÌ6þ·¯ìXl1Xƒ±§`Ïë{—¬üýŠM‘ ‘¦PÖEÚ Ëãó^œVVu¬z’¿•KdW) §„AL¥ÛÏåÚ­vZשGŒË¸„á{mš±qT·i;ŸgWŒˆpiÇ«;h;´‰ÁܹƒEþí+;–­zþæÏ…b¡#TuѧËEKŠÎ3²b¹D.5FÈPÕѪB:¼§¥–Ž^4ú2BûÚt@ÆP§Ô2 ²ÒHi'ÏëW·Îï¼Õz©­ :_Û®M>úá±âÙëg U]¸€–(2]Ñ)QõÝÍê ¿A.Ñ‚K<ªêT:¥.É›—ÃcdmSï˜ö]Ö¤Ì6n½#C·1‚ÉòäqòŽþV‰N‡“*ÝzvV( _åÑÊ)ãWŒ;’gh{NкQóG;üÁÿ@62L.5FhðH >N|ß”?'ß´5SÏ ‘Ç+ɨadãFÄ5ô·J<þ鉱FIJBé°:¤‡Þ?ÒÙ½pôå²ÝeÕÝ-êl_+—EËÔàRc„â0±Ç›Cá±áÍ×ÿêú#"LÜ8Ò'‹ÎÉdy©…)u}uˬ·+öUÌ Em<×8©£ºãH|v¼&ÔÚ>Èz% SnŸ²cÇ«ßýÏ—ÊåŠð¡YLiD.<)eŸ½~Öç‘ :pؼÓ[ÎŒª9Q3Ñj²†gNÌ<>}í´S,Y·!?ŽƒE`³Ø‹ÂòMiEi­}ûæÄg'&Ú̶ˆd'œøìÄŒå¿^þu(‚¬ÏA³ÓǤ·$$Ÿh)o™J÷[Š¢‰¹‰íàRc„B‰ÐNñ)q«Žoñ|Kjaj›ª¾S~æ›3“š.4M¶™l?Xfe»Ën¬;U;iüÊ ßŒš_PËá•ÔQÓ /c³ze¼ÄÉë)u•N·”µ„r?)kT£ˆ“|Eñ(Jºè³O¶‡®ûÙ¢o>ûíçɆ.­ Ñ©Ñeá±ázLC‡?‘D¤±,W²[í²øˆQcLéUcÔ˜’m8ô@sYóŽE.ÜÍMˆ?RgC—œÉ ¢S¢jûê´V©•j•Ú¬Pî8›Åqùð夼Yy ¡¤~ƒ¬(Ld_ôØÂ÷¶¾¸í »Åîµ°dMÊ<.bHñ(”ûY0ª©Þ”Q{²vÉÖ·I®ÿå²-t,C·AÜ\Ö¯néŽÑ*u±Fµ1:<&\•?'ïBrArg(£¦MÅdʼn#«úêÖÅïËF4†U«7+¯&”ôѧ#\})>+¾sö=³^;¸áÐ}6“mÐ(] åãWŒ?Çih‘(L¤pÖRÞ2÷«ç6KV6=öÅûn½N©Ë°B±@3ÿÁy€F [LƒƒÄ2q7Se©êTS?æ éÊgW¼%–‰¯’?›ÙÆ?¸áÐ̺Su×Û­ö7kˆ“+öU¬IR=9«%ÇѨ1F3UVXTX­;å̤íÐæ ´,‰ªz•4.#N*ºØcÉò™(,:%Z³æåÛÿVº½t䥃—ç©[Õc@~(Û™Yºð‘…ĦÅè1ühØO’p £ËrM›fÌçÏ|ñèª?Þü‰\òÃFÍñOOŒ-ÛSv›Ídóö<'ïÜöss²'g}ŠchÖ™‹áš˜›p•În³ó;¾3ËÐm`$"VÖ”¬M£Åý»`8(…9>KÛ¡]`3Û dq6œmPIäâM™“²>š¹n­¤‚+Ÿ]ñņŸ¾ÿ‡Ý1>dŒXŠjŸ½~ÖAbÅÒ–Uê ÷§„ÈrlADv«Úððû›6Ç oÞˆÛÖ¿yÏý˜^MÛþº½XY­¼Ój²®@'s-ˆß^WøôäÕ“:¼ýhë‹[Ç·”·n ã*<6üw¼ºfc¨ê#õÀ†û‚¨³9‹&„èÈÆ#‰w•m#„ vÞÓ…û‘8B?‚¬ëÅí–Ò,¾„LäÔ†#Žh­Àž»a°ƒ²ÔÇ6ÞïÜ)ð?,êq_xƒ¢ AŠ Éý$Hpÿ7±×¿c{õÀý dã–,EQébÂTàšÍØBq*ÃG>ƒ­ @1€qpmˆs[¸‘`î6æNK!Äv*\à‹àÝ`€píùl!„´é üÁÝïw¿'¸)Í’.XBÎ_á. (j €Œ{Ò·];|tf«Ï@È­œªpÄãàËã~bá:—N¹õ³çñôo ®[GÇ!Í,´/º—…—ä^*whéy!]!ÐÑ‹ì` ¤×< BLWÕÄFQe hüy€S Ž8â(g2€sîe¿¯¤pù¢¿û³XéæêâFŠ#Ž8 QzÍO€-0v €dkiVÒÉGq‚VìVùQÂf‚Oy× èçotsÙ+¹Ñâ(D”j&\;åÓDÀºÀ)¸6f€Æ1'ŽBZÂüÇ~BþäÍ‹ý¬Šfe*nÄ8  rˆÜà¸vƒíöøÀŽ~­ ŠàßæõSbŠtÐ Šú^‡»ð…ý@ªß7½Ù~6¾nð1J§cܘq€â–ÍLoÕ8  €À«A/¬à^k¬Ç8òW޲à:E%ö`!oÓù¨?K–nÎ{nã‹£@(F.\Çl‹œ9{CóœEM!\ç;zÙ€€Gèì@ k¤YF·Š×Ù: ®èå­\Ž ?{°LR"€OAQ³Aˆëþa3YOp“_>B^ó©Ê~ܳມá-E— N°À÷ÄA/WIDAT“ÐÏ[Up«ù7i`©£WÁu²Âä¶Ü­îÇâ|‘{¦ w?r÷dðá`;‰4Ú0ÀC^¾­ðëõº6ÀueûŸ ¤Œæ÷2¸N±ˆ‡ õ@Èé÷W€IŠŒ„+Îk´ûWÛ%r.ts}L/^òàŠƒçÖ3=\‡|¶Cºâ10ƒæ—'ár‹:¼¬Gá·L%ýì¸v[}Y×]ßT2÷ ÀÝp]ô–¬pmVü„˜ìè[|æãן‚ÛjÇ÷zùöS äå+‡Ü-Œ³Lua$\/(¸üSZõŽø „ìïŒKÜêžX¥îUR4表yö DÔÈ ÈäFQ£Ü—ÿ8ß˯\þç·lD°Z¡¨l÷¸¯†ëš°·WƒÏxÀÛ ÄècÝÃuûLç~ôpÝz€YÖûPê£p]—…Û sc[l¯'@:€¬^+.3€tB®|€|âÊàíI€0Î"À=x™ïà=”1 'MX9ù‘—T¬%À‹½x)a€'f{øа€A¾>o×ÿ]ÕÐtš}Æêå§@$ ž¶|Í€p QßÍ,*‰Ð=©ÞD€WÐÎò8þÖÇv¾àc}f,è¶òíûy"^"@u{'âY”™QxŽÀËqZzL"€%(dcƒ¬¡=O"| 1Ž2Ô'Fú!¤‹hÔuˆa@J€_`.Àà1œ`ýí å>äâþÀ9ÑÏþæàf·uh]©òÛ(é_nw/mçe "¼:ÚÓ®þ* R%øÐGaÿ”ávü×a=F£ž© ¹&Þ#€zˆÇÎNIAVI±—VfCŸoßð³Ï»Ý\CÙßÕ3 ?S‡h¢è;–É^´õ ª{<¬€áÊÎàuì¢á ódEާ)$ÿd¡õˆôA`—Ó¨ãS?•cM@gû)÷ƒ—ç|¨ïEå+°·—?Pác;ðÁYú€º-ß_`  ôù{~ô¹ÀíËvÒ¨ÏB€ÏÜ>ô›Ü~ÕM Mð;½hó¾ ‘u5Â<,Å`eÿ!€ WÙ1xš~”ù9 Ay–ÅŽ|œ¦ÐR8ãeÙVdû¡  €Ãž.¸ÝvúëS?øùµõñT^éׇëÝ÷18I£}Z÷ä;@y¬îþ¾%£}àEJ€ïhú¾_ÐÚt¹ª–àš Ý÷Y8H»ƒdÿÓ»]5ÖÁ€Åù¤‡ÎˆuÏÞ¾”mòÊ7ë:íÀfGž£)¸«h”ý/?éß>îLOëãÃãöY~>€ß’îóœ<=N³®Úﲇàöí¥ub˜çö³úÒï}ðÝo§QþäÓ( cãê~ó\¶¦{Êì£Á°‘oàK÷&u™Û0´û2ÁÔX‹Êäðú(‰ï–æ ƒ”{K¯‰Âàöí&Àûø=îtû*‹C€ñîåZ%+Ö’Ë/ìín¬ÎçÝaàg>-ãówñø³ŸKØ{ý±{}9: €¥°™Ö¾÷êÎûz¢|ܼ5Órm¯Ñ({[ïe1:$n«Ö9ÊöPîn—\.øî¿½O{5çy¬£ÝåO$ÀL,t×y ~B€µ}¿¨0”é!šþ¶uüj³rëp=²iµsYØ:íø—åÞA£Ìßû¨ì>Œ[ RhÔ‘ä>²ç‹\\çÝJ³®²OÐr™¸oYúXW¤Û¥C·ï׳ÐÏûý:¿íZ-í÷—ßѬç$cØâããÙÍÎfÕ‚£¤YÏë,*Í[4ÚqÀËÒ—iW ÷±ÝtwV-ëc]¿õA6 ý“¥4ëš €¥3±Õ@ÆÐeºj6{i)·yY^'à%–F=ÏIš~vM7g:Ór2PÂD_bìð[Ú_¹®ä¾Có«0/n ñî¸R&{¢[ÝWR½ B¡÷á*a$€»h~õ{rÖ§"äÿ8Oó+­cB7utU€.>OC!¿k$¤À 4¿šŠ òίˆ%Ò= BÚà¥Ó]/ŠŠõòÝ"¸²Ïzš…x),ÝèðV¸òŒ;|lÇG4ß—²¦6„àm  ‘{ ^o¨À[>¶z%Íà)Jÿô³§.° ”¾~ÛíuÀ"ÿîç°ÖË··ï¬ýß -Oî1nˆ ´~æeYg@Èyùô²±ðà ²î M¦Ù–‹lˆ S ûš{†õØÎ^ÈDË*ôwÇzÞ%pö†^ð#ÀÇu4ßÇç?Ý ÕŸ–tÚZ +ö úÓ—þΰ! °•¶80ý”†Eþ†y±ØÄ /½©f¹¬Dýcdý§` ÙF'3D&CVìÿühï4šïàþ$~Æd¥èm°b%p¥¿ñ†êAÈ.Z±—æûžäÔÛÈTŸ°ÀË>yéM¹4ËUdéõ1r‰¶8h)-«@.ÃûŒ(âsY·b)* ®t\§Xò7Ÿ“Æ»àg\‰ÙCo©Œæû’äg< Ð:B,,ðBw™î­»p$ÍrMÁ ²Ÿ ðd @^¾ç§Ûâ§;ÞÇ뀣 ÅG¥œþ*&y DbÏ™4Þ=ÌRZ‡€—CAÎKïɃ7 `â1PÆw µ…ÎÆ:}ã­&ªŸ·k3Êú›ŸÁ–“i¾_ÊPÿ˜Yz×_5@6h¼Ë–Ì8¼´°Ä $Ÿ!|c dE^~ßB*jK4wqDÇÛÙµ¿eãS^Z—joøÙNÍ÷• õëTçg]tÜæ!Ô›@ZÖÍ÷Ió†x Jòd™qèST€x_\ @ßx{ HÔ‡—wzùí@ˆ¿9DJÌ ²Ž Ó1¶@?žæûFŽ—AIHõ6+è†Ú1‡ÆÌlc°^Oäíáù¾Ò^NR&0sF4Dàad¡/™ '‚‹ØJþ˜Nó}Õ5Å‹ë4 Ý 7%0 KQRx¿{wœ¡vÜLãÝÌܜœ¼=×Ö«ï¢<èåwÿ!JVÆ00 LçÜkGÁfɦ±Tî<šï_b^æ³Ä ]¹Kgƒ¹þ4ÎËoMŒ,Û]YQWÒøâ£)‡·–Zo«ÿa¸Rˆ{³dgêP7ÝÔ‰C²ÈÎd©Üi.ó^`¿—ïÕÓ,7;P ëí½àK~\£E`òö¶‰ôo‡øJÞîx @Qr÷ àq/¿Ù B*j'Ý\õª—ŽŸ5 w æ&PÅhíµôÎFoõ°ú£ÃË2÷E &y™`:/ŽÐˆ/PKd)*ŠiañdÕ t° ÀÏi|ñ÷•Â@'4€{àýNÿ¿lg9èÝЛI#ÀSý£Dà(–ìeïf¸AP¢6b6å5<êwt%ײ~4(j)(êAPÔ  ¨ ¨¿ú "Âû«‰¯ƒ¦—´ßÒ|ÿiPT’ŸuÒ¹@¡Càˆ}w+D$¥èD¿f@q'€^˜Ãr¸Îl{â¥ôNëdx™^2¼Nã‹VЬå„-[åvýùÃÛ:gØß_ ÛÑ ¢»ŸvvOWÆ:ÁzÿíG`à(wR¸nåÏîç»É4Úg£‘ 1ž…àÑ >äá:æSÆÝ+S{[×r?ù‹§Q×Ý Øý;šým#ÀJ?„7Ѩ¯›£¼,{½AØôƒ—wÞ,:)tfúXW‹¼ýŸu)ðE¯rž([í6ÕB€e4NR¸=>§¹p¥¸8>Hù[øv4 É?gQéÿåC{Ê0ÃÇúf)È®ò¡|‘[ñÓ 0Ê=ÁÎ'@ƒ©Šz€víK&@Íd£shêI³òóTr•9°ÚÙyÓ¾Z E£ž;G ªOª÷è@¶Üù†“™Ëi¥wñ'e‡+Mñ`X8À·#YÙÅ,‚¬ŒFš›þ2޾äζSÜYEgà&w«¯È|ê!æ@¸Ë¯¾…Õîä—Ç °‡iÔõ$nw§Õ­dàk÷„}Â=¹4 Ë½º(I1 ixz²¡Æx9®ãiZ°f,ñA~îö‘—mHõ²Žš“…çIéÊ:§ûÈ×'^–¿Œ¥ý|ÿZÿ9¾\ÙM €É1<@€Ä^e/¢iºB©[èE ßw=|ŸÉ0ÀÖÑJêèÏcÜù—ØJƒ¾«W]‹Ù¯YNáN÷ùØK ø¼åw¸]q2ºþž¦>v`¾Yw÷øÈ‹†l]¹¶wO¢Þ–iðË‚½²þã>òõÄ î²}¾8Ȧ² ¬Jš‰-ø û½Kª4ß§1Ü¿ ¯0Ÿ¦¿ËW½ža­ "€µ ×Ëþ.ö3»³Ùm©¿×ëÙ锳›~ÊNºIMûöÛIwî^¶ø”,Í N,÷ƒ§7ä.GH€WB€Ê³Õs‡X¸·{-Üž;užu½4HL‚,+Y0ñ±ýÆE¥²+Y@îî£`Ù·iö÷j÷Òv(ÚzÉÊ›bHvæ0´šõåi$À}à³ ;ül›™Æ÷Ÿ=e«ÍFàÉ ` €é dC7¡žäwƒ‡š™ŒÈ³‡,˜ŽåX@È pÝž Àf0¤EÎ`YA?t[d¡yØ ä3÷ÙcGuf7\×Ñ @ȧ bÙ`XÊ0…+r]y›¡›¤}é>~|/†÷¹?ïý¾ ›3ÀG*_0ØñZ¸‚}ÿ@Y BŽ2tx€ƒ¼õ,qcƒ¼aHà‚=y„Ü×­´Qîóš¾\s5õê$[:ÁC¯ƒFúú=ËýTäÁ€õd/YB¶°pæ d;\hÙ’L¸RÊ? „L!ú™n0žšÜ Ø.Õ àtï?±d«¼ à]brG™º®ì–t’”ð\)]ÊáJ.ÇVàÝG½xç=/Þ‘ÂGÓÏS`ƒø_ )lPT:€[܆c48ëæ¹®àõî¿ëû±.èäOLyy°*µn+×ÛÀE/»W!iî‰2®˜»=ÿ/d…ó‚мU ×5Öµð=23€=vÀ•Àà¼ûv_ &èã ¨1p]{}Е®ªˆˆQJQA¥*E¡ T?iQQÐâõcÁ‚(õQ?¨H«¨Å"©¯ ÚZ[0â[¬Ù&JŽÎ\“n7»3÷Îܽ{s,„0s÷œ»3ÿ9sæÌÿ ì_ËlèK,6²så;6úÚìîÙ~I߯y£Èn¶ °+¥ò=hù穽¼»€×۴ڊȾàe§]ÙÜW!òQNö/´ÞêZZ— ÿ xØîP$å;ø÷ª W ²;ƒ]ëp/;ßdó“ó€v÷sJ9,í¾EäºEŒY\Œ^¯@¯WÙrOÀrT¥‘ÞwúþŒîx§¹e{¾ ’—hÌ2üˆÖ'€·Øêú› "“TRH/¶¨&ÿ+ ˆº¿¯®eòd{ÛÝb­BÓ¢\e”˜5›à&O}²~çô‡ORú›ˆ `±+ÈNQI×z·ÝâYûêZ&uµÞêUHИóiŸ{Û( r,¢­—{îB²ÕdÒ\Ï-húšÏ¶ý‰àÞ‡ûçŒ)ÓîìH³Õ®¤³R&uMZ¼è8Á/v I×®²¥ñÆG9˳ýŠÔû1­WÐÛ}>òL*€ålÏöµjZ7¤%,P”‚oh¤L ësÉ` Æ<ÚæM»Ð›-®²x [}so—ëSŒ¦%èõÈ{<{n£uj9׳}_gÅÞî'`Ûø)ë"Q&ý¿ÒÆ1fÆ,jx“ýó,JháãÁnn‰&H$ mâF{qÁe4 `ÌsÀ¸ó$2 ¬ ¸Ÿ=ϳ}åÉvÐñù!ÀµY(Ç”*¶cÌNüióþAË÷ÖÑCKpÏ…=A߀ÈK9ÚYC¯ìö{ö¬£¬J¯!òÛŒç%¬U—¡Ü«Ñ«¾2 "ò{@[Ÿžô豑ýseû]D`Šå•æm‹¯³éW6½ÚnñóÚ{|¬ïk’zš2†’ûâóìj¶w#2ØÎW=Ã!2Rlg½?W=}R¸ò²%¸–1\"Ÿ£ü·1å0ð2Ó•:EK÷4JâœVzÑøe_Æqð#p/"7X_ÞÏTd{*vÚª,Œë3[Y;}]uöµÏ5ËÔ.DÓ6Y9\'Ÿ€½À> &_#…ÉŸ1æTààÚœ¿yØzñï_F}ÆÆïȶ̜òXCn½³Î4ë;³}ZŽåÑçqàfJ›ogÌZ´V“k ÐßÀ'À6ä°7:ƒV;ç£4‡çd} ¥éÛm™]ÿ“iÇ·ít”»wÖ¹üjÂä³½lœ¦Ý²±ô¬@¶8^íJàR´rCéxíJ^=j'çpN™±l=MÓº8áǔµû Çß÷G³ öØÏÁë¢iq£3@tߌ¿îê߬ÙÌ[l%˜‘=h†ÅÊ`¿Øê4{½~¾ÏµfT:[ú©¨D;È dÓê(.Èþ9ë‡ROTIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/preview.png0000644000175000017500000000166511225071372020721 0ustar eliaselias‰PNG  IHDRóàÑ× pHYs&&¢ï%ütIMEÕ 7Ó@¾TIDATxÚÕTKoU>÷1s¯í±{œ–ÄUj×%TÀÆ*UZ"J…ÔR7¬ûú{ªªkD¥Â® vQ¡˜T y˜$NIŠ_q<ž™ëyܹ—…¡P "uÃYé;O}ß9¨ÑhÀ[5 oÛðéià8ÁÑ‘óFxÐn@èûN· »»'G£( Ä™ºµÕ;<ÍÍe'ô¼Ð÷ãlÖ\Zº4…÷_¼ÈÙöϞݸwo8œlo÷¥TZëñ8Š"Ùíú“I\¯ÏÇ¡ëF¹œ¹¼¼€1¶ít»íìì öö†œÓ¿~pçÎwUëuƒó8V†Az=ÿõko}½“Ͳk×Jår®Ù9‹‹Å~_zòÕ“‹ï”-+µºz\­Î0SQƒßu]wáòeÓ4C!X: Zƒ1!cÇŠ1£ ”âNÇËåØÌ ']¯·_NO17wÖK%»X,lþ´!„àœ[V–Æt^„À4 ¥˜lšc„1B!çó|º-ÍÎrÎç¶mçòyBˆç¹sóó®ëf2–R ãóé{®K ƒàçf3‚í­M!„aš­ý¾_í÷zçVÏ»‹ï¥Ó™8Žek­çË—^µZ„JõÊ•ÚUBÈy+¢37#¥L¤dœÿ3ÔZ­B±€gT,Ú¦i¬5ŸÝ½û|e%“ÉÜüxèY}RJ)}cóáphe­—kkµÚÕ±ã$Rj“1Ƹ¶m)%¥ýîšîíî2Æ”J0Æ”RÏócŒ1@`YÖæÆO¥¦*•fçËåŸq  N“÷Ä—Â Æ"·ß=éH,/,\4³Œgx:ÆûžJ©??E4õµÖQþÁuái.˜ 5×´MâZB¨nÆ™o¸ø8>{àAþÕƒø…Võ7Ù‡ œ¯À‹ø“¤³VçŸ5ÜÙ\wÀ•·–}­¢¸)è¸Ùi{õx“YÇ;›ëlLª×› ëže3´Æg«ã3Ù`Å¿¥tï“k,¸nï{Ké®{ößSçù<à©«$Iœµ– &ÆqŒ15׃þiM¸ ¥(ÌÁIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_season_res.png0000644000175000017500000000052011225071372022412 0ustar eliaselias‰PNG  IHDR |¼È pHYs × ×B(›x tEXtComment‰*íIDATxœ]MËEP…ýÿ?b@2QDùŠdBŠ‘|eÀ€Üwç\zß5°÷Yö~Z[¸®ëÊóŒ•e㌹ZrçÞøöù7Š›ßùÔj¬êg,\äcZÝá¾)â­7–‹±Òˆ]¿~=DâÝ»w›7o€*:³ÿHÃtc5ocÞZwÝꯨ+VMž\sðàì7n€-›p¬h¦1W³­Q°«M¸¥@§µrFW{YMMáß¿AŠ÷\„*b˜ÙWtüÇuµÞn‰ß¿G8|׊»@¥óÛÏ_?û"ú÷ïŸw/ŸÂ~5T£½7jIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_contract.png0000644000175000017500000000063611225071372023452 0ustar eliaselias‰PNG  IHDR 2 p³tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*)IDATxœ‘MNƒP…¹7`œ;u «èXàØ5˜tâÄèÈÒøÓ,X)-Vx ×'–B•À@&ÌðÒ:hŒgò^r¿“{r•çy–eŸ*I`€¤àYTÈ÷ýú‘¼½Çlí^îÔÎ>¢ˆëj4Ç®i™Èqœ5JÙ¯]Ô['§ì« %#Žã‚ÆØ‰ÉÇÜ º]Áó0ЇÇÍÆ9·¹*MÓ‚†¶ÁG¾ðþ6$ö}è‰ínò¤ÿöMÃÏ2եǣ ­Êôxp1⛚†lÛ.§!.±Ùðõ1 ×èÂ’¥7b:t9 Rä^Šq0VÄ+繆®WI«Sè™Ux µÝgZ•¹AØuôéÍ|&"U‚óý>Ao¶£#AÓ”’žV’úOó uó_ÄÓ‘Ï…1IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_move_to_ya.png0000644000175000017500000000122111225071372023765 0ustar eliaselias‰PNG  IHDR L0Ù'tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*IDATxœcøÿÿ¿«ë†¿ÿ3Y-›œºþÄ’’ZÀðuþ|Ëè» ¿êëËȼ~õ(ì½ $»gÏ£¯_¿þ†ï—tt¼¼¶×Öþÿ÷ïD8cn߬M7••ç2üƒÇ99þü‘÷œþã石ϯU(+oiÿ1oÞwgçFF/­­¿}û–Ò½(êØ:9¸òÌÂ…g ¦¼ÒâS§^”·îOHØõóÿO¨å@“?}úô¾µõõë|}Ïÿq=<(ø$ý‹•õ­Ð 5µçª®ó¶½ÞòåÑ©ááëÀv;;¿ww¿©¦öçÉ#£ƒÿþ8ë»_ã6™µ i þþýû¿¿¾œ7¯·`ã2ï%?þŒ¿ïä=„Ӏо\¾ tÊŸ¿’&®—°˜ûðÑ»_¬Ù}Û¯sÑ“o/9¿eÿ×¼<¸`¨>ýcîÜïsç¾›=û¿?Ð /«ª€fWÎÞ)"³.9ùÌ‚7Ž}= Tzÿþÿ²úòŠ /¾Õ Œ Ï€ô0n€þÆÀ 3³OžX[I®Þñæ÷[ º/_þ‡VžÞ騔}'ÕÔæ¿}ûd 8`¬¼·³ûû þwv~‘Øë’²ãÔ¥ï¿~ý÷¨>|èС{÷ïm}¸Ý×÷`XØJDäâ?þÿØz|OÕÌþ=G/Üÿõdùí3õ„·w5L_Ñ‹¹Q/Ù×IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/boost_off.png0000644000175000017500000000152211225071372021210 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ÝIDATxœmTMLQžˆO’hH„xô`¼X(±Ø ~ZþÂA!þ$€ ‘ÖŠi Ó4(ˆñ ‰X†@4Ú""Á–Ÿ„ØÆ”RT Ý´òSÂîòœ×-Û v²};ó¾™y3ó¾-B†Çòóñ5Kާ¡2«RŨÖÐpgý¨ÍÒŸô""™©{ïÊãÛf³(!I|zšääðñ<tºíüpë6üyVˆ‘)t«¨¸ú«£”ã܉´µµ ®Nç2Ú‚"¡ùÖ×Iyù6Úû‚+Ì IX R˜eiµX¢oû-*¥¥…¸.žòÉÑÜÌJÅ+««ªºv´Øhô»lkµjY/,ä¥Q‰ ÒÚÞÚ¢~ãã?4šÃÖÈ¡X,„#–÷âp¼Hšm#2$ì»PÁF° ¯¬Ðʻ֪KX¸ùlwáÃe âL¼UKhJp\ôC§3®¿ß›Ö3è¼p¾°·7w*š>6¡íp¥S(›ÒjyPvÙÝýPiºÝaÀ6dÛf{ „[ZD(.NN-;ûÌææ¤¤ïìÌ%CzH[}}&ÙutTLŽ¥ €w¹–q¬ÓEEQ1Y*•ÐÔı¬É ¥ÁÖæç—:;C¡ƒRÁ~¿(à‰8:¾¨o¼NkzæÇð¢1íóSudÞ!¡è&E®;Á®®ò‚ç‰Ao£7ôÒÞsa.ýôt}µjñ@[ÆÊà ®¯?XXXB»l'éÖ¶’dRÿ£²²+ óà›¯ä½&Mì ÉAièõ.ú{2B?§åØ9¸··]¯×ÈæFÏ @|,†` á”$U>v{[M6%„|-*âÁï'zýß”Vëýººë)!ƒ!ìrņ÷–›»wDz²Ngff¬­ÚÛ¹ÉIÅU­®’‘ÑhävwçR%1D­Æ3„`0I$q:‰Á bK8|p(øÏƒÝý/ÿŒè³(@ô%ËIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/player_status_cold.png0000644000175000017500000000123311225071372023127 0ustar eliaselias‰PNG  IHDR©M Ý pHYs.#.#x¥?vñIDAT(Ï5ÛNÛ@E÷™Û‰ã„Ø%TU¢ñЗþÿo´ê¢RA!@° ¾Û3sN [ëiIKüÞóßÛÁ:y5"¥ù|Q¶ùöìÃû©Ã4Šud-̶)€@„²çÙQ]×y“2TÝTa²yváTÂ{²ÖÃ\W RP†¢ù\ý¯óÛb"(SínŽONç Y'¯Áe R7bè‡7ide?ˆwΓ³ìMz­eÇÏõÌ"Ð4Â<ÔÞ5Mäò(šßçc=´«4 ²#é§û‡¯_–ÉR›¸-ÚQ­¬Ö Fš ´!&ç;)²"³H…EȤÕfOE!™Ò›*Xﬠ§a}jTçßl{P †åéÇÑ2Äñ2ÜZ8 Åh˜ZÌœeÿôT<ŽïÎRÝü,ݼ7iÏ¡°ƒ†píX×µm†dÿ­ÊŽ„gݤ«ÆÇ &b€Ê3^P‘¡¼hu¼€c0G{Ë]Ù:fòžÁ Ã00Zwãæø0IŽI I–0!/í:3˜áÆ{(3X$;\‡Ë`! Q0KW&æÉ‚/'ÿ“|^¨}ðÿ´zTXtJPEG-ColorspacexÚ333~c*zTXtJPEG-Sampling-factorsxÚ3ª0Ò1¬0Ô1¬0ƒéÄÊ(IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/boost_on.png0000644000175000017500000000151611225071372021055 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ÙIDATxœuTßKSQ?ÐCÿB= 4“f(IûjSQÜâ™õT¤ƒ²T¦/1I¬h#kú¤õ¡Ôbê¨m)ËØò'º4a9‰íÎrÓvËü™÷Þ¾gg^/3_v¿çû=ßïù~>çÃÆX«åà•”Àg:˜›‰0YÓ Åñ †BÖ €Ý4ý`>1uí^aï²okhF§-JåÇDZRÉ%û`¤×o*ÍÊÖæ‚¯Ï£~œž¿­S±¬?Õ–š×€=/ aÒ/ÃÕÕ›°ßãÆâ?ßÒÃ$m·“iaÄ`l@¬së²Â®î¦&)œô°•ÎQOϘõõY1——sJôKK9JÆ--ñ rÎåZ¬¨Ø‡†÷—ÅÂÃE@áÀ€K¦“C’nkñwÜÞ8àt8L&7zL—îŸo¼{®£>ÏvEŽ…É$TŒ,–ÕßmÇ:ÔâDß|d¡&‹žþII0¨r- îÿ yjªDï—kil.Ž+«G ‚d¹µµÅåPmôÙØˆ„Øûgþº„'ì3(„Ê»@ò‚a÷ÊD(ãö­zÂj (æ\¼ylld—˜öÍÍ 7wZ++þW'd©í鉩I¥3-q_ô—¬¹y4¿«Ce³µéÕõ½ï:ããÿùUád.v8\““V±¸˜Ï?r´±±ö7ënã¦sè2<IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/whistle.png0000644000175000017500000000167711225071372022652 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*JIDATxœcø @,.îõû÷o†êêN)©/P±k×n1¬[·ƒaÅ))Û´4° tu-õõݤ¦Vâ[XL <Í`2 ª îÞ½àki½·´¼¤¦žâÖÓ«uuíÉùòeâÄ<£ ¾¿"ƒ¥å„={Π˜K–¬ ½îãSü葱»{&Bººº×Þþâ·oœ††k˜ý—Š9¯JN.‡J«©ÿùÃli9!o‡®I÷§OŸ ¾þþýûåËFÅÅó}}S\\V1èLfÐbdÔ‹ {ûX ãÏŸ?ûöAv ºÓ€`îÜm8¥mlÊ\]'LšQR2ãçÏŸ(Òsÿ+«ÕÆf­¤âTå.†æSG…JÇÇ·û&§ à¾*0ø!0rb×^¹r*}õª0Šäåýedü æ Ù„0ÜÙÙ/33`òä¹@ÎÍ›·¯^½J ÔÐÀÞ½‡LLV®Lݸѿ¹¹¸¶vÆÑ£gkîïŸïé978ø¿ŠÊ o66ßüý¯˜›×êêF(+[ž?»æÖÖææý""§¬¬ŽnÛæ¹{·‹‘ÑI-­í^†ÉW™’7YYÍêêêB×ÜØØkcÓÆÈÈ,  ¡¬œ',|ËØxš¤l$CóI¦Ö3ÆvëÂÃëöì9€îì·oßZZfñó·ïßï°g³´ô-­Í*†¤Üg$%u¿yóÍ&¨f`Ö´²*55]ÐÒR¹re˜›ÛgMÍ% zý žËšÎ¨™. IÀ¢ùÕ«7993­­ýŒ´µ«÷ï×74\óLN{!ƒþT–,Ãé óîËËçÏž½EóôéK€q°zµ'—$ /¯7·¼—× cãI‰‰ŸÜÎrÊwq Ö:9Ÿ lD·ÙÙ¡W¯š–—?x hd‘›[àààah¡§·×Ðð¬½ý&W×ú£GOaF ÈÙ?~ü˜7oiuu÷·°Æ.J!Å!Æ^ƒIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/scoring_chance.png0000644000175000017500000000117011225071372024124 0ustar eliaselias‰PNG  IHDRÝ¥ðEtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*IDATxœcøܸquïÞh‚ X•~ûöÕÁÁÐÚZûöí‘ßÞýûö»ê_o_YÛ½wYûûWÏ~<¼õóáñ·výûù]õ÷ûwnfDž±Pywpö“Ù5@ÆÝòÄwüûý Ý%<ï¨TG·rb>ŠÅÝŸN=g§ DçtáªßîØˆÍ—9¿ñVVäÇîÕÂU8º]õ¿Ÿ¾^^óëùeˆÐƒ¶*ˆÒ³–ª¿ß¾FQýçÓ³¯Wþ~s Rÿþ¯ë_v:#ñœæÕ(/´0›ýïßÕÛ·?~þ doÞr):v.å¦ÌÞÚ1]õùk× ¤llv}>{þòù‹W~ÿþsw×®©Zš_^¾Ä®úçÏ_k7m_·y÷îý'?yöêêÕézºX®:¯¢±sÂŒó–>ñòù­[ #³ ‡Å% ýuí}Sf/²¿ýø±qïÞž¹s—nÞ ‘"÷óì °IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/stadium_fire.png0000644000175000017500000000163111225071372023634 0ustar eliaselias‰PNG  IHDRëŠZtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*$IDATxœcøO$¸´åÿÇçhb „µýûóÿÌªÏ "ÿ·µ9¤h¾¶ëKºì‡x‰›öÜܸÿ¿ºC¬æö<÷å¹fÃùÜWê±—øs?ž Óþ~EXó…ÛϪš&Œä{ ó?Çàs”Ú ?¾'^<‡çvž¹zÿó·Ÿ85o:z3³gÝßÙo1ßRUÿ÷ÉÿŸ&ý·KæC„Òë «½ ù“·oÜò]ó¿ÿ'¬9Q6}çËþg(ü_ 'îÿWµÿßTÿŒù»ÒÿtÙkù©¡Õk×Îx¢ùë_Svô¯:ròáíÇviwú¿Ûâÿ·Úÿÿ¦ü?§ø¦Àÿ ‰WÓÂj—g$œþþå/BóÓ7Ÿ"šÖ,ÙuöÀÝ»._¾téÒÃgwºç»ìšdt®Õ³ñËf:\½²¹}Ý‘ª5óZŸ#ü|þös¿êå;O\ÛvëÖÖ«W/^¼øôÕÃc·6MÛU|âö¶âE.i3—éØ|í¦SÑÂÔØSŸ?üj_Õ²c—~}çµk.\xüü^ãêðµ''}øúêý×W/>wîÜ“šÖD­‚ IÛó 8Üuuþñ󦳒£O¼õªyí¢gö‹C*ÍÈiß\×?éñ·Þí@w¼¶¶j¹_ÍŠ þŇZ/¿|×µ>°rUOþcD"9´éCåéÔŠ=Î…‹€yT¯ð]xªåâµþÓ+½½Ý³9­b©÷ûoz·Ê&FxùøBó‡7….3œ1c=v"¾v«yæl :—ŠeîóNÚì:ßwêÔ§¸¯ÒÅ+[R"G-(À~~ÿ·sù»l·[&Lg¦8HœIÉ< Œˆ§Ý‹¶´,2"=¾ý]3<øsVã3_ÅË@#€(Àôtjù^—¢E®%‹<ò{EKŽØÒö¿ÿ§ö~ª¹oÍuh„)Ë™H¿£á¶Ë7ͼJ„føüþÏšé¯ãÌ®ˆÕY÷áõW4ÃÁ‰/'Ä (ž¾Àíü/IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/post.png0000644000175000017500000000141211225071372022143 0ustar eliaselias‰PNG  IHDRO#+QtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*•IDATxœ“ßKÛPÇûg‰ /¾ø²7eïú ƒM˜ ʦÖæC*Ãaq¿¨Â [·²è:É,SÚjL–¶ögšÜ$Mm3‹ÚÞkתýñày¸ÜóÍýÜó#çpã8ßúúƒóî®åðT”èÙÙÉ3†–$Ã8":•Š"Äó|"fÁ ì$9ér=þZ)g[À•CŽ3;/ä,³ë}¯iš(Š’$!„TU…½ÈÇÝî$[-`~o9âšØIz!ðu„uŽF¿fü«"ã@\TâÂ)ßÛl6æõ¾j³ë÷.£!$x±$t: ëùù•†•JGõ}8Œ‡†ðà ¦éš21‰ÕíKär¹““Úœ^ÀPHårùbHx<0€‡‡aB„Ì!> ® îÖuEQnwÐçÛ£¨øûûð$n ž™Á$ ¥é•òÙUÝ`4—-–×kk®z>WM×q__³\…§§g§¦Lãã&›ÍV*•šOÌÍa‚h;«Õj·Ûa0š?ŸžâÞÞÖ$n÷žëf6c›íVp¥‚»»;]Ý ^ZÂVëmá®®Nd'8Ä~»5û½ªªEC).cIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/penalty.png0000644000175000017500000000115411225071372022635 0ustar eliaselias‰PNG  IHDRR&étRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*÷IDATxœ•Ò_kÓPð|¿„oН"ø´'A|ÐGAdEP¦Å‡Î!¡Nöäƒñvn#na[ÃvCÃ2mš¥I–˜{“Ö´jHsãÑÕ‰˜ÎõBàžK~眛&½$éåÒÒM]ç(Ms_`rOÃ}^Z¼jè[ŽcÛv¡ÍAóXØ\›Vk%ueJx{Å'¦ëº„8º¾ÃóEŒÅ("Gá½åžçQUGÝиûXa}×qíQ£6;Ó4im–:NE“g4E‚DÖ[|Qãgàœã¦Gâïá¾UE”åÒÅNB€‚µÕB–µ‡1ÊÇ_*Q–ƒÀ—?/œ¯Ü9…M ¤0…²ëbÈ"Oóq[­Ô¸»,{KÚšðú^™-©­û¾½8 ÖÅ6ÆX–“¤ÿ Â,ñÿòmõ`éBϳôçœã8vÍ:vlhF¨(ïJ3±Ò°ÑJîg÷ŒOˆ]8 Csuè¼®KLÇÒ¦ÎÆ×NÓ¸Ÿü‹»Ýîî®xöƒ¦µQ„û‡aH)eºÖzáRöî‰ÔÿÝê+M¾•O’a¦zûÂüõs³q„{½B¢,ËÿÍ2Äð¼yÆ_>9 è‡ãªÛÛõ10·7gâÁ`pL9ÄŸwçÒt öÃïÚöZ¾kŒ‹ˆn©¬ÒIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/injury.png0000644000175000017500000000136711225071372022507 0ustar eliaselias‰PNG  IHDR“ÅqˆtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*‚IDATxœcø¯^=aR¿ÿ’ ÿaÊbèËÈHt¶f°Éž |qa!Ü3o”¿gváóç/&¯=Ž¢ýÞ½«N†©)Ckd8Hñù£ ›jÒŒw>ä7-<ÀpóÑt[ÑÀ›3 rÿþý{x¤.Ñál]àà•[êa\Q|¨7m_cÛŽižeSNßxºëô]œiƬ‚);~ÿù dÿùûwÑ¢…G6Îé;tîÖÝË'÷,ëÇ´»[-êÆ"ñàê•ÿïïƒ$þüüüâÖ¸D¿ï«ÇA×÷Îúÿï/DôùýûuÖÆï_½Iô¦§CD¾|ÜÚ_jfrxËz†íóç×N8·$íPSÒÚŠEûW×ÌØ ôCsT0øV,ßôêÝk ¦‰kNÉø¶5 ë_ùþ‹uÎ\ˆiÙ]+ÿüþõâÁ ÷ÒÅ@Ÿ¯Üw݃1M+Ý8÷þÕ¢|Ž þþým´djÑåK'ˆÒóüþݺ`×®äį_£ØóôÔ”ë›2ßÜÙƒ©çV¶×Žp; —á×óïðº…uÁ+{z05l;¨:ÕØ¤7)áÙÙcP=?Þ¾þ˜h:ív‰»Een•)¥œ¹á„9‚¦w9–§L3LàÆ«ŠÓ4•’$™0©Cõ£ö`êÏŽ„©Fü¾ÂÃ)Ú®IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/goal.png0000644000175000017500000000154011225071372022102 0ustar eliaselias‰PNG  IHDRîºâtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ëIDATxœ“]HSaÇ'(Š7"F^x§ÑˆˆR^Bˆ]¥$]ˆ!ZÂБ $‚À@,Ñ ššæÐ6um+7c©sîÔæÔœggŸgçs_1u²ÎÒÞmQÛZÑÿâœóœ÷ÿ{Ÿç}ßçe%*ùý6›M¡ÓM¨TƒRiçÎΫ³¿ˆ{í©Š^¹œ«VóÌæ-E0ÌJ’†9- ½ø|*6šÕ<š¦=x’$év»½^ïÁ®ÀnT8µ<­°ñ«}- êÔh&}´ƒrìPv-¦›±m<1ŠÛ9^ë·êhˆM3f‘ÝO›L5T&)Û©ðâF¯› (Êï÷Ãð{wÐQY×û˜ 'V©úIÒܤõ3mSƒšAÁTTÃ3 ãóù(ç>õe.öãV~ÿMà‹ëIà A^\\V*UJ·ƒ¢¢Ûá6‰Û`Ùm»$â8æÆ`bo(Š †!Ùd˜˜LŠj&O|È÷0sè%~sF6Göüøù@5p ¯Û=yú™•gþýýä—ˆ—d°dLlËáÊ:¿îü×·_÷MÞ×jÒº$kÂç·P§2üþùÙÑÙœÙ@zìë3Y3?>ÿýðÆã«Ç z5üûó§H(¨'1}kí ¬AŠ®çÞêÕs¹¸Vjj-‘“ŸÃÁñóý{ÂzŽåçÏd`€£ë³gÖs¾¯kc~è"%™¥²²@=+ÔÔ€qI@Ï£+Gg¦ï˜\ðõÙ³9k«Bß<¸N@ϳ[gzîŸÛdÃscWòžÙ•ô|}~S…÷ïÐèûðâÁΚ€?7NãÓóÿô®ÿiÆÿ‘clÿªÿõ!ÿ|Å­çÞåÿY("À0èËü¿nn=_>üϳEwþóû¿»R!©›žÿÿßT?yòMpöÔÉÝÝÝØõ3–ª²Ò­[·ÐôIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/yellow.png0000644000175000017500000000025211225071372022472 0ustar eliaselias‰PNG  IHDR ÄUÀtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*5IDATxœcøÿßàÿBÈL1B2£ê†½:"Õ‘ê*E¨Y"Õ:Žôl—[ü£Y· IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/injury_temp.png0000644000175000017500000000140711225071372023527 0ustar eliaselias‰PNG  IHDR  óÝtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*’IDATxœcø6mÚ2aÂäwïÞ! 2 )Ú»÷À„ K.]zS]ÝyõêuœêªªZ¦N]±fÍÑ={®ÖÔ´âT—œ\’’3sæÜôôÒ””B,êV,_îåꪫk“˜ØÖ:±»{ººׯg§¦Ú[Y)KËDNv¶¶ojšŒ®nbW׎{ûC k]]CÜÝsÓ²C‚â×­YƒPwéâÅ óçÕµdgO * R“ótvörv èlo‡ª[0kÖ¾Õ«ê2}}&úû¯š2åž=3ººÂüýc‚ƒã#"~þü R—•œ TDUåÁ6FZ@EW¼sæÌ„¦¦–òò¸°°Ç3|þü9><¨èƲYýM^KæåÙ¯oÜX9o^GuuCIIQFƲŋ.œ;7§·÷îªyßËýfº¨,é/¸¼ÿ×Ç{[Zºjk늋[**º;:Ž:ôÄçúèÿf_2,.­_ñà̙ӻw·#®¦¦¹¬¬ 5µ§³“aýÊ•[—,ùYìñ?Íø_¶Õ½å³€–®_´¨¿©©£¦¦¾¸¸0=}éÂ… ÀPŸÕÝý¥&ì¦9Pé—Ú°/¶ÕÔÌîíº¯:?¿ -mÞ¬Y Uåå@óo¯^ø/Ûhõ« %¿ž?¯++›×ßß^UU‘““—’ÒT_ϰqÃ-5µÅeÙÿ2-žÎj»¼{çßׯëËÊæOœØVU•iebÒÔÐç¹s“¢£+²27/Z ”ÿoßffNjiq±³ówwokiùû÷/4~oÞ¼™æçW”ž4/+))64T^Ffb?–ô·qýúĘ`Œ¥Åǵݾu g:Z±eË–®ŽŽß¿#‹ï'ƒÓÛöÎIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/cross_bar.png0000644000175000017500000000136511225071372023142 0ustar eliaselias‰PNG  IHDRëŠZtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*€IDATxœ‘ßOÚPÇù¯ÔÄ£/{q>-‹ñE}Yfbf27ƒ›/Ëp#› Æ‘¸§„¡Nƒ¢›+v«Ñ!ƒB­@é/JAÜÄMdõÅoÚæÛ{ÏçœsÏÕ IJÄÒR¿Ë¥'IM;‰àùy¶.F£Jú|VŠÚ‡ƒ‚Àq‰àwooÁáxâtì[Ò§18› }.]<æ# s2™EQ’$AE/rGø‡» ³©s»“”ópo¿»wç«Íð*ø¹?ê¶^«ÈRRÔ!ÍG„A,=¬V3™NðÑÑœ$‰ŠN‡ïC}èc}ýi=œ²^;À<ÖÒRX]µ··Ä¿Rù{›N§yžw:µårñÝ“ø0À·["sCC‰ç¥x<g>=‘˜o¯«#…H˜ÿ58°ø‚ †¤^_€n×Ö†zz~ol$@À¤äh˜4 žei¿ÿÓœŠ¸8¯5’ÛÚò8þfeåÃ`9î *çñàÈžãböò f6µrŒlmegg_ˆâAu‘¦QWWÅ”J%%æáé80\=|) ¿„K…ŒÿËóÁÁ…±1±nþ—F¡B` ¦}r!HwUyq1k4¢ÿÕÝüþЉÿ²Ê»,˹\®ºU¥ A&¡©)4=]1¼ç½ÀÒµa Ãpܳ³³»µµ¯ û|¨··bÊÅ<¼µ[­vÄhœ4™&——7ÿõS§¦&Õå ¬Çn·çóyÕ ÎNÄ0j°Íf³X,óóó©TJ=?BããhfF ¾ ¨•Ûúún ‹¨¹ù¶0hne2õ‹gà2›®ZEÑIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/stadium_brkn.png0000644000175000017500000000154711225071372023651 0ustar eliaselias‰PNG  IHDRÔ²iGtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*òIDATxœÒëO’apÿ‘þ m6×Ö‡ÚÊÍe³Lì2m*–Ú\¦!"™4Ó-¯K7Áû ¢ ^à…¸(W¹Ã ˆÈ‹½x„䪽­fbØ:;ÏïyÎyΓvvu¸`¿ÂâaË@tOœþ]–’!¥ ~0Zì5CßœKâ`ˆœã O¯wCáhjì…+ºXý ™Ïgg³××ßF"­á0ÃïW» @nZ”Wõ°™¬íËéÕL›éV@0™@´X,J¥R­Óñ¶¶H0ì©­6u<ÆÍRû¼IØî9,hžj¬t“Il6 ¥ i›NÁ¦]²µm3›Í ¡ø>fýTñý8qùf ´îvËm6D*l@ÅàÆé ;gY3özø¦v4‘ù(}øÓìs!Õå¤ 41ýWr´“S ]VåPI¾<èOü #‡¹:r£¸r(ë3³TÃèî…Bc€àI±ªÄiŠeƱ`Ø·€¦¥z¤â\ÅñQü2n™ÚÝ^±ËÚí>ïQŽ%"'Ñ`(â×ïH @ wa£¾]ÔÿÞsN~c±Î…ngʜΣQ«Õ.kFkÆn³ÕÃý«uÈ´Ã<¼‚²1“÷P ÃxFšEh_UÖQFg2AKÎ9'$y´g”“^T'ú‰¥Öª–ÄédêõÈP9øxJrÛ~¢Éº îÈ%mÝÈ1$º: Gbñ,yC¬Šefžä=¤9ö:åÔ%™i“R›ÒýowQíoUàªWÔ$Ìåz0 ±w¶³®ç݇ñG˹-ów¦o½»þ’”~¡ûç:ú õ$ýƒ½îhy ¯š›-ld<Ã3‹ð¬âFv n¥»ZVÏ-«ã•Õð˪E%ü‚t:ŸjHšyªNOSüOæ\[“²¬É«:=#wÁ#­»“0å‹wޏÇÙ_š:àÎ æ}’%ÿP‹ŽòÐD«F8Îñ.yDsÞÜbLIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/save.png0000644000175000017500000000122511225071372022116 0ustar eliaselias‰PNG  IHDRëŠZtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰* IDATxœ¥ÒËOApÿ+O}]êÅÄ[ÓƒµmŠ¥IÚ¦V6Ú…EаèBwÙå%íjyˆ‹[»aå•.5­؈$=µ=X$‘g;‡EÐv“™É÷Ë|ó}Ó÷ë’£\.®àÇ­°î» Ùþ´ã#VV}ú\fql ‹…Â…0·ÓM£Ð •×b¥´SþÕØØ£W¬w±7®V«¸)0)Sš %$ŸhµZ?¾ )î édoœÚä—±˜EëÄu³op+ÀàТƒs¡®Õjz b‚ñ–|kaóže¯ß…{æ kf;Ó 7›M“Ñ “>†•zÊ]±o"j Ì$$­>¹¸z|¬ŸV+ˆ†GP­3ˆ§ ÍI8J “˜¸R©¼&]ò;ãc·GT7GÝwgfžN-ÌÑ÷ÑS‘§qåèȉC"¬_ ˆt7Äúëbõ 9áì5mø3ŸŠ/Ùòô’wNc¼&Ñ ˆŸ ÝŸ¿"!Ÿh;>í/  3C kŒOÆ×i¹*Yì—â·äÂÖ—x7ŸuaÊý½üÉ–ch–D1™:dvw”m8g^£*õéŸ4T¬Ó̹-áP”½ =Çì¶z½¾_Ø¥ö¶°'äÎcmøçáá×R©{h·´ÿaün4Åb‘O§9ŽƒaA>ðri46b½û)þXª ©"Ãàgpv¼¤ä›-}ëÒÒú¯^ÆÕƒ ð}§÷OæÂñà›Q°¶ÝnŽ®.P©¤ÓCvJwçï.ÛZ6A(ôúŸ\ÝJ«úˆ¥½ª¾qjgffaX^ ß4Ë&Ó+ú{똫8·MÛúôt¡ºÝ»ã++5ÍͪÚZ籟ûB½÷,2„ׂî×µ9ˆ-"Xõì€gq1ÞÎ8ã"ëŽOá¨ËÕ$ˆÚ„É$vRáÄj|P%ãì^žé†õöj¸ù~ãT‰Ž,î4}; ¤4ÅJŒö,ûxUî¾ñ¦zjdRùY^Yé'©>‹·¼xϳZíåçÃz%óK[¾t¾¾—ÇFiL¢ëÆ5«ãúÁïH=qóÖ­Œ“_¨EÃï-·wíe^š™¢l˜ëõÕÖV¢žcÆ7–‡²}”-ýd²UaìÚQþRZ¢ô0,½If·w W=žWI%L4Íõ•Í<)œ5þì¥é³ÅÅø¶áä'ÚëÐXê³Póˆü†wV”4ŽO"@ofS½0ÇqÄ” ´­¦C~ùòÙÜé“›F:¨ƒíí0Öp$ò- C¯¾JÅóÑl; ¶6{äÈF}}QU5‹ùCýȉ,½xOUUEQïúÑjý22¢Ç°ò`L¦ßI.—Kò1Æñ¸BÚRy%i°¿º©ÉPSƒðZ_üóÇPIÉ2ÕpngçZgçõ––]]uusCC°Úÿ\±>ßéèˆäÖVËÔÔÿá½bQ`´h¸Å"g2èæ×кµBbWIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/structure_change.png0000644000175000017500000000127611225071372024533 0ustar eliaselias‰PNG  IHDRuìºÌ pHYs&&¢ï%ü tEXtComment‰*[IDATxœcøòçÛï>ÿþÆðìëk†™Æ „`Ų PÞ¶GGQ¥Ñ•Ã5]º~b*È`+a 0û É:ÛœY1nþ²;Û™f™€øóM]·fE+[âå¡ÊÒ¶"PF°4Â4´TB…‡¡ZÊ’FèŽØS™u¤ã懇­ççÕœždCuÿùÿHíx|Œs®µøb76‘‰WVH/ñ úï,b€øðñëg¿þýù Fßÿþ„~þý•dЦ6ýÏÎ&ëbY!Öƒìe®Öfèׇð™g™"Â!A$ ÕÝ£ÇЩ btë1ôé#tC¥±!°áeZ ~R ¾7ˆ”ä€J+p¡" ‡ƒÏÏN¹ºêÔ««@vâFi@2z_ Dß‘ ÒžÛs*tV‡|u…ÝBp›Ó¾¸üñ÷ÃËïoCw—»lÉ„ óÉ¡<¢üßÞÊ;Ú AEÇû:·LWw3’pTƒ+ ÛSþâû[P„aºmŽE†ÃÏÏzÒ•˜~j9 ˆõ„Ø@ ”hÕafcÐæC(-Wgàd¥×]œA‹¡O¨áB„4WÁÒc£6ºT‡.B3K«>ƒ?Š¢^=O ˆ:3Auš ÆlæœkUwfÆŒkk•–ûål`öÏ=Ú³¯‚Rµã ÈÈ>Ò $S6CNÍä²ûÉÉ=OOQíŒ6 äZnHættÍÀœ÷ïÿ ˆ¾ýùñëßo úß¾ƒ0€Ê€âÀTQ r·¯ôG&vIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/miss.png0000644000175000017500000000100111225071372022123 0ustar eliaselias‰PNG  IHDR &2Ù tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ŒIDATxœÒËKApÿ™ ê „è$t+ª[ta]<… a‰,H‚@$µƒ„føH#”¶¥ÂÇ®n«3»ëƒ¬56[Í0}Ã~¿Ï0ÌŒý1Å"„fi±ètëF㦢ßp­Výªl6¤R!µi4ØI’är¹·¶vÌæ½Þ8µÒ4‘›x€+sLü¼T¢Þ*ùV— …nI’ìÄ…”Û{”J2 Cò<Ïq„0éÑ ‚ÉÜsÜm_ÌåÑlr9†¢"\cLù7ð.d â¨7–OOž—gð4M‡}>=&|#˜±‰0.ð^‘Èn/ ‰ó“Qߚdz;ëuùûb*/öÁ Á7×…yMO‹eÂêŠTf3~}>ŸE±£ÕÀZ- »Y ?q Ñ|›.lµ"“©Ÿü= üãþ'q> ‚Âq€^Ì{IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/sub.png0000644000175000017500000000121411225071372021747 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*IDATxœ•T¿K#AþXlôÐB°´²ÑÚÆNÁ*±HŠˆm c°±H#<.œ+'ÜårpÊ„s’‹‹EV„Õ Ë5¹&˜,krÉæÇÍlÖ\.;\ôã±»3ï½}û¾÷Íb÷p·c®s—ýÔ½Ýh6›lcã熽ŸL&±™Ù„Ž}qÿŸpŠÚãcš&åóùN@ƒ‘Aß:†V«õwÝ{ºcùÝE¥R‘gfdºvGÝ Øú±U.—;À“ð@3‚ˆtûßøû«õðŸôŠõ ‡/`X×A·Ýg­vqvöQˆêõ:7Èê”`”ŒJ²T­VynÕâFÅÜÅ!Äá–­ˆ[L§¦)wÂ7A34~íSãÔ¹Ûh4îfgÃ++œÆJÀ5@[_t¿ÉZœPËú|ƒîB¡ …¨`¨%<ÎËéhPtiéÜåbJÃ,~Z¿ŠŠ¢P:¹-ðûò&¼Œ˜{Û¦n§ö®ö$IÒ4M×õ!ɾ¬Ï®ñÀØþåL98&'¯˜Ò샤ZÚKx½C’éß@ …¾,,džµ¬ÛŠFÆ©'Úí6­_,or¹¬ßOÆÇ ;3ˆ®­½¢çŽ%/zeY~ îìü¯ µv”xTÙIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/live_game/red.png0000644000175000017500000000026211225071372021732 0ustar eliaselias‰PNG  IHDR ÄUÀtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*=IDATxœcøo`ð_F†24dQ ŒÌ¨ºá®NE…8u@ 'Gœ:‚Jê€@V–8u@ ®Ž==eÔïâ¥þöIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/player_status_hot.png0000644000175000017500000000124111225071372022777 0ustar eliaselias‰PNG  IHDR R|µ¢bKGDùC» pHYs  d_‘AIDAT(ÏMÁÍK“qÀñïïyÙûÜæ3·éÌ™26&•H#@  $ñÒ-ê"] ¢Èþ‚‚êXP‡’À@©4£èV¦••ÓMTØZêæ¦ÛçÖµÏG¶¨ˆJ43¢¢\¾ ¾án:gS¬oÙç?I•a¯çÂÔwøhoöбºIþÎIúÒ%Ò½Ñ>FÚ5º¦L¤vÐU‚.-NA ÓÅ#D×¢ôOÆYP" ;$~œhâüZ‘[n3š‘z gÚë9t#·ÔR¬”)õdàéãƒ!ú5+áTŽÄ÷$ %–äÃÐqnSÅ~ÍÅÃdž7.3Ñr™­S¨‡ê¸ªÙpîèdÝf"­Ýœ¶©³(þF²Ü`#Óå‚bÃ%©XìvÚLûÔV”fÝ^+V»“,pY=4Ê5É __,ðhr™˜¼¸AN3 0Ôâ^$±´bP¸% ‚ Bì"¤6D~âƒ^½^¢òrL º MÏ¢æ“ä@v‚« ᕊ±ö áÔÀ‚ø/ÐW À\-q¥7€ð³%îö2bßãz|ƒm±PNƒJ^uóÜgâìfj è¹´r¹4y)oîññw†—²Q"+IÅ3Œ5k´«ÚR–ÇŸV¹ïSlôb߅سŸ ¥ Ì{ìxmNâ ¼‹qcj™qe:Ηw+|îôiõq9[ þ$Æ=ÍDɯ±¢ZÈ•JL.nó¾¨3‘«2aÎc™[g>S¤P…ê?™Ñ•NÃIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_fixtures.png0000644000175000017500000000056011225071372022126 0ustar eliaselias‰PNG  IHDR 6Õ ŽtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ûIDATxœmQmOÂ0ìÿÿ YĘÀý‚´аÑõ£š€á±ßÀ>qµ:`ø¤ÉšÛå®÷;ó4=¤{JãÀ,Ëò ¨.¶+ë[ï¬ß#íxmÏs<®ÂÇáÓóXž}õm „3@ÿrÀ÷g)²?œ”|ïeà+½X– è?¹ß[Þl±ñùâü¾BË!dô†J:Á纯ô²:×Û ûtõ>HIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/style_all_def.png0000644000175000017500000000140711225071372022040 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*’IDATxœuTMhQ襕@‚z—ô"TPOZ(•ô¢%?Mâ%çlŽ*‚H“H°½Ô¤‰9¤J.EHCÀ45›Ä€!4mÒCƒ´Ô@-þ”­?àIpŸßv¶›Ø¤ËÇî¼73ï½oæ{KB»;†7Y'" Ñ#|.\ö«V ˜£D9ásª+˜NhîT3E-RÃçÂ'Š;«Zº,ÿ¾òH<4uëY²šìÛîs‡:FLa¯pߥ$"òëÏo‰“•»«rj-ú2KŠP÷QÖä5ž—¹8à@IHy‘Ï}—Š¥-Õ½±±ËƒÑ€÷Ð'åìGqc_†m±ÍÒó=Xæ!3a[PÁΰÓï êâù/öñ)À=nh{¯¬ìx¼ñ·JíÏÚÌRÚîŽjÔÄáó8"°Í9ßlîꓪdÀ‘DZ©›O57–­ÿ­ÃaHùèÝ;š¼¾À­pY1ƒ_ôÍ=k÷ÝÂO ³ìÀÏVê×!¶[Yì¡÷©‡Hðà¢ûËVçùnnÎ}îsžó=Ï:ç€0 hSQQQxxxsss·ë–––&I(ÚÙÙñx¼ :´ýbKK‹™™Y»H'L˜páÂ'œŒ ,0qìØ±ž(@pp0fG Äbq@@@tttÇE&“¹zõj__ßyóæíÛ·W/œŒ…ˆX`¢°°Páu,‰DJOOwtt$‘H¯¯[·nݺu¸bá„ÆT]]­ðz`` –e€+N}0"P ~~~X`'œÞ ‹õÁ¦ |}är¼pÂIïJ¥°U àóùæfŒž×-,,jë8xá„“¨·1N„aFuÖ­®RæøÃÆoˆÄâæfž¹¹‰HĵñmYF#@×"¨Tþr#vFFúügçå½"‰óæ-XýÝZ|)Zx<e @uâ­Q ðñ7ÞD"ùé§ [·l”J¥H¥Òýû÷^¸p6éQš““3>ká„9 £mT)?LZj°ôêUîG fge=ëv½®®vú´w&¥ãj‡nôˆTW)¼îím|\.ßýËö ëW‹Å⎋d2¹ÿÖ6Ö))233xÍ-L&×<œ°g ëÔÔô¼H£Ñ]Œ JJŠ?Y8'55¹ãJxxäêï6Ä B&S€aøÕ« á9Qœp‹ '(p Ü=]þÝ÷›‰¢áùïÃ#«°àaâèèŒX½Åä(g :ÌéÎdmc‡…”ŠYK(àÿ°öËÇöv\!“)[·ÿñÞ´9Èpã_GTZR´mËÚsçŽýë’½=}×"‰„ €ÀÊËÁ³ŒÔ¥ŸÍ...è¸bem{ð𹈈hÜâÕq8[·¬9–ø‡L&9rìðØ1¸lõl 7äıÂ-’¬±êˆÄ¢í[Öü¾w›¼¡‡Ž\ttrÁ£€:!™\vôÈÞm[¾ojâ¶wßIã ?ˆrA‘P TxÝÊʃÕDY™O¿X:·¨èUç‹ñ “ví9F§3业ê‚R’ï~¿zY~~Nû¿ŽN.GŽ^¥Ò (Þ·²Qv øÊ€À[X,Ú¹cíï¿m‘wekò”YÛ~>Axi€ˆ]Qúãú/¯]=ÓqÅÔÔüpâ5¶ýľã hq‰D"…×YVJ>Ïzºbùÿäv»>ås¶l=‚*¬ö1;ùÒÅ߬œÏç·u\!‘È¿ï?çé…ïIñX%•Ê@!ýÖchÕ×UoÛúíÙÓGz2 ÚôÓA€d2\‹‘T*Ù¸ayâáÝ/‚ ¸yëÁ‘Ãqx+€@YŒ„ˆèj@CCí©üþÛ&>_Av“H$­ÛðZ¶@£Ó§wC‚6lÚ?aâû¸x 2T³B¡ € €Aƒ‡JK ·oýº‰Ó8xh|Ì ¸g)7®Ÿ~–‘¬âćy~áåˆOVê–C ª]óÙÓ d·l?:nü4\¼ ŒVýZèá®@Dƒ±$ðgÏ^[[ÀÓ§vlûV_ùø†à9‚^)÷ųÏ>T]UA§›˜™[ ŒŒ0eÈЉÜqOÞ«çùyÙÿ’)Ô»OÅŽo0ñâFÇ cÏ" IcéÜÙÄvЈJJ ðùªW¢Ph õuðù­|~ë…s‰Î%~ôñ·K¿ø±ã>Ÿßñ7n²{ï…¨è¸lQ[@@ Î"x”tC‹_9õç¼WRit£·õInîþ¸þÅÒÿ5qþCÞ3‡>[öH”ö?˜L³½û¯…ö‹ÆQ @wóR…õňؙ¥¦¦ÆêêrNcmcCm[[ •F§QéTF3¡Ñöö.ÖÖöZ¬9iZ°][S¹òË÷Þu„ \‡TPø€áWnÜÿӱğÛû:fp|g”'Sè89{ìØuÆ×¿îp¡E`Ák˜/DÍݺrñèêofw»hna}ïQ]Ç¿_-ŸvóúI¥/‚~ý—¯Ø>`˜¦Ool¨f§õûÎü`銯wâ:¤â Š‹r%bqhXL·¯JKò]\¼ —#èB-ÍÜΘÒÒÂS‰>ð«ÜŒsgöвŸ?FÂüßGwÙÛ»½?{®F½™LóˆP8[¸ºùxÐNG3+ @·Ž@$èyQ&“655™šš·ÿÛª;~ÖÊo÷hñ“o!äÇÖ/XVö£¦áZ‹-Ü"@`1 »%œÆ:ó^-WßeË· :Ðjÿ¯Ô'·+¼nÍÿEEÇ›0Íqez‘¥ïªub±âµN½“‹Ï¿Wá=‹—m™ñþçZ§rž§”—è»á¿z•> ꯩñø± 5~ì,G÷¾9¶Œ `9ºY%@ÐXßÁ•2‹àò…Cƒ‡NpuõÕâ¹lvñŠÏ'!çßÁÑ=~Ì,oŸ°nå°<ïe‰Döö 5ºY«¹™›šrÝ?p€“³—^YºyýÄá¸{ûìħD Š( å:Âë\N];W2™T$R|OiÉ«?¸á§S£FkôЖfîç‹Ç4që2:hׯ·ÈðïÞd—/سëËÖ–¦°ðỿ§E›îžu÷pqóCÆX5ëqÊUs ›ßJ-n½LÈä@s³ªHa[[ó·+&ä´ß¬ægÏ®¯Ø…ØÙ»îØ}ëú½æý‡Ó&ÿoÆPSv“§."’ií¾•*Ù%»¶/mmi 3ã~Yi~ÇWêöý¾zÎÌЬÌ$-~‹ðsáì¾Ç)WhâÖøc­^ŸEí$ä¢Âlÿ,þéöA «*KÚ}––æ^RAÛ×Ë'p9 í÷÷úy‘ýäÊÅ?;·ðÙç»ÂÄÑhL¿ˆ¥Ë÷;U§V ©‰Ó¹å+— ÿ-§?y|§š,uþˆ‰D|úŸÝZüá'÷Ejó÷ïžV_¤Z|ll];žU\”cø—}>D¨½Ä­X‰ÙŸŸ—Ñ~CssS¯²¦ºôöÍãꎞ5wm@`4aÆoëÔÈL¿³}Ó‡+V%b_\]ý_½|Òñ¯­«ž ®s˜ÀÊZ¿@ÀáÔ°ËóØìBvy»¢ÀÕ5àÃÂÇ×ô!z‡s)Kpéüo—ÎÿöïäLš1ëÛ÷ç®àQÒ9Z§úp¡ŽmJzpZ‰¿°÷£Å;T3Ú?n÷¾gwo=r`U}»Û·yék¾@û‘§ÝèöÍ£Ö¶®³?\qUp÷ê×!CF½£×¼²ƒ£­K]m9¥¯sDÓUËBA[%»°’_Q–WYQÀfç³+ ü–Î÷Ði¦øJÇîŠçs)s¿ÍÌmììÜóóR;<…c‡H{rB¥egÝïv3‰D ‹ˆWg;r`•²o¯]Þ7mÖ*¦i¯ž<;jöàaï?³óÔß›ÛÚ¤3”ínvüèk[×ø±ó±¬ ï  ´ºy„¸¸@Aß3Dhÿ¸[×¶{mÚ= †åµ5¥•ìŠ|vE~%;Ÿ]‘Ïi¨‚{³Aý¿îh@b%éCøÃæk_-ZVú¢ãb.t£ùï°d9*{‹”¤³?­Ÿ¦B3„¶ó§wÍš·N-y‘¨S§=jÌüc‡Ö\¿ü¬vU枟X²#ŽÁ¬*äȘ‰Æ˜ÞŸ7«„"AÇã$±@Ðbª—››+ËóÙìüÊŠvE^%» º²H*kñh"¨~Á·myÚGž)‰ÈeR:ÃbÝO·¾þ|HuU‘Šûߘ Ÿ*{…¤û'·o~_.“ªfãÒù=Sg|K&SÕd›É´údÉoã&|ºuã̲’u~"—K×­ž0qÊç±q³llÝøm<¯¡¥¹Q&“²¬ÜÜCÞmë6¸CbÃÂGgfÜ ÚÚÍÒW¹);6ͬ«-suYóãe+kg™LzöŸŸÒ_©ª,hiiÔ/ ~PmW @uÑ‘B™L&‡3 »u[îüðm»ü•ÂÛ¼}~ºìOeü?¸û÷Ο>PgÒnkåf<½9H³ÕN®A·'m^÷nN–ZÕÄr™ôÜÉ­çNníùU`ȰµoȤcËØèýysžß÷ð‡å@a~Ú7Ÿiﯲ’ì½»>0ùócWä?ÑÓAŒX±°™W§ø+©¸+–•ËæŸoÙ0%;óN·{FY0ÿÓÝ$E!ÿ÷nÙ³ãÿÔ7Ý“œ­ñ2$Ýlõúë¿lý ùáI$¢ÈÍ~p÷Vâ¨1 Þ6ýóð ÿíPƒa!‡“Ç7tî¯ôÔËé©—õf›€x°° À°ÞÝ!eí×ÕV(õÛ-B }=•f¶jÝõ3'~LºÿwueBÞ>ãÇ}2,n6 ,ßÃ4šé”é«JKž——äÔÕ–ôÊdÚ“‹"‘¸óNÛê»ÖKWþ @ 2,È{™22~Á[¨‚–,gÚÚZÒ_4¤—‚ »L uhWmM™Šo«mí<Þ˜q qêŒï§Îø¾¦ºˆiÊb0,zB¿×P_feíJg˜õnDÔ»í_ øÍe¥9e%Y¥¯Ÿ¿.J//Í‘õˆP©&Y[å |¶ü/™TššrVki$ÝûÛÛ7:.᣾§d-Í y/“í¼œ]•F‹D"C² ]-ô²õõª€€ÓXecëÑí¢­W7£0?õá½£/²nWUæ0yúwÓÞïÿ§ÒL}ýùúz£sbaéëÌ‚§E©ÅùOkkŠÉdÚÜ…¿ ‘—¬8±cóÔŒT-§5©T¼oÏ›×~9zA@ðpG'?…U ÆHì^øôñY„>˜¿cÜ„¥Jp¿Ê,Á]µß ͵õµåª€ ¡J5cå¹{¶Ï,/ýïœ •?ö³^_‡H¤zùD{ù¼YßÒÒ(ñYVÎåA¤e+OîØ4%3ýŠÖ”gØû)L¦U`Hl\Â'!F¹÷Qç‘UT Ë÷/óö‰öô¨ ¦sóa„ð¬AW @oc’&nJ× R5c{vÌꌡa sî11µÖôu&,† K'B€”¥_Ù²nìËœ»HÍé–†'ɧž$Ÿrr žûÑÿÀ¡žµü欌+ Dð bna¯«f“îs÷RìŠW†Õ>Ü5è (I$.aѽ[* ì××–©fì›n—•<ç6²-XN®n¡&LV·ÀAYI&nÖÓ¿Ð+”E__õE¨j˜SŸØe9?ošôãŽl–•“&s>zÃå³›Å">уg|úÅßÈdò_6;ó¦BDk ÔfÁ³ç0Xç˶Õ^íè2,NiœüuQšêŸÓé,ÿÀ1CgûŽ 3Xݾ­({¹ùûQ§ÿþÎð»­˜0m.ýuvR[+7#õ¼a˜çó[Ù:õìñ5í(À“äjªŠ‘´éî5 ã]jªò›yœž÷xzx·2Ý-y°öd:oTÔˆÿ…Roùõ3±D¢5ݺº»µµ‘]ž‹Ê~±§~§CµÍʸb¶‚¶ußD§?9Ûuæ”_½° I³!a]æ?îy§w”aC Ñì#f @¹ÄØÆÎ§_ø;Y—z~%‘ËJ²Ü=h×rnöm&–h½Ý¸Éßå½LÊ˽«“Ö^<¿Y_S²q×+ÏÏÒ.TV¼èyýþí}áQïùi¶ô ÞòR‚ú¯5tõ@"Q%¡!-œþs Ú¡ø>z±2æŠókצPÈçr*ð‰Ö{ aþg™šÙêÈ¡•ß¿³_ß< ù_Áªíõ ë>ñAÿEªa.Êð4åPvúi±˜ßí~9 cvó·H/ߨ¢ü{Z· ðÒŸò¡>Ø+Ê •ª»øiòá§É‡µ~ÖëÂÇ¡á“;FVÊÆì6$áA @w«²7CW®Z;ï]»°v̤õ2™¤¾¶ +ퟌ'G9 ¥JCßž1XÇ&|…H¹¿7rp/@ ]!ý“‡ &‡êÊAa“;þ}™}Õ½€ïbÜäXت¥—…÷·¯lxž~²±þµ\.í}ÖõˆÁrûÄ;8…V±ŸkÝ»,£ôuš‹Ûr•tgWò½ÝõÅ“C}mQ§‹EÕìlƒ*ዎ0r5fðúÚuš"‘éN.1öCGuâàL$-<~𻓋΀€ÓXrõÜ7R‰ÀBà5ýwØ\UE¶:¯S Àƒ…=]´%Âoãêª)¿àñ"ã}öÞuËoš8eZ·ð<íÄØÉÛi4sðóèÎ/F`îè&Ÿgh샮Œ05¨®ÌÑÙë?Ý*Æ@€˜·.¯Öº‰„ŸñøHLìR°S”w@„Žž $ÃwZzòÖ¸D™ }‹ ¦ò¹NÚ!S˜>þcŒéûG}xçêZ$öðÓG¿G ÓøœÚê(A§j¢úéž5èá 5‰Z¸%:iÊ?x"D EˆÁ´ó šð*[û]ëkóŠóïyøÄÈ6Û©fç "*ݺc(ÚÚ‡’ÈtIL°>    ¾èH‡Š6MWïb0 YˆHKþÃÕ éÖ¦•åi¨ô»›çÐã"RݽGä^6ØÓA€€/:ênH"Jž’™zP'Í›š9¹{'Ì»{ÅÑÖü6íWÚ¼Ê9Û«1aÚ!a#÷ùT^ßÕsDç"/¿±ˆˆy†¡[ñ<=Q'ME Z BD£‚yÈÖ±_IÁ-­/—I2Sù­Ö-p_W–=1ü››˜:XXywî,3 ƒî1«n°ä[Íô¡HØ|ùÔ|yתZ¾‰Öoà£óúlìBnÿèæ5ÊÞYËš‚§I¿ òâ¾A“ºu–½s¤9˳©Ñ@M Ó‡os‰jE µ¹g¾Ëi(ÔIkÁásÈTKãûP„-H$üóÏøhEh¼i²€ÏÉJÝÊ‹‡ÏïÖYdŠù¼Ïžç_-|yáuÁu‘ ÉšSqE¢æÂ—^=?QRxÖ]1Yxôc„s+»Päp‹+J’\‡húÃŒä_%¾áßÚÖ!ÌÆ>¬ç8$‘Mý‚§ûO—Ë%•e)ÙéæfÓ£k€á-nc»4éuþ•×ùW¤RïTëî“`aåä-ÐÂs–BÈWݵ4UÉ]4û‰T"xöd7*o± ÿ$9º st&•ˆó_œÔ¦æîxÖ  ÀúÉÈe²†ºìÒìÒ¤ªòä¶–jý½CÿèeFzŽ’LûÖæJ„íAÓé&ŽaV@¿ù:[ÇhÜ/è#ÐQ°†å…¹ÿ˜ûàˆO ݨ;Մ鈼ÙB}!4s_WW¤þM DêÀaë4EmK›`[ÇÈÚÊT]S )Td"¦ l¨†ý¤µ¹Â¬3ÍÜúÅ|­©ï„5ÏÆÔE ·ªù/N ò¦ƒ×˜˜ºkÚ~¡ê¬lè4[Ü"èa@m2·¯˜€°¡‚Ô‡f}è‚0Ðw•ÔÈ;€&a#o¤Q¶ÝÍ3YÍ› %þ5­\m‚gÖȈ_(Gh¥ß¸Û‹“o¥bÝtµË²ÌC!àÛ Ä#ö à×é†ä;rZ¤c°ð½VäpªjB›:wò›øÜ*ŽßÑ„e’ðÅ(ˆ¢å&Hd&à鑟¤s ·ˆ­¸ Ð € µ¨-¬ås 4&!8胘б!}£ äpÙêîõÖÚhè1@aPÆ,O ›#:ˆÁgˆnì/3šµ»>ìY$AiF©a Àg°oØ;ý˜Ö̾Ód"…Aµ‰4«åɤ2±w㢕ÓfÈ·cX2Æ®cá`°k7kÔA¨K¨ ‚ø°WèèJô ôâöN?¦³ïõÃ’`9Ì«æY:[özgÇp¹½ÙØcMX&:PS ÑÔšÙ\ׂ°×0|Ì+–0i\ùÏoâ—>+…S“ Ë„SÁi©oÑ@¾C}ÂÞ Ó‰>aÕ; s*Â1§’«ˆøÈâA `á`A¢’¶…-±@ñ*rkë1˨&:ÛŒÐÂÑ!ɧ '|Ì+P3{«"»âÆÎ›r™¼Ýý›´fbQª^ÖÉ¿áþ!c‚M,MúvèÄÌiªT+L@3¥iýÏH˜Y1ÝZIe‚f¿I àñù<¾€'à7ñˆœI¢èrob3;3„-8;ÉD|Ì+n!ò4µ÷×ç7ñoþrKþïQ›èâÆK¢V‘ny"ÓÉ#‚ラLêÛЖN–ÈñÕ꺙ö@ÜGD‚‰¥‰ÀZÐŒôä·p7|À+"Q‹ ®¸N&‘uéž.Æ aïô D¦‘ßž>PǤï•äê-ÀÔ:zojcjãiƒ¢”x5ˆÖ°;°$é7IDATèÚ(X“R»†Òý±bãa=|Ápsó·­tbÈ¥r5dzví{E{¢+%„@`ïkOaPð¯äšìŠÑPÖ¨& 19"dlAoaédKÂÄžL=‹€fJcZ3µîzÅxu™` [‡'j!L¬X¹Ya£1i}CšZÃËŪ,«QG’HH-E·÷¶/|\¤Qã¾1>j¢ŒžyA$ÃŒ¢½‰ýù‰‚ š €D(Ñá³#&…GN‰!°oˆ Y»X#íH QͱêÞßýab’J ‚¾ƒüÔW½X\¤AkC‹Á°ÌˆŠ;†Aõ$ˆuòx ƒ2úÓÑîan}I”èIm‹ÀÂÖÂ%È¥ü…ºˆO´7ÓÂХݠ­éJ–¦jºX†q]%Â0¬¦€$")¬‹Õü¶¶ã–3Ó6|݆}O²rbAHŽ`V…Ô ÐU€iðˆ 5Á˜ÿÅ >„Z‘–®òy|X ñ¸£»j H&’"gnÀ;ƒ¦ & }RšZA,'V}™öÛ “É$õ‡«O¤Ï=Ó{|5Jt†X9êr¹žv¶¿Ik¥ú°E€žˆ nŒa¤ÐÜÎ|Ü¢±Ž~Ž}XšHÈÆÕ (dHmE'SÃgÅ^ýíj/ÊA&~o0„`üèJ 0â­Å@P=áSJœAPÓ"$H´|Æ3è&´>,Jä@ ä""AÓ7tDHöÝçì[»†h&tMÝÁÃaúêig¶ž »C¼G?QsF¡[;ÐÕ"@¼Ù( 0W·Š!MUì(ŒèH´² ì7¢Ÿ>ûÀx½q¡&($[w[{w;;w;;w;[WÛö=4%¿~ó·|xÿăŒB‰H…NùÁÈÈ1Õ¬ï0 PßÖ[ïcZQ‰ ©,Ts¡kw¿ÀÆÜÄ”ñ–H!B… ɺ“Uš[ªì¦Ó7Ò× ŸG¨‘¬›Õþî3¿™!IªèL†‰9ƒ€½œ‘Œœ%¯#P1¦ˆ Úií6·±q¶éó +x"P)óÖÍ=öã_…Ï »\'MŠ Œ ròqDü,Å?§ÐŽžØÚ½§3£T:Ò03‘DПEÐöAÔ Ž€[ÍÕâV,uÚÇ·”üw@R欓t:©ôe)»-IW‘L¹øßù…2± ÓBF,Vš r 0í5½ªžÄBqS¯™Ãã5677ðZšZLº)ËÌŒejÊ25³2Gn¶ ¨ªíAï@P’SªÝè :„ð¯s«™Ádð[øí„¸™£0²§‹ž (1XšvO¯ªÇi]y]Îãœì䜲Weª×ÚØ»ÛÇÇ9û¸èÖŒ0€YJAµ -JrK´íB*túZº!f|Ì…}lœl&/šìêãŠ=¿^·@€t²5·4×Èhjkáß=}7ó^f]eš?©.©®.©¾ù×M3+³ÐA¡qÓGZÚXêOtn@ê Ô¢Ì"íÀ`2Шèê;ÅÊhÔ´8w÷@wÐç¥Jg -K5µ4S·”^"}pîþµc×­ZnÌËkà=¼ð0ùjòðw‡'ÌŒg¨LŸc$LÞž5 ¨îsNW}\ìåt}rôíâ-ù„úöÙ^M-Bl˜©rãÉÅ9u:8þK&‘Ý9y'åJJ¬„‘SFhZ÷ÚK/U=7/#Oë0˜ ¥8–1ÁƒVÃN&“Ár˜H"öy¹2˜ˆjÒHdÓœÙK,P$>¼ùpÚÝtÝr.hœûã\ÖìE™Yšbw‰ AÊM÷vîŠs´?ˈa°`¡1mj¤=ÕUÕ?ºüèé§¼FžD,! n¾®“Nñí磡bBªtD½›=R—M ÜÝ_ï)Í/Õÿ%¯J~üèÇÏ6}æêëŠM5mß³R­¢–ÖÚo¼¯'‹À˜Êt4–ÊóËNì9‘—™ßÅ(ÊŠs_o[ºmÍþï\ýÜúªHÈ\G7G³QI^É®¯ijhÒë+pë¹›m^°zÁ€°õÌsõÖòˆ‘@¥P±3–Œ×h.|Q´ý‹í‚6Åá+†ož¼õñ÷ û$–‚ @CVPääá¤,"^VP¾iñæžë/õAb‘ø×ï~] .Ž1kó{¯#pñÒ2;E7¡kš;ì3U±:¤W™¯¶/ß.¨ZôUÇ®SayUý¶ffFœ=ú¿ÍÞΕ; ƒ´oý>{g|{VDHIÖ ‹eåê`amÁ­×¸²aÊPÝ8Øw«bu6ˆ%»¾Ú¥°°¶èdýöµì)·–‹<œ{VjKÄ’Ÿ¿ÚÙX×hè‰w¬øùÇ#L-ÌPiö¾YÅŽ~öÐ9M[gY[vm¼ï§÷uN©·SÛZzߺsШc(åÖR¬õÕÚºI¦íízæ°ÿÜ´·ðE!*Rh¨mØñÕÏkö®!é ã£MUZGÐFL¡XÚ²Œd¡vêöÙÛ½a8zê豑–J¹u›nh¨Ö~[WG7G±ûxËxôìáÕ$å“ÿ<ÿÆ?7&|0#ó‚êldçhœš£QëV6,cÅÕrg°¡¦Aõ¬åéç±pÕÇž(U¬o¡ÖUinÞn!A¹\þ×îc¨÷îÙÃgG½;Jå¶=†SV"BjÎ$“>˜¤)°l­ÐÞ(θ‹ THÏÄÌdÖ¢Y£'† ¿§˜ÁÑ´EàßÏ¿›YzçÒÝòâ Ô{¼•×zæà™yŸÏýWP= !ÕyþîÂ…÷{ö8SýÖ­m­ i¯ö½Œ¡xºð òù~Ï÷Ls¦A¤Š>ÕWÕiýÛÀ°€Î.ŠŽï=Ž-¸râÊÄ™¬ímPç„uÛ@¥‚~øå‡Yÿ["—ËÕ+ýÕƒ@ß/%¤ÓÒȤå?~ana€L.K¾•rãì n#wüôñ “ØóÄ"q‡§ÝoMLMܼÜ:,î\¸cøL2’ˆ%gŸýôÛOÑDP?žçîí>ö½±—O\V«i"ÑÙÍYwõÅF”qЫ L%wKtÓtWN=çúÙë×N]k¨}Qÿuý¯×N^ýøëO‚#‚û’@j´>tÓ?ÔŸ@è)||ç1¦ÞîñÇ‹W-B©”ÔÀ5èF W|Tô²(/»÷eHQ±QL3Ó>>èõÏ©•UUyUç+<.oÉ´%ÅùÅ=7ù~_²rÞʹKæÎøh†þàÉÀ2E  ì<µ´´f§gcêeë s‹ü‚ýÐuF‰ i4i¨Ô5;×,zo·¡—øI£Õ<:¥oùõ:&–5«PøRU*áð/‡[x-¯ü¸×Á/à *J*j+kªÙ5µÕµŽÎŽ1#¢íœì ;ì{aRë%ð‡wÎ[¥'¥ëà¬]SÊ”ÀÐt§("„äfølíl7ïÛ¼fñšÚªZe÷ < &v1x XG(+[m#>säL[sÛ—¾$c±P :}äô‰'ºU+ýùóŸK¿[:vêìHµNÛH!D€üC:¹?¾ûƒz–|'yáò…ˆdŠXU‰A°Æn¼O€Ï¾3ûÖ-_—‘’¡`³a}µq%A >Û#&k[kí~xýÜõ–æ–v®%‘ɯK¥ÒK'/%þšÈiP°ý†X$Þ¾f{`¿@wowŒ@iMUv?  `t¶bÍ/h§ò×åÍ\ž9ËB'”¶@ 6Æ’…¥ùχvd>Í:{ìì£;dR 9håú•f–f˜öƃP¶v¶H¦šóWnûs…ú ’n?Ú½qwUE•Š_ÉåòsÇέXÿ%F ¨¶–@0rìˆÎñ/™L¦û0)¨ã°¬X(NP »u{DTxDT¸T*­ª¨æq›¼ü¼it*öƽ±¬buh´SfjæŽv¬Ú¼J(þòã/çŸWsŽêeµ˜ÅRSY£UŸƒ#ÇÆ@¨£÷9u­³ú‚F(ÈE5%BDèÕ5èm ‘É7O7ܭ׳&&HO޼rúŠ­ÍÝë÷J‹JÕü‰T*íV–‹–ŒDB¡vÓxhD¨]Wc ;å=‰SÏAwU‘BpWÞÂͰ d y›÷Òè~õjÃõ.ÿZm#…£ÆÅ]±¬±»@ÐP×м¨è4!„ÕtoŦ€XcV7[øÆ"ûöX2j‡„N£ò%è úÿ}òÙEjvµ¦¿3pHìàž×]\]° v¶;Pá˜"B €úôH2rxruw¥P)"¡È0Û´s££³v¤ZÅ®Ò;À/W©È‰D¢T*Å FÙÛÛéëøõŒ}"Zž ž›P“   ÈLÏÔ÷ƒˆDâ’KƼ3SPYQ©‘¬6íÜÔ/¼Ÿ²oËJʰ:Y°¯µ¦!`t:žqОBÂBô Áƒ† š9g¦³«3¦@(66¨›óApöõS§OUq·¯7 (ÀÒRã3„t×#B oo¤Ð(¢¤¡a!zjÙÃÓcÉŠ%§LÐñ¨×©  P)‹?_™ÿ ÞnÉçK¬¬­° U°¡µ[8€‹ª„nݸ5}Êô^o»zëjdt¤qJT< Âûwï߸vãæ›=çskkë÷g¿?gÞW÷ÞO†a8>6>=-Ýwµ³³ËÈÉP¸c= ‚ç¶qQ´ÞæÌ¥¦ÃðÄq“¨:±o¤ ‰'ö1$ÍÌÌÉ$–‰A|ó4ˆÇã½Ì}YZZêááÄ`0úŒT¯]½6uòT™L†¤‘Uß­únÍw*nhâ6 <¤° Ð²277Oy’¢°öÅ©J„ÈBË`F‡=^þdœ‘ž°‚.^º¯âžâ×Ń¢56h3‰téò¥‘#GbÍqÅ<.È0év3ƒè;efjÖÚÚŠ¼SSÓËW.4HÅ=ϳž¿ûî»eez_ŒÄb±N:5lø0 ª (+*”»¹!‡^|ÔáX¦C ËÊÊÒIS ãÂ… &áNÔÐÐ0mÚ´»wïêï.^¼èéé‰Ñ…aX*CºU±ë³8á„çÌ™£«Ö¨TjZZZPP*÷V&ûꫯ¶oß®×;vìñãÇMMM1+p×9œ0H³gÏ2dˆ®Z …óçÏW] M ¶mÛvõêUÕx¡)¹¹¹%&&^ºt Ë(Ã0 éDõþ—T|…N:¤—/_zyyéPÕçÏŸ/‘ô®®2™,11Ñ ±¿leeµsçN‘HdÒp…à ³$‰6oÞlb¢³`vBB‚úÞ³gOtt´¦ñ/£¢¢¶nÝÚÜÜlD¢1{N8µS[[[vvvfffVVVfffQQÇÓNoG}ýúuR!õõõW®\¹téÒ­[·TÔ8Óh´¡C‡Nš4iâĉöööF'dp2>’Éd‡Ãá466¶ÛÞòIáß0 Cåèèˆä¹\.·ú_ª¯¯·°°pø—´Øtœp [„g p 'àÿøšœ-áÉIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_info.png0000644000175000017500000000061411225071372022564 0ustar eliaselias‰PNG  IHDR Ù˰tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*IDATxœchjj ð÷÷’)))wîÜ9þüÕ«WÏ;wòäÉgÏž1UÌ™3ÛÙÕ:='¾´¬ÈÄĨâÈ‘#8tèPÝçÏŸ€º;;Û3b C(:uêÔô‚¨33jV-šTtúôé£G;vì$ܼy“è^###CC/[S ÃÀÀà2±dÐñ@ëöƒÁ¾}ûvíÚu €&!ÜôáÇ={ö?~¨õ6*@(úôéô3ÐegÀ¥K— ~„* Ãð€)úøñã!làþýûEþüy |   Èr:mRÔ.~IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/increase_green.png0000644000175000017500000000141111225071372022176 0ustar eliaselias‰PNG  IHDR ¡ì´bKGDÿÿÿ ½§“ pHYs  šœtIME×  6ò#3!tEXtCommentCreated with The GIMPïd%nmIDATHÇÅ–]KQÇgÔ]]wÕ%Mpñ%ËЛ¡‹ºêÅÄ/ö¦@„è+ø‚®¤ˆný QЭuU°*6`™ ™R«[ììÎÎyébÝl1b\Ûõ90gæ™óç7ÿçœ9‘ÉdŒã88ŽC=¶mlÛ¦± žž® xvv«žP€d2‰ã84–Zkê§VJ¼Ü~AZ¦±, ƒÁMIp+q»¶Ž· [LôNàr[ÙY9vÅ~ƒ1ÚhrÒ= ­T`ýpÐ0Úàú9¼?šRºú9ìXi\ß=Ä ­ôÿuüøÝ#Îu µB…4’hC”¼Ÿ?À(à1ŸMñ|áX`,0 0eæÒƒêÇšb\ìÆSŠªˆ§=ŠÚÃ-æ(âá—W{¯YÌ/`Z &dÐáRÙmùgþ .JWº‡`åQT{þKß–x›}CVd±Â‚ò,[‚Ò½ÁÀ‹ýüw\™#/ó|ΦYÏ~äÓþ:ï3«¨…DH€0€ƒ«u‚ŵüe™§OF"µ¬|)ÁâÀ©(Á4¦ô ÀRVõ¥¾sá.‹Û ¹ô Ö «ð!3ÌPx£Ï€7ÎÞ¬¾Ô“#SLŽLUäîÏßcm»Ž4F8ÓÜÉåŽ+Ì\{XÛÿ]Çék ;ÒMT´Ö~çY!zc} ¶ ÒëG¸¢ö;@¼9NgK=уíçÙñ¿Vï8¨ðjâ:›6i÷ÛñÙÕ»t5uU–RŒõ3Ö?~$Tìûþéœ@ŽûÅ' ‘J¥Œã8$“Éºçææ°mqZú_½Qs†TM_5IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_fixtures_comp.png0000644000175000017500000000074211225071372023146 0ustar eliaselias‰PNG  IHDR 6Õ ŽtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*mIDATxœUP]KÂPÞŸ ꢛè7ô¼¨Ëè*ºêˆîê."‚l”­†S'ÒÍci:·UŒb¸¹üÞs‚ø¹vÖÈÕÃËy_Îûð<ç<Èph*Šª¨v9èt¤nWT”'Y~l·…^O´¬"+þ0 ‹$ƒqÀqÜÑ´›ð¼ s Á‡¢•©Õpǰœƒzýšç‰4±t°:µ¿·&ËÑV«ŒH¥êy4yzI4íð†Ÿùñ˜#/¶v½ ƒAÎ6ê1¿J,‹;ò­ß“›©3Oáùò £Œ¼‰%4t7sô®ð .„Þ™~?£ê’í ´Îä˜ /|¼lEg¿Š~r{~4b\_†u½ukêtù•HÄ}<Ÿ0 ®Ù¬Ù¾?¡P·©¬Ã‹`XØPa< †ŠÀáûÿ+h6Ï,CÛ<ñ½ŠÇsß7ÑèHĩ܃¦iˆiš°©¡(p 9ßqpôÉÃ0]IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_mmatches.png0000644000175000017500000000125111225071372022054 0ustar eliaselias‰PNG  IHDR Q5éŸtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*4IDATxœuRßkRa~ý‰l‡^8Ø®B'DAy¡è…^ÝQpˆèB±.¼Ñ0×WÆ\å`šå¼Ðb2æà$ £ÓjdzÕ®”ÒP83íøóí;zŽÕssÞï{žç{À1J¥L¢á#°X,Â'‰EQˆ#yF£Íh4‚J¥2É!Ï0‚@%•J ÖnÑ4ø|¾\.7–ÿt»]0ÿ¸\›_gf®¨T‰“Ë#Äjëåe(—ËF"‘w IƒÈºý›ôu¡»Ýn2™l6Ûô³ápøùÚšØJ¡P˜ævwvÄÜGssó¿ƒÁ‡',˼Oo¾Þh‰äŒ¡×ë­ÖK¤_ÄÆþ‡g•~E µZ­L&S«Õ‡Ãn7#~C‹ë-lu»]!w&“ñz½Ó¹;½OO?²,Ôj5žçžÆËDâE,½^LÏ Óé´Ûm2Et:c‹‹L¥ú³³—–.ŸU“…–¾DC+÷<û¾ØÆ¸¯…À.À ˆRÔÕP(Ä0 ˲ˆMÄ}Ä:b›¬âm!Î!wøýÐ}÷Ž`&:¥R©P(är9i¦ ÓŸÊLН¾+„ITÕé×ó„Éçó4M“ÿËjµrwºà_ˆˆŸ¹b1Õì7ÎÛÕjU4šÙlÎf³~¿ÿ_=‹ØÚzµ÷æÉã '“N æx䉪ª², Ùq|Ò)ËÒ¶mpîX³ˆè­ï[IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/boost_anti.png0000644000175000017500000000152411225071372021373 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ßIDATxœuT_HSQ?ÐCôÒsA"†by§R:ÿ=¤6… "•ÈPÙ|É™fD" YŽ^"¥|¨Í¤š¹ÖÃæÄ‰-Í0¯È6Ül×Ìs÷Þ¾sÏ¼Ž©‡û}¿ó}çû}çÇƸ¸˜‡_” Û{2abc ³I¾ª«ÃèpEÀ£ÂΫͧ ×¥pK‹ÛåŠÂ|d+¼T#•jM¡S4iR>¯õz1ÚF‚Aœüñäǹ"eé²Ù¦Á¢B˜ÔóùpYÙø!Þøóžb^¯H`£‘t{¨&…õ™ä¼Á '6/êë9Ä0< ¥JŒ¾i§Ù••¯ÔaÙ·=/ïËXn.OG‡†pCC`u•œ3›gòó·©ámÓë¸Fh2É1 –š$Õ–øa D€=Ò¹Úª-¹—^w;­­&¹¯"‹£UŒôz¿Ée8Ж)w4g}4zî8|À|Q08~°Sy&+9šÀá-GQ™ªßÿÉ2ÔCÚå  AÖæêX£QA/ûñÇŽ,sVú½¾>!ò ¡W½ä£âÎX”JÞnŸ†( X¥ZŨ±È‚`¡®Ž3gA ´ P›˜˜ÒéüÁh‹$»Ý¢Ü€kþukïµÊVf*k¯MùØQ¾4ÝCQ8F…"÷QWý-z˜q¾=çͰŽõöq˃þÅwì·n«¡žäí¼¹]B ÉUUáÉÉ)ð•/ÅÅ-í¾²[Od…÷rà!~U–‚ ¼@D†,û}ö¯uœEíY%•wïTí™?××É3 q!Ϥ@"ÁÉ"¥ë³å)è^wï¤zÍËã‘ÛËËÿÅ`[[ŽÂ<ų®Æý’Õê€Ý. Þ-##/þ6§&'¤§%ùc ­–³X¢žj~÷÷‹MMÜÆÆø~·»ÌL¸CXXØK$Ôl6¬V‹@ F †ÿ<Àn·ý$3½jtyÊ&IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/new_week.png0000644000175000017500000000361211225071372021036 0ustar eliaselias‰PNG  IHDR'M$6 pHYs&&¢ï%ütIMEÕ †ÑÖ)IDATxÚµ–ilçÇ3óÎÌz³^¼Ø‹OŒmØá„‚¥¦ 4R£HU%Ò¢6•š”Uó!•ÒFª¤ŠÖR)ŸZ’V¢j*‚DA¨2§1¶±ÁÞ{íµ÷š³8Ì©¦UúJ£yõêyþÏOÿwÞy‰ÿëhl®f¶=‹·UkŽ&»£™àÐådäÒõtq;pÚzÍ–¾fXª+ÎŽõ±ø¶5剕[*‡å¦è(BòH¹EŠþ€he5¾ñkˆ‘ËFÇè zèœÿçîTøuh›øáZu`S´(¿}SåÈÖy•nuSsåæuVfN’ÅØ’xtäJ)ëPÏóK$ê8Ï­cå§cïMå?|óž²øJ€o×OíXWqmÓÂz-¼¢¥ŽÔÌT.oFõù~’…n’¦Æx¨žÉ@5ªyY–§·M’ˆÆbDc1çÌ£âø½©é*ÿ\k­$y[›JǾÛëynùâV³¨wîvÊæ6@ˆ;’žÐqfpëÅý”D£d{zÐG®RÈ©WÕÍ¡¡>¼þêWƒk•€%Bv_x~v|ûüòk+›WÍ’Us,}Hy9éTê¾w÷i:]õ¡p˜øà ge§˜¤`äŸXM’eVµ46ýíhkÚÆŸ×*€æ jíÜ\Ù¿­.fÕ¯][MpÑV2Z)U õŒÞ!߇òÜi Ù<¡#°q]UÓ°- MuÈÆSíX·~˜ñþ¹M“YÞ…kõ›g²/n¬èýV}/ºlyÿŠWȹU õýý÷÷…ǹi8¶5½. „w.RVƦ]»ŸÀÎgž W7o.+¶?}nMy¢ã¥ÕÖœ…Kc„³òηI 2³¶óЃöK–e‘ÃêÀë2b¢‹Y¹Aªe™kùŸZ¶áYh’mÙøü2‘²2lŠ‘zLÓ2MEA‚U-ó¶?Ý* Í‘ôœå{ö!{œlCzà4ÝKL&°ûÎàô~Fù­+„Ó7(—&Ð%€¼#ñúù0o4¦©:ßF_¸–Ò¡sè’m™È²Œ%ëˆ\ò¾öP_BUñ<I’P…gW×Ǥ.®ðରPPuÎԞ瑼Ó{§çU‰"¹!Â^ŠÎ”ÌŠ“á¼B¥ßáĘŽë)œJj|¯*OÆ–Y:ó—ÚÏ_FÁ%¥„_~ˆ§Ø(éÛÌò’˜'ËØÀ)°MŠUEU±láó‘/8“S”øCßÏqVIê?÷S–ì ’í'Ñû„L G"iÊ\J©˜®Š„ÇŸn†ˆ…5>¾B¤ÇÙ7Š%5TÙc¦æp|TgC´€‚ €"¹¬¿uð¾S)5B…• {Ä¢ª0Šó±-Nˆ0¬Ûòi;lòÌȧäEŸäʸb• 8’3*H8EdüãåŒÏm"Ôñ%aÍ¥ëÙï“‹PwôUZ놉ê.¿ozü[’¼G<‰ c ¡@F RPt ²~ç}÷Ñ‹ý-ÐZ'•¾tÀ üp+a3EÍé¿P‘bÂWÂ,ŸGb$INÒiZR‰êZ[¬º}–·šMAÑi¹}Š”F¤ÓøÇGé®of"%¯ñ‹öwøñ•÷§]ñÍfé® Lh%ØòÓ±¾xcû/$*s#,I|AÜ£¯e]“y®U,ÅÓôûÁ$9`g9pb; @ÆT¸/e†¿ˆŠx‚ÛßÄÔýôÏ}¸¨c y ©k|½¶à¢¥R26Œ«lE%[RÆG¥qÞ¨ <#®Ds¡aݧx¥ýÞ{¡ôpެðêó£x²çÒØs†×œÃD««ð:»XÒ{†öEȪ_SŠgS“ Á ðö‚0Ç“üdL&26Œ+˸²ÂTI9^êÚðríz÷º“bÛ ná|ªFoÐXño[GRp$…™cF4Š/àGõù¨î¤}Ñ á{(^w jÒƒœ-Y;9,“á2®ÏkÆ•E –°Æ¡”÷,Þñ ¿É©-¯b+F›ÿªs]ÔóEÏÌ [ÕÆ‚eMÙbGœï9ã†ÏTTE“A…~}²fBV}:–aPvë"±s§¸Ù?Á‘áJ4ÅA—]4Ù!ÒÕÁdÓ78Rɵ)Í 0ž°p“iä‰4r*c»“YÃkï=öP?çSwï]³Ìý@!/õÇÕxÏMßfh»­«fGÌwlGÊÜžTmçÌ+ÒvÿfÏËÚÏ¢QVÁäöHœ#§=7}{à#†G—Ôïί6JºõÉK׋ö@˜„¶ÜSšÍÖš»‚}Ðf|Åv*03d¨¯–¾ã:f(“¥»k¨h·GÛɧÄkïÖ?mSOŠú7ØÉ ö[F IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_move_to_team.png0000644000175000017500000000115211225071372024305 0ustar eliaselias‰PNG  IHDR ;7é±tRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*õIDATxœcøöìy$¯´ØÕuéS/¾~ýZÞº_JjABÂ. ÔÏÿ?ÿþE¨d€P?~üøðùÿw€ì?ÿ$M\/a1÷á£w;¿Y³û¶_ç¢'ß^þr~Ëþ¯yy¨š¿}ûvÿñý„ 3~Ïø¯_¿—÷œž‘qáÇÏ?¾¾çÎ>¿~þÇu ÊððÊÊ›?}úÕüñãÇ«·®Æ]“y,“ü1yî÷¹sÌýmvβ¥"2ë’“Ï,XqãØ×³@¥÷ïÿ/« ¯¸`ñâ‹PÍg®œ‰:¥vC ¨Yè­ÇwÖ_¬@´ôÓ2U×y^^Û·½ÞQZ[û¿åèTïìMáá뀮iÞ|e³å9KLÍk­µ¶>’\½ãÍï·@u_¾ü­<½ÿÒ±)ûNª©ÍûöÔÙÛnm3»jÔ¬ÿIßù»³óÚÿc¿‘ÑÁ”îõÁá;qÖwÇÖÉ~Û‚+ÏÈȬ]¸ð "À=>¤ûB`¯^ýëìü"!±×%eÇ©KßýúïQ}øÐ¡C÷îßÛúp»¯ïÁ°°•@eˆ¨ºüéòö¿Û!Üã¯/·lZ7¯7cn_ÁÆe–Ñwe¼—ÌÚtóçÏŸ§®¿Ž¯¬ôtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*4IDATxœc8ygó–ÇÅ@´ùqáÊë9ko宺ž³úJÑÁ‹ë¦Ü®q¹Áéú”Õå‹Ëm·×Ì.Ø îZ/¹2“aµ Ò—¤%ŸJŠ}“º"%ñHBↄßå¸ùçÖ1œ8qbÕªUëÖ­Û»wïÚµkwïÞ½qãÆíÛ9r™áäÉ“kÖ¬Ù¿ÿ±cÇ€*€r›6m‚ÊAômݺõèÑ£ØõmÛ¶ (Š®ïÌ™3Û·oßµkב#G€ä€Ò{÷ž=qâHPùŽ; ¦-š¿gÏ™cÇ®1œ:zpÓ’ÙG·®>³{Öåsl\±måü]w;tžáúòΫÑ\·b9¿§0݈æxÇr'†ýjuÀùõ+®ï_©/ñΔÔ'3Ò®ô'Þ’tmbÒYUWöïwÓg~QøIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_history.png0000644000175000017500000000076511225071372021765 0ustar eliaselias‰PNG  IHDR 6Õ ŽtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*€IDATxœ…‘KKQÇç3 n\êR\(®]»s!‚+‰p¡›B#M¥DFùÌDÐÊÇ$>FÓtœtg‚D-qœéN’-:ü‡sçqϦïLµ:àþ3pápÉn­8­ØUp‚£ë—·˜ýá@mH’ƒ|¡:¯Æ£H<ÜM\Òò‚a~8šX—ò”H´Gþ¶>Ž—`,vAtš|qhØ_eR=‰Ä’NW¶ÙÚøC|Ás#buê­ªT‡EŽTjoG.?°Ù®ÆÐ ÷]ì³é$šL Zí‰Áp¦VÇãb± H§ €yplÊs¯cŽ¢¨z…&ˆ¡P¸ëóe£Ba}e²ýb±)Ü1ñÜò“ÃÚox Ú)•¶lÑëƒnwz“‚ÏÝÉòƒƒ‹c ‚ Z º\ƒ ¤Þ²åÁ÷ïÞÿžž__ß¶¶6ˆ»ûmuõË–AUèééݽ{÷Úµk—/_†«¸¬§wqÕ*¨ +++ tZZšT…§ç)SÓSëÖAUìÚµKKKËÐÐpÆŒP¾¾­­oÞ UqëÖ­·oß~þüÈfÈÏoøùó¿—×A+«Ã“& I€¨€HƒTÌšµÕÌ슷÷{ûÉ'"#·¢«˜3gN@À%Ž»¢¢?~ü(:}úô 0z›áܹs»w¿c`øDeeßþýûTáïï_PPpøðáK—.1¼zõêôéÓÞÞ¯DE=yòb2P…ººz`` È–ß¿߸qcêÔù¹7~Ý SÑÔÔôôéS ~øðá¢E‹îܹÿ€*&MšaW<°h…IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_finances.png0000644000175000017500000000124011225071372022037 0ustar eliaselias‰PNG  IHDR ín ¬tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*+IDATxœcø¹G»®¿¿ÿ Üþø8ópûT0ñòòÍAØ @ü÷ÿ¿u÷÷I,vK8аóññ`‰ßÞ–ž˜(°À¨úî§'Õ‡ŸŸ7Yã¼%sÕÝÝßÿüd* ÚUÊ0Ó˜y–©ðB' #å`3Ð B "œs­¸æZ³Î6?úâbó¹9ÈÊ ×F1œ~} Èj97×x]Ì¥··O¼¼¼ïééÔC-@=kïï³Úøõ÷÷976¼ûù‰mŽEèîòäƒM nn¾óñ1Ðr  æôC­zk"n}|q^ΑN–Ùf@;nN‡ˆüüû›{žÝ¦”ð=•+îîBø¹àX/P?­¾·"úôëkååþ@µ¯¿¿‡λ¹ h"P°òÔ”pÍ@°òî.Ž9–Œ³Lòõ@$>ýú±§¨T|‘+Ð#e@OI/ñ zlËýüû<€¡m»)(ô Ddッš«BD:ÑŸ!‚ÞÛó!ÊÊONBhïgg¢ý——AD€¾†ÐÿÀ:"èº5kûãcÀàŒÙWË4ÞeKfÞÑn``Š-r\àLÀºh 0V€þ ÞUzÿó3‹ À4#»Ô ¨ (¸íÑQ`;lNSXæô00†o|x4~ÂåeFk£)¨´óÂÂ_‘ÛÖl`øãÜk{Ј ÍÀø@N‰óon:-yí?þò2„ (ë4½¥8IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_save_geometry.png0000644000175000017500000000055711225071372023134 0ustar eliaselias‰PNG  IHDR*º† pHYs × ×B(›x tEXtComment‰* IDATxœcHKNœ;{2Љ›Ø×‹&˜Ťþ#woßZšµ65þG9™éèJ§Lš\YVòøÑ#|Joݼ™—9{æŒû÷îe¤$aWúþýûׯADáš‚¯^½DQzþÜÙüì¬YÓ§¡)ªKIŒ_8TiTXˆ†²‚–ª’µ¹ ék©ÃÙºj*ò²@5 †KkSCCm Ð}h¦~ýòeÝšÕ¾žîÏŸ=C¸õé“'pÀ•Ø¿¯§«{ýqôÈa Èׯ_Ø/°^½zôGoWç–M{º: DÁ±£G¾)ÌËù °(‚¬´Ô½{vcQ  …Œ0E€¨ª¼«•§7áæu»IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/style_def.png0000644000175000017500000000142011225071372021203 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*›IDATxœuTKhQ}‹nŠuWÐ.úQðƒ u¥]‰Pbk&_°¦ëB*¸PA°¶H“–`#¢IM«î„4Lƒä3I\J“&]´HE EL­¦¢àJpžgr§“˜´Ãaæ½wï}÷ÝsÏÆ97Ùƒx3£Å_â%€a†Ï™ó.uä±äVrÔÌYQÁrH3W™ú~ä“hÎo´pYþÝ}á>¯{æÉp~ð¤ï9Á1ô¤OðåóµÎZp:³}Ö‘•äzqNô Ü+øÞî,4F§Êʉ/œ@p(3]±ñyÔ£{Cný×ûAð°8<òt¤ÍûìЃ™Ã_-”õ`uA,ø2õúSsQ›[š[ÛZãå¸îDª$6 h"ôËÐO]DØ/, ÖƒV@ï~Á$xÉžñAÊõw¯>xyšZà²VH)AßÔ³jŸÑ-üêhÿ¹þµ‹ëQäÐû´‡HðࢻÜóFënRðçAužÿÅŒŠùÌW:IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/0000755000175000017500000000000011225071373020213 5ustar eliaseliasbygfoot-2.3.2/support_files/pixmaps/symbols/flag_liechtenstein.png0000644000175000017500000000034111225071372024545 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÌÌÌÌ™3Ì™Ì3™™3™f3™ffffff3fff33ff33™33f3™wwwUUU€ŽÃ¤ pHYsHHFÉk>'IDAT×càÇ @ÌŠ!ÄÉʉ.ÄÊÀŠ.ÄÀÀ€aºñ,€ÆBR••´ß³ÁIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_brazil.png0000644000175000017500000000076411225071372023203 0ustar eliaselias‰PNG  IHDR Éð²7tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*IDATxœc003Ñ!š2)††2l(ŸÉ‡ƒõ‚0¦\)¿;ƒŽ%Ú 2š ìAØÀ®ŸÓA^›!%…SKU\IVÚÌP<6‘I\)Š~–0)-† Sò2¤5xú ~1üÓgx'Ì©ûò©PF!ƒ¤1C"Vý% R ÅÕ ¿3ÌËÐX²¡¹òY[Õ‹½ïK£¿™³ÿ—Wþó‡áùsÿ(q+çQôËê2œ=Ëðïµ¶0©±¬7aþoÁñ߆çnà÷5KßÇ5:U°b ƒ †ûEm\îÝcØ¿ŸÁ\-ÙIü1Ów©ÿf¬ÿÿ‡øuî?È iÆÀçŽ+üR$Ì"“šêD $‹t™žè3|´à¤©dvê»…+ƒ°#C¡ðgˆcÔgð dtq2Ösuâsöe1g`È".þ ˆé¥ À0OÂÿ¸ÒáH9(éÕ7Õ';ýóŧíoû¯BIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_kittsnev.png0000644000175000017500000000060411225071372023560 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÿÌúÆùÅö°õ¯õ­ôÅôÂðÌðÀî¿íÌê»ãyâvá½ß¬ÝÌÕªÔLÓIѧÌ3ºÌ¹Ìªªªf}d{bEžB&"ˆ(g°à pHYsHHFÉk>jIDAT×]ÎÛ € EQ"Âè¢â„‚ˆCÿÿ‹©ceÍãbs”íÉÑ!²üf~èÈ õPœL`ˆ®[oâ"%6¨AQäe%%DR”“"¿[’€(?ݬTšëJM2Ñ_z /ý’t5K\|¬IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_macedonia.png0000644000175000017500000000033711225071372023634 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÿ3ÿfÿ™3ÿÌ3ÿf3ÿ™ÿ33´«[í pHYsHHFÉk>UIDAT×=Û À E3ËÑ8€#ˆ8€4 vÿ-m¸„óq¢ ´ ÷¦8BçB§šs( ÓÑÜľ«-Z‰ÕÜÇhËÿIÌ´¤Ó’ŒWò¯=dÛÆ(@ÊIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_greece.png0000644000175000017500000000054411225071372023146 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*IDATxœc˜¾pCëÔµ@4aÎÚ™ ×AØíÓÖNž·Ž Z¼r#CçôµÌI?·mùùùû? ˆØR?{ö}żû>ícу¬_,ÿË"Àúõëf,Xwùñ zõéÿ ì7þh×|%ˆfíŸ6mÆŸ@tèæŸŸ¿ÿAصë~ì¿þ› Z²bÃÄ9k1Ý/”óùÒã?Ѫ5뀡©ŸH »å«Ö¾ÿˆÎ?úsùÉ(ûáŸï¿þDkÖ®cX¸l]Ýúä! ^†Y‹ÖLþFêeÆ!1Q/þ5+?ªW~!uõ2,^±‘˜¤Ž=ý¯ØQ³@¨J©›IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_ukraine.png0000644000175000017500000000027211225071372023350 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*WIDATxœcXºzùŒE ÉC@½ @J£çZÏR‘fÏ ^~24CÐpпxÅì‰G[ÉC@½ ë×OýÿŸ›<Ô;ôÿùÃG†f .þM›)òP/01ÿnɵ¡zIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_aus_victoria.png0000644000175000017500000000104511225071372024401 0ustar eliaselias‰PNG  IHDR8cð pHYs × ×B(›x tEXtComment‰*ÂIDATxœcXÕ93!abdd3¤99õ1Ïr::0˜™3@2Ëë¦=ëê¾ÚØ* Eh€ FÆt71qbIáœö²Y@ˆµ©ûåä© a­Û¦E‚ÂÔ——¯Cásrfƒ@›·×O;qâÞ©G7¬9£¥UU“‹—O2@&.™²¾9²=8xFxÈŒœœåm¡ @ Žlvö,¨ dg!»ÏÀ ªbÑÜÝ@ê®® \WÚ q+ ˜óéð‘ÿ ¯fϲ!øØùB »\ßù¨³(ý°¾Ȇˆ^Þ—•~ÔÒÎÄ””’Ï—,‡ˆÎ™s„- ÅÇptáÂc ™›»»4ÉÊVÀØØ¤ëê6AÙõÓ.×ÜÞ¸ÛÕµD@GCÉߦñjYíõMû[±ê‡ Ïw&ä_’‘ ó’Rÿ.HJÁE¹'ÃU/”“»kÅš(b‡¢ˆcbæ>Y½ñDA]qöb ý…y+Ž®?r·¶±ÀÅr–̲²5ÀXA×Ç…pL£%@†§ç¤™3‘¬ß¢CI©Š‡'wúôƒäØDÀÄôåËO )(úY-1€zs ÂÜÒ³dIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_yemen.png0000644000175000017500000000020211225071372023020 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÌ3Ê—©` pHYsHHFÉk>IDAT×cø0IÑÐÐP,ä* X€Iú&!ÿ o½IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_uzbekistan.png0000644000175000017500000000023411225071372024067 0ustar eliaselias‰PNG  IHDR <ðPLTE3™Ì™Ìÿ™™™fÌÿÿÿ3™[¬Ï pHYsHHFÉk>*IDAT×c0664ccfËPÂ2†°T\ À‰+ð³‡ÉTÓ²fIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_slovenia.png0000644000175000017500000000027411225071372023534 0ustar eliaselias‰PNG  IHDR <ð0PLTEÀÕï*Q¡ÿØÐÿÿñ·ÃÝ '™™™ÿÿÿ;«Þ)°¨@‡ pHYsHHFÉk>2IDAT×cHƒ†ôBÑ r (cH/ „³Øƒ!¬ŽÖŽ`èè`€± ‰5ð³v>5ݨ%ÌIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_libya.png0000644000175000017500000000016511225071372023013 0ustar eliaselias‰PNG  IHDR |/ PLTEÿÿÿfffUÙäj; pHYsHHFÉk>IDAT×cX (&‹'a$‚!IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_bh.png0000644000175000017500000000055211225071372022304 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÿÆúÃì» èíõãéóã·Úâïڲå#µÆàµ+¢“6ž´Ö”¬Ò‚Iy—ÇovT]l^X}¹OefAk¯A]n8d«.Ry%V¤ R¡H„HœD‰DšAŒ @˜=–<‘9” þ¤ pHYsHHFÉk>PIDAT×cPTdb„E `r<èB¼|òhBrŠŠèÅYeÑ„@€]ˆ]X– C•¢º—"?†*EEN4!Iif UŠ"`!jTÎP!DIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_italy.png0000644000175000017500000000027011225071372023032 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*UIDATxœcX¼zÙä%3ÑÐêµkÖ£Õ«×OžŒ†6-^ÌTÍ<Ó”a¦12úúûû4pïÞdô‡…hH?šf"õѨþQýä§?ff~ Ó?ÆÑ9¡£PIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_morocco.png0000644000175000017500000000026311225071372023353 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿÞ!Ì.·= ­D ›Q |gsngv^|KŠw‹° pHYsHHFÉk>)IDAT×c„\,G8kŒ•¾¢ÊÒ”2„²$«¡,UaG|ægn 49²piIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_peru.png0000644000175000017500000000041511225071372022664 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*ªIDATxœcØÒ>a[d:}ìøyTp|ëLeÛÚ'2©} êhèߟ?ÿQÁ§ó×0•mÈ´ú¯¿¼{þùµóWO^{uçɧ¤éÿù}Ë¡©W¾=xêðÞKûŸXMšþ^Uè9VS{¸ ïÒÄ™ÓÍ'Ùý­‡§š=so|Ɖu+÷^ÙONø=¾{ëüþ/ß<ŠñG¬~¬éÿ♳×PÁé{±¦fb²@ú“IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_san_marino.png0000644000175000017500000000017611225071372024043 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿfÌŒ p' pHYsHHFÉk>IDAT×c`ÑÐÐPœä* X€Ÿ´<U±BgËIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_luxembourg.png0000644000175000017500000000020211225071372024074 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÌ3ḟ—ýW pHYsHHFÉk>IDAT×cX 0IÑÐÐP,ä ø€I¾ô&!Ut`—IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_nz.png0000644000175000017500000000040411225071372022336 0ustar eliaselias‰PNG  IHDR V`#*0PLTEwƒ¹k‚»=– =  5”y„º`{»AŸ<¡=™™™ÿÿÿÿ:7š¾þ›ö pHYsHHFÉk>zIDAT×%‹1 B1D÷ÞÍ[)h. ›ÊFLgñ¡Â'ÁVRÌb§)fÏ`ÔéÞã¤Ý”¶PUÙäœ#Ý›ìÇrXo”Òwåëì?wxs1ÿw«»IÇiž3q ¶v6 Œ<4©¬]|¿ÖÐ ËR=ÄJeÇÚ­\ìÛIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_latvia.png0000644000175000017500000000017611225071372023175 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿ™œ äÿ pHYsHHFÉk>IDAT×cX p‘¢¡¡¡P¯Jý€#y J1IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_fifa.png0000644000175000017500000000205511225071372022620 0ustar eliaselias‰PNG  IHDR—µýƒgAMA± üaäIDATHKµ•L”uÇïjMÖÚZL[ÓÈJ,*­€b¬CFzcpuüð8~zŽ€@Äã”Ã#!ìB~ˆŒ¦àhiDS7t¬h-P'Ȇ[äæ²WßçºÃñG>Ï>{žçû|Ÿïûûù¼ßŸ÷#—ËR=ÌCx˜![nq……É©lÚd¤®ÌÌÔÈn®Néì¯§ØØÈšÕ¹.3qR *çDëI~9—ÏÔøZf¦ãÎä»üÙ«¤­©ƒööv®]YÏäµ'¹:IDAT×cp–J¨ˆ%¤Š ¡¡¡A¡ª@Ä u…²Bà,¨,B‡±±±r¨± Áqz8¦TRIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_angola.png0000644000175000017500000000057111225071372023155 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿýÝò¦ò•ï‚évéfçVæQæ@æ+äDàmßÞÝ]ÜÜÛÛÚsÚÙÖÌ̪¦¦›’’ƒ‡‚‚|ffecVZPS;77744++'' >@B pHYsHHFÉk>_IDAT×càÅ x„8ù1„x˜øÑ„X¹˜9Q„ÄùExEx B††Æ†ÆÆªRÚÆòŠÆ@¦¡!ƒ1èë¨ÈªHëƒÙÆ!M )E!c}5 c5Y}d!0Ð6Æ‚ð¦cŸ ÅIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_zambia.png0000644000175000017500000000171311225071372023156 0ustar eliaselias‰PNG  IHDR XÌŽPLTEò ü ÿÿÿxx r xxxxxxzxx                    ™™ ™™ž œ š š™ “ š š— —œ — œ š • “ œ — œ ™ — ˜ — Š  › ˜ › š —›š™˜˜— Žš˜—…{o‹‰{z}p‹†r$z"rh&o9z8t1gDu">h @^ Ln$Rn'CW!9IGX#BM!OW&^f*MP$A8!nV0aC,]>*ŒX9yK4zL5³eB©aAoE1£\=˜W<ÚpK–T;îzRN9sB2h<.ôxSÄaF½^D¼`DœR=F7p>1ÐaH»[E˜I:§O@ÿÀÀÀýýýüüüúúúùùù÷÷÷õõõôôôóóóòòòîîîìììéééæææäääãããàààØØØÒÒÒÏÏÏÎÎÎÍÍ͹¹¹´´´±±±¥¥¥ŸŸŸœœœ›››ÜňbKGDÿ¥òÅ pHYsHHFÉk>dIDAT×cÈ„ƒœ·œ˜˜œ„PæœÙsæ,˜“‰,”™Ó0!Ç3I(%4´4ÓÕÁIhùòåæ @€"¤¬€!¤¦…!¤­‹!¤k„"” 22AJ ›! Ň…̬€"äJQEMß2ïIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/wc_oceania.png0000644000175000017500000000247611225071372023021 0ustar eliaselias‰PNG  IHDR(=ìIçtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*ÉIDATxœ­–YPšWÇ}è¤éCóØÇ>u:Ó,f¢[µ©ÓhR«ã㊠Dâ^¨Ö5±( " ₨€ ŠŠŠÊæÂ.‹,®}éCgúØýf„L§Ì.÷~ß¹ç÷Ýsî¹ßv+Ÿä£Û¤ðbxùš”VG½•ŽÃ‘ø•}BPIïë¼~ß)yýßb¨w É%ƒÁð^ñ€¿sDOqãaðYBigJEZ–h{dvmn}ŸÅ]m5Qf_´rŠÚÇ3p´›‹#Þþ±šžO€)«†IœÕI±"«‰]ß7ÃàÉk{œŸ{¤Ø?0Zà“·’X1xü ŒÚL_$Nop–4Þ3±¶W ÙÔfà™÷ OªéÈXJ"–ÚË–a:FWzï)5¶ ¬êŸ£påJ)¾`dÓ2é±>°»vô6;‘#ÞjzG);Ô1,^–køâu°<;==999==u:ÇÇÇÐ+:­ö¢Õé`(S*‘…½B¨,ð€W†Éy9OªzÞÀˆ)§xω+ínq—wˆ´q‡ë¨¬sjGkj¡ðÖ¶w6äò#¯ŸËå‚V®Ü{†Mx͸¬Ñx‡hhZzu‰è5AÀ–¨³ð´!»yrA®U«5l±ÂjwØíöÝÝ]o6G¢|Õ1šVO/|;u-˜ÊÛt9&£Q,S-lh£Ê©7äï¬%Ä)¤™Ê[oèc›L&¹Æèt¹%šÍfØívWõ ïåu‡ \ NÅiô¶î1éí|RFãD@jr=Ëí¾I½ÙPo¶‘Ø’n¦Pk²ÁE“Ù¬V«/mÜxÿÚrò¨ƒ>÷nd¾´“›Šc¥ÖÑVÐ}&@)#k²ZmûZ-ò [.·ÛjwF¢Hép¥†0CánX¬ö”Zzt95²d0”ÛÆi¡‰/ŠEöÒVÆ"DI¤jÏ`±X #ÛT3¸+I5L0€Cƒ¿²m zh€#m^Š@‘ÐÄÐ`Ð#,=µš´,“óWw} ›ÓvèÜ×êMf‹ÕjªÍfƒÀÆNoClÐ=| BçIÝH<–QLJ@u˱·ðd!âùÙٮ·”û»ÊálŸty µÁ``ÏËïøF¨•!yˆd‹•—ñû0ðÖîÁñÑRWü¥íܶ)ƒx,]¡ÒU¡ÚYWébÐJ ç7VQÇtfÕû—­ì,­¾w::ç]0K¤„{jÚæpÇb†ülo8°ÖT†€Nàe“„ø¦¸Veã‹â‹C€¿¯f:ÝÇ0ƒ¿áo³º½/‘,BœeJ¦gÖsôú õíøìfnREÜO!À Š÷È1P¡}Ôú Œ‹ Ô‡‡‡yo¦†ø›ÜÉ#þýüïnüÂÅü /«Í`‰lûno=\ì ÀÊÙÆþz›‹ ±¾Œ :®ã¢(p:^‘,+,7ˆ|TöÊç_Í|ñ×OþüøÓ̔ڋ0¼è f d×£xL€·ˆ·<Ÿ+má)ÙÉ5ЉÊéʉ/~úËh0ðÔ’¦´‹Üõ*ör[ýÖ”™\:ÔðRò–ý¿€}t~†¢T|°»ÿYe=sÿéÉÊ\ñ“=IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_algeria.png0000644000175000017500000000021511225071372023313 0ustar eliaselias‰PNG  IHDR |/ PLTEï™™™ÿÿÿ1”ÐûÍ1 pHYsHHFÉk>'IDAT×cøÿÿjhÃÿÿ¯VM€‘˜@ä0ûÃ!$IY=È„6-ã­øßcIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_saudi_arabia.png0000644000175000017500000000040311225071372024312 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿöööÝíÕÕåռ̼£Ä£›¼›‚«‚i›ii“iY“QQŠH0r00iaaQ8k‰]þ pHYsHHFÉk>IIDAT×uI€@ ÃÌÒö”ÿ–] ªñÑj¢X5@gìL Kåzt›©,Ñè â©¥?õv)Ôû þQÜøĪҮøÐ}û >Ô@DIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_poland.png0000644000175000017500000000025611225071372023171 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*KIDATxœÝËÁ !CÑ€E[ˆ  L}ã—­`s4|Èé)"¶;¬¸Ì¬ÿCa¯7ð·'üœÕ»V{Œ’¼°/ølÍÀ¨ëc-Î {¡âÂé IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_paraguay.png0000644000175000017500000000037011225071372023522 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*•IDATxœcX¿xñªÉ“ÉC/fRW˜™¯10Š®°°õ‚ô“¡‚¨¡Í‚/ËËq¢Š <²@½ ëׯÿü¼uzOOöÏ[gq)êŧFM`Eé”ÓsšÉÔÿóÖ­ õ@ûoáÓ¿dÑšéÝÈC@½ ³¦¯´U=Eꥆ~{õdhêé_¶t"õÙ¯Õy¨¬:}IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_uae.png0000644000175000017500000000021711225071372022463 0ustar eliaselias‰PNG  IHDR <ðPLTE™™™ÿÿÿœÿ öê pHYsHHFÉk>IDAT×cpqq6B,GA ÈrRü,Ä<{£i‘IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_belgium.png0000644000175000017500000000027011225071372023334 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*UIDATxœcX¼xñd °vÅÔõ+'£ åÓÖOžŒ†6-^ÌTÍÌÌÌ€ ~Ÿ“ú†ÒùÏÀ€Œþ°°égÀÄè¢Qý£úÉOÌÌ ý¦v1C+î äIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_venezuela.png0000644000175000017500000000045511225071372023713 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*ÊIDATxœcøÿßÿÿu@ôéS9„A ÚǤÞ~f˜ØÃÝÓ©|é!Kªé?v‡¥³OzÁdóž5¬äèÿú’aeûŠ ®SËYHÖ¿oßžºº9¸P}=N) êe¨«»ÃÀ° 12îjjº#(¸¯§ç¾€À¾ÖÖ{@Leõõw°èWP8TQq M°¤ä¦šÚÂúùøöæå]ô ˆ::îqsïA׿½wO©Ý8*³!d<¨—á-Øä¡·õõ®ÿÛ¾}@#ÈC@½á˜òvôŠêIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_euro08.png0000644000175000017500000000256111225071372023037 0ustar eliaselias‰PNG  IHDRÉ·Yÿ pHYsaa¨?§iÊIDAT8Ë%”klRgÇßÃE[ªÖMífZ ‡k¡”ÛsàçèPléEh)´µ¦µ][¬¥µõRÔ2çܬ3N]æ2—Ì8u—ìö,3š¸™,KvsY²}0~sû²d_vˆÉ?ϧ÷—çÿ¼yž?€Ú’&.TÅ€:sÿñ§Oÿ{6±zÎiƪþŽjÈEÅÞ"©£Ï·ùŸÛÚŒ+ îµó§é”õƒoÞ|øôæ­G•[OÝÿýã?ÿ~¼Z­†lÖ5Ò\a½xtx“'„š8¿Û"u\"§_Þ`]}íäÊó×\}ðì‹+_–7>;tﯻ_}çÆÅsè­ìÖ¬e“›ßìÎóW¾ÞE Eê `¡Ùýųç™!ª%ýÖíò¥;åáynýüüÑ.f‰tm²3‡§Ú¨>1š@«ÁаHN7¶z0•ÃÑòèjuúÈ…Ùׯ¹ôþÑ¥RßÅÙlÅÕ¶dUÎe˜±™ƒ;Ð:Z»çç<3›e~µÖ'Èj8<–>¾\¨+ž,-d#«Ý^ãœ×|l¹dåzëÂÃÚÐ&ø±ù0ÂÁí°'D„{½X¦]VDàwgr×JÃgGÒÚ6–$—f|½…$!²éÓ@›¬õç3o’ûwk\1&^êâ¦ig3ý¶©txñàèÈôDG4-±Æ KX³ÀÆÏlHó¼@›µ<áÍy~;Œé-^:À¤ºb{3I&ÁuP‘& S·'*4uó°ä€eèàf¯^C«ézTXtJPEG-ColorspacexÚ333~c'zTXtJPEG-Sampling-factorsxÚ3ª0Ò1¬0aƒédbIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_malta.png0000644000175000017500000000023211225071372023004 0ustar eliaselias‰PNG  IHDR <ðPLTEˆˆˆfffÌ™f™™™ÿÿÿÌ3nëÃÖ pHYsHHFÉk>(IDAT×c0R666 E&W0KAÆ2R±L\¨Á26†ÚÑ×]àrœIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_palestine.png0000644000175000017500000000027711225071372023703 0ustar eliaselias‰PNG  IHDR <ð0PLTEá†hç ˆÅ1G‹?‘@* cyÄ8™™™Ì3ÿÿÿ3™º“yÔ pHYsHHFÉk>5IDAT×cн  »sá¬ípÖîX8kã8díæÁd!dûÞÃîÍï`,?k”ñ¾0V0Êw©ëIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_russia.png0000644000175000017500000000031511225071372023216 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*jIDATxœÅ˱ €0„Ẁ}Èq‚ØÙ$)lò #¤ ŽˆœÀ#àñÃUŸDï®Ýr©w‚+fºùZ13l÷~áÏ#lkæ‚kU¤quû·Asn\°¢ªì_k%0T÷)%eû‘Ú~삎IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_ecuador.png0000644000175000017500000000043411225071372023334 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*¹IDATxœcøÿsßÿÏud¢Ÿû@Ô 2ÑçzZêÿ÷Œáï3IŽþ¿Oz2˜¦2ýzHºþÏ7x&ì>V×R dãÔ¿oWS]­;&jnp]PT|øÙƒ¹yÙ@6V5@½ uMm "}˜ˆE¼»Ù5rIOe“]8UM}sNý@¤ªWR嬤S‚KHÿÔ„Œ\N?\¨Ý ì´Ä †5^·ÈCk½)Ö´·hy¨õŽ|ïÉcïIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_sm.png0000644000175000017500000000017611225071372022334 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿfÌŒ p' pHYsHHFÉk>IDAT×c`ÑÐÐPœä* X€Ÿ´<U±BgËIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_scotland.png0000644000175000017500000000111311225071372023514 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*èIDATxœ}“ÍKQÅçÏÊ ŠJjQQ;ƒV-"Ü.„ Éh@JJÍÒL´ÂfÆ,M‰ÄETHŠ”)颲´ï²4¦£¯EéÔã®îœß½ïÝ{†r:Ç1 ;?ožšÒ+•Ú‰ áÀ' ƒ˜«°”Éd+Š<Ï{½1·û\*eš›çêêfª¢©inhhÃåŠz<ç|å”J%³y•BU™l+¼B*™|ŒÇï§§ýÝÝK?áÎÎEµz?Í\\<8JÉå;`)\ Š®®¥õõ“ëë—b8|£Ñí"Ñ,b``m{ûôé)—Í~‚L§ß&ÜÓcö›G44h†‡ggi”@­@ ©RíÑ´Ïç‹'å¶¹\WÙ„’ ¿xmm:ƒáàý½Àÿ>€——ÚÛõ?Å<‰ÉIoL­L€ïèX°XŽÑ­¶¿Ñx(ëþä5££ÎXì.Ÿ/°Zƒ›DbÁÂìö2˜ ¦ƒ ¼¿·×äpD2™,txIDAT×cPRR266vqqa + ýL…^|ƒIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_wc06.png0000644000175000017500000000200711225071372022467 0ustar eliaselias‰PNG  IHDR ç²Ô¶bKGDùC» pHYs``zxE§IDAT8ËeÊIoe‡ñÿ;3žñx¼OŒÛÙ“&i ÄPEi Hñø•à‡Aˆ3âÐ $$à€H ¦jÓ:q6Š’4‰³Œ·™±=ž}^.´=ðœžÃPJaÛ6ÖËì>XºÆûa×ÉjZMVüañÖ‡_ÍÏ]­ŠBœç{¨l,½lìüöå´h^3z&ã3ÓîW{jÕûö­®ÙøôæÛí²ïÜú YôÓ¥Ùìb_>1äÂs†ã8Œ\ºra:âi~vùBˆÚn€sÕAÛvÁñâi**ÀB’mÝ–I4ƒx>›°, >ÄÒÂTa-»À@4%M?ûu½¡ q†œë@àH$}bnn)ñ³ ƒËS×vv÷‚ïÏ=T}¼6)ch<õ°4ûj…e€ÃÅ1ê›Vss§ )Â!!÷ÒäJ.3b<3̳ñ}†cÍ <*-(§ Þé>·/°ç{LàóÃ#Eîíèh*õ±v¯Ãü·Î/RÚ* ô (ÆŒÊxBK‡ûÿ ú~ð{ž‡òVy®–ŒŒ×ú©0 ¸¨6G~üî›;5¥Ê>Çš®c¿º½¨ÇÓÑŠÁZÕÆ‘jAíÚlíüâãóM8PìUÊÃóÑÖí!)M;†ƒ™ŽÒ"ŽëÐÁ­û[ïÎN]¿Ëéí–7W>Ñ{æÌ‚Üì׎˜ºF¡wÐlvá¸ÔóÖ>¿2ûƯœç;$eN.R|˜cé“€‰8KÁ²b&¤xS’úy–Oþ±"Û¥¡¬õ÷IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_vietnam.png0000644000175000017500000000025211225071372023353 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÌ3ÿfÿ™ÿÌ‹3¹„ pHYsHHFÉk> IDAT×cP‚Â,+44ÊR5Â`©*4¯RÏ@×IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_serbia.png0000644000175000017500000000031511225071372023155 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*jIDATxœÅ˱ €0„Ẁ}Èq‚ØÙ$)lò #¤ ŽˆœÀ#àñÃUŸDï®Ýr©w‚+fºùZ13l÷~áÏ#lkæ‚kU¤quû·Asn\°¢ªì_k%0T÷)%eû‘Ú~삎IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_cdi.png0000644000175000017500000000017511225071372022453 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÿf3™ÒQàÏ pHYsHHFÉk>IDAT×cXµ€áÿ†UKCÉ'A&ä*1ç‘ ñIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_andorra.png0000644000175000017500000000162011225071372023336 0ustar eliaselias‰PNG  IHDR XÌŽPLTEÿÿÿÿûÏÿøŸÿð0ÿíÿìýïòýÝüïðüíÐüé¡üÝúßåúßâúÞÕúÐúÏúÏøÏØøÍ¹øÌ©øÃ9øÂ)øÀ ÷ÏÓ÷Çc÷Àõ¿Ìõ¾¼õ½¬õ¼œõ»Œõ¹|õ¸lõ·\õ¶Lõ³,õ²õ± ôÀÄô¼”ô»„ô±ó­Ÿó§Oò°µò£ðÞð˜Rð•"ïä ï §ï”î…ìÕ ì˜ì…ꀉêw çpzçh ä`lä]<äY âÏáP]áJ ßÛß‹ßANß=ß<Ü1?Ü//Ü-Ú¾Ù!1Ù×"××1Ö¤iÔÓÁÐ-ÏÓ#ÍÄ$ÊšbÉšbÈǧ'Çų¿Ê/¾\½¼0¼º(·qv·O.¶¤´bg²†U¯Â;¯r6¯"2®…U¬2;¬3ª",§–¦}O¤7;¤Ÿ¹GŸ=ž «HšsH™‡±RŽiBŠy‡…V‡u‡5Q†gB…vW…p …\…'R‚_;€©^€€€€g>{k{];z‹`yfvb vU5u,u t]qYp joT!n!m‘km\lP'jXj3hiK.iA)i7#i-ihS eeoeOcJ`˜v`F!^N]A']9r]\IYE V@T<Q7!QP@}P@M;J7 H2E.BF‡@‡>-9$2#0~™- ! v¥ 9~3m°e¼,¨ÆË• pHYsHHFÉk>6IDAT×c8 ¬` ¤ åç£ YY¡ å31䣪 TU[òó·4žd§:”VËÀÒ/uIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_portugal.png0000644000175000017500000000054711225071372023554 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*IDATxœcX¼zñä%“1Ñ’9ÓÖOžŒmZ¼˜¨”y&3ÃL4´/Ùö?ô‡…hH?¦fbôvý:‹ªw1Ô—²<-eø&M¢þà†K‹¬O—»=n°xVäp¬×lµ?Ñúyg2Ô·0¼Ï°8œ˜uå\˜Éíç©• _™ˆÓïÐÌ‘Çð«L:=õmDÄ¿ŒØ«okÍ[kî‹§_b6Cu'Ãóç³¥NiIooFª\Jñî®føÏH´ÿ &0´L—y[oüÓPï]³Åéœ+H ?¦Y 1ëú÷1”æ0=˜ÄðÎôø#9þÉLÌÌ ý‹×,ž²d &Z:w:1é&•>bq|PžIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/map_ireland.png0000644000175000017500000000167511225071372023204 0ustar eliaselias‰PNG  IHDR €qò bKGDÿÿÿÿÿÿ X÷Ü pHYsdd–ÅÝ]IDAT8Ë”oHÔwÇ_ßóîHB¦èìh Ë›^þãæÝ)Þý¼»ÏܯÙPšoøò~òþ~ÞŸïûÃ÷£D „Ô˘ԃ_…ªý ÒïGÓïµ8½ÀZ –r㈥ ÔW†€,‘hþDDäLU»çL•ˆÓÞpÅiÙmk6춉ìˆ4žÝé ¼Ý=4{ϸÐÎ;š.v4AõÍÞêê›.Ÿ) —ƒÁ¦* 6Hd%^OdAN~ÆÊœ|X{~ÉÀÚó`˜S©¿è*¹B%q€X4ñk, Ö¸ù²5RÆ9)ƒÄù0qÀ ´Æž´¶Æ §?ÐÒÓs^°…[6¨9ÔûeÍ!°zÓ×Y½Ðïûû»~ £ÝÃFõª~å¶>Ský>§ì§2jì§æ1ˆEßAûÿ¹ö#Ðygt}ç >ò€UBO*5½°`µëå¶Õ.¨qmy­Æ+Æl+Ææ10ÛMgÍv0›‚¦b „JT.y_çBhãò‰6‹7/úañæÙzsf>û"|4‰7h™OÍu™OA•R©JHÓ¥¶©_×&/®ßþÔïxAÁ¾e‘‚}P×ù«®œÛëÛASo©c©ž} ×LGµÓQ<ž¬<~Š7Qòk/…üàÝ5ÞëÝ´` EWü#ÆÓê ñ4X”ñkËsŠ93ÐŽ'–iÇ¡ùúï“Í×AÛ·hÛ -¨&Ò‚DâÉ”ôç%?Èvgþ˜í†5¡%É5¡y ¦ü3¹S~h<éû¦ñ$ÜxôG×G0≚G<ê==™l€ŒÓ+ »3ëIîNØêÉݰÕŽU™·«€¡Ôù7"¹%3r :¢ƒQÜ4iÜ@€ª»ª€å­iËÂ%ç–¬KN¸Û¶·ônT¹ß©®rƒå¨ñcËÑç"y¶3’“&7Š4i¾ò&M¤pÿ·£…ûE–^¸œ·ô‚Èž?ÜsBÄþÍ›|&¶ÿßas–Ý´ofôOä¾ÛÿÆ}·H×ÕÁ©®«"‘üØç‘ü…®ÆYüyÝ)•œ€IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_korea.png0000644000175000017500000000026611225071372023016 0ustar eliaselias‰PNG  IHDR <ðPLTE!!!Ƶ™™™÷÷÷ú‰ pHYsHHFÉk>DIDAT×cp×Pap 3L,çÐ@AÑP“¬   XÈR„²…” ,%%Ë94HI¬b k’ÉpÛæ$o*ÿóIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_czech.png0000644000175000017500000000044511225071372023010 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*ÂIDATxœcX6wÑêù Ö.\HÚ¸lÃäž**M[¶\ùO"øóçÐ~†| ò÷ŸsïÞ’Œ@ÑDœœ%MM;¾ÿE¦~RQiÞ¶í*ùú!(0pîƒo ëŸÔ9«~ â*¸”_û¹¡Z;kä։X5{1xŸfà}ÁÀ€­™<‹~%†¸e òøub×ÏÉUÁ`ú€™Íèú‰q0vý*ÌñD:=cfé_6{þêɓׅ6,^ Ò»²{›rIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_tunisia.png0000644000175000017500000000053711225071372023372 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿ”””œœœ­­­µµµ½½½ÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿïïÿççÿÖÖÿÆÆÿ½½ÿµµÿ­­÷÷RJ÷)!÷ÿ”ŒÿŒ„ÿ{sÿsk÷cZï÷÷ÿÿ­¥ÿ¥œÿœ”÷ZJ÷RB÷9)÷1!÷)÷!ÿ½µÿµ­÷{kÿ{k÷kZÿkZ÷cR÷1÷)÷!ÿÎÆÿƽ÷J1ÿÖÎÿÞÖOHø° pHYsHHFÉk>EIDAT×cÇ r&$ hB @ +†$$Ì $ FRaffFªÓůQNd¼º†#ÄPìTLÞÎ-Y*~IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_georgia.png0000644000175000017500000000022311225071372023323 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÿâ‘… pHYsHHFÉk>-IDAT×c`````Ð\µ¬A5+jj”­µ*jUC(@Iˆ¦J° GáhÁÅ IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_singapore.png0000644000175000017500000000022011225071372023672 0ustar eliaselias‰PNG  IHDR |/ PLTEÿ™™™™™ÿÿÿÌ3,Æ"ô pHYsHHFÉk>*IDAT×cøóÿÿÿ ¿?ƒÈÓïíAä°X"›µjÕª 8ÉP ) ,¤2B ùIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/wc_asia.png0000644000175000017500000000251511225071372022331 0ustar eliaselias‰PNG  IHDR(=ìIçtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*ØIDATxœ¥–iLÚgÇ¥íÒÌlY›4{±lÝš­Kv´Y,ÊtŠ×ª«k«N¥S´8¯zg´8Q[lF¹<­ ñ”*VT÷››U¦“oüè~Bóæ‡NŸ !£óÚHìQº@ÅÑnþÂ{âªhxL‡!tøàè‘x4Ç+³é‹¢¶ïxÊõrÍdlŽŒ„SáŸý”Ìû8ÐÛ` †þÀ~Ûc¥.-ÚãÔœœòV³î%@­ãJGUZá°Xnmmm//ïœ:õûa¯}¶×ê_?Ž!ûÅW;p5$KdË4‹Ý•pt2‘È ÌkÏ ÊerDj|†ÖÚe²¬çÜÌJåwƒâW^9ivCÀϺùÜýD|tE†|(xJg€»ºY óÉ>€„THƒ $9YôÄêžaÙ¤sMöÎ'¿;þçþY­R¼}¾™t)7?äëCÁM}ãf³yqQ?¤œ”¨æý÷C`#J×#hg´UÛà8©Šñó^*=?r:â¯0ðßD•?ÖSƒJc Ž%tOͯ4tÊ‘˜[|‡Ô+å] ¦Ð·¹¹ eÃÜû?½ü*ï]$ç,ê™ûk€÷ ±½þ q¤Þ3êÐr²ªŽ-¡´gSúb*:cËØ 96n2†Ìh4šÍ–E½ÚÁ@eøã¥ãèÄÛØ¨RÀ«F]|€þíè±¸Ëø lƒ_ Õ(…, µ>ϲ›ìwJn—ƒ4žŸŸ¼™ƒÉdÕÄl?28 [ ¼Siê·>mp¥ç=/†çe_ì݈¨R×` ‹EÜXÀÍ ¿†™½c®Á@FóÚSË:ž1äp4¢°Ñd2ƒã:Y¡„.îSÌrD°Î“§«q•»%ç™Îp æ 8ˆ®U¡^¸¬ÿ®T°Äñ•»™å—ÛšPÁ‰&ðœù#ÓÙ Η~AAiQz?ŽÈsíêBª8«Îñkñ?µ Ž!ðèK¢³Ñÿ¬<êð¿•Y PèNIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_india.png0000644000175000017500000000022511225071372022774 0ustar eliaselias‰PNG  IHDR <ðPLTE©Èæf™Ì™™™ÿÿÿÿf3™r*™µ pHYsHHFÉk>#IDAT×cpü,ecccA 6± „1XPÙPÀÏ{í”åIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_france.png0000644000175000017500000000026711225071372023154 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*TIDATxœcX¼lõä™KÐÐê5k×£5kÖOžŒ†6-^ÌTÍl:“Á}úúë?øöí?2úÃÂ4¤M3‘úhTÿ¨~òÓ33H?…éÅÒÚˆÖžIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_sweden.png0000644000175000017500000000026111225071372023175 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿöööïïïçççßßßÖÖÖÿêÏÏÏÂÂÂÁÁÁ¸¸¸­­­¥¥¥œœœ˜˜˜zÒHÂa(bKGDºÙ pHYsHHFÉk>IDAT×cøÿÿÚ` –•H,’MFYZÙCì IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_japan.png0000644000175000017500000000030511225071372023000 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿBJÿZZÿçïÿÿ„ŒÿÞÞÿ÷÷÷ÿÆÆÿ))ÿ™™™ÿÿÿ•ý%Ø pHYsHHFÉk>;IDAT×cØ  {Î@Àië@²„utÕªUÖ) KÎZfUÁY 10ë\ÇM  j2Ü65rMT±¿n›Ø…xêªR%^×Ã:x ŠÓuì±Xíˆ X].Àhµ—tM£2õC`…ÅÏO'³qœÔjZv0VŽƒÑN•B Á¹=ãÁ5<7„ûZ ÷&ެܨ@Cm³Ù„˚˕¡"qY ãÂÕ=X§a?Œxkßv||ŒÚ­¨ËI³!Ù8¶nßFêöÛû™õZà^ÏÔã—â;øá‡$aÕI—«¨ÄÙZ´è°;Ühô‚1µ¤ƒx<øÊˆFà²ÉÃÑÓ«ÉècÓ°ä~¯ ñu<„ñÄœ*\æÖ¢P¬AœU{¶†!iF”¾<èiÍÈÁ•Jbܾ÷= sw-\€.X‚]ÈHÅo"¦d'ŠÓcÐP¨p[Ä'Ψe!þnYRªáz 1`×pà€6 O 8YƒOPÊìV|bâ<~ë:Á“åwsi‡Üa¡yT*VêY Ø9zë.êô·Üå r|bÖ|„ìÝá FàïJUZÜ鯬ôÚñ’Ö-Ât,bÁÊvp>¶éZV¹¿òŠˆÓñCÝ8$­î|[üOø‰ ‚¸MŒµûŸQ7´ø‡êsä3»'IDAT×càÇ @ÌŠ!ÄÉʉ.ÄÊÀŠ.ÄÀÀ€aºñ,€ÆBR••´ß³ÁIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_el_salvador.png0000644000175000017500000000022511225071372024203 0ustar eliaselias‰PNG  IHDR <ðPLTEÝÝÝf™ÌÌÌÌ»»»™™f™™™ÿÿÿfÌÅ/  pHYsHHFÉk>#IDAT×c(‡ü¬°4H±Õ`,W6(+Í,K¤yØ.74¤PIDAT×cPTdb„E `r<èB¼|òhBrŠŠèÅYeÑ„@€]ˆ]X– C•¢º—"?†*EEN4!Iif UŠ"`!jTÎP!DIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_kuwait.png0000644000175000017500000000037611225071372023223 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTE 3£ g2¡1£ ê!â" kç"-œ| Ý (˜Þ 0à 1œÞ!™™™ÿÿÿTe: pHYsHHFÉk>DIDAT×c`àaE BRLŒâ(($%ÅŠ!$ÅÇ/Œ!)i¤PˆKPÀB¼H(ÄÎ)¸™9ÄPQ½ö1/è»IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_croatia.png0000644000175000017500000000041111225071372023327 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEç!÷1œŒ!B½BBçÆ)­„kœœ))B!Þï1ïÆÖ99„)Ö11)¥„ï™™™ÿÿÿ÷)œ^v¼× pHYsHHFÉk>OIDAT×mÊ €0 Ðî£óߥ½ÿ]ÅÙáÔ…BÃ#$¿PýûJo¶cœ×Òb ÉVWˆ!¥f#p¹–ÌfÝ•ÞX­¤Þë—žtèýî úåÅxçIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_kazakhstan.png0000644000175000017500000000031711225071372024051 0ustar eliaselias‰PNG  IHDR <ð0PLTEJ­ÖÿÿR£ÈB’Ø””kE–ÔNŸÌÀÀ?JšÐ©©VøøŽUuò pHYsHHFÉk>EIDAT×c`d€‹ˆÍ blŽ"1&AA°+§ àd‹iŠ ”bH–9ÕQ¨,Æ á¡¦5%PQÅd8 UZ5W2IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_switzerland.png0000644000175000017500000000032311225071372024255 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*pIDATxœcظxñºÉSÉC›/fRß™ù~1p“о³ðõ‚ôcW!¦ðÛÆ‚€l¬jðéÿŸö€lºèÿSVówþb(:|®Ȇ‹ÕàÔÿwïÿ„P Íìèð#3þÉLÌàôGIúê!»¨ãaåKêIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_bahrain.png0000644000175000017500000000017711225071372023322 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÌ pÃú pHYsHHFÉk>IDAT×c`ÐZµjƒh˜Ì"‡ÍÀ$ìÁKIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_moldova.png0000644000175000017500000000034511225071372023354 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÌÿ™ÌÌÌ™ÌfÌ3Ì™™3™™™f™33f™fffff3ff3ff33f3™3fDDD=ôí pHYsHHFÉk>+IDAT×c0`’„˜€Mˆ• ]ˆ…Ã,^^"Ì"Û]HBô[p³–¾IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_korea_dpr.png0000644000175000017500000000031011225071372023651 0ustar eliaselias‰PNG  IHDR <ð0PLTEñ÷€€ÿèçÿÆÂû©¡çûœ”÷RJÿ½µ÷RBÿô󔌙™™ÿÿÿï?|û pHYsHHFÉk>>IDAT×cØ  g`€áÞ;xËðÿƒÔ3þÿ@Àðÿã»wýÖ§÷ÿ^ÂYÏᲦÖ¹'S&ÃmŠÝ[çFÿtbIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_england.png0000644000175000017500000000034711225071372023325 0ustar eliaselias‰PNG  IHDROdÀ™ pHYs × ×B(›x tEXtComment‰*„IDATxœcØ´iÓzàJL̵ÈÈ‹))¸õ2©?þüÇ ØÙÿ30üWPÀ* ÔÔ Ò]3!ý@0ôjnþ_W‡13ƒôóóãRÔËp-"¤ˆ,ÔK±þýÝÝÿ§MÃŽXX@ê„„p)êðð§‚þ¿ÿ’¡š~7nÜHIþ—íˆËzǽíIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_lithuania.png0000644000175000017500000000024111225071372023664 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÿÌÌÌ3™™3Ì3³{'% pHYsHHFÉk>IDAT×cP‚ü, ÀJƒü,;ƒ±ŠAIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_hongkong.png0000644000175000017500000000030011225071372023514 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿÿïï÷­­ï{{çkkçRRÞBJÞ99Þ)1ÖÖÖ{C" pHYsHHFÉk>6IDAT×cX ¨¬ 0ÖJ(k;+„µ’‘ "kàÆ U·YÊbàd€›×…i2‘N=Å/’lIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_colombia.png0000644000175000017500000000032211225071372023473 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*oIDATxœcØ´añú5“ÉC›6.fRž1ÿÁ@*ú󔨤Ÿ Í4ô/\0¥®Ö<ÔË0yÊT‘>òH/¥úgôöårú‘‡€zæ¶uÜb õ‚ôß`&C3PHÿ’éÓ€y¨1Š_»6IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_sudan.png0000644000175000017500000000027711225071372023031 0ustar eliaselias‰PNG  IHDR <ð0PLTE½Þ­²ÙŸ½=¦L &³D™™™ÿÿÿ3™Ì3Yèï pHYsHHFÉk>5IDAT×cX| VÙÀYËà¬U>pÖ™ 0ÈZ¥‰ÉBÈFï†UËwÃXÜ0Ö(c7dHíÍ5±¦IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_eu.png0000644000175000017500000000060411225071372022322 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*!IDATxœcho_¹ÊÊšŽG¨—H10¬DF,,‹}|JDDfêêvž8¡¤¦Ö+)95(¨€mšJ^Lý||s7n4 ÌçåkjÚ Ô–’’2w®Ð\úùùg×Ô„õ ©ƒ #£ÖüüX.®ùøì/+ ·²ªÇªßã h:>ûÅŧaz Ìfg_€SÿŒN--þxôOœèÖÑáƒS¿”ÔdYÙÉxô+)õ)*öãÔ/&6­ª*ÔȨ«f ‹úòòpá×Öæ FÆå˜úÝÜÊ „ Ïœ=ÛÁÞ¾ȆxÇß¿pÒ$WNÎùh*±ë¢´´dMÍn=½Ž“'&XX4FDä`*éÅ“þ“’æççOЉY†'ýuöùEDÜ2IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_rwanda.png0000644000175000017500000000034311225071372023165 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿ˜Ú›Î›ÌÍœÅ!À(ž¼-Ÿµ5Ÿ²<¡©G¢¤S¤›d§‹t©— ­s„­kŒ®h“¯d—±\©³N¼¶?Ǹ6ÿã ̺/ؼ$æ½á¼þ€€€L°ƒ€ pHYsHHFÉk>)IDAT×c` (<^q t! !Q ÂB!ÆKb"…0qB]Ð …š„C)IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_oman.png0000644000175000017500000000041311225071372022641 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEïù°ªöphøˆðóB:öõõõXPñ1(ïþÿÿñ ïï™™™ÿÿÿ)Œï!×J» pHYsHHFÉk>QIDAT×uÍIÀ DQ2 Ãý/ „EÞòWu5°’ËCŒ‰¨”6õ$aO.a$èR<ñØ@Lv˜¦‘Ôøæ¼/oºÍª.UõIÛ' ’@öÕIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_australia.png0000644000175000017500000000075211225071372023702 0ustar eliaselias‰PNG  IHDROdÀ™ pHYs × ×B(›x tEXtComment‰*‡IDATxœc˜?eÆì™ó{z¦wwO0aæòƦ‰fÙ@‘¦N8ÈÆ…¦L™Å0¹úóâê§ëwººöÏøÇÀ25ĺáMiÍý{[Òàˆ…%ÎffNïêšÊ0a¬¨¨9Gj§ü>xðĉ{@ýgÖø3sÖúU'âZZõp llYëןgeÍ„‹€ô/knùÉÄG@ýÈÜÓj¦ÈökjÖ#sAúç÷N|âðÔ;à­àÿ þ!ao=}žzùÅg:g k€ 5µZNÎl¨~ މ™ûqÕú{ù5¥Y ú‹ò—žZ{èKMC…_ \ƒªj \ÿÌ™‡$$J úgOŸû³¹µ7¢‰)~@vNÎòo‹—N9ØÏoª¯ï¤Ë`dLGØéB<ÈÛ{2ŠÿÑôËËWoº~ ÙGÞAv*iú32–üÿÿ?;{VÕ@?ëè4àÓ/"RT\¼ZL¬«~`â[±â4r„êgb"ÖÃXÒ/0àÉ!øP/Š›«Tp €IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_usa.png0000644000175000017500000000053211225071372022501 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*÷IDATxœcؾdSMFU¥ÖÁÙ«ûîÎ]€½;{ž¡­c¾Ol£…O´ö+³ÛÚæ}º}?úòðCSÍ»À2+ßR ©n“g×åµ=Z½?zsò4CGßR¯èzkßR iâ‘gwMXñëÃGüèÇ»w õEÝN!•:ŽY@ÒÆ¿Î.(¼\ß‚=ݶ“¡sÒJ×°=§l iá] gwO]óïÏüèÏ õ9-Vž6>E@RÉ$Î.r‰9…Ý_º‚hA{ðÙôAâó?0 †3¾ðÆ!ÁxÆÿÀ4D0áKÀ4L0ãIÿgïCœˆeÂ2IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_zimbabwe.png0000644000175000017500000000055611225071372023517 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÿÌ™ÿÌfÿÌÿ™™ÿ™þþþúúúøøøîîîìììêêêÒÒÒÏÏÏÌÌÌ33Ì3©©©£££ƒit]qqqf™MsEEE<<<3™/ .Š&s 9Ff pHYsHHFÉk>TIDAT×eÏI€0 CÑO‹JPÊîÃÔj¼U×ZumMWí¼D[{ñŠZÁ[µŠU«¶˜” ˆ€ÜT¤(*µ‚õ‚ŠŠ" ˆ ª®û²-Ë’%[·Gß” ri–‘Î{Îû>çù½Ïsžs^P97åRÎäv„äu^¸Û‘RMLÅÕ†KÛ% üÐ7Ùd÷)Ùäó˜®3yá…t§`Z@=îQއ‚KD!­™%ϨÙbkhJ4­æÆ»%óõaVsÞ#nZ-Cg´ðÆæ“ïÑBrˆ0åb%‡20Ó/Uf>ä׆ØB¹dvýçׯRj¶6Ͷ±y-¢nátB)ý8ª¸«‘!%öËyãÊW.?ì31† U§ã8a¹ÄÄJ&2BI(ëjçË1­Üå†+Ì£úÆ—+É£´aETÍŒ n4ñÔ £E¹n\ZÕB” T±k–Ê­é”bU$¿?íïïíííïïÛl¶ÝÝ]èÀV{Ðêt0”¯lÆW°#òÚ=¤®CäË®D..fÖ±bŠi®sΑ9#‹ÃSê&oÇþª¸M ÖšiÂÙ%õ¼Báš3»Ý­by=Ç/g{/©õ®Ó¨ý²0ô$¢r¢„/SeÖ1cÐÄëMýã ­JµÊ—*ÍÖ«Õº¶¶æêd@¶Œmå¦Ö°ò~xwΙÍfF;2µ(‘¯}»nÂ÷¾DœÂ2w çêI|ƒÁ XÝ´ÙíHˆF£Ñ v8•ä‘Ðì§!ùT¯àk8îÒš¡­g"(‡’ÞÀóHý¾¦×á8’É £U¶ …š ðeO»G´ Ü4*•êÐÆQGyÝNN=fHðìQ4~0¹¶çZ5#Ët›PAAb2›-­yƒçã‹v‡ÃlµE )i ÏáNqˆ65IDAT×c8£s 2`eÕ@X'VïÞ½{6ï±všfÃX–01¨ì]ß»`páî]<,MõQ¼xn§IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_lebanon.png0000644000175000017500000000041211225071372023324 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEß âÞ A‘ 5‰{ºX€·[7Œ3ŒX¥-]¥-hª>W¡&I—@‘ q°I»\k«BÝðÖr°I?ßZ¢*r°Mc§8X£1Ý Þ!à ™™™ÿÿÿîb$M pHYsHHFÉk>PIDAT×c`”AŒ 2Òh@†A 00ÈÊA+'”! àãFçæDâgác—@U%ÇÆŒn–$\ê&)Q&˜#°8ÓC©Ù•R½ÿŒIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_tajikistan.png0000644000175000017500000000040211225071372024046 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÜx Ù v þÿÿè¿6ìÉQûÜ‚öóççÀ9û܃öä¨ëÈP÷ôé÷ïÓöä§øðÕv×xØ#Ú!x™™™ÿÿÿ¸§E pHYsHHFÉk>HIDAT×]ÌG€0CQ§J ¡ÌdîRVHÄoùeÈCþ"ÝHÿRjÇBi6Ûǧº•8®,¯üõ¿' Л(œ÷’zý‚–²IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_canada.png0000644000175000017500000000042711225071372023123 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEþttý""ÿÿÿððÿ‹‹ÿ ý88ÿggÿÔÔÿ¢¢þ¿¿ÿÚÚþ²²üGGõ‹‹ü““þ11ÿhh™™™ÿÿÿÿ½zX pHYsHHFÉk>]IDAT×]ÏY€0Pºo®ÈÜÿª¶Æ´ÕI áýàšRGª%-îé2(‘fJ3Ù¢Uì ‰¦° ò^Úcíðæèd³i`ò¼qS§ ûçæß]"1Îô{è?ù¶<øIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_jamaica.png0000644000175000017500000000060711225071372023301 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿ{{{„„„œœœ¥¥¥µµµ½½½ÆÆÆÞÞÞçççïïï)J1cJJ9sZRB{c1)”{Æ¥91¥Œµœçƽ¥Îµ”„ÞÆïÖ÷Þ½­÷ïÿ÷ÿÿ÷ÿç÷Þ÷Îï½çµç­ÞœÎ”֜ބÎsµsÆsÎcÆZÆBµ)­!­¥œœ{„Œ²?cò pHYsHHFÉk>mIDAT×]K €0 D{Ôˆ Š®T°Ø¹ÿ­œ EÛ.›G #ý¼QŒˆlŸ8 JN÷Glaf5 Q2²Õ/9¼fé~U¥ªþ©„ù´©WäIׯ~}–(Uݵj|Ð 7ù+ßb'ÐÀIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_guatemala.png0000644000175000017500000000037411225071372023655 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTE(h@'h@ùýùøÿú¤È³GsSÿ©€'a;øô«ÿñh–¾™ùö÷ûô傪‚ÕêÖMzZøûûþ”p:BHS%ýÿÿ#[6Ÿ£#óé•5µð6¶ð™™™ÿÿÿ7¶ðó»ã pHYsHHFÉk>BIDAT×cI)(ñÀBÒP@PˆEMˆŸ‡SL€EˆAšM‹Eˆ[œƒWEˆIXšOˆ™°D¡xƒi¬²IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_burkina_faso.png0000644000175000017500000000040211225071372024350 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿÿÞýÏø´õ¢ó”òÚñ†ìfçKæÖ àÛÊͽɰŔ¼#ˆ¸&|´*o°._«3S§7F£;:Ÿ?<.ýç pHYsHHFÉk>HIDAT×càÁ ø„¸1„¸Ù1„8˜Ð„XY˜™Y8!Bâ` ÊËÈÈ&aC…ĹÄQ…øø…ØDP…„ÄÅÅ„Q…!"| µPIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_estonia.png0000644000175000017500000000020311225071372023346 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿ3fÌ!º pHYsHHFÉk>IDAT×cø0ÉU@° )ê€B‚±ì$ÍžUn¾IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_bulgaria.png0000644000175000017500000000043211225071372023476 0ustar eliaselias‰PNG  IHDR–‹gAMA± üabKGDÿÿÿÿÿÿ X÷Ü pHYsdd–ÅÝfIDATHÇíÒ± À0 DQ)d#O Åï6ðJJaâÆ)Rdƒ\~Ä)î²¹ûý˜™™eç¬H’¹²CþªÐhs£ª½«f笀ñ޹h…F›uo-;æ ˆtÑ 67Jc {z‰Ýºy8tEXtSoftwareXV Version 3.10a Rev: 12/29/94 (PNG patch 1.2)Ý.IIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_iran.png0000644000175000017500000000027211225071372022643 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÆÎÿ”œïkcïskÿ™™™Þ„ÿÿÿ@u/ pHYsHHFÉk>0IDAT×c(‡l¬ ((eˆèèèðâV«ÁÃÊ1Ѐ² ²amPÀØX“0+ßûk IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_kyrgyzstan.png0000644000175000017500000000026111225071372024135 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÌ3ÿ3ÿfÿ™ÿÌu pHYsHHFÉk>'IDAT×cP‚,•4'(+4-Ê qq…‰…ÂÄÜŒ“0tà6PT™Ï¬°IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_fi.png0000644000175000017500000000021511225071372022305 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™fÌÌ3ÿÿÿÆW…¡ pHYsHHFÉk>'IDAT×c`r```°¿Uÿÿ À° @Iˆ¦J° H”¡¿W4nIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_benin.png0000644000175000017500000000024011225071372023000 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfff3™ÿÌÌ3–5DB pHYsHHFÉk>IDAT×cPRR2²X.`@: ¹*…Ù¼åIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_bolivia.png0000644000175000017500000000042411225071372023336 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*±IDATxœcØÒ>a[dy¨—HícP'õ¸þ}ŠîÔ‡`E7kƒ€ä¥j\ öM(`8{&ãûN4ôú몙 •m\¥"½ÌÇ0bª¢sgS±ë¢­Ùl±ŒÑñ"“+OÏe!Yÿª4Öò|¨RÅÙ9,w¶²ãÔ¿v_É—>˜èÈë]»,WoÕߺV« Z¿¯ˆ!kYµò<7òPï€ëï_;H‘‡€z %{˜YÀÌtIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_jordan.png0000644000175000017500000000037511225071372023173 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEìüììØ,‡/X&CCI!ê„„ª ¥#‡ ™™™ÿÿÿÖc)/Ÿ–x pHYsHHFÉk>CIDAT×eËA€ CÑQ@¡åþ§0&¤üݼt W“ H;n'žm±1³PE”­%Æ‘ûN4! € &­ˆ¤÷­FÏ—GCѹ [§-ØÐΦÀš¦¡+Ùšûäf„!Û$l»‰1"ÉIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_indonesia.png0000644000175000017500000000017611225071372023666 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÌ3&â¿í pHYsHHFÉk>IDAT×cX 𓢡¡¡8I0±âUH—”IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_laos.png0000644000175000017500000000026111225071372022646 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÌ33™3fÌf™Ì™ÌÌîîîffÌ™™ÌÌÿÿ3f™8"ób pHYsHHFÉk>'IDAT×cP‚l,c p –3”åÀÀ‚ÁBÈïëÀk2õÔs²ÝGIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_turkey.png0000644000175000017500000000045311225071372023236 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*ÈIDATxœcظdéºi3ÉC—,cRdŒ>KŠ€º€zAúÉÐ AØõÑwùbðYƘdý_L<ÿ;óçÚ­-¿W´} J&MÿŸSþœ½ôYÖ䳄Æî ·£ÿ‹®Óÿÿÿ¿—·B5ƒÑ÷âÆ¿÷ýhž@„ýò¦ÿ¾ÿø9a²þ¯Îa¿­þ–TD”ûÞþ÷õÛ·¸|¨f¿„Ïr&Ÿ¥qÆ.–ðÿŸÿkýö_ë¶}¯êø¬hANü‘ÿ¥?ÊÒÿR¡”“¢Q€SIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_costa_rica.png0000644000175000017500000000020611225071372024016 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿ€ÿõˆ!¢ pHYsHHFÉk> IDAT×cX  ¤hhh¨”ü°Èjô\ƒ&!@åºzIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_lux.png0000644000175000017500000000020211225071372022513 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÌ3ḟ—ýW pHYsHHFÉk>IDAT×cX 0IÑÐÐP,ä ø€I¾ô&!Ut`—IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_qatar.png0000644000175000017500000000022211225071372023015 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿŽ4›4„¥Z pHYsHHFÉk>,IDAT×c`Øýï÷Ѽ÷û€äÿÝï?€ÙÀì 0öo0;CÌfвŒV'S¹Õ ¿IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_turkmenistan.png0000644000175000017500000000056711225071372024445 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÌ`±h4¬C¢%šj^ŠO‡79|{ x<vT,uttto ki3eH$b_(b]¨p][KX7X&Km(E;4‘Kvwxvvu}ðš pHYsHHFÉk>]IDAT×]ÏI€0PŠCµÆ¹¥*ñþ—´;)løyù!Ø5H/‹vhˆùAv%IDAT×cø³øÿÿ —£“¢KCCVÁ( ÁT 6ƒú._CJÒëIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_iraq.png0000644000175000017500000000030711225071372022645 0ustar eliaselias‰PNG  IHDR <ð0PLTE3’3x¶xGGxÂßî߫ҫ‹Á‹ï÷ï¼Û¼™™™ÿÿÿ¿ÕµUß pHYsHHFÉk>=IDAT×cx qxY{Îäœ9væLÎi†=³¤N.\3K ÈšìtÒDg²u¢ýLG͉öÓ ¼w¡? «QF¶DlIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_panama.png0000644000175000017500000000025111225071372023144 0ustar eliaselias‰PNG  IHDR <ðPLTEÌ333f™ÌÌÿÿÌÌ™™™Ì33™ÿÿÿ©ç–ò pHYsHHFÉk>7IDAT×cp×P `p/W//…°Š„`¬òt8«ƒ•é@^ ”U g˜ÃXp1˜º•?(ÛÐb]¹IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/wc_namerica.png0000644000175000017500000000251311225071372023171 0ustar eliaselias‰PNG  IHDR(=ìIçtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*ÖIDATxœ­–{LÚWÇù·K:ÿØ·T“uÝ–M›¦±¾µõQÔšøèÖu-¾u¢¨Óúh×­jku¾@Q©HµÄZ¡¾PQ@|ò‡øhúïþÝŽý%¡YF¾¹Üû»÷žÏïžsîÔµ,’|±]í™è¤ê”¨\¿X\½_|MX¨4*×K´Ý‚%ÞÄQýsºƒ z,‚a`ÙÞ8¢¤Z& ¾BÒ[Û…^ìoǾººäéÍq¿ÄýúÚó«èìÛ¸âдô¨œ÷ç>åy^ÆÄá²:aKl42ÿ‚'NýUMxEc ¸ ›ïŽ-oíîh “K2D öº´çøFúŸÍ?Ò¯DN]òý…²èAxfUx¦øËïÒo%7$%T!{à(h<µƒ%À5 ΋·­a54%© ¾¦Œ ¯RlÁÈWj¡¾?w^ïæ®ÿÄçéÝìkí%4¾·‰Î›®qx‹`÷èððàààððÐ`0˜ÍfèÀ¹LvÒÊå0¬îĔӂs:¸Q£¼¼þÅ7o<¼æ.|?‘Ü`½'¢HŸX›]ïêcêûEÍ£ë2å {A´¾$î[}ŒF#´BÉæÚÁ˜2Ú™à½óŸ[»zø¢OPF»}^”urY|ij]_X~çϼ˜ʤÒ5O¬Ñéu:ÝÆÆ†5{„/)i¼WÝŸólôLð°wèß(Ô;Jô™Çò…BÓZ&äóiÄ(„™Ê^|D`)•JáÚŽÁhDލR©,`“ÉTAœĶä’Ïc’ª÷ÜÜ)W"á:¥ÅW8¤&T˜L§<¹­Òñ—eÛ*-‰ÅoeLÈ”Zx¨T©¤Ré‡5¦:çÌëdár8ÙëFéÍ,LBU2º(:¹ÑfC9a9“F£Ý’É7žZ1šL!8Ÿ„ùmžTv¾¢Œ-©5ºÄªþÐ_¨Á=.À œØâÿxèçwÛ¿i=í-x äê¦B­VCG°,¥ÍÅU2` ÎÜ:´aŽ䑙FútP~wLq—k0(&¹ñ^vã¬@ș߈,í?5UFÓî¶dÛJ•Z£ÑU«Õ‚ ±1†5Åm B'þÁ_ÑxZP)&¿ÙYŒ­U×=ñøèhC®„"eþUNOÄffgW+ Ö¡_¶­‡êiüH\‹'ù࿯lìš÷÷‘ÒÙe6ŒÚ,ˆÆ÷‹W×€*^]_\•‡Sí¤?Èmz™RÑ~¿ž•ZÛWMd_/¢ºLJàÄ–²§Õ›Âq½vkÄo(X « ‡F|³IqxrH–´±3ž0]€oÿÊ0˜Ì0³d¿f^´Åç¿? $ \Û¸å4ö‡‰6U)™¡D`Pi;b ThŸ2f왓àê½½=ìÓÑ^Îò‡î†ùˆdT=×`ø1Ñhõæ DþÙ¶÷á$w(l°µ&WÃ5EÒØ^PY­+(qdÁ5/ª7š+»&‡£„¤Vkà¸N,”uŽ¿œ‘öq„»ZýήîîÓ+ç‡%¸3¸¢kQ4Žâddù»RÓ5~ïáIf…ö`jú’j‡œG§× [ØÎM¤´‚œ½[7äÚÕønÁ3Öÿ¶Ñ øN-Ó‰~ªs6ûŸUÔöú_@ñM…ãÁIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_togo.png0000644000175000017500000000026411225071372022663 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÌ33™Ì33ÿ™™ÿffÿ™fÌÌÿÌÌÿÌÿÿÌÿ33ÿÌ™eÊM pHYsHHFÉk>*IDAT×cPRR2$Ö8‹Ái0(ñ*ÁXXt¬‚$–1 `cÑ"©ðg:9IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_thailand.png0000644000175000017500000000020611225071372023473 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿ3™Ç%ü“Ÿ. pHYsHHFÉk> IDAT×cø ¤hhh¨”\ °Èjô\ƒ&!­#8IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_nigeria.png0000644000175000017500000000032311225071372023325 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿ”””œœœ­­­µµµ½½½ÎÎÎÖÖÖÞÞÞçççïïï÷÷÷”G‡w pHYsHHFÉk>IDAT×cà&0€°  U!d AÙH;ŒÄIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_syria.png0000644000175000017500000000022611225071372023040 0ustar eliaselias‰PNG  IHDR <ðPLTEÌÌ™f™3™™™ÿÿÿÌ3(- pHYsHHFÉk>$IDAT×c…ü,ec0±˜ ,Ca2B’uü,í4ö5ÀIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_fyr_macedonia.png0000644000175000017500000000033711225071372024514 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÿ3ÿfÿ™3ÿÌ3ÿf3ÿ™ÿ33´«[í pHYsHHFÉk>UIDAT×=Û À E3ËÑ8€#ˆ8€4 vÿ-m¸„óq¢ ´ ÷¦8BçB§šs( ÓÑÜľ«-Z‰ÕÜÇhËÿIÌ´¤Ó’ŒWò¯=dÛÆ(@ÊIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_cyprus.png0000644000175000017500000000022011225071372023230 0ustar eliaselias‰PNG  IHDR |/ PLTE(È(ÿ´™™™ÿÿÿQNJA pHYsHHFÉk>*IDAT×cX öÿÿÿÿ‚¬’ÃA쯡`2!ûá0²J 6÷R1ÖIcIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_chtaipei.png0000644000175000017500000000045211225071372023500 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿÿååÿ33ÿ..÷÷÷íííé]]äääßßßÏÏÏÄÄľ¾¾®®®™™™‹‹‹ƒƒƒwwwnnnkÁà]]]@@@<<<222***Ïœ¿ pHYsHHFÉk>pIDAT×eŽƒ C{&LAÓ)ÿÿ¡CEtY“Kš—¼Ká,ÍÃc £Dî "BVD8IDAT×c06066 cacc' Ë@&fÈ ƒ«3€«3†‰©¸@€C( `S‚ST›ÕhÓIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/wc_africa.png0000644000175000017500000000247611225071372022647 0ustar eliaselias‰PNG  IHDR(=ìIç pHYs × ×B(›x tEXtComment‰*ÛIDATxœ­–{LZwǯәt‹YŒÿ5ëþZ²¥K–lmµ­j¦Ø¹Ù´Z[ãc­ª`ë|¶6 ›V­Z§CD¡ŠDEÅW}¿ñ¥¢ò4Y³g³,ëvð6¡Y–|sù]îïœÏïœßù{‘ñd3L {$Ôx$RïÃsh'®áñä®Ìj![Îû<ŽdnGú"•æ~‹â‰­3 nO'ÕZ:GuߌÀ–ZÌ’ˆÆ–ESù£ÝO¤ýlÑd>•£“Xܯ—+TñTh6Õ#¾ L.f1Éœá6ñtd~ëýêŽÞˆ`tiowרi©\¶¡Ÿ¨X¼!LZݰO ­€Ñ_Ãã Ì›Z¦W Ò‰‚¾‰åëlBUH6µP0é4bëHjiÓðôª©‰U±{g²HÝÔÎqÕŒÞÄw›fµ )Ÿýƒ /„ùi@ûGž%¾¡› ÅŒô™N§Cs.ú:؈{dÑé¸JÄÚCÁaöüª¢‚-9OŽø®Å*5,”ðq0èïýëOG\Fú& æ©IUSÏú†x›ŠM©T ½NŸW+´ôs *etÿð¸÷¨3 ß–SÆ03ÈõØ/òAööÁ îHT¤Ú;™ñ} ðî“xõü •Js%‡éw‡î…«³Ý,â<¨w2År¥D÷K¨~Ÿ§~ç½ß÷ëïº6ÑÛ¿N5Ä™¤Zhp½c¸¬qÈ3™‚I­±¦3®f“GÆ»†Í‚¾x½ð…“óžãÛ?;:ý±O…ÐE#.Ñ!Yèœ4¢à|*—r/d4x&‘1Ør[{l*E•¥±¸²MÊŒ|­àj@üŠÃ«Í~Ž8ô¿ü”E+}È’~KãJ ùþxrQ®ÕhÐÊ옺YÔn6Q¤ttªÒÉù©ëQÿÈK'7ò›’Ê:"ïVŵE2ߨ¬7ŠfL;‘b[fÏT¢ÝáPý{ìv̪xÙ|•Qëô*éD~la«ð—Ù,¥ú5¸¡kÌrΚëÑ%‡ç"sûàž치r«®@q¹ kЍü?,ÉØP#? `Ñ&»e9¡õØ'ê?‹Iá~ìuHД»5"µf «ºÛ>^&[Û*˜Ý72åž`~@UÇ}¬uqóþ¦Â?ªÔª“è\†i­í·m)5Û*-,ÙêÓà´ßÞÂ¥ØðMt /1…SÛ*ÍÆ–:<¯þ<_mÌXÙ]£‚Âòl<?Wà|^ÛoÃ>¸º<ã2žm Ü>0+çÙvý†BË*8›žÛl?Õð‚-iý_Àf2€¯à›m(Œ`ëéVJe÷¿Š@†uÑÒ$IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_uruguay.png0000644000175000017500000000056011225071372023413 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰* IDATxœcØ´iÓzrP/úóçÏÿÿÿÿý>ñ÷÷ƒÎÙ¿~ý¹÷ø#~tûÁ»%ËÖ‚ôÿÿûàïm¿¾ÅþüôûÛä¿_?xú‘As2A•·¤ÿïŸG??¥üúiöëŸðÏÎ~Núþã÷¡3O ¢YóWƒíÿå÷,þÐýõÉ÷ï¿%>ýh›yš0š°¢ÿÿߟg}Îýý¡èÏ×%ÿ}{üü³´Ã<‚(¹dTÿÿÿ?ÿÿÿ÷ïûÿÿŸý'õ2¤–-Vv_DêehêY^=á8y¨¹wÃì«FêeˆÈ]HLTãŒÿEK×\¿ûæÖƒ÷¤" ®EK×2P˜þ¹Ò!(õ›fIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_china.png0000644000175000017500000000027611225071372023000 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿÿÿÿÞÿs÷÷÷÷ÆÝzÓ pHYsHHFÉk>4IDAT×c - †ÐÐ0q(«°´0 Ì 34 6…ˆ©‹†CX©i0u¡¡npV(I,0Ô#é–yIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_rsa.png0000644000175000017500000000041411225071372022475 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEM¦ íöèÇã¹f™E¢kµFÌÌÌ™žÏ†—Ë}ôöûœ°×ë°œýöôÿÌ™™™ÿÿÿÌ33™7›óqÑ‹ pHYsHHFÉk>RIDAT×uÏY€0EQœçB…ý¯Uªm|ñ~žÐÈŒ˜OŒÌ›cE!ÙÐì@2n}{‰ÜƒKÌq" A?ôy˜¿_µT–Øô¥gUÕŠü ½MMF„kÐIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_cpv.png0000644000175000017500000000023211225071372022476 0ustar eliaselias‰PNG  IHDR <ðPLTE™™™ÿÌÌ33ÿÿÿw…ÃÓˆ pHYsHHFÉk>(IDAT×cp‚,(ËA,fcac2`P‚$1„:d½P ›Mò»IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_hungary.png0000644000175000017500000000031111225071372023361 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*fIDATxœåÒÍ €0 €Ñô‡ÎѽZ¥Ð¥‚ RP‰©º@s5|Ó;%°"R­º6DuZ˳Ή^ßßǨK,kGìï½üg¯KìðÊë3|>ìÁ\f6QÃçžËRt¥žn‡ïSOh_IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_romania.png0000644000175000017500000000030311225071372023333 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*`IDATxœc蜲6,):²+ýú±0dtqKܱtt´§¯‹!¡lƒá4ôõŽîÿ{ Èèçaå{Šhèhfâ¨þQýª¿{êÚÈÂ¥hèðÎÌkG#‘Ñ…-ñ@ÕhhO7Ü’sA%î®ÚIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_wales.png0000644000175000017500000000103111225071372023017 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*¶IDATxœŽO(ÃÇ¿åßÖüÉü©%ŠÚ…5¥¤°ËJn¢Òþ„&ÚJ"·¹©q&IXÉb—G¢v“?)M¡œˆ±yÞó“M¸x}{ÿzŸ÷ü~ÿæYpˆF£ôe¯¯ ÒÖ­¬Ä›——Òd;9¡ÇG¥Ç³Â+ù|PMM$/)Ùb1òxH­¦êj2™hfFšûût{Ë1gÛÝÆf#ƒAx—‹"jl”\‘F#¡iµâ¿ñá°ÇÇôð@‹L/.Ê;_0kjŠÖÖ¨»›œNº¸øq¿ªŠîïéððsº¿Ÿ¬Ö8l6ËÛ¼¢®ŽÜn…Þ»êuì8ÆW{Ï+ô -¾Þ†o7ôœšrW˜uV©Ÿ\²3Âb³ÞY8¡€v!®3!¯ÔxûH&IDAT×cPRRqqqqKKc ÈrsI²ÂÒR1Ä\Ò\0Y8Í}`&¬zørIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_solomon.png0000644000175000017500000000042211225071372023375 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿÿÌûËúÉöÇÝÄÚÃÖÂÕ³ѰÌ­ž´›³—²”±†ƒI‚K}~Ny|P\£X¢U¡7š3™3Rz.O}*L€6–3™ýÿA3 pHYsHHFÉk>XIDAT×]Ìá €0FQ…¢("ì£æÞÿ9ÓÑ6—¿äp•ò0r2S&Ýè“{e>IDAT×c`F0`†á&]´Ù“¯q+IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_es.png0000644000175000017500000000027311225071372022322 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*XIDATxœcØ´xñúÉ“ÉC@½ @ê3óRÑ ^~24CXÿªiÿß’‡€zÖ¯Ÿüÿ?y¨wTÿŠiÿ釀z)²Ó33H?…鳩ÍìVÐÇIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_gabon.png0000644000175000017500000000024111225071372022774 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfff3™f™ÿÌ3™x,ð³ pHYsHHFÉk>IDAT×cP‚ü, À …ü, ³MǹðëIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_congodr.png0000644000175000017500000000034611225071372023347 0ustar eliaselias‰PNG  IHDR <ð0PLTEÉà«´×ôÝéh¹Ùä»ÚÔâëTúö¦ÈêÃÝ·×ð²Õó÷ô³×÷®Õý­Ðîìï8Ô5L pHYsHHFÉk>\IDAT×c˜Á9SpÖªU«ž3H$ ‚ƒ#Œ5!YPfÆK¸Qð¬¿ïA K Y°),ˆÈZÜ(è”–äd-H¼²mËEˆØ¡„¤‹±)sL@z—ÀÍ[³BÇýÜPŠÕIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_botswana.png0000644000175000017500000000024211225071372023525 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfff3™ÌDDDUUU½h”. pHYsHHFÉk>IDAT×cP‚ü,øH, Ò<rZnÍîæIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_fiji.png0000644000175000017500000000031311225071372022627 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿÿÌffÌ33Ì3ff33™Ì{'Æ‚Š pHYsHHFÉk>AIDAT×c`dgdK†20‹Q"&bi.n016˜:–°4ˆ^³4†40`aƒ±’Ó`¬4ì,Ë œ­pŽ›IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_netherlands.png0000644000175000017500000000020711225071372024217 0ustar eliaselias‰PNG  IHDRÀWÎgAMA± üa>IDATxœc|ÂÁóŸJ@æÇF&jˆ †Ž¡Œÿÿÿ§Z˜222ކ) ›|Õ :Þ§‰¡CÙÌ@Ã"1IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_ireland.png0000644000175000017500000000027211225071372023330 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*WIDATxœcXºzñÌÅ“ÑÐ굫֣u«Ö¯œŒ†6­_ÌTm<…Ùp 2ºõæÒ4ðíÒÿ3 ÈèÏ)  ýhš‰ÔD£úGõSþ˜Aú)Jÿë¡eí×Õ¡uIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_senegal.png0000644000175000017500000000034511225071372023331 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿ™òòòÿÿÿ¢Úããã›››±±±ÍÍÍììì/¬ÖÖÖÎëÿcH¶ œñùùùù‘~ËÂÂÂúý¹¹¹¥¥¥üþþÿ]½£`¿˜–8TSk pHYsHHFÉk>+IDAT×c`0`Š…DDÐ…¸严ÐT ‹¡©j¡š#BËÒþb ÃIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_cz.png0000644000175000017500000000044511225071372022330 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*ÂIDATxœcX6wÑêù Ö.\HÚ¸lÃäž**M[¶\ùO"øóçÐ~†| ò÷ŸsïÞ’Œ@ÑDœœ%MM;¾ÿE¦~RQiÞ¶í*ùú!(0pîƒo ëŸÔ9«~ â*¸”_û¹¡Z;kä։X5{1xŸfà}ÁÀ€­™<‹~%†¸e òøub×ÏÉUÁ`ú€™Íèú‰q0vý*ÌñD:=cfé_6{þêɓׅ6,^ Ò»²{›rIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_albania.png0000644000175000017500000000022111225071372023273 0ustar eliaselias‰PNG  IHDR |/ PLTEÿÿÿÞ!› +Ló pHYsHHFÉk>+IDAT×c‚†ÐÐT¿D†ÿ³ÿƒÙkìØï`•_ÁäR0 #j5+ÄâœàIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_faroe_islands.png0000644000175000017500000000021511225071372024520 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™fÌÌ3ÿÿÿÆW…¡ pHYsHHFÉk>'IDAT×c`r```°¿Uÿÿ À° @Iˆ¦J° H”¡¿W4nIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_tritob.png0000644000175000017500000000061211225071372023213 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿýóòýïîøîí÷ÍÉ÷ÈÄöÄÀõîîõÁ¼õ½·ôêéì†}ìƒyëzpêwléshâD5á<-Þ)ÚÚÚÕÕÕÑÑÑÇÇÇÃÃË‹‹‚‚‚}}}yyytttkkk<<<333...***%%% ~Ë/O pHYsHHFÉk>pIDAT×MÍÛ‚0EѱQ‹!60F$ÜûÿÑÖˆy8;+áx]žjOfXº{cSwŽÁÕ&ið¬}¢ÚfÈû%Oð#l'ü¦ 7}]R‚.ÃxkJJ°_aJPÊóàØãÕ$mݳM?ø~ ×@[IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_argentina.png0000644000175000017500000000041211225071372023656 0ustar eliaselias‰PNG  IHDR÷اü`PLTE7¹õþþþëðÄÊêöÚëkÙöåí¯õ÷åÖí1”×÷ØìOÜê‚ñðð.´óùúòØò±Æþþùßüáì”:µíÕðÔîÏìüûùîïá›­ÆÞt€ÿÿýÿÿÿ;¹ôêÍ…/ pHYs  šœtIMEÕ '%Ze“=IDATÓcÇ(åÄäd!€Q’›Oä @–IH”[Ê‘Cˆ² ±È¡‹…Yø¢ÌØüïáPìIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_vanuatu.png0000644000175000017500000000056011225071372023375 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÿÌô·ñ¢î¹å»árÞÀޱخÖR)ѧÐ?/ÌÌÌ™Ì33޹”°”vyaw¨kVF8Dš33.%% ˆ»çâ/ pHYsHHFÉk>VIDAT×]ËÇ€ EÑÁlX°a ÿÿI‰ uæ.OrIˆü”U‚€Ë& `RFJE\kõFð΀Ep®•„g4ÿ1vŒ}øŠä­>£%ß‹Ê9ˆn5æócAÚÈIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_chile.png0000644000175000017500000000033111225071372022772 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*vIDATxœcèhŸÓÕ‰ŽÖ6mÚÄT´",p%2úKøõëÐ~ †©“N®XzH¯ú{»Ž>|ðH’©É‹K]¬©ØC¦~2üO%ý«Êßj0‡€z‡ƒþ×ZÌdhêé_[[ ¤ÈC@½ïÑõY!iIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_azerbaijan.png0000644000175000017500000000047411225071372024024 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÿ÷ïÿïïÿçÞÿÞÞÿÖÎ÷ÎÎ÷ƽ÷½½÷µ­÷­­÷¥œï¥¥ï¥œïœœï”ŒïŒŒï„{ï{sç{kçkcçkZçZRçZJçJBÞRBÞJBÞJ9Þ91Þ9)Þ)!Þ)ÞÞÖccc1”)”1œ©j pHYsHHFÉk>"IDAT×cPà d ÉCœg!D„0d‘4ª`²…2ïLoš±IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_israel.png0000644000175000017500000000022011225071372023162 0ustar eliaselias‰PNG  IHDR |/ PLTE3™Ì™™™fÌÿÿÿyo pHYsHHFÉk>*IDAT×c‚†U@°JÖÿÿÿÿCýç5 òßo Ë"«›Ï±)iË‚IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_austria.png0000644000175000017500000000017611225071372023365 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™ÿÿÿÞŽ}Þ+ pHYsHHFÉk>IDAT×cX 0IÑÐÐP,$õp ‘¢3þðIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_honduras.png0000644000175000017500000000027611225071372023541 0ustar eliaselias‰PNG  IHDR <ð0PLTEææ÷ZZÈ––Üóóû¿¿ê§™™™ÿÿÿªDB° pHYsHHFÉk>4IDAT×cè€l¬P`H///)w///±<\Z ¬Af(Ë©\ĪíB ¼&Î1˜d11IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_uganda.png0000644000175000017500000000035411225071372023152 0ustar eliaselias‰PNG  IHDR XÌŽ`PLTEÿÿÿÿÿÿÌÌÿ™ÌÌÌÌ̙̙™Ì™fÌf3Ì33Ì3™™f™™™33fff333îîîÝÝÝ»»»ªªªˆˆˆwwwUUUDDD"""»P± pHYsHHFÉk>2IDAT×c X„16!.`€±¸` &f&ƒˆºÂÂäÙˆ°"2 m$£IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_congo.png0000644000175000017500000000056211225071372023021 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿÿÿÿþÿýÿûÿúÿøÿoÿmÿlÿkÿiÿhÿgÿeÿʎɌȋNjƊɊƈƈņŅƂ:„9‚:::‰7ˆ7†8…9…8„9‚:‚9:ÀÀÀk²OübKGD)Ê·…$ pHYsHHFÉk>KIDAT×eÌ1 @œœ &N†Åÿ¿R«»qi¡qÓ’&n—Ât¤o‰T_1(t6ávœ°²ŽVÞQŠŸA=®ŒÚÛYô OÓ k|® IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_ghana.png0000644000175000017500000000051711225071372022772 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTE”’xyúü$ôö#ìî"æè!ãå!¾Àº¼´¶“”~|}uvhighab÷ù$éë"ˆ‰{|WX ª«22ÚÛÖר©FF –—JJ << 55ÖÓÿÿÿ÷÷÷ïïïçççÞÞÞÖÖÖÎÎν½½µµµ­­­œœœ”””!GHL pHYsHHFÉk>5IDAT×cPÄ ¤ )!„˜¡@žÆ‚ ÉŠJÈð³¡1sKH¡ªb–“b† !#…ºä .H»ËIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_ch.png0000644000175000017500000000032311225071372022301 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*pIDATxœcظxñºÉSÉC›/fRß™ù~1p“о³ðõ‚ôcW!¦ðÛÆ‚€l¬jðéÿŸö€lºèÿSVówþb(:|®Ȇ‹ÕàÔÿwïÿ„P Íìèð#3þÉLÌàôGIúê!»¨ãaåKêIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_maldives.png0000644000175000017500000000025611225071372023520 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÌ33™3™3fÌff™3ÌÌÌîîîÌÿÌdL pHYsHHFÉk>$IDAT×cP‚¬,eccScc#‹Æ2ÁÂBRg aá3È•3 IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_denmark.png0000644000175000017500000000032611225071372023333 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*sIDATxœcظdéºiÓÑѢŠ4c&)$´iÉR õCVå·´ɪüƒß¶Î(â¨è‡œ*P/H?ºqúhPèŸ=ûOn Ê+†èÿÓÜŽ.…Š€z€áüŸ\ÔK¹ý~”ë'3ýɪ€ôS’þz(„ÔEíµIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_iceland.png0000644000175000017500000000021311225071372023304 0ustar eliaselias‰PNG  IHDR |/ PLTE™™™Ì3ÿÿÿ3™ƒ×cJ pHYsHHFÉk>%IDAT×cøäÿÿ ÿŸ¡“ZËV­j`‚(S ”™ó:2ñœãÆIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_armenia.png0000644000175000017500000000024111225071372023322 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿcccÞ!1œïs«Å pHYsHHFÉk>IDAT×cP‚ü,c Àrü,Ld…*M©IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_malawi.png0000644000175000017500000000026711225071372023170 0ustar eliaselias‰PNG  IHDR <ð0PLTEÌ3™ffffff3™3»ªˆwUD"x]­9 pHYsHHFÉk>-IDAT×cøÿÿÿ·Ž| ÉÄmw3 ¬?;ºÏƒY¿ftt®²ˆ¡0€Ÿ¸;)ù4d²‡IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_finland.png0000644000175000017500000000024111225071372023321 0ustar eliaselias‰PNG  IHDR <ðPLTE-Ê 9Ê0Ë%È?Ï™™™3Ìÿÿÿf`d pHYsHHFÉk>/IDAT×c N †ðòâ´r (ÅÁ*‚²Ò  ‰åââ–&ââââ@À¸m=–+TÙor(IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_liberia.png0000644000175000017500000000023611225071372023321 0ustar eliaselias‰PNG  IHDR <ðPLTE33f3™™™ÿÿÿÌ3uD;æ pHYsHHFÉk>,IDAT×ctAFc00b`6€‰ ÂÄÔ ÂÄ\`€AÙ˜81%:Þ‚eK7HIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_montenegro.png0000644000175000017500000000061711225071372024072 0ustar eliaselias‰PNG  IHDR x0}usRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEØ+6(ÆIDAT8˵”AJÃP†¿y}>óhb«!‚E@A¤Øà\ëz —^ÃU/àÂ…ØUwŠ‚ˆZ!Zi-¦/.z€$ØÌzþù™oøGúí4Œ(£t “Á7“˧R l·‰*¤ˆ|8¬’dèNY[BujTÚ+HàêyÔÙ-²nÐç›È~m+T” »}¢B/ûÙ X…9ip-;¼NNûhðÔ9p/SÜ^•,þ'iàƸÇÉÿ7HŸH®Þƒ€VË1CHocÞcC-eˆB÷cš[ÑÂïMŒ·ZYë çÃ<FáîF,»¯|aËÕ•ÌYÌzÃâiÖ‘ín—ô*|þ·tAhqÒúîIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_tahiti.png0000644000175000017500000000052411225071372023174 0ustar eliaselias‰PNG  IHDR ðk: pHYsHHFÉk>IDAT(Ï‘?KÃ`ÆŸ{ß)y+cZZìàVˆ_ÀAéà§¿BÝê¦ èâf:ø§è’©”h*¡É{.]47o|Žß=w÷ãÿå°ÖD$µfÀŠ0ý¾Vª¢3㱸á/;í]Â6 8ÜëIC¯¾{ÆšG'c  DÒnEQ'Àg©5Æ&T¦àøœ«R:͇¯­õØÏöZÖõ‚‹a5ڛߦ¶\Úà6>5O¶´3¯Þøê¼×»ÍЗœ¿|°Z;ж.5’lI«Ï°y|®W‚üþ6û /Ÿ^½%D84;/cIQÍ\WXÑLIDAT×eËW€0 ÀЄ½;|ÿ»Ò–‰âÏ'Yü/ñ¡é¥¹%À(¦0A¬=´† •ñCºû©F.5j¯t®–ذ„_…®œÑ n ÒÞ¢ÅIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_sri_lanka.png0000644000175000017500000000030711225071372023654 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÿfffÿÌÌÌ™™Ì™ÿ™ÌfˆÿfÌ3Ì33™f™33™3–:] pHYsHHFÉk>=IDAT×cP‚ÎIZ»ÌÒ›vo³´•´µ¡¬M»áb¥01%%(KIiLLÆšaiCL†Û“',Ú=rIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_cameroon.png0000644000175000017500000000051011225071372023510 0ustar eliaselias‰PNG  IHDR XÌŽÀPLTEÿÿÿ”””œœœ­­­µµµ½½½ÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿÿÿ!ÿ1ÿ9ÿBÿJÿZÿkÿsÿ{ÿŒÿ”ÿ¥ÿ­ÿµÿ½ÿÖÿçÿïÿÿRŒR”ÆÎt¸®“ pHYsHHFÉk>.IDAT×cP0PŠ…däЄø•”øQU () ¢içç“ š#BÉ &÷ÜstIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_scg.png0000644000175000017500000000031511225071372022464 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*jIDATxœÅ˱ €0„Ẁ}Èq‚ØÙ$)lò #¤ ŽˆœÀ#àñÃUŸDï®Ýr©w‚+fºùZ13l÷~áÏ#lkæ‚kU¤quû·Asn\°¢ªì_k%0T÷)%eû‘Ú~삎IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_belarus.png0000644000175000017500000000024511225071372023347 0ustar eliaselias‰PNG  IHDR <ð0PLTEÿÿÌÿÌÿÿÌÌÿÌ™ÿ™™ÿ™fÿffÿf3ÿ33ÿ3fffff3ff3™3ˆwÆÏôE pHYsHHFÉk>IDAT×cH›  .pEbï €ÁÎÂ")UGý'5ï¿IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_dk.png0000644000175000017500000000032611225071372022310 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*sIDATxœcظdéºiÓÑѢŠ4c&)$´iÉR õCVå·´ɪüƒß¶Î(â¨è‡œ*P/H?ºqúhPèŸ=ûOn Ê+†èÿÓÜŽ.…Š€z€áüŸ\ÔK¹ý~”ë'3ýɪ€ôS’þz(„ÔEíµIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_mexico.png0000644000175000017500000000041011225071372023170 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*¥IDATxœcèZ4!nbš·bázT°aÁ‚­‘‘hhK{;P5w‘:ûèÒTðùÊ•= hhÄ`Öjiåæ|ïC=ù~ý$YÿëO÷œX0ÇYd¡¯ÂÍíKIÓøöñC‡–n\W°.Ëñ@GÖÙÃëž9Fšý;nlY|vǤ幛ŽÎÙ|rÉîûíí–˧Íî\unÝ‹Ï/†bü¥ŸÂô]´‚™ÐL†IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/symbols/flag_n_ireland.png0000644000175000017500000000044011225071372023642 0ustar eliaselias‰PNG  IHDR Éð²7 pHYs&&¢ï%ü tEXtComment‰*½IDATxœcØ´iÓz\`Ö¬õ“'¯Ÿ=—

"«°ýxÃÿ©¶ùá?þ©§Ÿ¢ôGaúIØre+IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_put_transfer.png0000644000175000017500000000066111225071372024347 0ustar eliaselias‰PNG  IHDR é›Ú‘tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*´<Ïûg&Cµ1ö¿Íãy*½^ï/­Ýn÷Fb0 0|nC|d t]gé€7o Y ˆ0 §Óér¹D¨8Ío8*8paÛ6‚D(I’ü&Ç1® ²,Ãýº\À‚eYÃá¹®‹æ~$‹C8ºêöIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/player_status_yellow.png0000644000175000017500000000027411225071372023525 0ustar eliaselias‰PNG  IHDR {DbKGDÿÿÿ ½§“ pHYs%%V‘\IDATÓÍŒ± €0_>öÅ>ó¹6îàŽ(iìâYˆ…ˆ1¥¯8žƒ€õN­ê Vå0É)“©€ŸF”Dßg&“ÔlÙ ’ÁÒCA<õ×JóÝž»l?‡y„>§IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/table_stay.png0000644000175000017500000000047111225071372021361 0ustar eliaselias‰PNG  IHDR PXêtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ÄIDATxœcøÿÿÿ•k·&LœìUgTD®‘u]½“?~ ”b¸yófie£¹½}ü|8òJ›WVÕxïÁ†ô¬|ë œOñ~dä–2h$ƒžu¨‘T:²í>Ù@ u 6A¹´™ÿ!¢Â7c>ƒº9NÝ)u †¶!pidr`L=CJzžmP=D2úeÒ¤É .\ð r€*ਡ°¬ñÒ•[ @¿Ÿ‰¢Ž=Áë·¶ÄR醃4 Iæü°wÑèËâb×á{6H{â‘“unð®]º@¤J&îúµ®Këbl:#ÌÉüÌ^`êýq^;š}»ß&úý~»ÝnµZàa£åF2YP”%M[QÕå\nµ\^óYüŸ)ì€IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_browse_tms.png0000644000175000017500000000067511225071372022450 0ustar eliaselias‰PNG  IHDR 6Õ ŽtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*HIDATxœcø ¾~ýºjÕÊ©S§>~üYœ™síÚµÄÔÐ’¦²9kצ|üø‹ºÿþYÛZÎÚ¼ñÌ£Gg?ÞqúôöíÛ±¨{ôèQBvÆ¡[·Î=yrãÕ«æþþW¯^aQ÷àÁ{§ËÏžÝ~ýzùæ Û¶mÃâ¾U=í%FGŽ™:mÚ„‰oß¾ý €Ô½~ýº×żF_ÈòÏŸ?³xáÄ¥K&/]2qÙÒÉË–NZ²°Û¶ çiô÷øõëÄà-§Î:Ì^ì¼~§Ó² NK×9-ßà0EÏö=(áÛ.ÝÞó ˆ}<úIðØg¡oºOÜ@Wwñâŵk×nÚ´i8pè¡Ã‡£«»|ùòîÝ»ÁÑ£G$Pé©S§ÐÕ}øð(T}æÌ™Ó§OŸ={öøñãOž<$ÀÂDIŠIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/player_status_injury.png0000644000175000017500000000046311225071372023532 0ustar eliaselias‰PNG  IHDR [k, bKGDÿÿÿ ½§“ pHYs%%V‘ÓIDATÓ‘=ªA„¿ùAÐaAx¡±^ÅÄÈЫ,z Oa``â% 50ÔÔHAœ)ƒYt}`ASPUÐÕ4’PJÍç'… Ež¤Å⤔’ð)AUÑBŒÙìK¬…šg½žñxü±ß÷>‚‡CÕjŠ÷£~_\¯ïUM8—¹(ðÄøhv¬Ùò#,Æ€µÿS{FËåŽ;l6C¶ÛN+8ß™LŽ8wGRWÒHey¨5ey–4’ÔµÀ ¨}©¦Ú»åÏH¹K™!ʹìÃðýj :ªopIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_fire.png0000644000175000017500000000072211225071372022556 0ustar eliaselias‰PNG  IHDR Ô »÷tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*]IDATxœcøÿÿÿ™Ó§ÏŸ8ñ |yÿòÛ§·@_سçÅ®@ÆÏ¯Ÿ Òß®í=±¢$ýîÙù÷ÛùLæ9°*ãþùý³Ž×Æî«ŠZa£~ÿîC†Ï'½¿ïb8>ae#ëûw:¾~úån‘b¬áqhóC†/§ý¿ì`x²†aJƒ—¿wKsK€W„µV´±|ÔºY×¾žpºkæf5äÏ_ºâ´Ee[ƒÊßytùßòk'ü'u,\´î±V£™<ùP•Ý™=wjÇ´)péFiÖ\9~ÿI·ÿ}“²mUAGë»wï®]»é1™cÌvþÐmô¬Ë§Tkós6­Ø´y˦M›¿|ù2¿ziŠ_ÆñƒGAÒ3r“ºâƒnݸþôéÓ .üýûgóæ—.JÅùˆº“¥|IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/table_up.png0000644000175000017500000000050711225071372021025 0ustar eliaselias‰PNG  IHDR í’3ÔtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ÒIDATxœcøº»» ì vïÞ,Èg½zõ*05!”AßFÿñãÇXT¬\¹RÐSa?Ÿ3߯MÑUQªªE!©”J:"—KQ©ä9sæ ¦ib¦i¢(Šò2ó*/ ÔqÙl6iµZìïïÓh4‚VKá?ÿÉsï^ß×ô\.¤\–LM\»æ2>.\¾|™l6K*•B¡ü߀>}úT6›MVVVè÷ûd2òù<†a ª*F›ÝÝ>š¦#„@UUQ¢¨@D¥bP­ŽÑï÷Ñ4ÙÙÙØÊÊêyž|òä «««ìïïS.—Éd2hš†ªª¨ªJ·ÛEA¥RAUÕäÿø<¾Ï¶mvvv˜ŸŸGJÉææ&333äóyÒé´òÒ@Ã0”B>|ÈÇ @¹\š<>WU•íímΟ?Øñ{ãë«««T«U …›››˜¦ÉÔÔ¦iž VŒºhY<àÃ?D×uòùü©oêºn²Üq;òøõÅÅEºÝ.;;;ÌÌÌ`š&=Âu])OYâ@wwwåÇùàƒC×õSAFQÄúú.cccÏõ¯£Ö_¸p\.ǽ{Ÿ"Äüêê*žç1 ìÐN§#777yðàÁçN¾½]gii‡_üb’û÷ôzý¦šØÒ?ùÉ~ó›wï~Æôô4Ÿ~ú)®ëž|æèõõu>úè#Òéô©“ôû6]þùÏwîœ%ŠTÞ~{’·ÞÚçÆ Ÿéé³/ ¸ÑðÙØhñöÛ.?ýé2ŽQ,î1>>.XLŸ}ö™¼sça’ËåND®¢(Ðlvh—L&DJ…TÊBˆ(H ªà8!ï¾[çg?›%N#öööXYYÁ0Œ“AÀ˶7߬3?îxI@¼ûnƒB¡Žï›1 E‰"¶ €ÊôtšÍÍM\ו¢ÑhP¯×_8­Ýºµ÷¹ çæªU)%aa"DpŒž ß/ày)Âp”RŠCV)¢iQ$ÙÝ h48Žƒèt:‰/oé´Ši¦¸xñ Ž£sãÆöèô&B„ùÖ·ö™›;É¿½ž7ôûG?šã­·¶ñý ¾Ÿ¡Û=Cèø~ ÓìáyiΞÍñ•¯(Š‚ïûhÛÛÛ§fßWˆ3 iúHE*çÎùœ;'Ñuý…\æ»ßÃu×øõ¯'pœ,…Â>–UBˆË*S*9LM9F†z½ŽÖjµˆ¢è¹ƒnÞìòÕ¯zll˜üîwÕCŸ<@QTfgmfÃ0I“a>ìk¯M°ººÍÒRš^ï ívÛ.péÒ–%ètljµ1Z­šmÛŸëŸaR, &&t¥Èâ"LO¯'ÿ/.‰¢,FƒjµšÔ4mxÜLÓÀq<._Nñ½ïMð¥/mS­Ú@ƒJE?ÜIDD‘Dëºh®ëbšæç¤ºÅbE)%׿ç³hšF&“I¬¾³³“; öänÁCÓàggCfg«¬®®3>>Ž"Ñ?Æ÷}<ÏC¤R)|ßOè(ŽÖøüPÍ „ Š¢ä>Ó4Ñ4-¹kÖÍÍÍd<Ö¨!–5 ¬ÕÕõX<£ë:¾ï†!Ùl–f³9˜ß¶mÇ9uÀN§C>ŸGJ™ä|Ã0Ðu=4~)Ó4B`YÖØQj(nŸ|Ò P(P.—ƒS$1S(èõzA€8j©ãdïû>¾ï#„@J‰ã8DQ„a hC®ë(Š’pg©Tbww—0 ‡z¿ß?&¸û´ZuÒi‹B¡0”¶£(JžËf³A€û“eYd³Ù¡HïõzÉ5)%®ë&¾œ¦iضa!Èd24›ÍÄJÏ$â0ØvÛ¦Z­žØ!Ä/ ËåPÍ4Mz½í¶O·ÛAU5„8ºa(äóù¡Èõ}?¿uœ~ã ŠÅ"ËËlltQU•_þò™~ücûðÙˆÉÉÌ Fˆ¢hh¼²Z©T¢Ýî²¾ž¦^׈"0ôùyŸbÑ"ŸÏ&ËrX`mM£Ù´'—OJ‰¢(A ûUeùÛßîðÞ{W—WÁu3¸n†VK¡ÕRx糇|j ¶a}w˲¨T*hù|E¸®2$‚VUØÝÕ¹x‘$ 4M£ÛíbÛ6Ùl6áàÓ²P2f(I¥Ÿùè;ïœåêU÷ð‰ã#ïû™W«Õ¨ÕÆ)—½#ƒ¨jXuyù€0t28´ZD*•BJ™0ƒªªA0dÍx,!tÓAü«DQˆïG'X" CºÝ.ÙlvtjjŠùù‹Œ¹¨j0dUU Ž)C<ÏÆ²,úý>ý~‡~¿…”]§ÿ\eur«­òè‘À÷ƒ$Áï½^™™ÆÆÆÐTUUjµš¬V‹lm¹t:Z2piôû°´d ª]j5í0{‡GC…Áª‡‡½ˆ¦¹‰ûÄê1Þc=ãËÏ“A0Rb:ŽC6›+4Š0==Í+¯|™ƒƒñÉ'*a¨ Y¡ÛÕ¨×%¹\7‘„ñf-öÛA…Ååý÷Ë#-8º€²··74TÏó¸qã¥RéÙ¾¾X,*çÏŸ—µÚÙÛëP¯¬û@6J’ <ÏK8PJ‰ªª†à›ßlòÇ?ŽÑë©§ÔuÉo4)—S†âÒ˜Mr¹cccI=*‘6 ÊÁÁlµÞÇu=z½gK69i“N“(¥£5¥Øšñ±XTyãîÝ+²¶f&cÄV^Xp¸q£Ëôti¤`w‡0 ¹zõ*•Jet¥äÚµk8Žƒïÿ•…~&']ÒéÜ oö¦¦JF—ZÍáîÝÜa–‹øÆ7ZT«‚sçÆFRZEt:nݺÅÜܪª*#f2åõ×_—ƒ4v‡µ5(•<Òéa}ù"€ÏžÍcš}Êåþýï2_ûZ‹‰‰Âs·*¶móꫯ²¸¸x¢­"Ùk×®Ñn·‡DÓr#-ƒ>ªä‚Èd fgJ¥}Î?51xž‡eY\¿~Ë—/,—k']W*• ׯ_—™L†¥¥%ÇI„ò(@ÏìMSžkÅ(Џyó& d2™‘•íô=úœR(d±XäöíÛôz½ìË´£»†ã+gY-/·®ëÊúØpÿþ}yppÀÝ»w“Ü æ£ÔrœŽ*üB¡(wÛ¶)‹\¹r…r¹Ì¥K—¾ØÇ†c%pùàÁêõ:=¢Ýn'²O1·Ç€ª~QÂ¹Š¢0>>Î… ¨T*ÌÍÍ¡iÚÿïóͱú¾ÜÚÚ¢^¯Ón·ÙÞÞ¦Ùl&KEQJÓ4òù<…BÉÉIr¹Õj•Z­öÂß—âö?jÔ~,œ× ¶IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/table_down.png0000644000175000017500000000052211225071372021345 0ustar eliaselias‰PNG  IHDR í’3ÔtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*ÝIDATxœc“’R" QQ Ò’""@Qp¶´dP’–^ÂÀ°Ÿá *Š,`d̉Œdؽ{·:DÅK‚¨°_ºt)Ãß¿}\\6²±%þÃ=‰=+1ñÓ§O ÿÿÿ¿pá‚‘¤$²t%$Μ9”©‚šòòz^^¸#"¸¸Ìž 4¡âéÓ§æÊÊ›ÁÖ‘¶¬ìíÛ·!RP@°háB+žU üü³fÍ‚‹#TܹsÇDSÓ‹!ÒÃh$@°víZ ††dA’ù§tòµIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/transfers.png0000644000175000017500000000106111225071372021235 0ustar eliaselias‰PNG  IHDRf¾¦ pHYs&&¢ï%ütIMEÕ ")á*Œ*ÐIDATxÚ­Õ=kQÅñßlF!!øB` ×Äh:ƒ¬Š66–¾àÐmlÕJ0¨A«º ±Rü‚ˆ •È"¨(*–„źŠQÆb!èf“ 9Í\æÎüïåÜsf”q6†WšVR2²ŒO•ŒÕyÞO2²ÏOâ î$ü†R±o&b~ êø…f^ø_=é„¥bß}-Ë2|úXìra™ŽmÆ®÷b¬G7z0œþ—0˜´®œp"àM4S w€Äq-oâ\Òò}¾ž†=x‡hÔÓÍ4áy‡´|Ä]Œ&-ŸÛi0pUŒt—Š}ãé"6\YB¾»ñ]k#›°·1Û¾Äâdq˜Ÿ1€ÁLº]{î…ïs˜Â“…ÓR-w©–÷/¾ØíZlízcº-Õr0ZÞ‹×ØŠ®ˆãvL&ÿ€wà<Æ8Ýü¢425ú»ñ£ø’´?Êq4§ßK#S؈¯Ñ‡9ñ#U-ᄜ_¼yz„ aG4vã)®Åʇ¢Æ¹ToL__h® R{¥R;Ḓÿƒ¤MZöa,¾9oUjCË…ÿŸóJí1vâp”aÙúG’|^p:îÀIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_league_results.png0000644000175000017500000000072711225071372023305 0ustar eliaselias‰PNG  IHDR ÝâtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*bIDATxœe[o‚@…÷ÿ¿·iš>û@б¼x©é‹Ðzi $b)^R°±dN1“~9™ìœdÏ,1Œ¾ \‹âM½~×lÞ§©­ëÏ(J]·gYJ¯×ôý@B8ÿ<†yþZ}€7çjÓíVFÛÝ®W^­ˆiš‚ T*•ét•(ŠÒívÛíö|>NdYFÖë5Z_¸®ûQâûþÙLÓ”è:­Õ®¢HpŽÒõÆhÔ¤ô!ŽÇgà‡„æÅuá„$‚Õj†á÷ <;޳\.=ÏÊñ‹çœØ¶kU«ÕÙlvÅý¥´Õj1Æ4M“eùo4Mý^ϲV|qÌy?Ž_¶[-χØîvïEÁÂÅkIºµm à¡kFOŠR‹có蔊Èf³Á4Ë 0’eY“Éíl&IB ÃÀ¬’$aö¤DUUÌ×étpÝäDžç¿¶/·–CýìEIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_physio.png0000644000175000017500000000060511225071372021570 0ustar eliaselias‰PNG  IHDR Ù˰tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*IDATxœcøüýýýÕµ5÷OͲp)z}}ýííÏ/.Á©èÞåã³Ê’ÖOhþûçNE“Â}{RRrml¾}þŒ]Ñ•Ý;^ÆÏKŽ*úýëE@ó³­¬ÒŒ¨9"üË‹§XµVU¤›˜Ìk)]¿f6vë–m:j’2mٞ˱mëŒÓf¸ð¤èß¿»vÞ¼qßÏŸ?ܪÙ{#›Výû÷ï¹{fé3ž¿ýÌðìÉ“K¥aS|Œ—ΘYYPpùÆ]‹ÌY¯?|ýûïŸ_Õ²¢É[AÖÙ¿ÿ~´ÞƒÒàY&Lîé™¶r¿sÁü§w.ߺr®« |Eù¿¿ÐÝ´{ißú)•^?CœÑa{‘ü*rIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_stadium.png0000644000175000017500000000126311225071372021724 0ustar eliaselias‰PNG  IHDR ²ÕtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*>IDATxœcø>ûyéÞË Gn\{ðúçï?˜ €ÿàŇÆûŸÏž¿ïÜÅå—î-ÚqvÞÖ³ ¶ŸÛ~ì.PöÏ¿¿×ßßÇ¢óÈåGíKí¾uçúõë·ïß?}óæ¶Çœ>½«gNMËi ‚G_^(/÷ùýŠÎ;.LßtrÛÍ›WnÞÊûdrõN‡Â…!½Û«wÜ|ûèÌ}õ;ÎÍŸ½ç´Oùòµ3_ÁÃâÐóó@²Ì6[wÃ×OgÖ?óSºlÅs&)áXtÍF‹¬9~í›{Zø—,Ì/8ùëÇ?¸Î+ïîúï,²Ý”â³£¶ÿþŸ?ü¹9åßy…3©¹‡*WE”¬ê/8‘Fcó¹9¨¯ YèÜtv6zJøþõï¶Åo3]n™0 PÝzpí ˆø³¯¯MÖÅ/tú³ó¿ÿÿ¡ë„ƒç–ûnE†MÜþ:y¢ ~qkdØIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_browse.png0000644000175000017500000000060011225071372023125 0ustar eliaselias‰PNG  IHDR Ô »÷tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰* IDATxœcø ~ Du(Ò›6mê™;ëÌ£GWž??s÷SQ¤§MèuñôƒúùõEÕþÿ«|ÿOm)Z{c¯‚R¯»¹WßZ_UO«¢òÆU !a3¶<<‘6w5.Šn¶IŸâ\ú~á) ÈÎç‡ÁÁ°oÿt ëÀ^›²sJÝܺ­Áý»B&Cu,(:û¶¯¸°îðÿggý?3óõõå@ÁàÐéˆÀ ™^Ò¹èÍÓÿÎ<~¾õÆõuÓ§ÌjF q 08 Ñt(Ðp)•™1Š]nIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/player_status_ban.png0000644000175000017500000000031011225071372022741 0ustar eliaselias‰PNG  IHDR {DbKGDÿÿÿ ½§“ pHYs%%V‘hIDATÓÍÌ1ƒ0DÑÙUzd{Ÿ@“;pmCç|ŠTŠC™/M÷4F)(B_=!í»z¹Ìº@frÝè?Ü@þû̵®OãÑU´æÔ:3MÄe)!à ·m!ç)ñ±R8B5ðIzlIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/style_atk.png0000644000175000017500000000142111225071372021225 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*œIDATxœ}T_HSQ?>H/"£^Ã醔 h½8Ùç^Z½ ÙCA„D›1RjsÛµ–Ñ[0—ÐÜCuïé¦[J%ˆ”dÂUŠ„Bèž~×ïzwÛ¬Ã{¿s¾ós~ß÷;‡qÎ]Þ(¾ÌÑ.ò"ÀÐÃïØI¿nÒL\ûÝœ4 Ç ÷öD¦o‡$übbì•ïž®ª›­í·øvc½—`¸ŠW¹¹[ïSðõ-VŸy­÷Ûm²OP³‘§)¦q}íí}uyBŸOË4µ(Pâ’ÈÅô†$gßëî¹¹r?k‡>ñóë*ìSÎ!¶¿î¬[òC¡mA;ÃN¾Ëè‹‹«Š­]áWfpØ]®°±w.·ä» dÖ”üÖìàxÒåÔøN»–@Øé™Ÿ_1u7È€#-Žc½—Æ 7–-ü.˜{#”QPÕݾ>ÁJ ¬²‘_†ãXÝ`Š2 > Vï©®t÷'ØÐxVîW®åtËhfôå™»erûo¦™«'b]9`dÕ)ƒØÑþ’»𓳠¥´t:BÑg)¤ @%þJ‹µu{£p&’˜‡Ù€ôU|}±.g(Ÿ_²N6‚3òôi="*£4Ò‹s¢¥`»3ôb}ª2Ò”àPnº 7&Ág×Èàq°èCñÉÇ,ú‚$Ôî«~Yì½²²¾-¯Õÿ¬¥ ¾"¨ñÃöDÖAX NmnîÚ“–dÀ‘DZȧŒeöÞH'eT-sx,ë$Võ‘_†ã8Í(@}T”\j>Õ{¬×sÃÞ }óòášZd g4HSõ€Ä£ó(]ÍUcY뻘h™›9¿Ju«•–aoF}QDÊTâ¿´8[ ¤ÂœÎào@ÿVƒÂcÓ)S¯ï8Ep¹²}:H€Ê(ä†ô✨A+Ø-e^í/wFÚÒ!€ÊOäáøøt<*/ˆƒ©sÚ³UŒ³zEq_wGÓј‹«qÀݧ ŸWèÕO¤MŠý2ÔÓQ'p“¨ø€3Y”‚ ƒVÞ£‚Ið’=⃔Ûï^{ðú •ÀeÅ žè›jÖª3ª…G -í?·ó¿ñ~»ˆ=ì:u .z"¹ä Ná¦H ^°ëôüuŽÚÀ¹IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_player_remove_transfer.png0000644000175000017500000000074511225071372025037 0ustar eliaselias‰PNG  IHDR ÷Rê"tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*pIDATxœ’ÁKÂ`ÆŽ]ºtï¨A‡¢cÐ%¢¿ cPP—ŽÑ±ƒ!]LIÝÜšssNÜH%·Ã0b”s”a!Å‚ztP„Ṡ—ñÁ~<Ïó~¾¯ÿ‹¢¨l6[(Òé4ÏóÇ™¦é”H$A®X,f2UUq9(ÃÃ0š¦šL&õñªh•"‘H.—C.Y–%IªT*ŽJvmõjÇçŸ êä ¼ ˲øpǽüݶêëÔîD`Ì"±½ÉôO­U'YÐ1NdL¥R–euAFÛÜb' .bø\?”Âá0숢ˆ¦išn6›]G Ì^®‚ø‘$™Ïç Ã@´jµŠw€×ÐuÔù|?)_Ì„VF¹M+ŠSXÎ?½:#ål:¸ìþ°Aïß„úçþ­#\O((‹Ù¶í±µçö¾|:u¾4dkBOÀE£Q°t]÷¹jtž´—»A O}HŸÂ•AÇvIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_boost.png0000644000175000017500000000070611225071372021405 0ustar eliaselias‰PNG  IHDR Ù˰tRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*QIDATxœcø³fýOMýcföˆÂÃÿ;—ùÏÄß¾ýwtü7o޳˗¯~ûyàÇ\.,|;qâo TÑ„ ¿¹uö󬜃*é³v•¨|==ëðá[@Í EGþ/*z{ìçL»óÜ[”?|½äá£9——%^5`ù¿&Ðx 3€Ö?|xÉáµòÔ§IÿÿŸ£'U>B|'NœJIùÃtæ¹{Ç¥ž3œþ4Y‘§±êK†{玀!ËAPooáêÕöùóïüýÿ¼xqYÅùóË23C ìwï.xyýeضíSÓëÏCD½¼lÄÄá&Lx±r%8_¿~ ":cF¥¹¹Ô ü ' ø;qâ‹÷ï/¥ÿü9 tÐø¦¦ßˆ‡€+þ{xüúÃÆæw@À 3àL/Fø¢‚ô-IEND®B`‚bygfoot-2.3.2/support_files/pixmaps/menu_last_match.png0000644000175000017500000000066111225071372022376 0ustar eliaselias‰PNG  IHDR ;ËÐÉtRNSÿÿÿ7X} pHYs × ×B(›x tEXtComment‰*rZ­VòÑ;{þô;Ô©ùÐSB™àD½ñUH¬¶7/v‘n›çì—ѧ•¥ô*OY9ÞXPyÇÆ`¢»Óšå\¶¬Â­ý5¨×vü:@Ëóê xpƒÆ-Œ>ú¬³âIEND®B`‚bygfoot-2.3.2/support_files/pixmaps/style_all_atk.png0000644000175000017500000000142611225071372022062 0ustar eliaselias‰PNG  IHDRuìºÌtRNSÿÿÿ7X} pHYs&&¢ï%ü tEXtComment‰*¡IDATxœ…TMhQ~‡žJm#)Ú€ÔÚƒíI[úUÒ+G;©£ ª†ÝC1#1°ÈFÊ1†Á e çä74í øçX !Àêìé¤%¦é_ŠÙ"°PÝøÃqc8+/iÄŽŸòÀï:Ù©@w†/ÀÍdWm9g EŸ&Ñ24“ø«-ƧßEx".`vÒ§„àºÝg åókÆÍZr:³}ù 2j#¹êÄ Éçm¡ÅÚÒÎL]:€¢tAnŒ-€Ï®™ÿJÀ â`Ñûâü»,ü˜k=Ð:9?iL&UH› úe˜§.¢`*h>dÎoåÿ›Œ.Úœ­ ½új@´i/þ,’K‚'ì ¤¼ýî¾>K·eæÅÌle¶*x^&<¯{k‹A\VU1Jú¦™5æŒiá'°­í_Wãßêx»šÄúœv \twÁêœÂMÐüyÀnçÎß²)'×°IEND®B`‚bygfoot-2.3.2/support_files/bygfoot.conf0000644000175000017500000000133211225071373017361 0ustar eliaseliasint_opt_confirm_quit 1 int_opt_confirm_unfit 1 int_opt_save_will_overwrite 0 int_opt_maximize_main_window 1 int_opt_prefer_messages 0 int_opt_progressbar_pics 1 int_opt_skip 1 int_opt_autosave 1 int_opt_autosave_interval 5 int_opt_autosave_files 5 int_opt_player_precision 0 int_opt_live_game_player_list_refresh 48 string_opt_player_names_file general string_opt_constants_file bygfoot_constants string_opt_appearance_file bygfoot_app string_opt_default_user_conf_file bygfoot_user.conf string_opt_font_name string_opt_language_code int_opt_calodds 0 int_opt_load_defs 1 int_opt_randomise_teams 0 int_opt_news_create_user 1 int_opt_news_create_cup 1 int_opt_news_create_league 1 int_opt_news_show_recent 0 int_opt_news_popup 1 bygfoot-2.3.2/support_files/lg_commentary/0000755000175000017500000000000011225071373017702 5ustar eliaseliasbygfoot-2.3.2/support_files/lg_commentary/lg_commentary_sv.xml0000644000175000017500000004137011225071372024000 0ustar eliaselias general _P1_ passar _P1_ passar men _P0_ missar den _P1_ till _P0_ _P1_ lägger en [underbar|grym|otrolig|briljant] boll över till _P0_ Vacker liten [boll|pass] hittar fram till _P0_ Snygg fint och pass Snyggt fotarbete, grym pass _P1_ släpper bollen pÃ¥ _P0_s fötter Hög pass frÃ¥n _P1_ hittar fram _T_POSS__ attackerar _T_NPOSS__ [försvarar|hanterar det] Utomordentlig crossboll hittar fram till _P0_ Nu kan _T_POSS__ pÃ¥börja nÃ¥got genom _P0_ Inlägg av _P1_ [hittar fram till|tas emot av] _P0_ _P1_ [lägger|nÃ¥lar] en grym boll till _P0_ [Vacker|Superb|LÃ¥ng|Briljant] passning frÃ¥n _P1_ släpper loss _P0_ [LÃ¥ng|Kort|Utomordentligt] flytande passning frÃ¥n _P1_ hittar fram till _P0_ [Bra|Mycket bra|Smart] pass flyger över och ner till [höger|vänster] [Snabb|Vältajmad] pass ned till [vänster|höger] _P0_ smiter förbi sin motspelare och [bröstar|tar emot|tar ned] _P1_s perfekt [tajmade|balanserade] krossboll. Ännu ett [smart|briljant|hyffsat|helt ok] drag [längs vänsterkanten|rakt genom försvaret|mot andra sidan] _P0_ [hämtar upp|springer efter] _P1_s [höga boll|passning] _P1_ [lägger|nÃ¥lar] [den|bollen] genom [motstÃ¥ndarnas|spelarnas] [fötter|ben] och hittar _P0_ _P1_ [fÃ¥ngar|kontrollerar] [den|bollen] med hans [fot|bröst|lÃ¥r] och [skickar den|passar den|spelar vidare] till _P0_ _P1_ [lobbar|nickar] bollen vidare till _P0_ _P0_ fintar och väntar om igen _P0_ fintar desperat för att bli av med sin motstÃ¥ndare _P0_ springer [upp till|genom] [mitten|mittfältet] _P0_ [tappar|släpper] sin [motstÃ¥ndare|markerare] Oavgjort skulle vara ett bra resultat för de utklassade _T[_TAVSKILL0_ GE _TAVSKILL1_]_ _TW_ behöver lugna ner sig och hÃ¥lla sig kvar ett par minuter till _T_POSS__ behöver [fÃ¥ upp bollen mer pÃ¥ fronten|skapa fler chanser] Bara [_SHOTS0_ + _SHOTS1_] skott, [det är en kamp pÃ¥ mittfältet|ingen sida försöker egentligen] Endast 1 skott, [det är en kamp pÃ¥ mittfältet|ingen sida försöker egentligen] _MI_ minuter pÃ¥ klockan, chanser här frÃ¥n bÃ¥da lagen redan Utomordentliga skickligheter visas upp Vi gÃ¥r in i de avslutande minuterna av normaltiden [SÃ¥ mÃ¥nga|[_FOULS0_ + _FOULS1_]] avblÃ¥sningar. Domarna behöver verkligen en ny [visselpipa|bok|penna]! Det är verkligen inte över förrän den feta damen sjunger och hon börjar värma upp redan nu lost_possession _P1_ blir bortfintad _P1_ blir bortfintad av _P0_ [_P1_ ger bort bollen|Bollen ges bort] [nästan avsiktligen|för billigt|för enkelt] _P1_ tar den över linjen. Ett inkast till _T_POSS__ Vild passning av _P1_ resulterar i ett inkast för _T_POSS__ _P0_ gör ett snabbt inkast LÃ¥ngt inkast frÃ¥n _P0_ Glidtacklingen frÃ¥n _P0_ var riktigt vacker men farlig Tung boll okontrollerad av _P1_ _P0_ vinner bollen med perfekt tajming DÃ¥lig kontroll av _P1_ gör att _P0_ kan stjäla bollen _P0_ [tar|stjäler] bollen frÃ¥n _P1_ med en glidtackling Kort boll till _P0_ Krossande tackling, _P0_ [kommer undan med|vinner|tar hand om] bollen _P1_ lämnas kvar när _P0_ tar bollen _P0_ gör en underbar brytning _P0_ tar sig in pÃ¥ _P1_s fest och smiter undan med första priset Inte _P1_s snyggaste passning när _P0_ bryter den foul [Ajjj|Woohaaa], det var en ful tackling pÃ¥ _P0_ Det [var verkligen en solklar utvisning, eller| kommer _P1_ att bli utvisad för] ? _P1_ [knockar|springer|sparkar] över _P0_ med en dubbelfotat hopp [Otäckt|Krossande] anfall pÃ¥ _P0_ _P0_ fÃ¥r sina ben undansparkade av _P1_ [Ruskigt|Otäckt|Kraftigt] anfall av _P1_ pÃ¥ _P0_ Brutal tackling frÃ¥n _P1_ lämnar _P0_ kvar pÃ¥ marken _P1_ tar hand om _P0_ och lämnar honom kvar i plÃ¥gor De kallar inte _P1_ [The Slayer|The Assassin|The Killer] för inte. Han tog nästan kÃ¥l pÃ¥ [killen|_P0_] Aj, den mÃ¥ste gjort ont! _P0_ ligger pÃ¥ marken och han är inte glad Jag vet inte med _P0_ men den tacklingen gjorde i alla fall mig grÃ¥tfärdig Extremt hög spark frÃ¥n _P1_ skickar _P0_ till marken _P1_s svarta bälte i [karate|tai kwon do|jujitsu|fula sparkar|fula tricks] kommer till hands när han sänkte _P0_ _P1_ förlorade precis sitt tÃ¥lamod och tar ner _P0_ pÃ¥ marken. _P0_ försökte göra en snäll tackling men den var för mycket för domaren Domaren har sett igenom fingrarna tidigare men blev tvungen att blÃ¥sa av _P0_ Frustrationen kommer igÃ¥ng, när du börjar se avblÃ¥sningar som den. Det är vad man kallar en professionell tackling _P0_ försöker komma undan en otäck attack _P1_ med en otäck tackling. Den kommer han verkligen inte komma undan med scoring_chance _P0_ snurrar runt och skjuter _P0_ hittar lite utrymme och gör ett försök. En fin möjlighet öppnar sig för _T_POSS__ _P0_ skjuter frÃ¥n kort hÃ¥ll _P0_ rusar innÃ¥t och skjuter _P0_ gör ett försök frÃ¥n 30 meter goal MÃ¥l!!! Mååååål!!! _P0_ gör mÃ¥l!!! MÃ¥l!! SÃ¥g du den? [Deras mÃ¥lvakt|_P1_] gjorde verkligen inte det. Ännu en spik i kistan Vilket mÃ¥l! Bollen [visslar|flyger|rullar] förbi _P1_ och det är måååål!!! miss [_P1_|Försvaret] rensar undan SÃ¥ nära men ändÃ¥ inte Det fanns inget guld i slutet pÃ¥ den regnbÃ¥gen In i nätet men bortdömt. Offside-flaggan viftad Ã…hh, vilken chans! Den gick nÃ¥gon annanstans än i nätet _P0_ börjar verkligen undra vad han mÃ¥ste göra för att göra mÃ¥l save Ingen kraft i det skottet frÃ¥n _P0_. FÃ¥ngades enkelt av _P1_ [_P1_|MÃ¥lvakten] hÃ¥ller _TL_ i matchen LÃ¥gt skott som plockas precis till [höger|vänster] av _P1_ Som ett träningspass för _P1_ start_match Vi är igÃ¥ng. [Kampen|Matchen|Fajten|Kriget|Matchen] börjar Domaren fÃ¥r en nickning frÃ¥n linjemännen och vi är igÃ¥ng Dimman lättar och nu kör vi igÃ¥ng Domarna är klara, spelarna uppvärmda, och där blÃ¥ses matchen igÃ¥ng _T[_TAVSKILL0_ LE _TAVSKILL1_]_ börjar matchen som klara favoriter. half_time Det är halvtid Det stÃ¥r _RE_ vid halvtid. Än sÃ¥ lÃ¥nge har _TW_ och deras manager gjort allting rätt. Det är ett blodbad där ute och ingen fotbollsmatch. [SÃ¥ mÃ¥nga|[_FOULS0_ + _FOULS1_]] avblÃ¥sningar. Domarna behöver verkligen köpa nya visselpipor efter detta! extra_time Det är fortfarande _RE_. Dags för extratid Efter _MI_ minuter är det fortfarande _RE_: extratid penalties Vem hade gissat för _MI_ minuter sedan att det skulle bli sÃ¥ här TvÃ¥ lag, jämna i alla aspekter, dags för straffar! Inga mÃ¥l än sÃ¥ länge men nu kommer vi fÃ¥ se när vi gÃ¥r över till straffläggning end_match Matchen är över! _TW_ triumferar!!! Efter _MI_ minuter slutar matchen med _RE_ Domaren ser pÃ¥ klockan och blÃ¥ser av för full tid Jaha, det var det. Matchen slutar _RE_ _TW_s manager kommer att bli överlycklig med det resultatet Matchen slutar lika. Det är fortfarande en poäng var. _TL_ blev slaktade med _GD_ mÃ¥l. _TW_ kommer att dricka champagne ikväll. own_goal Det där lilla misstaget kostade _T_TT__ ett mÃ¥l SjälvmÃ¥l av _P0_! _P0_ passar bollen tillbaka till sin mÃ¥lvakt, Ã¥h nej, mÃ¥lvakten missar den! SjälvmÃ¥l av _P0_! header Bollen träffar _P0_s huvud men inte mer än sÃ¥ SprÃ¥ngnick av _P0_ Snygg nick av _P0_ Nickskarv av _P0_ post LÃ¥ngt skott frÃ¥n _P0_ träffar stolpen Och skotten flyger förbi fel sida av stolpen Vilken osis! _P0_ träffar [högra|vänstra|fel sida av] stolpen cross_bar Bollen dunkar hÃ¥rt i ribban _P1_ verkade vara överallt pÃ¥ en gÃ¥ng men lyckas lägga bollen precis ovanför ribban penalty _P0_ kliver fram för att lägga straffen _P0_ smyger fram för att lägga straffen free_kick [Kort|LÃ¥ng] frispark frÃ¥n _P0_ Frispark: _P0_ spelar ut den lÃ¥ngt pÃ¥ [vänster|höger] sida foul_yellow _P1_ för farlig glidtackling pÃ¥ _P0_ _P1_ för att ha sparkat bort bollen _P1_ för fördröjning av spelet _P1_ för handtagning foul_red _P1_ fÃ¥r ett för hög spark _P1_ fÃ¥r sin marschorder för vÃ¥ldsamt uppträdande _P1_ för avsiktlig handboll _P1_ skickas ut för att stoppat en möjlighet för solklart mÃ¥l _P1_ har fÃ¥tt ett rött kort för att ha slagit _P0_ _P1_ för svordommar Ã¥t motstÃ¥ndarens fans _P1_ fÃ¥r sin andra varning i matchen och fÃ¥r lämna planen foul_red_injury Läkaren och bÃ¥rbärarna springer in för att hämta upp _P0_ som ligger och skriker tack vare _P1_ Tackling av _P1_; _P0_ verkar vara skadad... han kan behöva bytas ut send_off _P0_ har visats ut _P0_ visas ut. _T_TT__ är nu en man mindre injury _P0_ ser ut att ha skadats rejält _P0_ ligger kvar skadad pÃ¥ planen temp_injury _P0_ har Ã¥kt pÃ¥ en sträckning men borde kunna fortsätta matchen _P0_ har fÃ¥tt ett sÃ¥r i pannan efter en nick men ett plÃ¥ster senare är han igÃ¥ng igen stadium_breakdown _T0_ upplever problem med sin stadium Lamporna har precis slocknat Tung dimma orsakar problem här pÃ¥ _T0_s mark stadium_riots Bönderna revolterar Och fansen kastar facklor mot spelarbÃ¥set Polisen kommer in för att stoppa slagsmÃ¥let mellan supporterklubbarna Ett fan har lyckats att komma ner bland spelarna och attackerat domaren Fansen springer ner bland spelarna liknande en fullskalig invasion stadium_fire Elden äter upp _T_TT__s stadium Bortafansen har tänt eld pÃ¥ den norra läktaren En fackla som kastats mot spelarbÃ¥set har startat en enorm rökutveckling En högtalare har tagit eld och röken sprider sig runt omkring hela omrÃ¥det substitution _T_TT__ gör ett byte, _P0_ kommer in för att ersätta _P1_ _T_TT__ behöver lite friska ben, _P0_ kommer in för att ersätta _P1_ _P0_ kommer in frÃ¥n bänken för att ersätta _P1_ _P0_ ersätter _P1_ structure_change _T_TT__ har ändrat sin struktur till _EX_ style_change _T_TT__ har ändrat sin stil till _EX_ _T_TT__ ändrar till en _EX_-stil boost_change _T_TT__ har ändrat sin boost till _EX_ Ser ut som _T_TT__ har gett upp _T_TT__ mÃ¥ste tro att de har denna match klar _T_TT__ har växlat upp en växel Boost är pÃ¥._T_TT__ kastar in allt de har bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_el.xml0000644000175000017500000014206511225071372023753 0ustar eliaselias general _P1_ πασάÏει _P0_ _P1_ στον _P0_ _P1_ Ï„Ïοφοδοτεί [υπέÏοχα|εκπληκτικά|μοναδικά|φανταστικά] τον _P0_ Γλυκιά μικÏή [μπαλιά|πάσα] βÏίσκει τον _P0_ Ο _P1_ πεÏιμένει για το ένα-δÏο Πάσα Καλό ποδόσφαιÏο, καλή πάσα _P1_ Ïίχνει τη μπάλα στα πόδια του _P0_ ΨηλοκÏεμαστή πάσα από τον _P1_ βÏίσκει τον στόχο Η ομάδα _T_POSS__ είναι στην επίθεση Η ομάδα _T_NPOSS__ είναι στην [άμυνα|άμυνα] Εκπληκτική διείσδυσή άπο τον _P0_ ΤώÏα η ομάδα _T_POSS__ έχει μία ευκαιÏία με τον _P0_ Η μπάλα μέσα από τον _P1_ [βÏίσκει τον|χάνεται από τον] _P0_ _P1_ [Ï„Ïοφοδοτεί] με μία καλή μπαλιά τον _P0_ [ΥπέÏοχη|Καταπληκτική|ΜακÏιά|Φανταστική] πάσα από τον _P1_ απελευθεÏώνει τον _P0_ [ΜακÏιά|Κοντινή|ΑκÏιβής] σέντÏα από τον _P1_ βÏίσκει τον _P0_ [Καλή|Î Î¿Î»Ï ÎºÎ±Î»Î®|Έξυπνη] πάσα στα πλάγια [δεξιά|αÏιστεÏά] [ΓÏήγοÏη|ΣυγχÏονισμένη] [κίνηση|κίνηση] άπο τα [αÏιστεÏά|δεξιά] Ο _P0_ ξεφεÏγει από τον αμυντικό και [συλλέγει|συλλέγει] την τέλεια [χÏονισμένη|ζυγισμένη] σέντÏα του _P1_. Άλλη μία [έξυπνη|όμοÏφη|αξιοπÏεπής] κίνηση [από τα πλάγια|στο κέντÏο|στο γήπεδο] Ο _P0_ συλλέγει την [κοφτή μπαλιά|πάσα] του _P1_ _P1_ [κλέβει|πέÏνει] [την μπάλα] από του [αντιπάλου παίχτη] [το πόδι|τα πόδια] και βÏίσκει τον _P0_ Ο _P1_ [παγιδεÏει|κοντÏολάÏει] [την μπάλα] με το [πόδι|στήθος|κεφάλι] και την [στέλνει|πασάÏει|μεταβιβάζει] στον _P0_ Ο _P1_ [δίνει|δίνει με το κεφάλι] την μπάλα Ï€Ïος τον _P0_ Ο _P0_ σβουÏίζει και γυÏίζει ξανά Ο _P0_ στÏιφογυÏίζει απεγνωσμένα για να τον χάσει ο αμυντικός Ο _P0_ κινείται [πάνω|Ï€Ïος] στο [κέντÏο|κέντÏο] Ο _P0_ [χάνει|ξεφεÏγει από] τον [αντίπαλο|αμυντικό] Μία ισοπαλία θα είναι ένα καλό αποτέλεσμα για την πιο αδÏναμη _T[_TAVSKILL0_ GE _TAVSKILL1_]_ Η ομάδα _TW_ θα Ï€Ïέπει να βάλει την μπάλα κάτω και να κÏατήσει αποτέλεσμα Η ομάδα _T_POSS__ Ï€Ïέπει [να βγει μπÏοστά|να δημιουÏγήσει πιο πολλές ευκαιÏίες] Μόνο [_SHOTS0_ + _SHOTS1_] σουτ: [είναι μία μάχη κέντÏου|καμία πλευÏά δεν Ï€Ïοσπαθεί Ï€Ïαγματικά] Μόνο 1 σουτ: [είναι μία μάχη κέντÏου|καμία πλευÏά δεν Ï€Ïοσπαθεί Ï€Ïαγματικά] _MI_ λεπτά στο Ïολόι, και έχουν ήδη γίνει ευκαιÏίες και από τις δÏο ομάδες Επίδειξη ικανοτήτων Φτάνουμε Ï€Ïος τις τελευταίες στιγμές του αγώνα [Τόσα πολλά|[_FOULS0_ + _FOULS1_]] φάουλ. Ο διαιτητής θα χÏειαστεί καινοÏÏγιο [στÏαγάλι για την σφυÏίχτÏα του|βιβλίο|μολÏβι]! Φυσικά τίποτα δεν τελειώνει μέχÏι το τελευταίο σφÏÏιγμα lost_possession Διώχνει σε πλάγιο _P1_. _P0_ εκτελεί το πλάγιο. _P1_ χάνει την μπάλα _P1_ χάνει την μπάλα από τον _P0_ [Ο _P1_ πουλάει την μπάλα|Η μπάλα χάνεται] [απÏόσεχτα|φθηνά|Ï€Î¿Î»Ï ÎµÏκολα] _P1_ την βγάζει εκτός. Πλάγιο για την ομάδα _T_POSS__ Δυνατή πάσα του _P1_ έχει ως αποτέλεσμα ένα πλάγιο για την ομάδα _T_POSS__ Ο _P0_ εκτελεί γÏήγοÏα το πλάγιο ΜακÏινό πλάγιο από τον _P0_ Τάκλιν άπο τον _P0_ Κακό κοντÏόλ άπο τον _P1_ _P0_ κεÏδίζει την μπάλα με ένα τέλειο τάκλιν Πολλά πισωγυÏίσματα καθώς η ομάδα _T_NPOSS__ χάνει την μπάλα Άσχημο κοντÏόλ από τον _P1_ και ο _P0_ του κλέβει την μπάλα _P0_ [κλέβει|πέÏνει] την μπάλα από τον _P1_ με ένα τάκλιν Η χαμένη μπαλιά πέφτει στον _P0_ Δυνατό τάκλιν!Ο _P0_ [φεÏγει με|κεÏδίζει] την μπάλα Ο _P1_ μένει άναυδος καθώς ο _P0_ πέÏνει την μπάλα Ο _P0_ κάνει μία Ï€Î¿Î»Ï ÎºÎ±Î»Î® επέμβαση _P0_ συγκÏοÏεται με τον _P1_ και φεÏγει με την μπάλα Όχι και η καλÏτεÏη πάσα του _P1_ καθώς ο _P0_ ανακόπτει foul [Ωωω!|Ω θεέ μου!], αυτό ήταν ένα Ï€Î¿Î»Ï Î´Ï…Î½Î±Ï„ÏŒ τάκλιν στον _P0_ ΣίγουÏα ο _P1_ θα πάÏει κάÏτα για αυτό _P1_ [κλαδεÏει|ανακόπτει|σταματάει] τον _P0_ με τα δÏο πόδια [Επικίνδυνη|Δυνατή] διεκδίκηση με τον _P0_ _P1_ πέÏνει τα πόδια του _P0_ [Ανακοπτική|Δυνατή|Σημαντική] διεκδίκηση από τον _P1_ στον _P0_ Επικίνδυνο τάκλιν από τον _P1_ αφήνει τον _P0_ στο έδαφος _P1_ πέÏνει τα πόδια του _P0_ Δεν αποκαλοÏν τον _P1_ [Σφαγέα|ΤσεκοÏÏι|Δολοφόνο|Γκαζμά] για το τίποτα. Σχεδόν σκότωσε τον [αντίπαλο|_P0_]! Ωχ! Αυτό Ï€Ïέπει να πόνεσε Ο _P0_ είναι στο έδαφος και δεν χαμογελάει Δεν ξέÏω για τον _P0_ αλλα αυτό το τάκλιν μου έφεÏε δάκÏυά στα μάτια Αντιαθλητικό τάκλιν του _P1_ Ïίχνει τον _P0_ στο έδαφος Η μαÏÏη ζώνη του _P1_ στο [καÏάτε|ταεκβοντο|τζοÏντο] φάνηκε χÏήσημη σε αυτή τη διεκδίκηση με τον _P0_ Ο _P1_ έχασε την ψυχÏαιμία του και έÏιξε τον _P0_ στο έδαφος. Ο _P0_ δέχτηκε όλη την δÏναμη από την διεκδίκησή του _P1_ . Ο _P0_ Ï€Ïοσπάθησε να αποÏÏοφήσει αυτό το τάκλιν αλλά ο διαιτητής αποφασίζει ότι αυτό πάει πολÏ. Ο διαιτητής έδωσε το πλεονέκτημα αλλά τελικά σφυÏίζει το φάουλ στον _P0_ Τέτοια φάουλ είναι ενδεικτικά του εκνευÏÎ¹ÏƒÎ¼Î¿Ï Ï€Î¿Ï… επικÏατεί. Αντιαθλητικό φάουλ Ο _P0_ Ï€Ïοσπαθεί να αποφÏγει την δυνατή διεκδίκηση _P1_ κάνει ένα δυνατό τάκλιν. ΣίγουÏα δεν θα αποφÏγει την τιμωÏία. scoring_chance _P0_ διεισδÏει και [σουτάÏει|πλασάÏει] Καλή Ï€Ïοσπάθεια από τον _P1_ πασάÏει στον _P0_ ο οποίος [πλασάÏει στην γωνία|πυÏοβολεί] _P0_ κινείται Ï€Ïος το γκολ και [πυÏοβολεί|πλασάÏει|δοκιμάζει το σουτ|σουτάÏει]! _P0_ στÏίβει και σουτάÏει Ένα δυνατό [σουτ|σουτ] από τον _P0_ _P0_ βÏίσκει χώÏο και δοκιμάζει την Ï„Ïχη του. Μία υπέÏοχη ευκαιÏία ανοίγεται για την ομάδα _T_POSS__ ΣέντÏα άπο τον _P1_ βÏίσκει τον _P0_ στο [Ï€Ïώτο|δεÏτεÏο] δοκάÏι _P0_ [πλασάÏει|σημαδεÏει την γωνία|πλασάÏει γλυκά] και η μπάλα κατευθÏνεται [Ï€Ïος τα δίχτυα|Ï€Ïος την εστία] ΣουτάÏει σε Ï€Ïώτο χÏόνο _P0_ πέÏνει την μπάλα και [σουτάÏει|πλασάÏει|δοκιμάζει το σουτ] Ο _P0_ δέχεται την πάσα του _P1_ και σουτάÏει Ο _P0_ [κεÏαυνοβολεί|σουτάÏει|σουτάÏει με δÏναμη] από τα 20 μέτÏα, και η μπάλα φαίνεται να [έχει φάλτσο|πηγαίνει Ï€Ïος την εστία|οδεÏει εκτός] _P0_ [διεισδÏει|ντÏιπλάÏει|Ï„Ïέχει|μπαίνει] στην πεÏιοχή, ξεπεÏνάει την άμυνα και σουτάÏει _P0_ [διεισδÏει|συγκλίνει|μπαίνει] στην πεÏιοχή από το [δεξί|αÏιστεÏÏŒ] άκÏο και [σουτάÏει|πλασάÏει στη γωνία|Ï€Ïοσπαθεί με σουτ] Ο _P0_ δοκιμάζει την Ï„Ïχη του από τα 27 μέτÏα _P0_ [δοκιμάζει|κάνει] ένα σουτ στην [κάτω|πάνω] [δεξιά|αÏιστεÏή] γωνία _P0_ σουτάÏει από κοντινή απόσταση [Κλασάτη|ΥπέÏοχη|Εμπνευσμένη] [πάσα|μπαλιά] από τον _P1_ βγάζει τον _P0_ στο ένας με έναν με τον [τεÏματοφÏλακα|ποÏτιέÏο|γκολκίπεÏ] Το [ψαλιδάκι|ανάποδο ψαλίδι] του _P0_ στέλνει την μπάλα στην [κάτω|πάνω] [αÏιστεÏή|δεξιά] γωνία _P0_ [χοÏεÏει|ντÏιπλάÏει] και Ï€ÏοσπεÏνάει ανάμεσα από δÏο αμυντικοÏÏ‚, [ξεγελάει|ντÏιπλάÏει] τον τεÏματοφÏλακα [στέλνει|σπÏώχνει] την μπάλα [στην εστία|στα δίχτυα|μέσα] _P1_ στÏώνει την μπάλα στον _P0_ ο οποίος σουτάÏει με δÏναμη _P0_ με ένα δυνατό σουτ ΕυκαιÏία για τον _P1_ και την ομάδα _T_POSS__ με ένα σουτ Ο _P0_ βγαίνει στην πλάτη της άμυνας και σουτάÏει goal Γκολ!!! Και η μπάλα βÏίσκεται στα δίχτυα!!! Ο _P0_ σκοÏάÏει!!! Γκολ!! Το είδατε αυτό? [Ο τεÏματοφÏλακας|_P1_] σίγουÏα όχι. Και η μπάλα [φεÏγει σαν σφαίÏα|πετάει] από το πόδι του _P1_ και καταλήγει στα δίχτυα!!! Η μπάλα [φεÏγει|φεÏγει] από τον _P1_ και είναι γκολ!!! Ο _P0_ πανηγυÏίζει Ένα Ï€Ïαγματικά [εκπληκτικό|υπέÏοχο|μοναδικό|φανταστικό|πανέμοÏφο] γκολ!! Γκολ!!Η [απελπισμένη|υπεÏάνθÏωπη] βουτιά του _P1_ δεν μποÏεί να σώσει το γκολ από το σουτ του _P0_ Η μπάλα [είναι|καταλήγει] στα δίχτυα!!! ΠανηγυÏισμοί ξεσποÏν! Θα κάνουν καιÏÏŒ να ξεχάσουν αυτό το [γκολ|σουτ|πλασέ] Ο χοÏευτικός πανηγυÏισμός του _P0_ αναφλέγει τους φιλάθλους. ΠανηγυÏίζει με τον [γνωστό|δικό του] μοναδικό Ï„Ïόπο Γκολ! Το πλασέ από τον _P0_ αφοπλίζει [τον τεÏματοφÏλακα|_P1_|_T_NPOSS__] Εκπληκτικό Γκολ! Γκολ! Η θεά Ï„Ïχη Ï€Ïοφανώς υποστηÏίζει την ομάδα _T_TT__ [Σουτ με φάλτσο|Σουτ με εσωτεÏικό φάλτσο|Σουτ με εξωτεÏικό φάλτσο] και η μπάλα καταλήγει στα δίχτυα Γκολ! Η ομάδα _T_TT_ [ανοίγει το σκοÏ|είναι η Ï€Ïώτη που σκοÏάÏει] σήμεÏα Αυτό το [σουτ|γκολ] Ï„Ïέλανε τους φιλάθλους της ομάδας _T_TT_ Αυτό το [σουτ|γκολ] έφεÏε το ÏƒÎºÎ¿Ï ÏƒÏ„Î± ίσα Η ομάδα _T_POSS__ βÏήκε [χÏυσό|δίχτυα]. Τι γκολ! ΜποÏεί η ομάδα _T_TT__ να επανέλθει? Η θεά Ï„Ïχη χαμογελάει στην ομάδα _T_TT__ τώÏα Η ομάδα _T_POSS__ σκοÏάÏει παÏά την εικόνα του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Î‘Ï€Î»ÏŽÏ‚ μεγαλώνει την έκταση του ÏƒÎºÎ¿Ï miss [Αυτός|_P0_] [σουτάÏει|στέλνει την μπάλα] εκτός! Το σουτ καταλήγει στις διαφημιστικές πινακίδες Ο _P0_ Ï„Ïέχει και κÏÏβεται μετά από αυτό το [σοκαÏιστικό|άθλιο|άστοχο] σουτ Ο _P0_ έπÏεπε να παίξει πιο ομαδικά και να δώσει πάσα. Το σουτ κατέληξε άουτ [Ο _P1_|Ο αμυντικός] καθαÏίζει την φάση Ο _P0_ σπÏώχνει την μπάλα εκτός Ο αμυντικός σταματάει την επιθετική Ï€Ïοσπάθεια Ο _P0_ στέλνει την μπάλα άουτ Και [η μπαλιά|το σουτ] γλÏφει το δοκάÏι Φαινόταν από την αÏχή. Απίστευτη ευκαιÏία πάει χαμένη! Χαμένες ευκαιÏίες σαν αυτή μποÏοÏν να κοστίσουν στην ομάδα _T_POSS__ τον αγώνα. Πολλά υποσχόμενο σουτ από τον _P0_ τελικά καταλήγει άουτ. Έκανε όλη την δÏσκολη δουλειά αλλα δεν μπόÏεσε να τελειώσει την φάση με γκολ Τόσο κοντά κ' όμως τόσο μακÏιά Μόλις άουτ Η ομάδα _T_POSS__ σπατάλησε [μία καλή|την] ευκαιÏία. Καλή κοÏÏσα, καλή μεταβίβαση αλλά καμία ανταμοιβή Η θεά Ï„Ïχη γÏÏισε την πλάτη [στον _P0_|στην ομάδα _T_POSS__] Μία κλασσική ευκαιÏία για την ομάδα _T_NPOSS__ πάει χαμένη Μία πολυπÏόσωπη Ï€Ïοσπάθεια, άξια αλλά χωÏίς γκολ Δεν υπήÏχε χÏυσός στο τέλος αυτής της κοÏÏσας ΑναμπουμποÏλα στη μικÏή πεÏιοχή αλλά η μπάλα δεν βÏίσκει τον δÏόμο Ï€Ïος τα δίχτυα Και η μπάλα καταλήγει στις κεÏκίδες Η μπάλα στα δίχτυα αλλά το γκολ δεν θα μετÏήσει. Ο επόπτης σήκωσε την σημαία του. Οφσάιντ Ο _P0_ αÏχίζει να αναÏωτιέται τι Ï€Ïέπει να κάνει για να σκοÏάÏει Η παίχτες της ομάδας _T_POSS__ αÏχίζουν να αναÏωτιοÏνται τι Ï€Ïέπει να κάνουν για να σκοÏάÏουν save ΦοβεÏÏŒ [χτÏπημα|σουτ] αλλά [ο τεÏματοφÏλακας|ο γκολκίπεÏ|ο _P1_] έχει μαγνητικά γάντια Ο _P1_ διώχνει με τα ακÏοδάχτυλα ΥπάÏχει ένας τοίχος εκεί με το όνομα _P1_. Φανταστική απόκÏουση Σαν σε Ï€Ïοπόνηση ο _P1_ Ο _P1_ κατεβάζει τα Ïολά. Η ομάδα _T_NPOSS__ χÏωστάει πολλά στον _P1_ Η ομάδα _T_POSS__ βÏίσκει αντιμέτωπη την [καταπληκτική|υπέÏοχη|φανταστική] απόκÏουση του _P1_ Ο _P1_ μπλοκάÏει εÏκολα. Ο _P1_ αποκÏοÏει το σουτ του _P0_ σε κόÏÎ½ÎµÏ ÎšÎ±Ï„Î±Ï€Î»Î·ÎºÏ„Î¹ÎºÎ® [ταχÏτητα|ικανότητα] από τον _P0_ αλλά ο _P1_ κάνει μία [μοναδική|σπάνια|συγχÏονισμένη] επέμβαση Ο _P1_ πέφτει στην [δεξιά|αÏιστεÏή] του γωνία και μπλοκάÏει την μπάλα Ο _P1_ μαζεÏει εÏκολα Ο _P1_ δείχνει σπουδαία ανακλαστικά και σώζει την εστία του από παÏαβίαση Ο _P1_ [βγαίνει Ï€Ïος|Ï„Ïέχει Ï€Ïος|στο ένας με έναν με] τον _P0_ και αποκÏοÏει το σουτ με το [χέÏι|σώμα|κεφάλι|κοÏμό|πόδι|παποÏτσι] [Καλή|Î Î¿Î»Ï ÎºÎ±Î»Î®|ΔÏσκολη|ΕÏκολη] επέμβαση από τον [τεÏματοφÏλακα|γκολκίπεÏ|ποÏτιέÏο] [Σώζει|Πιάνει|Σταματάει|ΜαζεÏει] ο _P1_ [Ο τεÏματοφÏλακας|Ο γκολκίπεÏ|Ο _P1_] αντιλήφθηκε κάθε κίνηση του _P0_ Ο _P1_ σώζει την ομάδα του από ένα σίγουÏο γκολ ΑδÏναμο σουτ από τον _P0_. ΕÏκολα μπλοκάÏει ο _P1_ [Μία|Αυτή είναι μία] εÏκολη [επέμβαση|απόκÏουση] από τον [_P1_|τεÏματοφÏλακα] [Ο _P1_|Ο τεÏματοφÏλακας] κÏατάει την ομάδα _TL_ στο παιχνίδι start_match Το κοινό αγγίζει τους _AT_ καθώς το παιχνίδι αÏχίζει Και το παιχνίδι αÏχίζει Συνθήματα υποδέχονται τις δÏο ομάδες καθώς οι παίχτες παίÏνουν θέσεις στο χόÏτο [Το κοινό|_AT_ φίλαθλοι] φωνάζουν καθώς οι παίχτες εμφανίζονται από το τοÏνελ Μία ηλιόλουστη μέÏα που δίνει την εντÏπωση ότι το ματς θα λάμψει _AT_ [φίλαθλοι|οπαδοί] δεν μποÏεί να κάνουν λάθος. Αυτό είναι το ματς που ήÏθαμε να δοÏμε όλοι Ο διαιτητής κάνει νόημα στον βοηθό και ο αγώνας αÏχίζει [Η μάχη|Ο αγώνας|Το ματς|Ο πόλεμος|Το παιχνίδι] αÏχίζει Οι διαιτητές είναι έτοιμοι, οι παίχτες στην θέση τους, το παιχνίδι αÏχίζει Η ομίχλη απομακÏÏνεται και το ματς αÏχίζει Οι ομάδες είναι ισοδÏναμες. Είμαστε έτοιμοι για [μία αληθινή|μία μέχÏι τέλους] μάχη. Η ομάδα _T[_TAVSKILL0_ LE _TAVSKILL1_]_ έχει ελαφÏÏŽÏ‚ το πάνω χέÏι. ΥπάÏχει μεγάλη διαφοÏά δυναμικότητας ανάμεσα στις δÏο ομάδες. Λογικά θα είναι Ï€Ïοπόνηση για την ομάδα _T[_TAVSKILL1_ GE _TAVSKILL0_]_ Η ομάδα _T[_TAVSKILL0_ GE _TAVSKILL1_]_ είναι το αουτσάιντεÏ. Η ομάδα _T[_TAVSKILL0_ LE _TAVSKILL1_]_ είναι το φαβοÏί. Η μάχη τιτάνων αÏχίζει half_time ΗμίχÏονο Είναι _RE_ στο ημίχÏονο. Είναι _RE_ στο ημίχÏονο.Ο Ï€Ïοπονητής της ομάδας _TL_ Ï€Ïέπει να κάνει κάτι για την ομάδα του. Παιχνίδια σαν αυτό κάνουν τους Ï€Ïοπονητές.Η ομάδα _TL_ χÏειάζεται έμπνευση από άνωθεν Τα πεσμένα κεφάλια είναι χαÏακτηÏιστικά. Δεν ήταν πικ νικ για την ομάδα _TL_. Οι οπαδοί βÏίζουν τον Ï€Ïοπονητή της ομάδας _TL_ καθώς αυτός μπαίνει στο τοÏνελ ΜέχÏι τώÏα η ομάδα _TW_ και ο Ï€Ïοπονητής της κάναν τα πάντα σωστά. Ο Ï€Ïοπονητής της ομάδας _TL_ είναι εκνευÏισμένος με την απόδοση της σε αυτό το ημίχÏονο Έχω ένα Ï€Ïοαίσθημα ότι οι παίχτες της ομάδας _TL_ θα τα ακοÏσουν Έχω ένα Ï€Ïοαίσθημα ότι οι παίχτες της ομάδας _TL_ θα τα ακοÏσουν Η ομάδα _TW_ απέχει 45 λεπτά από μία φοβεÏή νίκη Η ομάδα _TL_ μπαίνει στο τοÏνελ για ακοÏσει τις οδηγίες από τον Ï€Ïοπονητή Ένα ημίχÏονο που η ομάδα _TL_ θέλει να ξεχάσει γÏήγοÏα Η ομάδα _T[_POSS1_ GE 70]_ είχε την κατοχή της μπάλας Η ομάδα _T[_POSS1_ GE 60]_ είχε την [πολυτέλεια|μεÏίδα του λέοντος] της κατοχής σε αυτό το ημίχÏονο Η ομάδα _T0_ μποÏεί να είχε την κατοχή αλλά η ομάδα _T1_ χÏησιμοποίησε καλÏτεÏα την δική της Η ομάδα _T0_ μποÏεί να είχε την κατοχή αλλά η ομάδα _T1_ χÏησιμοποίησε καλÏτεÏα την δική της Η ομάδα _T[_POSS1_ GE 75]_ φαίνεται να είναι η μόνη ομάδα στο γήπεδο Λοιπόν [οι Ï„Ïάπεζες είναι κλειστές|το σακοÏλι με τα γλυκά είναι άδειο]: [δεν υπάÏχουν γκολ σε αυτό το ημίχÏονο|κανείς δεν κατάφεÏε να σκοÏάÏει] Σε αυτό το σημείο ένα γκολ πάνω [ίσως να μην είναι|ίσως να είναι] αÏκετό Με τον αÏιθμό των σουτ μέχÏι στιγμής, ένα γκολ πάνω ίσως να μην είναι αÏκετό ΣίγουÏα είναι ένα παιχνίδι με χαμηλό ÏƒÎºÎ¿Ï Î±Î»Î»Î¬ έγιναν αÏκετά σουτ Η ομάδα _T[_SHOTS0_ LE _SHOTS1_]_ είχε αÏκετές ευκαιÏίες να [τελειώσει|ασφαλίσει] αυτό το παιχνίδι Η ομάδα _T[_SHOTS0_ LE _SHOTS1_]_ είχε _SHOTS[_SHOTS0_ LE _SHOTS1_]_ ευκαιÏίες να [τελειώσει|κλειδώσει|ασφαλίσει] αυτό το παιχνίδι ΧωÏίς γκολ ακόμη και το κοινό φαίνεται να αÏχίζει να κÏυώνει Î’Ïέχει γκολ. [_GOALS0_ + _GOALS1_] μέχÏι στιγμής και είμαστε ακόμη στο Ï€Ïώτο ημίχÏονο! ΥπάÏχουν δÏο ομάδες στο γήπεδο η [_T[_FOULS0_ GE _FOULS1_]_|μία από αυτές] παίζει ποδόσφαιÏο Αυτό δεν είναι ποδοσφαιÏικός αγώνας, είναι λουτÏÏŒ αίματος. [Τόσα πολλά|[_FOULS0_ + _FOULS1_]] φάουλ. Ο διαιτητής θα χÏειαστεί νέα αναλώσιμα! [Τόσα πολλά|[_FOULS0_ + _FOULS1_]] φάουλ. Ο διαιτητής θα χÏειαστεί νέο [στÏαγάλι για την σφυÏίχτÏα του|βιβλίο|μολÏβι]! [_PEN0_ + _PEN1_] πέναλτι ήδη extra_time Μετά άπο ένα κλειστό ματς το παιχνίδι θα κÏιθεί στην παÏάταση Είναι ακόμα _RE_: παÏάταση Μετά άπο _MI_ λεπτά είναι ακόμα _RE_: παÏάταση Ποιος θα τα καταφέÏει? Η παÏάταση θα δείξει ΤώÏα αναλαμβάνουν η θέληση και η φυσική κατάσταση καθώς οδεÏουμε σε παÏάταση penalties Ποιος θα το σκεφτόταν _MI_ λεπτά Ï€Ïιν ότι θα φτάναμε ως εδώ? Και τώÏα η Ïώσικη Ïουλέτα των πέναλτι Δυο ίσες μέχÏι στιγμής ομάδες θα κÏιθοÏν στα πέναλτι Οι ομάδες δεν τα κατάφεÏαν οπότε τώÏα είναι ένας με έναν. Εκτελεστής εναντίον τεÏματοφÏλακα Κανένα γκολ μέχÏι τώÏα αλλά ήÏθε η ÏŽÏα να δοÏμε μεÏικά Î±Ï†Î¿Ï Ï†Ï„Î¬ÏƒÎ±Î¼Îµ στα πέναλτι end_match Το ματς τελείωσε! Η ομάδα _TW_ θÏιάμβευσε!!! Οι οπαδοί γιουχάÏουν την ομάδα _TL_ Μετά από _MI_ λεπτά το ματς τελειώνει με _RE_ Ο διαιτητής βλέπει το Ïολόι του και σφυÏίζει την λήξη Αυτό ήταν λοιπόν. Τελειώνει με _RE_ Ο Ï€Ïοπονητής της _TW_ θα είναι ευχαÏιστημένος με το αποτέλεσμα _RE_, τι καταπληκτικό αποτέλεσμα για την ομάδα _TW_ Ισοπαλία λοιπόν. Ένας πόντος είναι ένας πόντος. Αυτό ήταν λοιπόν. Τελικό ÏƒÎºÎ¿Ï _RE_ για την ομάδα _TW_ Αυτό το ματς θα το θυμάμαι καιÏÏŒ. [_GOALS0_ + _GOALS1_] φοβεÏά γκολ! Η ομάδα _TL_ συντÏίφθηκε με _GD_ γκολ. Η ομάδα _TW_ θα πάει στα μπουζοÏκια σήμεÏα. Τι [υπέÏοχη νίκη|εκπληκτική νίκη] για την ομάδα _TW_ Η ομάδα _TL_ αντιμετώπισε έναν γίγαντα και το _RE_ το επαληθεÏει own_goal Ωωω όχι, η μπάλα από τον _P0_ μέσα στα δίχτυα της ομάδας του ΑναμπουμποÏλα στην μικÏή πεÏιοχή και τελικά δια ποδός _P0_ στα δίχτυα της ομάδας του ΦοβεÏÏŒ σουτ αλλοιώνεται χτυπώντας στην πλάτη του _P0_ και τελικά στα δίχτυα _P0_ πασάÏει στον τεÏματοφÏλακά του. Ω όχι, εκείνος την έχασε! Αυτογκόλ από τον _P0_! Αυτή η μικÏή ασυνεννοησία κόστισε στην ομάδα _T_TT__ ένα γκολ header _P1_ σεντÏάÏει στον _P0_ ο οποίος πιάνει την κεφαλιά Κεφαλιά ψαÏάκι από τον _P0_ Πήδηξε πιο ψηλά από όλους και έπιασε μία φοβεÏή κεφαλιά Αυτό έÏχεται από το πίσω μέÏος του ÎºÎµÏ†Î±Î»Î¹Î¿Ï Ï„Î¿Ï… _P0_! [ΌμοÏφη|Δυνατή|ΑδÏναμη|Γωνιακή] κεφαλιά Ï€Ïος τα δίχτυα από τον _P0_ _P0_ με μία κεφαλιά post Γλυκό χτÏπημα άπο τον _P0_ βÏίσκει το δοκάÏι Και το σουτ σταματάει στο δοκάÏι ΔοκάÏι! cross_bar ΟÏιζόντιο δοκάÏι! Η μπάλα σταματάει στο οÏιζόντιο δοκάÏι με τον _P1_ να μένει άναυδος Η μπάλα σταματάει στο οÏιζόντιο δοκάÏι με τον _P1_ να μένει άναυδος penalty Ο _P0_ θα χτυπήσει το πέναλτι _P0_ έχει την ευκαιÏία να σκοÏάÏει από την βοÏλα του πέναλτι Ο _P0_ μποÏεί να εξαφανίσει κάποιες ανησυχίες της ομάδας του με αυτό το πέναλτι ΜποÏεί [ο _P0_|η ομάδα _T_POSS__] να αξιοποιήσει αυτό το πέναλτι? Τα πέναλτι χÏειάζονται ψυχÏαιμία και αυτοσυγκέντÏωση Η ομάδα _T_POSS__ φαίνεται να παίζει για τα πέναλτι. Η ομάδα _T_POSS__ μποÏεί να πάÏει κεφάλι στο ÏƒÎºÎ¿Ï Î±Î½ το βάλει _P0_ μποÏεί να ισοφαÏίσει από την βοÏλα _P0_: Ένα πέναλτι μποÏεί να φέÏει το ματς στα ίσα Η ομάδα _T_NPOSS__ έδωσε μία εÏκολη ευκαιÏία για την ομάδα _T_POSS__ να επανέλθει στο παιχνίδι Ο _P0_ μποÏεί να πάÏει το παιχνίδι με ένα γκολ από εδώ free_kick Κοντινή εκτέλεση φάουλ από τον _P0_ _P0_ εκτελεί χαμηλά και δυνατά _P0_ εκτελεί γÏήγοÏα και την πεÏνάει πάνω άπο το τοίχος _P0_ εκτελεί με φάλτσο και πεÏνάει το τοίχος Εκτέλεση Φάουλ: _P0_ εκτελεί και η μπάλα άουτ Εκτέλεση Φάουλ: _P0_ εκτελεί το φάουλ και Ï€Ïοτιμά να κάνει σέντÏα Εκτέλεση φάουλ από τον _P0_ foul_yellow Στον _P1_ για επικίνδυνο τάκλιν στον _P0_ Στον _P1_ για φάουλ στον _P0_ Στον _P1_ επειδή κλότσησε την μπάλα Στον _P1_ για καθυστέÏησή Στον _P1_ για χέÏι Στον _P1_ γιατί σταμάτησε τον _P0_ από το να εκτελέσει γÏήγοÏα το φάουλ Στον _P1_ για εξÏβÏισή foul_red Στον _P1_ για επικίνδυνη Ï€Ïοβολή Στον _P1_ γιατί έβÏισε τον διαιτητή Στον _P1_ γιατί έδειξε τα απόκÏυφά του Στον _P1_ για χέÏι με Ï€Ïόθεση Στον _P1_ γιατί σταμάτησε αντικανονικά ευκαιÏία για γκολ Στον _P1_ επειδή γÏονθοκόπησε τον _P0_ Στον _P1_ γιατί έβÏισε φιλάθλους της αντίπαλης ομάδας foul_red_injury _P1_ κάνει φάουλ στον _P0_ και μπαίνει στον αγωνιστικό χώÏο το φοÏείο και το ιατÏικό τιμ Φάουλ από τον _P1_; _P0_ φαίνεται να κουτσαίνει.. ίσως να χÏειαστεί να γίνει αλλαγή send_off Ο _P0_ αποβάλλεται Ο _P0_ αποβάλλεται.Η ομάδα _T_TT__ μένει με 10 παίχτες injury Ο _P0_ θα Ï€Ïέπει να γίνει αλλαγή Î±Ï†Î¿Ï Ï„Ïαυματίστηκε στον καÏπό Ο _P0_ φαίνεται να έχει Ï„Ïαυματιστεί σοβαÏά Ο φυσιοθεÏαπευτής έÏιξε μία ματιά και ο _P0_ βγαίνει με φοÏείο temp_injury Ο _P0_ έπαθε Ï„Ïάβηγμα αλλά Ï€Ïέπει να είναι ικανός να συνεχίσει Ο _P0_ χτÏπησε ελαφÏά Ο _P0_ Ï„Ïαυματίζεται ελαφÏά Ο _P0_ σηκώνεται και το πατάει, φαίνεται να είναι εντάξει Ο _P0_ δέχεται την πεÏιποίηση των γιατÏών και συνεχίζει Ο _P0_ έχει ένα μεγάλο κόψιμο πάνω από το αÏιστεÏÏŒ μάτι αλλά γίνονται Ïάμματα για να συνεχίσει stadium_breakdown Η ομάδα _T0_ αντιμετωπίζει Ï€Ïοβλήματα με το στάδιο Τα φώτα του γηπέδου έσβησαν Πυκνή ομίχλη καθιστά δÏσκολη την διεξαγωγή του αγώνα stadium_riots Οι οπαδοί Ïίχνουν μπουκάλια και κέÏματα στον αγωνιστικό χώÏο Οι οπαδοί Ïίχνουν φωτοβολίδες στον αγωνιστικό χώÏο Τα ματ επεμβαίνουν για να σταματήσουν την μάχη Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½ οπαδών των δÏο ομάδων Ένας οπαδός μπήκε στο γήπεδο και επιτίθεται στον διαιτητή Οι οπαδοί μπαίνουν στον αγωνιστικό χώÏο! stadium_fire Φωτιά στο στάδιο της ομάδας _T_TT__ Οι οπαδοί της φιλοξενοÏμενης ομάδας βάλανε φωτιά στη βόÏεια θήÏα Μία φωτοβολίδα έχει αποτελέσει εστία φωτιάς Ένας εκφωνητής καίγεται και η φωτιά εξαπλώνεται παντοÏ! substitution Η ομάδα _T_TT__ κάνει αλλαγή:Ο _P0_ αντικαθιστά τον _P1_ Η ομάδα _T_TT__ χÏειάζεται φÏέσκα πόδια.Ο _P0_ αντικαθιστά τον _P1_ Ο _P1_ φεÏγει καταχειÏοκÏοτοÏμενος.Ο _P0_ μπαίνει στη θέση του Ο _P1_ δεν φαίνεται χαÏοÏμενος που βγαίνει.Την θέση του θα πάÏει ο _P0_ Ο _P0_ σηκώνεται από το πάγκο για να αντικαταστήσει τον _P1_ _P0_ αντί του _P1_ structure_change Η ομάδα _T_TT__ άλλαξε το σÏστημα σε _EX_ Η ομάδα _T_TT__ άλλαξε το σÏστημα σε _EX_ style_change Η ομάδα _T_TT__ άλλαξε το στιλ σε _EX_ Η ομάδα _T_TT__ άλλαξε σε _EX_ στιλ Η ομάδα _T_TT__ Ï€Ïοσπαθεί επιθετικά Η ομάδα _T_TT__ αλλάζει σε _EX_ και χαλαÏώνει Τελευταία Ï€Ïοσπάθεια: _T_TT__ αλλαζει σε _EX_ _MR_ λεπτά απομένουν. _T_TT__ δοκιμάζει αλλαγή τακτικής με _EX_ στιλ Το στιλ του Ï€Ïώτου ημιχÏόνου για την ομάδα _T_TT__ άλλαξε σε _EX_ boost_change Η ομάδα _T_TT__ άλλαξε την ώθηση σε _EX_ Φαίνεται ότι η ομάδα _T_TT__ εγκαταλείπει την μάχη Η ομάδα _T_TT__ θα Ï€Ïέπει να σκεφτεί αν έχει εξασφαλίσει την νίκη Η ομάδα _T_TT__ ανέβασε ταχÏτητα Îθηση ενεÏγή.Η ομάδα _T_TT__ κάνει ότι είναι δυνατόν bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_it.xml0000644000175000017500000010032011225071372023753 0ustar eliaselias general _P1_ passa _P0_ _P1_ a _P0_ _P1_ alimenta un [meraviglioso|super|fantastico|brillante] pallone fino a _P0_ Delizioso [pallone|passaggio] corto trova _P0_ Scatto in avanti di _P1_ che aspetta per l'uno due Fantastica tecnica, ottimo passaggio _P1_ cede la palla nei piedi di _P0_ Passaggio sprecato da _P1_ trova il suo avversario _T_POSS__ e' in attacco _T_NPOSS__ e' in difesa Un cross eccezionale trova _P0_ Adesso _T_POSS__ puo' cominciare la sfida con _P0_ Palla messa dentro da _P1_ [trova|raccolta da] _P0_ _P1_ consegna un' ottima palla a _P0_ Passaggio [amorevole|superbo|lungo|eccellente] di _P1_ libera _P0_ Passaggio [lungo|corto|squisito] di _P1_ trova _P0_ Passaggio [ottimo|fantastico|utile] supera il campo e scende sulla [destra|sinistra] [Rapido|Ottimo] passaggio [arriva|cambia] sulla [sinistra|destra] _P0_ lascia indietro il suo uomo e [raccoglie|aggancia] il cross di _P1_ perfettamente [calcolato|calibrato]. Un altro [abile|brillante|intelligente|discreto] movimento [lungo l'ala|attraverso il centro|attraversa il campo] _P0_ [raggiunge|aggancia] il [pallone|passaggio] di _P1_ _P1_ [passa|passa] [la palla|il pallone] attraverso [i|le] [piedi|gambe] [dell'avversario|del giocatore] e trova _P0_ _P1_ [aggancia|controlla] [il pallone|la palla] con la sua [scarpa|pancia|coscia] e [la spedisce|la passa|lancia lungo] a _P0_ _P1_ [lancia|colpisce] il pallone verso _P0_ _P0_ si gira e si torce di nuovo _P0_ si sta torcendo disperatamente per perdere il suo uomo _P0_ fila via verso il [centro|centrocampo] _P0_ [perde|lascia dietro] il suo [uomo|marcatore] Un pareggio sara' un fantastico risultato per _T[_TAVSKILL0_ GE _TAVSKILL1_]_ _TW_ a bisogno di tenere duro ancora per qualche minuto _T_POSS__ a bisogno di [prendere palla in avanti di piu'|creare piu' occasioni] Solo [_SHOTS0_ + _SHOTS1_] tiri: [e' una battaglia a centrocampo|nessuna squadra ci sta veramente provando] Solo un tiro: [e' una battaglia a centrocampo|nessuna squadra ci sta veramente provando] _MI_ minuti segnati dall'orologio, Ci sono state gia' possibilita' per entrambe le squadre Partita piena di emozioni Stiamo entrando nei momenti finali della partita [Cosi' tanti|[_FOULS0_ + _FOULS1_]] falli. L'arbitro ha bisogno di un/a nuovo/a [fischietto|taccuino|matita]! Ancora non e' finita, si sta riscaldando proprio adesso! lost_possession E' calciato fuori da _P1_. _P0_ guadagna una rimessa. _P1_ perde il possesso _P1_ privato da _P0_ [_P1_ da la palla|La palla e' data] avanti [trascuratamente|senza impegno|senza importanza] _P1_ prende palla fuori dalla linea. Fallo laterale a _T_POSS__ Passaggio errato di _P1_ finisce in fallo laterale per _T_POSS__ _P0_ guadagna un facile fallo laterale Rimessa lunga di _P0_ Tackle in scivolata di _P0_ degno di un topflight da baseball. Difficile pallone non controllato da _P1_ _P0_ conquista il pallone con una buona scelta di tempo Un cattivo controllo di _P1_ consegna a _P0_ il pallone _P0_ [ruba|prende] palla a _P1_ con un tackle Una palla inattiva arriva a _P0_ Tackle! _P0_ [va via con|conquista] la palla _P1_ si e' bloccato e _P0_ prende palla _P0_ fa una fantastica intercettazione _P0_ impatta su _P1_ che conquista palla e va via Ancora un passaggio sbagliato di _P1_ e _P0_ intercetta foul [Oww|Aye korumba], e' stato un intervento bruttissimo su _P0_ Sicuramente [e' stato un invito a essere punito|l'intenzione di _P1_ era essere punito] _P1_ [colpisce|si lancia|atterra] su _P0_ a piedi uniti [Cattivo|Stupido] intervento su _P0_ _P0_ subisce un bruttissimo fallo da _P1_ [Brutto|Antipatico|Cattivo] intervento di _P1_ su _P0_ Pericoloso tackle di _P1_ costringe _P0_ a cadere per terra _P1_ interviene fuori tempo su _P0_ e lo manda fuori dal campo Non chiamano _P1_ [The Slayer|The Assassin|Killer|Chopper Reid] per niente. Lui ha disintegrato [il ragazzo|_P0_]! Ouch! Questo gli ha fatto male _P0_ e per terra e non sta sorridendo Non so le intenzioni di _P0_ ma questo tackle mi fa piangere Intervento duro di _P1_ manda _P0_ per terra _La cintura nera diP1_ in [Karate|Taikwondo|Jujitsu] spiega, come e' riuscito ad atterare _P0_ _P1_ ha perso la pazienza e spinge _P0_ a terra. _P0_ ha accettato in pieno la sfida di _P1_. _P0_ ha provato di assorbire il colpo ma per l'arbitro e' anche troppo L'arbitro applica il vantaggio ma si ricordera' del fallo su _P0_ La frustrazione e' alta, quando si cominciano a vedere falli del genere. Questo e' definito un fallo tattico _P0_ prova a uscire da una cattiva sfida _P1_ con uno scorretto tackle. Sicuramente non vuole andare fuori per questo fallo. scoring_chance _P0_ si infiltra nella difesa e [calcia|colpisce] il pallone Lungo cross al centro di _P1_ raccolto da _P0_ che [si lancia verso la porta|tira] _P0_ si sposta in direzione della porta e [spara|prova|tira|tenta]! _P0_ si gira e tira Un [tiro|tentativo] velenoso di _P0_ _P0_ trova spazio e tenta. Si apre una buona opportunita' per _T_POSS__ Pallone lungo da _P1_ trova _P0_ al [giusto|miglior] posto Fantastico appoggio di testa _P0_ la prende al volo e la [scaglia|colpisce|indirizza] verso la porta _P0_ raccoglie al volo il passaggio di _P1_ _P0_ tira da 22 metri, sembra che vada fuori _P0_ [salta|dribbla|corre|arriva] dentro l'area, aggira la difesa e scaglia un tiro _P0_ [converge|taglia] al centro dal lato [destro|sinistro] e [tira|prova|spara] _P0_ prova la fortuna da 30 metri _P0_ [prova|indirizza|scaglia] il tiro nell'angolo [basso|alto] [destro|sinistro] _P0_ tira da una posizione favorevole [Ottimo|Fantastico] [passaggio|palla] di _P1_ che mette _P0_ davanti al portiere _P1_ passa la palla a _P0_ che scaglia un missile verso la porta _P0_ carica il tiro Rinvio di _P1_ consegna al _T_POSS__ un occasione _P0_ scavalca la difesa e tira goal Goal!!! E la palla abbraccia il fondo della rete!!! _P0_ segna!!! Goal!! Lo hai visto? [Il loro portiere|_P1_] sicuramente no. E la palla [vola via|vola|si scaraventa] dietro _P1_ ed entra in rete!!! Il pallone [si insacca|vola|arriva] dietro _P1_ ed e' goaaallll!!! _P0_ corre fuori in festa Un goal incredibile!!! IL pallone e' in fondo alla rete!!! Celebrations abbondano! Non dimenticheranno il [goal|strike|tiro] in fretta Il ballo di _P0_ infiamma i fans. Sta festeggiando col [rinomato|suo] special fashion Goal! Il missile di _P0_ stordisce [il portiere|_P1_|_T_NPOSS__] Goal! Goal! La fortuna ovviamente supporta _T_TT__ [Con effetto|Girando|Svoltando] la palla batte _P1_ sulla linea. Goal! _T_TT_ [cominciano per primi|aprono per prima il conto] oggi Quel [strike|Goal] ha reso i tifosi del _T_TT_ furiosi Questo [strike|Goal] ha rimesso il punteggio in parita' _T_POSS__ sta pagando troppo. Che Goal! Puo' _T_TT__ iniziare una rimonta? La fortuna sta sorridendo al _T_TT__ adesso _T_POSS__ segna a dispetto dell'andamento della partita E' solo un'altro goal miss _P0_ ha tirato fuori! Tiro errato va fuori _P0_ corre e si nasconde dopo il suo [shockante|disastroso|incredibile] errore _P0_ poteva passarla ma a deciso di andare solo e ha fallito [_P1_|Il difensore] libera _P0_ [tira|accompagna] la palla fuori _P0_ spara fuori E il tiro sfiora di poco la rete Non sarebbe mai andato dentro. Ohh che occasione sprecata! Opportunita' sprecate come queste posono costare al _T_POSS__ la partita. Sembrava promettente per _P0_ . Ha fatto tutta la parte difficile e poi ha tirato fuori! Cosi' vicino Cosi vicino al palo _T_POSS__ ha buttato al vento [una fantastica|la loro] oppurtunita'. Grande corsa, ottimo sviluppo dell'azione, ma nessuna ricompensa La fortuna si e' allontanata da [_P0_|_T_POSS__] Un vero e proprio ostacolo per _T_NPOSS__ Un tentativo coraggioso, purtroppo nessuna ricompensa Non c'e nessun goal per questa coraggiosa e fortunata galoppata La palla rimbalza nell'area ma non trova la rete Arriva ovunque tranne che in porta In rete, ma e' annullato. La bandierina alzata segnala il fuorigioco. _P0_ sta cominciando a chiedersi cosa deve fare per segnare _T_POSS__ sta cominciando a chiedersi cosa deve fare per segnare save [Colpo|Tiro] violentissimo ma [il portiere|_P1_] ha i guanti di cemento Con le punta delle dita _P1_ la manda fuori C'e un muro chiamato _P1_. Che salvataggio incredibile! Un semplice allenamento per _P1_ _P1_ raggiunge il pallone con le braccia. _T_POSS__ negato da un [fantastico|superbo|brillante] salvataggio di _P1_ Facile presa per _P1_. _P1_ forzata a respingere il tiro di _P0_ fuori Tiro facile raccolto alla sua [destra|sinistra] da _P1_ _P1_ raccoglie con facilita' la palla _P1_ fa un intervento spettacolare e salva la porta grazie ai suoi riflessi _P1_ corre verso _P0_ e blocca il tiro [Fantastico|Brillante|Sensazionale] salvataggio effettuato dal portiere Fantastico salvataggio di _P1_ Ohh il portiere anticipa _P0_ e salva la porta Un tiro senza forza di _P0_. Palla raccolta facilmente da _P1_ [_P1_|Il portiere] sta tenendo il _TL_ in gioco start_match Una folla di _AT_ qui che fischia Noi siamo vicini agli spogliatoi Le due squadre sono accolte da un boato mentre stanno entrando sul campo _AT_ spettatori fanno un boato appena i giocatori escono dal tunnel Una giornata serena suggerisce che questo match fara' scintille _AT_ [spettatori|fans] non puo' essere un errore. Questo e' un match che tutti dovrebero venire a vedere L'arbitro riceve il segnale dal guardalinee e si parte La battaglia comincia La terna arbitrale e' pronta i giocatori anche, si parte! Le squadre sono calde. Assisteremo a una battaglia vera. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ have the slight upper hand. C'e' un abisso tra le due squadre. Dovrebbe essere una passeggiata per _T[_TAVSKILL1_ GE _TAVSKILL0_]_ _T[_TAVSKILL0_ GE _TAVSKILL1_]_ comincia la partita da sfavoriti. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ comincia la partita come superfavoriti. Lo scontro tra [gladiatori|titani] [comincia|inizia] half_time Siamo all'intervallo E' _RE_ alla fine del primo tempo. E' _RE_ all'intervallo.L'allenatore del _TL_ dovra' trovare qualcosa di speciale per spronare la sua squadra. Partite di questo tipo fanno i managers. _TL_ ha bisogno di ispirazione dall'alto. Le teste abbassate raccontano la partita. Non e' stato un picnic per _TL_. Cosi' lontano _TW_ e il loro manager ha fatto tutto bene. Il manager della _TL_ e' infuriato per la prestazione della sua squadra nel primo tempo Si ha la sensazione che il manager leggera' a _TL_ il manuale della rivolta _TL_ sara' pronta a ricevere il rimprovero del manager _TW_ e' distante 45 minuti da un' eclatante vittoria _TL_ entra nel tunnel aspettandosi un rimprovero dal manager Un primo tempo che _TL_ vorra' facilmente dimenticare _T[_POSS1_ GE 70]_ sta dominando il possesso della palla _T[_POSS1_ GE 60]_ ha avuto la meglio sul possesso palla in questo primo tempo _T0_ possono aver avuto maggior posseso ma il _T1_ ha utilizzato meglio il proprio _T1_ possono aver avuto maggior posseso ma il _T0_ ha utilizzato meglio il proprio _T[_POSS1_ GE 75]_ sembra essere l'unico team Primo tempo chiuso a reti inviolate In questa fase, uno potrebbe non essere abbastanza Con un numero di tiri cosi', 1 potrebbe non essere abbastanza E' un punteggio basso con tutte queste occasioni avute _T[_SHOTS0_ LE _SHOTS1_]_ ha avuto tante occasioni per chiudere la partita _T[_SHOTS0_ LE _SHOTS1_]_ ha avuto _SHOTS[_SHOTS0_ LE _SHOTS1_]_ occasioni per chiudere la partita Nessun goal ancora e sembra che non ce ne saranno E' una pioggia di goals. [_GOALS0_ + _GOALS1_] sono tanti e siamo ancora al primo tempo! Ci sono due squadre ma solo [_T[_FOULS0_ GE _FOULS1_]_|una di loro] sta giocando a calcio E' un incontro di boxe, non una partita di calcio. [Cosi' tanti|[_FOULS0_ + _FOULS1_]] falli. L'arbitro ha bisogno di un aiutante per scrivere il referto! [Cosi' tanti|[_FOULS0_ + _FOULS1_]] falli. L'arbitro ha bisogno di una nuova [penna|matita]! [_PEN0_ + _PEN1_] rigori gia' extra_time Dopo un match chiuso e combattuto si va ai supplementari E' ancora _RE_: extra time Dopo _MI_ minuti e' ancora _RE_: extra time Chi battera' per primo? Extra time stanno cominciando Adesso sara' un calo di forma continuo: si va ai supplementari penalties Chi avrebbe pensato _MI_ minuti fa che sarebbe finita cosi'? E' adesso la tensione sara' alle stelle, ci saranno i calci di rigore Due squadre uguali in tutto, la soluzione e' calci di rigore Le squadre non posso farlo, adesso sara' uno contro uno. Giocatore contro portiere Nessun goals e quindi calci di rigore end_match La partita e' finita! _TW_ ha vinto!!! I fans fischiano _TL_ fuori dal campo Dopo _MI_ minuti il match finisce con un _RE_ L'arbitro controlla l'orologio e fischia la fine della partita Finisce con un _RE_ Il manager del _TW_ sara' entusiasta del risultato _RE_, un sorprendente risultato per _TW_ Un pareggio, alla fine un punto e' un punto. Tutto finito.E' un _RE_ in favore del _TW_ Fantastico, un match da ricordare. [_GOALS0_ + _GOALS1_] goals! _TL_ e' stato dilaniato dai goals del _GD_ . _TW_ stappera' champagne stanotte. Questa e' [una fantistica vittoria|un risultato superbo] per _TW_ _TL_ e' contro un gigante e il risultato di _RE_ lo dimostra own_goal Ohh no, la palla ritorna dietro _P0_ nella rete E' un batti e ribatti nell'area di rigore, alla fine la palla supera _P0_ Oh fantastico tiro deviato da _P0_ che entra in porta _P0_ passa la palla indietro al suo portiere. Oh no, il portiere la perde! E' autogol di _P0_! Questa piccola incomprensione e' costata al _T_TT__ un goal header _P1_ passa il pallone a _P0_ che colpisce di testa verso la porta Colpo di testa di _P0_ Rimane sospeso in aria per colpire di testa, e la palla va velocissima verso la porta Colpo di testa all'indietro di _P0_! [Casuale|Potentissimo|Meraviglioso|Angolato] colpo di testa verso la porta di _P0_ La testa di _P0_ chiude un lungo cross dalla fascia post Un fantastico tiro di _P0_ colpisce il montante Il tiro si stampa sul palo Sono sorpreso di come il palo sia riuscito a contenere questo tiro fortissimo cross_bar La palla supera _P1_ ma colpisce la traversa e si salva La palla impatta sulla traversa con _P1_ battuto _P1_ sembra essere ovunque oggi e riesce a deviare sulla traversar penalty _P0_ guadagna un rigore _P0_ ha la possibilita' di segnare grazie al penalty _P0_ puo' far sparire al _T_POSS__ le preoccupazioni con questo rigore Puo [_P0_|_T_POSS__] realizzarlo? Calma concentrazione e sangue freddo quando si sta per tirare un rigore sono i giusti requisiti _T_POSS__ sembra che stiano giocando per i rigori. _T_POSS__ deve realizzare _P0_ puo' pareggiare il match con questo tiro _P0_: Un rigore adesso puo' condurre questo match al pareggio _T_NPOSS__ ha dato una facile chance a _T_POSS__ per tornare in partita _P0_ puo' sigillare il risultato con un goal adesso free_kick Calcio di punizione corto da _P0_ _P0_ prende la punizione velocemente e lancia in area _P0_ calcia la punizione fuori area Free kick: _P0_ calcia la palla fuori Free kick: _P0_ rinvia lungo Free kick: la palla arriva direttamente su _P0_ foul_yellow _P1_ per gioco pericoloso su _P0_ _P1_ per fallo su _P0_ _P1_ per aver allontanato la palla _P1_ per aver perso troppo tempo _P1_ per tocco di mani _P1_ per aver fermato _P0_ _P1_ e' ammonito per ripetute proteste foul_red _P1_ viene espulso per gioco pericoloso _P1_ espulso per non aver ascoltato l'arbitro _P1_ espulso per fallo da ultimo uomo _P1_ per fallo intenzionale di mano _P1_ viene espulso per aver fermato una chiara occasione da rete _P1_ espulso per aver spinto _P0_ _P1_ espulso per aver mandato a quel paese i tifosi avversari foul_red_injury _P1_ fa un bruttissimo fallo, i medici entrano di corsa per soccorrere _P0_ che giace a terra in agonia Fallo di _P1_; _P0_ e' infortunato... deve essere sostituito send_off _P0_ e' stato espulso _P0_ espulso. _T_TT__ e' adesso con un uomo in meno injury _P0_ dovra' uscire dopo aver rimediato un brutto colpo alla caviglia _P0_ e' stato colpito duramente:si e' infortunato Il fisioterapista da uno sguardo a _P0_ e dice che deve uscire temp_injury _P0_ si e' stirato ma sembra che possa continuare _P0_ ha ricevuto un brutto colpo _P0_ prova a superare un lieve strappo all'inguine _P0_ si e' stirato: sembra ok _P0_ riceve alcune cure e continua _P0_ ha un largo taglio sull'occhio sinistro: pochi punti di sutura e puo' continuare stadium_breakdown _T0_ sta sopportando i problemi dello stadio I riflettori sono saltati Una fitta nebbia sta causando non pochi problemi al terreno del _T0_ stadium_riots I giardinieri sono in rivolta I tifosi stanno lanciando candelotti sul campo La polizia anti-sommossa si e' mossa per fermare i combattimenti tra gruppi di tifoserie opposte Un tifoso entra in campo e sferra un attacco all'arbitro I tifosi stanno facendo invasione di campo stadium_fire Le fiamme stanno distruggendo lo stadio del _T_TT__ I tifosi ospiti hanno dato fuoco al settore nord Una piccola fiamma sta cominciando a preoccupare, sta cominciando un incendio Un altoparlante è andato in fiamme e il tripudio si sta diffondendo intorno all'intero stadio substitution _T_TT__ fa una sostituzione: _P0_ entra al posto di _P1_ _T_TT__ ha bisogno di energia fresca. _P0_ entra al posto di _P1_ _P1_ esce applaudito dai tifosi. _P0_ lo sostituisce _P1_ non sembra essere in forma e viene sostituito da _P0_ _P0_ sostituisce _P1_ _P0_ fuori per _P1_ structure_change _T_TT__ ha cambiato modulo passando al _EX_ _T_TT__ cambia modulo in _EX_ style_change _T_TT__ ha cambiato lo stile di gioco in _EX_ _T_TT__ cambia stile in _EX_ _T_TT__ provano a creare un varco attaccando _T_TT__ cambiano in _EX_ Ultimo sforzo: _T_TT__ cambia in _EX_ _MR_ minuti mancanti. _T_TT__ prova a cambiare tattica in _EX_ Fine primo tempo: _T_TT__ cambia stile in _EX_ boost_change _T_TT__ ha cambiato il boost in _EX_ _T_TT__ vuole aumentare il ritmo _T_TT__ deve pensare di potercela fare cosi' _T_TT__ ha una marcia in piu' Boost on. _T_TT__ le sta provando tutte. bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_de.xml0000644000175000017500000010421111225071372023732 0ustar eliaselias general _P1_ [passt|spielt] in die [Tiefe|Gasse] und findet _P0_ [Pass|Kurzpass|Querpass] auf die [rechte|linke] [Seite|Außenbahn] [Guter|Scharfer] Pass von _P1_ an _P0_ _P1_ [schiebt|köpft] den Ball zu _P0_ Brustannahme von _P1_, [passt|leitet weiter] an _P0_ _P0_ bringt [Pass|Querpass|Ball] von _P1_ unter Kontrolle _P1_ [passt|schiebt] zu _P0_ _P0_ ist wieder am Ball _P0_ hat [den Ball|die Kirsche|die Kugel] _P0_ ist [am Ball|unterwegs] _P0_ lässt seinen [Bewacher|Gegenspieler|Verteidiger] stehen _P0_ pflügt durch das Mittelfeld _P0_ bekommt [die Kugel|den Ball] von _P1_ Ein langer Pass von _P1_ findet _P0_ am [kurzen|langen||] Pfosten Ein Seitenwechsel von _P1_ zu _P0_ _P0_ bekommt den Ball [Wunderbarer|Schöner|Exzellenter|Feiner] Pass von _P1_ eröffnet den Raum vor _P0_ [Schöner|Guter|Feiner] Querpass auf die rechte Seite Ein weiterer Flankenlauf _T[_POSS1_ G _POSS0_]_ [dominiert|beherrscht] [das Spiel|die Begegnung], zeigt aber bislang brotlose Kunst _T[_POSS1_ G _POSS0_]_ beherrscht das [Match|Spiel] [eindeutig|klar] _T[_POSS1_ G _POSS0_]_ ist überlegen _T[_POSS1_ L _POSS0_]_ ist [klar|eindeutig] unterlegen, das _RE_ ist [noch|sehr|äußerst] schmeichelhaft _T[_POSS1_ L _POSS0_]_ kann mit dem _RE_ noch zufrieden sein Die Verlängerung ist greifbar nahe _TL_ sollte sich jetzt langsam mal anstrengen _TL_ sollte einen Zahn zulegen _TL_ sollte einen höheren Gang einlegen Es ist noch nicht alles [vorbei|verloren] für _TL_ Es gilt jetzt die letzten _MT_ [Minütchen|Minuten] zu überstehen für _TW_ _TW_ kämpft jetzt um jeden Meter Das müsste der Sieg sein für _TW_ _TW_ wird sich die Butter wohl nicht mehr vom Brot nehmen lassen _TW_ ist _MT_ Minuten vom [Triumph|Sieg] entfernt _TL_ sollte an seiner Chancenverwertung arbeiten Ein ungewöhnlich hartes [Match|Spiel] heute Das scheint eine klare [Sache|Angelegenheit] für _TW_ zu werden _TL_ bekommt keinen Stich _TL_ wird das [Match|Spiel] wohl nicht mehr [drehen|wenden] können _TW_ sollte das nach Hause schaukeln können Knappe Führung für _TW_, noch _MT_ Minuten zu spielen Das sollte der Sieg sein für _TW_ _TW_ beherrscht _TL_ nach Belieben Keine Chance für _TL_ in diesem [Match|Spiel] Das wird wohl nix mehr für _TL_ Das könnte ein sehr [kurzweiliges|torreiches] Spiel werden heute _TL_ kann den Ausgleich noch schaffen Was für eine Überraschung, das vermeintlich unterlegene Team führt Der Favorit [ist vorn|führt]; so ein Spielverlauf war zu erwarten Nach _MI_ Minuten ist immer noch kein Tor gefallen Was für ein enttäuschendes [Match|Spiel], immer noch _RE_ _TW_ ist nur noch _MT_ Minuten von einer [richtigen|faustdicken|riesigen] Überraschung entfernt Also wirklich, wollen uns die beiden [Mannschaften|Teams] wirklich mit einem _RE_ abspeisen? Jetzt sollte aber wirklich mal ein Tor her Nein, bitte nicht wieder so ein _RE_ _MI_ Minuten gespielt und immer noch _RE_ Ein [schwaches|mageres|langweiliges] _RE_ nach _MI_ Minuten goal Und [die Kugel|der Ball] fliegt an _P1_ vorbei und zappelt im Netz!!! [Treffer|Tor|Drin]!!! Und der Ball ist im Tor!!! _P0_ trifft!!! Oh, ein [guter|schöner|perfekter] Schuss, er wird von _P1_ [ins Tor|in den Kasten] abgelenkt _P1_ hechtet [umsonst|vergeblich], der Ball ist [drin|versenkt]!!! [Die Kugel|Der Ball] ist unerreichbar für _P1_, Tor!! _P0_ feiert in der ihm eigenen Art ein [schönes|exzellentes] Tor _P0_ vollführt einen Freudentanz nach einem [schönen|wunderbaren] [Treffer|Tor] Sicher verwandelt Das wird [jetzt|langsam] ein Debakel für _TL_ Das wird [jetzt|langsam] ein Debakel für _TL_ Jetzt wird _TL_ aber [platt gemacht|auseinandergenommen], _RE_ _TW_ ist nicht [zu bremsen|aufzuhalten] heute, schon gar nicht durch _TL_ Das ist der [Ausgleich|Ausgleichstreffer]! Ein etwas glücklicher Ausgleich für _T_TT__ _TW_ führt jetzt _RE_! _TW_ geht in Führung! Das ist der Führungstreffer! _TW_ geht in Führung; _TL_ hat noch _MT_ Minuten Zeit um ein [Remis|Unentschieden] zu schaffen Das ist der Anschlusstreffer! Ein Ehrentreffer für _TL_! _P0_ erzielt sein _PLGOALS0_-tes Tor! Schon _PLGOALS0_ [Treffer|Tore] für _P0_ in der _LEAGUECUPNAME_! Kaum zu fassen, _PLGOALS0_-tes Tor für _P0_! Ein [Goalgetter|Torjäger] wie er im Buche steht, _PLGOALS0_-tes Tor für _P0_! Zum _GOALS_TT__-ten Mal muss _P1_ hinter sich greifen! post Ich bin [verwundert|überrascht], dass der Pfosten diesem Schuss standhielt Und der Schuss [trifft|knallt gegen] den Pfosten _P0_ trifft nur Aluminium _P1_ lenkt [die Kugel|den Ball] an den Pfosten _P0_ trifft nur den [linken|rechten] Pfosten [Pfosten|Innenpfosten]! cross_bar Der Ball [dreht sich|zirkelt] über _P1_, trifft aber nur die Latte Zentimetergenauer Schuss von _P0_, trifft Aluminium _P1_ ist ohne Chance, aber [die Kugel|der Ball|die Kirsche] trifft nur die Latte Übergenauer Schuss von _P0_, er trifft die Latte Latte! save Superreflex von _P1_ Ein [Weitschuss|Flachschuss], gut [gehalten|abgewehrt] von _P1_ _P1_ scheint über sich hinauszuwachsen und kann den Ball ablenken _P1_ war noch dran _P1_ lenkt den Ball gerade noch über [das Tor|den Kasten|die Latte] Gute Abwehr von _P1_ Ein dankbarer Ball für den [Tormann|Torhüter] _P1_ ist ein Fels in der Brandung _P1_ [hält|pariert]; er hat bereits _SHOTS_POSS__ Schüsse auf seinen Kasten bekommen _P1_ hält den Ball fest _P1_ hat ihn sicher _P1_ hält den Elfer! _P1_ ist ein Elfmeterkiller miss Ein Verteidiger klärt in [allerletzter|letzter] [Sekunde|Minute] _P1_ greift _P0_ an und blockiert [dessen|den] Schuss Und der Schuss [rollt|kriecht] Zentimeter am Pfosten vorbei Ein Verteidiger klärt _P0_ hätte [passen|abgeben] müssen, verschießt den Ball _P0_ trifft nur [das Aussennetz|die Bande|die Tribüne] _P0_ [verschießt|verzieht] [Vorbei|Daneben|Drüber]! _P0_'s Schuß weit [vorbei|daneben|drüber] header Hoher Ball von _P1_ an _P0_, der köpft [Kopfball|Flugkopfball] von _P0_ Er scheint in der Luft zu schweben und produziert dann einen druckvollen Kopfball start_match Ein wolkenloser Himmel verheißt ein [tolles|spannedes] [Match|Spiel] Die [Teams|Mannschaften] werden durch eine ohrenbetäubende [Kulisse|Lärmkulisse] begrüßt [Das Duell|Der Kampf] der Titanen [kann beginnen|beginnt] Die Menge begrüßt die [Teams|Mannschaften] mit rauschendem Applaus _AT_ [Fans|Zuschauer] warten auf den Anpfiff Der [Referee|Schiri|Schiedsrichter] schaut zum Assistenten und pfeift an Der [Referee|Schiri|Schiedsrichter] ist bereit, es kann losgehen Es kann losgehen _AT_ [Fans|Zuschauer] können nicht irren, dies ist das [Match|Spiel], das wir alle sehen wollen _AT_ [Fans|Zuschauer] wollen dieses _LEAGUECUPNAME_-Spiel sehen Willkommen zum _LEAGUECUPNAME_-_CUPROUNDNAME_; es geht gleich los. Der Papierform nach sollte das eine leichte Aufgabe für _T[_TLAYER1_ L _TLAYER0_]_ werden. Es wäre eine große Überraschung, sollte _T[_TAVSKILL1_ G _TAVSKILL0_]_ hier verlieren Für _T[_TAVSKILL1_ G _TAVSKILL0_]_ sollte das ein Spaziergang werden, sie sind _TAVSKILLDIFF_ Punkte besser. Es verspricht ein spannendes Spiel zu werden heute Die Mannschaften sind nahezu gleichwertig: wer wird gewinnen? Bei dieser Paarung riskiere ich lieber keine Prognose stadium_riots Die [Hooligans|Fans|Chaoten] stürmen das Spielfeld Die [Chaoten|Hooligans] toben Ein [Mann|Fan] ist aufs Spielfeld gelangt und greift den [Referee|Schiri|Schiedsrichter] an Und die [Hooligans|Fans|Chaoten] schießen Leuchtraketen aufs Feld Die Ordner müssen eine Schlägerei zwischen den [Hooligans|Fans|Chaoten] unter Kontrolle bekommen stadium_fire Eine Leuchtrakete hat einen Teil der Sitze entzündet Die Auswärtsfans haben Sitze entzündet Ein Feuer verschlingt _T_TT__'s Stadion stadium_breakdown _TH_'s Stadion scheint technische Probleme zu haben Die Flutlichtanlage ist ausgefallen Oje, ein Rasenstück muss ersetzt werden extra_time Nach _MI_ Minuten steht's _RE_: Verlängerung Nach einem [knappen|engen|spannenden] Spiel beginnt die Verlängerung Verlängerung: jetzt geht's um Willenskraft und Entschlossenheit Es steht immer noch _RE_: Verlängerung Jetzt geht's um alles, die Verlängerung beginnt Nach torreichen _MI_ Minuten steht noch kein Sieger fest Nach einem [langweiligen|schwachen] Spiel erwartet uns die Verlängerung Trotz _POSS[_POSS1_ G _POSS0_]_% Ballbesitz konnte _T[_POSS1_ G _POSS0_]_ das Spiel nicht in _MI_ Minuten klarmachen Trotz _SHOTS[_SHOTS1_ G _SHOTS0_]_ Schüssen konnte _T[_SHOTS1_ G _SHOTS0_]_ den Sack heute nicht zumachen So eine Überraschung, jetzt kommt's zur Verlängerung Auf eine Verlängerung hätte wirklich keiner gewettet vor _MI_ Minuten Also eine Verlängerung hätte sich _T[_TLAYER1_ L _TLAYER0_]_ bestimmt nicht träumen lassen end_match _TL_ schleicht vom Platz, eine Standpauke folgt Das Spiel ist aus! _TW_ [siegt|gewinnt]! Nach _MI_ Minuten ended das [Match|Spiel] mit einem _RE_ Die Fans buhen _TL_ vom [Feld|Platz] Das wars, das [Match|Spiel] endet _RE_ Der [Referee|Schiri|Schiedsrichter] schaut auf seine Uhr und pfeift, das Spiel ist aus _RE_, was für ein [Resultat|Ergebnis|Erfolg] für _TW_ Ein Pflichtsieg für _TW_ Ein erwarteter [Sieg|Erfolg] für _TW_ _TW_ gewinnt gegen die tapfer kämpfenden _TL_ Das Spiel ist aus, _TL_ konnte die Überraschung nicht schaffen _TW_ gewinnt, eine [Sensation|Riesenüberraschung] Das gibt's nicht, _TW_ [besiegt|schlägt] _TL_ _TL_ hat sich auf die Knochen blamiert heute Der [Referee|Schiri|Schiedsrichter] pfeift ab, die Sensation ist perfekt _TW_ gewinnt erwartungsgemäß Ein Sieg für _TW_; die Mannschaft mit der höheren [Spielstärke|Qualität] setzte sich durch _TW_ gewinnt erwartungsgemäß Oje, was für eine Blamage für _TL_ Ein [hauchdünner|knapper] Sieg für _TW_ Das Spiel endet mit einem [knappen|hauchdünnen] _RE_ Ein letztlich ungefährdeter Sieg für _TW_ Mit _POSS[_POSS1_ G _POSS0_]_% Ballbesitz hat _TW_ dieses Spiel beherrscht und gewinnt verdient _POSS[_POSS1_ G _POSS0_]_% Ballbesitz haben _TL_ nicht geholfen, sie verlieren _RE_ _TW_ hat sich einfach mehr Chancen herausgearbeitet heute _TL_ hatte mehr Chancen, aber die Abschlussschwäche hat einen Sieg verhindert Ein schöner [Auswärtssieg|Auswärtserfolg] für _TW_ _TW_ gewinnt das Heimspiel Ein Heimsieg für _TW_ _TW_ gewinnt auswärts _TL_ verliert das Auswärtsspiel _RE_, wie ärgerlich Nach so einem _RE_ will man am liebsten sein Geld zurück Das Spiel endet mit einem [schwachen|mageren] _RE_ Die Zuschauer sind eher unzufrieden mit dem _RE_ half_time Zur [Pause|Halbzeit] steht's _RE_ in diesem _LEAGUECUPNAME_-[Match|Spiel] _TW_ muss noch 45 Minuten überstehen _TL_ hat noch _MT_ Minuten Zeit, das [Match|Spiel] zu [drehen|wenden] Der Trainer von _TL_ wird zur [Halbzeit|Pause] ausgebuht Da draußen sind zwei Mannschaften, aber nur eine spielt Fußball [Halbzeit|Pause]. Es steht _RE_ zur [Halbzeit|Pause], der Trainer von _TL_ sollte [sein Team|seine Mannschaft] anspornen Es steht _RE_ zur [Halbzeit|Pause]. Eine Überraschung bahnt sich an, _TW_ führt zur [Halbzeit|Pause] _TL_ wurde regelrecht auseinandergenommen in der ersten [Halbzeit|Hälfte] In der zweiten [Halbzeit|Hälfte] können schon ein paar Törchen mehr kommen Ein enges [Match|Spiel] in der ersten [Halbzeit|Hälfte] _TW_ beherrscht das [Match|Spiel] und führt verdient _RE_ zur [Halbzeit|Pause] _T[_SHOTS1_ > _SHOTS0_]_ beherrscht das [Match|Spiel], kann aber bislang nur ein _RE_ vorweisen _T[_SHOTS1_ > _SHOTS0_]_ beherrscht das [Match|Spiel], aber _TW_ nutzt seine Chancen einfach besser _T[_POSS1_ G _POSS0_]_ beherrscht das [Match|Spiel] mit _POSS[_POSS1_ > _POSS0_]_ % Ballbesitz, dennoch steht es _RE_ _TW_ beherrscht das [Match|Spiel] klar und führt _RE_ _TW_ hat nur _POSS[_POSS1_ L _POSS0_]_ % Ballbesitz, führt aber _RE_ zur [Halbzeit|Pause] penalties Jetzt geht es Mann gegen Mann, Schütze gegen Torwart Zwei Mannschaften waren gleichwertig, jetzt geht's ins [Elfmeterschießen|Penaltyschießen] _TW_ konnte das [Resultat|Ergebnis] des Hinspiels wettmachen, jetzt geht's ins [Elfmeterschießen|Penaltyschießen] Wer hätte vor _MI_ Minuten gedacht, dass es soweit kommen würde? Man muss die Nerven unter Kontrolle bekommen, wenn man eine Chance im [Elfmeterschießen|Penaltyschießen] haben will Und nun kommt das spannende Drama eines [Elfmeterschießen|Penaltyschießen]s Es kommt zum [Elfmeterschießen|Penaltyschießen] in diesem _LEAGUECUPNAME_-[Match|Spiel] foul _P0_ wird hart [angegangen|attackiert] Hohes Bein von _P1_ schickt _P0_ zu Boden Aua, das war [böse|schmerzhaft] Au, [hartes Foul|Blutgrätsche] gegen _P0_ _P1_ holt _P0_ von den Beinen _P1_ holt rüde mit gestrecktem Bein _P0_ von den Beinen Ein [fieses|gemeines] Foul von _P1_ lässt _P0_ meterweit fliegen _P1_ [foult|attackiert] _P0_ ohne Gnade Das war ein harter Angriff gegen _P0_ Foul gegen _P0_, bereits das _FOULS_TT__-te von _T_TT__ _P0_ wird gelegt, bereits das _FOULS_TT__-te Foul von _T_TT__ foul_red_injury _P1_ foult und _P0_ windet sich in Schmerzen am Boden _P1_ foult: _P0_ scheint verletzt zu sein... er muss vielleicht raus _P1_ trifft nur noch [das Bein|den Knöchel] von _P0_, [die Kugel|der Ball] war längst weg Böses Foul von _P1_, _T_TT__ spielt ab jetzt in Unterzahl Dieses fiese Foul von _P1_ stellt die Spielerverhältnisse wieder her _P0_ ist verletzt nach einer gemeinen Attacke von _P1_ foul_yellow _P1_ für [Foul|Grätschen] von hinten _P1_ für bösartiges Foul an _P0_ _P1_ für [ungebührliches Verhalten|Ballwegtreten|Handspiel|Behinderung] _P1_ für Zeitschinden _P1_ wird wegen Meckerns verwarnt _PLYELLOWS_-te gelbe Karte für _P1_ foul_red _P1_ für [eine Blutgrätsche|absichtliches Handspiel] _P1_ sieht die rote Karte wegen Schiedsrichterbeleidigung _P1_ wird [wegen wiederholten Meckerns|nach einer Notbremse] [vom Platz gestellt|zum Duschen geschickt] _P1_ sieht Rot... ein wirklich foullastiges [Match|Spiel] free_kick _P0_ knallt einen Freistoß Richtung Tor _P0_ lupft den Freistoß Gelupfter Freistoß von _P0_ _P0_ führt Freistoß schnell aus _P0_ [schlenzt|dreht|lupft] den Ball um die Mauer Freistoß: _P0_ schießt aus großer Entfernung lost_possession _P1_ [bekommt|ersprintet] den Ball, aber _P0_ grätscht sauber _P0_ nimmt _P1_ [die Kugel|den Ball] mit einer sauberen Grätsche ab _P1_ kontrolliert den Ball schlecht, _P0_ kann ihn erobern _P0_ erobert mit gutem Körpereinsatz den Ball _P0_ erobert den Ball _P1_ rutscht [die Kugel|der Ball] über den Spann, _P0_ bekommt ihn _P1_ springt [die Kugel|der Ball] weg _P1_ stoppt den Ball unsauber, er landet bei _P0_ own_goal Rückpass von _P0_... oh nein, der [Torhüter|Torwart] verfehlt ihn! Eigentor! Dieses Mißverständnis wurde mit einem Tor bezahlt Oh nein, der Ball springt gegen _P0_ und ins Netz Eigentor durch _P0_, es steht damit _RE_ Ein Billiardball im 5-Meterraum trifft _P0_ und rollt über die Linie Eigentor! _T[1 - _TT_]_ geht in Führung! Durch ein Eigentor von _P0_ geht _T[1 - _TT_]_ in Führung! _P0_ schießt ein Eigentor, _T[1 - _TT_]_ ist wieder dran! _P0_ schießt ein Eigentor, aber ob das _T[1 - _TT_]_ noch hilft? Das Eigentor von _P0_ bringt _T[1 - _TT_]_ den Ausgleich scoring_chance _P0_ schießt ins [kurze|lange] Eck _P0_ lässt zwei Verteiger stehen und versetzt den Torwart _P0_ verspringt der Ball, aber sein Schuss fliegt Richtung Tor _P0_ zieht zur Mitte und schießt _P1_ versucht es einfach aus 25 Metern _P0_ dribbelt im 16er, dreht sich und schießt _P0_ zieht aus 20 Metern ab, scheint danebenzugehen _P1_ legt den Ball zu _P0_ ab der einen Bombenschuss abfeuert _P0_ hält aus [langer|kurzer] Distanz drauf Superpass von _P1_ schickt _P0_ Eins gegen Eins gegen den Torhüter _P0_ dreht sich um die eigene Achse und schießt Fallrückzieher von _P0_! _P0_ nimmt Fahrt auf und schießt! _P0_ hat die Chance zum Führungstreffer _P0_ kann die Führung ausbauen _P0_ kann auf [_GOALS_TT__ + 1] : _GOALS[1 - _TT_]_ erhöhen _P0_ hat den Ausgleich auf dem Fuß _P0_ kann den Anschlusstreffer erzielen _P0_ hat vielleicht die letzte Chance des Spiels temp_injury _P0_ ist leicht angeschlagen, kann aber weitermachen _P0_ hat eine Platzwunde, aber sie wird getackert und er kann weiterspielen _P0_ hat einen Krampf, spielt weiter Leichte Blessur bei _P0_ _P0_ humpelt etwas, macht aber weiter _P0_ hält sich den Rücken, aber nach einer kurzen Pause spielt er weiter injury _P0_ scheint eine schwere Verletzung davongetragen zu haben _P0_ ist verletzt _P0_ muss ausgewechselt werden _P0_ kann nicht weiterspielen, muss raus _P0_ muss mit einer Verletzung raus _P0_ wird wohl das Feld verlassen müssen, scheint eine Knöchelverletzung zu sein penalty _P0_ hat schon mal einen Elfer verschossen, hoffentlich trifft er diesmal _P0_ darf an den Elfmeterpunkt _P0_ schießt den Elfer _P0_ versucht sich aus 11 Metern _P0_ schnappt sich den Ball und schießt den Elfer _P0_ übernimmt die Verantwortung und tritt den Elfmeter substitution _P1_ verlässt unter großem Applaus das Spielfeld, _P0_ ersetzt ihn _T_TT__ wechselt aus, _P0_ kommt für _P1_ _P0_ ersetzt _P1_ _P0_ kommt für _P1_ _P1_ geht raus, _P0_ darf ran _P1_ wird vom Platz gebuht und durch _P0_ ersetzt send_off _P0_ wurde vom Platz gestellt _P0_ wird vorzeitig zum Duschen geschickt Der [Schiri|Schiedrichter|Referee] schickt _P0_ zum Duschen Das [Match|Spiel] ist vorbei für _P0_ Das reicht dem [Schiri|Schiedrichter|Referee], _P0_ muss raus _P0_ muss vom Platz boost_change _T_TT__ hat den Boost auf _EX_ gestellt _T_TT__ versucht es mit Boost _EX_ Boost ist jetzt _EX_ für _T_TT__ structure_change _T_TT__ hat das System auf _EX_ umgestellt _T_TT__ stellt um auf _EX_ _T_TT__ spielt ab sofort _EX_ style_change _T_TT__ hat den Spielstil auf _EX_ umgestellt _T_TT__s Stil ist _EX_ jetzt _T_TT__ stellt auf _EX_ um _T_TT__ probiert es mit _EX_ bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_bg.xml0000644000175000017500000004433011225071372023737 0ustar eliaselias general _P1_ подава топката към _P0_ _P1_ прави невероÑтен виÑок Ð¿Ð°Ñ ÐºÑŠÐ¼ _P0_ ÐевероÑтен Ð¿Ð°Ñ Ð½Ð° _P1_ извежда _P0_ Дълъг виÑок Ð¿Ð°Ñ Ð½Ð° _P1_ намира _P0_ ÐевероÑтен Ð¿Ð°Ñ Ð¿Ð¾ дължината на игрището и надÑÑно. Бърз Ð¿Ð°Ñ Ð½Ð°Ð»Ñво. Пореден добър пробив по крилото _P0_ Ñе включва чрез паÑа на _P1_ _P1_ прави пробивен Ð¿Ð°Ñ Ð¿Ñ€ÐµÐ· много играчи и намира _P0_ _P1_ Ñпира на гърди и подава към _P0_ _P1_ подава Ñ Ð³Ð»Ð°Ð²Ð° напред към _P0_ _P0_ пробива през Ñредата _P0_ финтира и преминава през перÑÐ¾Ð½Ð°Ð»Ð½Ð¸Ñ Ñи пазач lost_possession _P0_ печели топката Ñ Ð½ÐµÐ²ÐµÑ€Ð¾Ñтно навременна битка Лош контрол от Ñтрана на _P1_ позволÑва на _P0_ да му открадне топката _P0_ отнема топката от _P1_ Ñ ÑˆÐ¿Ð°Ð³Ð°Ñ‚ ИзбÑгалата топка попада в _P0_ foul О-о-о, неприÑтен ÑблъÑък Ñ _P0_ Това определено трÑбва да е червен картон! _P1_ ÑÑŠÐ±Ð°Ñ€Ñ _P0_ Ñ ÑˆÐ¿Ð°Ð³Ð°Ñ‚ Ñ Ð´Ð²Ð°Ñ‚Ð° крака Груб двубой Ñ _P0_ Краката на _P0_ бÑха преиначени от _P1_ Разбиващо влизане на _P1_ в краката на _P0_ Злобен двубой на _P1_ оÑÑ‚Ð°Ð²Ñ _P0_ лежащ на земÑта да агонизира Това определено боли! ВиÑоко Ð²Ð´Ð¸Ð³Ð½Ð°Ñ‚Ð¸Ñ ÐºÑ€Ð°Ðº на _P1_ изпраща _P0_ на земÑта scoring_chance _P0_ напредва към вратата и ÑтрелÑ! _P0_ Ñе завърта и ÑÑ‚Ñ€ÐµÐ»Ñ Ð”ÑŠÐ»Ð³Ð° топка от _P1_ намира _P0_ при далечната греда _P0_ не уÑпÑва да овладее добре топката, но мощниÑÑ‚ му удар Ñе Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ñ ÐºÑŠÐ¼ гол-линиÑта _P0_ ÑÑ‚Ñ€ÐµÐ»Ñ Ð¾Ñ‚ 20 метра и изглежда нÑма да отбележи _P0_ дриблира в наказателното, завърта Ñе около защитата и ÑÑ‚Ñ€ÐµÐ»Ñ _P0_ Ñе включва от Ð»ÐµÐ²Ð¸Ñ Ñ„Ð»Ð°Ð½Ð³ и ÑÑ‚Ñ€ÐµÐ»Ñ _P0_ Ñи опитва къÑмета от 28 метра _P0_ ÑÑ‚Ñ€ÐµÐ»Ñ Ð¿Ñ€Ð¾Ð½Ð¸Ð·Ð²Ð°Ñ‰Ð¾ към горниÑÑ‚ деÑен ъгъл _P0_ ÑÑ‚Ñ€ÐµÐ»Ñ Ð¾Ñ‚ близко разÑтоÑние ÐевероÑтна топка от _P1_ изпраща _P0_ Ñам Ñрещу Ð²Ñ€Ð°Ñ‚Ð°Ñ€Ñ ÐŸÑ€ÐµÑ…Ð²ÑŠÑ€Ð»ÑщиÑÑ‚ удар на _P0_ Ñе Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ñ Ð·Ð°Ñтрашително към Ð³Ð¾Ñ€Ð½Ð¸Ñ Ð´ÐµÑен ъгъл _P0_ финтира двама защитника, излъгва Ð²Ñ€Ð°Ñ‚Ð°Ñ€Ñ Ð¸ Ñ Ð¿ÐµÑ‚Ð° Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ñ Ñ‚Ð¾Ð¿ÐºÐ°Ñ‚Ð° към гол-линиÑта. _P1_ залепва топката на крака на _P0_, който изпраща ракетен изÑтрел към вратата goal ГОЛ!!! И топката едва не разкъÑва мрежата зад вратарÑ!!! _P0_ отбелÑзва!!! И топката излита директно покрай _P1_ и в мрежата!!! Топката минава покрай _P1_ и това е ГОЛ!!! _P0_ Ñе Ð¾Ñ‚Ñ‚ÐµÐ³Ð»Ñ Ñ€Ð°Ð´Ð²Ð°Ð¹ÐºÐ¸ Ñе Ñлед чудеÑен гол, който подлудÑва тифозите ОтчаÑниÑÑ‚ плонж на _P1_ не може да Ñпре изÑтрела на _P0_ и топката е ÑпрÑна от вътрешната Ñтрана на мрежата!!! Танцът завладÑва публиката, _P0_ Ñе радва по негов Ñи Ñтранен начин miss _P0_ ÑÑ‚Ñ€ÐµÐ»Ñ Ð¿Ñ€ÐµÐºÐ°Ð»ÐµÐ½Ð¾ неточно! Защитникът изчиÑтва _P0_ Ð¿Ñ€ÐµÑ…Ð²ÑŠÑ€Ð»Ñ Ñ‚Ð¾Ð¿ÐºÐ°Ñ‚Ð° над вратата Защитникът Ñе връща и блокира ИзÑтрелът на _P0_ отлита в Ñектор РИ топката пропуÑка вратата за милиметри save _P1_ уÑпÑва да избие топката Ñ Ð²ÑŠÑ€Ñ…Ð° на пръÑтите Ñи _P1_ избива изÑтрела на _P0_ над горната греда Добро Ñледене на играта от Ñтрана на _P0_, който уÑпÑва да Ñтигне до топката преди _P1_ _P1_ ÑпаÑÑва ниÑкиÑÑ‚ удар в Ð´Ð¾Ð»Ð½Ð¸Ñ Ð»Ñв ъгъл _P1_ показва невероÑтен Ñ€ÐµÑ„Ð»ÐµÐºÑ _P1_ тича към _P0_ и блокира изÑтрела Ñ ÑˆÐ¿Ð°Ð³Ð°Ñ‚ ЛеÑно ÑпаÑÑване за Ð²Ñ€Ð°Ñ‚Ð°Ñ€Ñ Ð£Ð¼ÐµÐ»Ð¾ хващане на _P1_ start_match Ето го и първиÑÑ‚ ÑъдийÑки Ñигнал Мачът започва Двата отбора Ñа поÑрещнати от Ñтена от викове, при излизането Ñи на терена Публиката Ð¿Ð¾Ð´ÐºÑ€ÐµÐ¿Ñ Ð»ÑŽÐ±Ð¸Ð¼Ñ†Ð¸Ñ‚Ðµ Ñи, докато те излизат от тунела за започването на мача СлънчевиÑÑ‚ ден дава надежди за добър мач Феновете на _AT_ не могат да грешат. Това е мач, който вÑички Ñме дошли да гледаме. СъдиÑта получава онова кимване от Ñтраничните Ñи помошници и това е началото Битката на титаните има вече начало Съдиите Ñа готови, играчите Ñъщо - Ð´Ð²ÑƒÐ±Ð¾Ñ Ð·Ð°Ð¿Ð¾Ñ‡Ð²Ð° half_time Полувремето е Резултатът е _RE_ на полувремето. Резултатът е _RE_ на полувремето. Мениджърът на _TL_ трÑбва Ñпешно да намери начин да мотивира отбора Ñи. _TL_ Ñе отправÑÑ‚ към тунела, за да поÑрещнат виковете на треньора. _TW_ Ñа Ñамо на 45 минути от зашеметÑваща победа Ðа терена има два отбора, но Ñамо единиÑÑ‚ от Ñ‚ÑÑ… играе футбол extra_time След този уравновеÑен като Ñили мач е време за Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ Ð’Ñе още е _RE_: ПродължениÑ! След _MI_ минути, вÑе още резултат Ñе задържа на_RE_: Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶ÐµÐ½Ð¸Ñ ÐšÐ¾Ð¹ ще Ñе пречупи първи през продължениÑта? Сега при продължениÑта вÑичко опира до желанието за победа и физичеÑката издръжливоÑÑ‚ на играчите penalties Преди _MI_ минути, кой би предположил, че ще Ñе Ñтигне до тук Сега идва драмата на дузпите! Два отбора, рамо до рамо до поÑледно, Ñега ще решат мача Ñ Ð´ÑƒÐ·Ð¿Ð¸ Отборите не уÑпÑха да излъчат победител. Затова Ñега ще Ñе реши вÑичко 1 на 1. end_match Край на мача! _TW_ триумфират!!! Феновете оÑвиркват _TL_ След _MI_ минути мачът Ñвършва при резултат _RE_ Реферът поглежда чаÑовника Ñи и обÑвÑва ÐºÑ€Ð°Ñ Ð½Ð° мача Беше каквото беше. Резултат е _RE_ _RE_, какъв невероÑтен резултат за _TW_ own_goal О, не! Топката рикошира от крака на _P0_ право в мрежата Меле в наказателното и за нещаÑтие отбита от _P0_ преминава гол-линиÑта Това е чудеÑен изÑтрел и е отбит от _P0_ зад гърба на Ð²Ñ€Ð°Ñ‚Ð°Ñ€Ñ _P0_ връща към вратарÑ, но той Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка! Ðвтогол на _P0_! Това малко недоразумение коÑтваше един гол на _T_TT__ header _P1_ чуква топката напред към _P0_, който Ñ Ð½Ð°Ñочва Ñ Ð³Ð»Ð°Ð²Ð° към гола Плонжиращ удар Ñ Ð³Ð»Ð°Ð²Ð° на _P0_ post КраÑив удар на _P0_, но уцелва гредата Право в гредата Учуден Ñъм, че гредата издържа на този Ñилен изÑтрел cross_bar Топката Ð¿Ñ€ÐµÑ…Ð²ÑŠÑ€Ð»Ñ _P1_, но Ñе ÑƒÐ´Ñ€Ñ Ð² горната греда и излиза в безопаÑноÑÑ‚ Топката Ñе забива в горната греда _P1_ ÑÑкаш е навÑÑкъде едновременно, Ð½Ð°ÐºÑ€Ð°Ñ Ð¾Ð±Ð°Ñ‡Ðµ прехвърлÑщиÑÑ‚ му удар ÑƒÐ´Ñ€Ñ Ð³Ð¾Ñ€Ð½Ð°Ñ‚Ð° греда penalty _P0_ приÑтъпва към точката за изпълнение на дузпи _P0_ има шанÑа да реализира 12 метров наказателен удар _P0_ пропуÑна дузпа преди време, но Ñега има ÑˆÐ°Ð½Ñ Ð´Ð° Ñе реваншира ТрÑбва да Ñе забравÑÑ‚ нервите, да Ñе преглътне и да Ñе концетрира при изпълнението на дузпа free_kick КъÑо изпълнение на _P0_ _P0_ изпълнÑва ниÑко и Ñилно _P0_ изпълнÑва бързо прекиÑÑ‚ Ñвободен удар и завърта топката около Ñтената _P0_ завърта топката около Ñтената Свободен удар: _P0_ изпълнÑва много неточно Свободен удар: _P0_ изпраща топката далече foul_yellow _P1_ за опаÑен шпагат Ñрещу _P0_ _P1_ за фала Ñрещу _P0_ _P1_ за оÑпорване на ÑъдийÑко решение _P1_ за забавÑне на играта _P1_ за игра Ñ Ñ€ÑŠÐºÐ° _P1_ за преченето на _P0_ да изпълни Ñвободен удар _P1_ за изритване на топката в приÑъп на Ñд foul_red _P1_ получава червен картон за виÑоко вдигнат крак Ðа _P1_ Ñа му поÑочени Ñъблекалните заради агреÑивното му поведение _P1_ за много опаÑна игра _P1_ за умишлена игра Ñ Ñ€ÑŠÐºÐ° _P1_ за Ñпирането на чиÑто голово положение _P1_ получава червен картон за удрÑнето на _P0_ _P1_ за неприлични жеÑтове към противниковата публика foul_red_injury _P1_ прави фал и ноÑилката приÑтига, за да прибере Ð°Ð³Ð¾Ð½Ð¸Ð·Ð¸Ñ€Ð°Ñ‰Ð¸Ñ _P0_ Фал на _P1_; _P0_ Ñвно е контузен...ще трÑбва да бъде заменен send_off _P0_ е изгонен injury _P0_ ще трÑбва да напуÑне мача заради както изглежда ÐºÐ¾Ð½Ñ‚ÑƒÐ·Ð¸Ñ Ð½Ð° глезена _P0_ Ñвно е контузен зле temp_injury _P0_ е разтегнал муÑкул, но ще може да продължи _P0_ е леко ударен _P0_ има голÑма аркада на лÑвото око, но ще бъде закърпен и ще може да продължи stadium_breakdown _T0_ има проблеми ÑÑŠÑ Ñтадиона Светлините изгаÑнаха stadium_riots Хората Ñе бунтуват И феновете хвърлÑÑ‚ димки на терена ПолициÑта Ñе намеÑва в Ñпирането на ÑблъÑъци между двете агитки ÐÑкак Ñи промъкнал Ñе на терена фен напада ÑъдиÑта Феновете нахлуват маÑово на игрището stadium_fire Огън поглъща Ñтадиона на _T_TT__ Феновете на гоÑтите правÑÑ‚ пожар в Ñеверната чаÑÑ‚ на Ñтадиона Факла закачена до тъч линиÑта дава началото на голÑм пламък Говорител Ñе е запалил и пламъците Ñе разнаÑÑÑ‚ из Ñ†ÐµÐ»Ð¸Ñ Ñтадион substitution _T_TT__ правÑÑ‚ ÑмÑна, _P0_ идва да замени _P1_ _P1_ излиза под ръкоплÑÑканиÑта на феновете, _P0_ го Ð·Ð°Ð¼ÐµÐ½Ñ _P1_ е оÑвиркван докато излиза от терена, заменен от _P0_ structure_change _T_TT__ промениха подредбата Ñи на _EX_ style_change _T_TT__ промениха Ñтила Ñи на _EX_ boost_change _T_TT__ промениха тлаÑъка Ñи на _EX_ bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_tr.xml0000644000175000017500000012735111225071372024001 0ustar eliaselias general _P1_ güzel bir pas çıkardı _P0_ çalımlarla gidiyor _P1_ dan _P0_ a gönderilen pas _P1_ dan gönderilen [harika|baÅŸarılı|güzel|muhteÅŸem] pası _P0_ alıyor _P1_ Kısa bir [topu|pası] yerini buluyor _P0_ Rakiplerinden sıyrılan _P1_ defansı teke tekte yakaladı ve gole gidiyor _P1_ Güzel bir vücut çalımı geldi ve pasını _P0_ aktardı _P0_ Güzel hareketlerle rakibinden sıyrılıyor, ve mükemmel bir arapası verdi _P1_ topu _P0_ önüne ayağının içiyle bırakıyor Havalanan top _P1_ önüne düşüyor ve bir pozisyon doÄŸdu aniden _T_POSS__ ataÄŸa çıkıyor ve pozisyona giriyor _T_NPOSS__ geriye yaslandı [defanstalar ve dikkatli gözüküyorlar|geriye oynadılar] [Terse atılan bir top|Akıl dolu bir pas] _P0_ önüne düştü ve fuleli adımlarla ataÄŸa kalkıyor Åžimdi _T_POSS__ _P0_ ile ataÄŸa kalkıyor _P1_ tarafından çıkarılan pası _P0_ [yumuÅŸattı ve önüne aldı|ters taraftaki arkadaşına gönderdi] _P1_ tarafından _P0_ 'a atılan [çok akıllıca|zekice] [bir pas|bir top] _P1_ [harika|müthiÅŸ|akıl dolu|etkileyici] bir pasla arkadaşı _P0_ 'i görüyor _P1_ [uzun|kısa|yavaÅŸ] pası takım arkadaşı _P0_ 'ya kadar gitti. _P0_ [güzel|harika|ince] bir pas ile topu boÅŸ durumda olan arkadaşının olduÄŸu [saÄŸ|sol] tarafa çıkardı _P0_ [hızlı|iyi zamanlanmış] bir pasla [solda|saÄŸda] [boÅŸ durumdaki|hareket halindeki] arkadaşını gördü _P0_ kafasını kaldırıp arkadaÅŸlarının sahadaki dağılımına bakıyor ve uygun durumdaki _P1_'a pasını aktarıyor. [Sol taraftan|SaÄŸ taraftan|Orta sahanın bir kaç metre ilerisinden] [zekice|akıllıca|iyi düşünülmüş|uygun] pasla [kanatlardan ataÄŸa çıktılar|ortadan defansı delmeye çalışıyorlar|orta alandan oyunu kuruyorlar] _P0_ _P1_'in arapasıyla [tehlike yaratıyor|ataÄŸa çıkıyor], bu atak [tehlikeli gözüküyor|bir gol ÅŸansı olabilir] _P1_ rakibinin ayağıdan tereyağından kıl çeker gibi bir top kaptı ve uygun durumdaki arkadaşı _P0_ gördü. _P1_ deplase durumdaki arkadaşı _P0_ görerek yeni bir atak baÅŸlatıyor _P1_ [kafasıyla|göğsüyle] yumuÅŸattığı topu, önündeki arkadaşına aktarıyor _P0_ kendi etrafında dönüyor ve pas verecek arkadaşını arıyor _P0_ kendi etrafında dönmek isterken topu kaptırıyor _P0_ [baskı yaparak|yerinde bir müdahele ile] [orta alandaki|ceza sahası dışındaki] rakip atağı önledi, topu söktü aldı ve takımına kazandırdı,ÅŸimdi ataÄŸa çıkıyorlar _P0_ rakibine [baskı yapıyor|geçit vermeyerek] ayağındaki topu [çalıyor|kazanıyor] ; Åžimdi atak sırası _T_POSS__ takımında Sürenin azalmasına raÄŸmen _TW_ takımının biraz daha ciddiyetle oynaması lazım.Topun yuvarlak olduÄŸunu unutmuÅŸa benziyorlar _T_POSS__ [ön tarafta daha fazla top kazanıyor bu dakikalarda|bu dakikalarda daha fazla pozisyona giriyor|gol pozisyonlarında bir adım önde] Maçtaki [_SHOTS0_ + _SHOTS1_] ÅŸut sayısı: bu maç [orta sahaların savaşı ÅŸeklinde|kıran kırana bir maç olmaya baÅŸladı] Sadece 1 ÅŸut atıldı: [acaba her iki takımın orta sahaları muhteÅŸem mi oynuyor|acaba her iki takımın defansları mükemmel mi oynuyor] dakikalar _MI_ 'i gösterirken, her iki takımında bu maçı kazanmak için hırslı olduklarını görebiliyoruz Fevkalade yetenekler izliyoruz bu maçta Dakika : _MI_,Maçın bitmesine az bir süre kala,tehlikeli dakikalara girmiÅŸ bulunuyoruz. Maçın genelinde ÅŸimdiye kadar [çok fazla|[_FOULS0_ + _FOULS1_]] faul oldu. Sanırım hakemin yeni bir [düdüğe|deftere|kaleme] ihtiyacı var! Artık maçın sonuna geldik,bu ataklar her iki takımında son atakları olabilir lost_possession _P1_ pas vermek istedi ancak rakibi müdahele etti ve taç. _P0_ taç atışını kullanacak. _P1_ topu ayağının altından kaçırıyor _P1_ arkasındaki _P0_ görmeyince topu kaptırmış oldu [_P1_ tarafından verilmeye çalışılan|Bu verilen] pas , [dikkatsiz bir pastı|ucuz bir pastı|çok basit bir pastı],topu kaptırdılar _P1_ topu taç çizgisi üzerinde alıyor. _T_POSS__ taç atışını kullanan takım _P1_'in verdiÄŸi [iyi|kötü|süper] pas, _T_POSS__ 'in atacağı bir taça dönüştü _P0_ çabucak taç atışını kullanmak istiyor Uzun bir taç atışından sonra topla buluÅŸan _P0_ Rakibinin ayağındaki topa kayarak müdahele eden _P0_ ,yine baÅŸarısız oldu. SaÄŸ köşegönderine yakın bir yerden kesilen bu orta ,_P1_ tarafından kolayca savuÅŸturuluyor _P0_ topa [mükemmel bir zamanlamayla|zor da olsa] sahip oldu ve pas verecek arkadaşına bakıyor _T_NPOSS__ [topla çabuk çıkmak istiyor|topu çabucak kaybetti] _P1_ topu kötü kontrol edince hemen yanındaki _P0_ topu kolayca kapmış oldu _P0_ topu [çalmak için|almak için|yakalamak için] yerinde bir hareket yapıyor. _P0_ ileriye gönderdiÄŸi top , takımı için kayıp bir atak oldu. _P0_ yerinde bir müdahelesiyle rakibinden topu kapmakla kalmadı ve takımını hızlıca ataÄŸa çıkardı _P1_ saÄŸa sola bakınırken ayağındaki topu _P0_ çekti ve aldı _P0_ mükemmel bir zamanlamayla topu kesmeyi baÅŸardı _P0_ _P1_'in partisine davetsiz misafir oluyor ve ayağındaki topu kapıyor. Bu pas _P1_ için hiç de iyi deÄŸildi, _P0_ iyi bir zamanlamayla topu kontrol etmeyi baÅŸardı foul [Faulün babası bu babası!|Nerdeyse kemik sesi gelen bir müdahele!|Sarı kartlık bir hareket!], _P0_ yerde yatan oyuncu Rakibine aynı sertlikle cevap veriyor , kesinlikle [_P1_ 'den kartlık bir hareket daha geldi|_P1_'in başı belada],hakemden bakalım bu sefer kart çıkacakmı?. _P1_ , _P0_ 'a çift ayağıya dalarak öyle bir faul yaptı ki ; [kesin kart görmesi lazım|rakibine doktor müdahelesi gerekiyor|rakip takım kulübesi ayaklandı] _P0_'den bir [çirkin|kötü niyetli|ÅŸiddetli] faul daha. _P0_ topa vurmak isterken ayağını tehlikeli bir biçimde kaldırdı ve hakem faulü tereddütsüz çaldı. _P1_ 'nin yaptığı tahlikeli hareketti,rakibi _P0_ 'nin sedyeyle saha dışına alınmasına sebebiyet verdi. Bu faul rakibini bir hayli sarsmış olmalı. _P0_ yeÅŸil çimlere yapıştı kaldı. _P0_, bu futbolcunun rakibine müdahelesi kesinlikle nizami deÄŸildi _P1_ 'dan rakibine tehlikeli bir hamle geliyor ve _P0_ faule maruz kalıyor. _P1_'ın siyah kuÅŸaklık [Karate|Taekwondo|Jujitsu] hareketi, rakibi _P0_ yere serdi.Faul. _P1_ çok sinirli hareketler yapıyor , rakibine karşı taban uzatıyor resmen. _P0_ , _P1_'ın sert müdahelesiyle dizine çok tehlikeli bir darbe alıyor. _P0_ rakibinin ayağındaki topa müdahele etmek isterken, istemeyerek de olsa rakibinin dengesini bozuyor ve faulü yapıyor Hakem pozisyonu avantaja bırakmıştı ama, _P0_ avantajlı pozisyonunu kaybedince hemen düdüğünü çaldı ve faulü verdi. Böyle faulleri görmeye baÅŸlayınca maçın havası bir anda kayboldu gitti. Bu yapılan faulü profosyenel olarak yapılmış bir faul diyebiliriz. _P0_ sert müdaheleden kaçmaya çalıştı ama baÅŸaramadı _P1_ çok sert bir darbe ile rakibinin kramponlarına basıyor ve faule sebebiyet veriyor. scoring_chance _P0_ defansın arasında [sırayla bir bir çalımlayarak|herkesi bir bir geçerek] [gol ÅŸansını yakalıyor|kaleciyle karşı karşıya kalıyor] _P0_ gol için kaleye yöneliyor, ve [füzesini|ÅŸutunu|kalecinin uzanamayacağı köşeye ÅŸutunu|ayağının içiyle plasesini] atıyor _P0_ kendi ekseni etrafında dönüyor ve beklemeden ÅŸutunu çıkarıyor _P0_ sihirli kramponlarından bir mükemmel [ÅŸut|son vuruÅŸ] daha çıkardı _P0_ arka alanda büyük bir boÅŸluk buldu ve gole gidiyor. _T_POSS__ takımında bu atağı golle sonuçlandırma adına mükemmel bir ÅŸans doÄŸdu _P1_ uzun bir top atıyor _P0_ topu rakip ceza alanı [yakınında|çevresinde] elde ediyor _P0_ [harika|mükemmel] yükselerek kafasıyla topa ilk vuran oluyor _P0_ kendi yarı alanından topla mükemmel hareketleniyor ve takımına son derece güzel bir gol ÅŸansı veriyor _P0_ takım arkadaşı _P1_'in milimetrik pasıyla kendisine gönderdiÄŸi topu kontrol ediyor ve ilerideki arkadaÅŸlarına pozisyon yaratıyor. _P0_ [ÅŸansını|ÅŸutunu|serbes atışı|frikiÄŸi] bir hayli uzaktan [35|30|25|20] metreden denedi. Bu ÅŸut [kaleciden sekiyor|üst direkten içeriye yöneliyor|barajdan sekti|ceza sahasında ayaklardan sekiyor] _P0_ ceza sahasına doÄŸru [topla ilerliyor|çalımlarla geliyor] , savunmanın içinde kendine bir ÅŸans arıyor. _P0_ [saÄŸ|sol] kanattan [topla içeri dalıyor|rakibini geçiyor|rakibini saf dışı ediyor] ve ÅŸimdi çerçeveyi görüp [ÅŸutunu çekiyor|kaleye plasesini yapıyor|top falsolu bir vuruÅŸ yapıyor] _P0_ ÅŸansını yaklaşık [30|25] metreden denedi. _P0_ [saÄŸdan|soldan] gelen korner atışı sonunda topla buluÅŸtu ve kaleyi karşısına aldı,ÅŸutunu atacak _P0_ ÅŸutunu çekiyor _P1_ tarafından _P0_ gönderilen bir arapasıyla ÅŸimdi her ikisi birden [kaleci ile|rakip kaleci ile] karşı karşıya kaldılar _P0_ [soldan|saÄŸdan] kullanılan kornerde kafasına gelen topu ceza sahasının içine doldurdu _P0_ ceza sahasına doÄŸru [soldan|saÄŸdan] mükemmel bir orta kesiyor Kendi yarısahasından topla çıkan _P1_ , takımı _T_POSS__ 'e gollük bir pozisyon hazırlama çabası içinde _P0_ bütün defansı arkasında bıraktı ve kaleciyle karşı karşıya kalıyor goal Goooooooollll!!! Ve top üç kale direÄŸinin arasından aÄŸlarla kucaklaşıyor !!! _P0_ skoru deÄŸiÅŸtiren isim oluyor!!! GOL!! [Filebekçisinin|rakip kaleceninin] yapacak bir ÅŸeyi yoktu.Fakat tertemiz bir gol oldu. _P0_ golü deÄŸiÅŸik bir sevinme yöntemiyle kutluyor.Taraftarlar alkışlarla cevap veriyor. Aman allahım o ne [büyüleyici|olaÄŸanüstü|harikulade|fantastik|akıl dolu|spektaküler] bir goldü öyle!!! GOL!! _P1_'in [umutsuzca|çaresizce|son bir hamleyle] topa karşı hamlesi yeterli gelmedi. _P0_ golü hanesine yazdırdı. MeÅŸin yuvarlak [havada süzülerek|falso alarak] aÄŸlarla kucaklaşıyor !!! GOL!! takım saha içinde timsah yürüyüşü yapıyor. _T_TT__ bu kutlama için de antreman yapmış olmalı. _P0_'in golü taraftarlarını [ateÅŸledi|ayaÄŸa kaldırdı] . Bu vuruÅŸ; [en iyi bilinen|kendisine has|özel|özel|kendisine özgün] vuruÅŸlarından birisiydi. GOL! _P0_ öldürücü vuruÅŸunu yaptı, [kaleci çaresiz|kaleci ne olduÄŸunu anlayamadı|top çatala takıldı kaldı]. Bu gole ÅŸapka çıkarılır ! Tam jeneriklik bir gol oldu sayın seyirciler Gol! Bugün ÅŸanslı gününde olan takım: _T_TT__ Goll![Falsolu gelen top|rakibinin akıllı hamlesiyle kaleye gönderdiÄŸi top|yükseklik kazanan top|paylaşılamayan top] kale önünde _P1_'a çarparak aÄŸlarla buluÅŸtu. _T_TT_ bu maçtaki [ilk golü atan taraf oluyor|bu maçın açılış golünü atan taraf oluyor]. Bu [şık gol|gol] _T_TT_ taraftarlarını [çılgına çevirdi|ayaÄŸa kaldırdı]. Bu [şık gol|gol] skora denge getirdi _T_POSS__ takımı [zor giden maçta kolay attı.|altın madeni buldu]. GOL,GOL,GOL _T_TT__ takımının [ÅŸok|sürpriz] golü geldi. Futbol tanrıları ÅŸimdi _T_TT__ takımına gülümsüyor. _T_POSS__ takımı maça golle baÅŸlıyor. Tabuta bir çivi daha çaktılar. miss [_P0|_P0_] [kaçırdığı gole yanıyor|tribündeki taraftarlarına saç baÅŸ yoldurtuyor] ! _P0_ tarafından amaçsızca vurulan ÅŸut dışarıya çıktı. [_P0_|_P0_] bomboÅŸ durumda topu aÄŸlarla buluÅŸturamadı ve, saha kenarındaki antrenöründen fırçayı yedi. [_P1_|Defans] tarafından tehlike geçiÅŸtirildi _P0_ [zorlama bir vuruÅŸ|falsolu vuruÅŸ] yapıyor ancak top dışarda. _P0_ son defans oyuncusundan da kurtuldu, vuruÅŸunu da yaptı ancak top kalecide kaldı _P0_ kaçırdığı bu pozisyonla , takımını kolay bir golden mahrum etmiÅŸ oldu. Bu [top da|ÅŸutta] girmeyince , taraftarlar coÅŸkulu tezahüratlarını daha da arttırarak takımlarına desteÄŸi sürdürüyorlar. Kaleci ile karşı karşıya olan pozisyonu gole çeviremedi _P0_ bu mutlak gol ÅŸansını tribünlerden yükselen ahhlar vahlar sesleri arasında kaçırıyor Cömertçe harcanan bu fırsatlar _T_POSS__ takımının maçı kaybetmesine neden olabilir. _P0_ topa öyle bir vurdu ki ; top kale yerine tribünlerde. _P0_ bu golü atmak için çok uÄŸraÅŸtı, ancak baÅŸarılı olamadı _P0_ Oysa gole çok yaklaÅŸmıştı, biraz daha düzgün vurabilseydi eÄŸer... _P0_ bu golü nasıl kaçırdığına kendi bile inanamıyor _T_POSS__ [bu büyük|girdikleri az pozisyonlardaki] gol ÅŸanslarını bir bir cömertçe harcamaya baÅŸladı. _P0_ Aradan iyi kaçtı,iyide pas almıştı,fakat baÅŸarılı olamadı Futbol tanrıları [_P0_|_T_POSS__] yanında deÄŸil bu akÅŸam. _T_NPOSS__ için bu pozisyon gerçekten ucuz atlatıldı. Cesurca bir denemeydi ama, kaleci gole izin vermedi GökkuÅŸağının altından bu seferde altın çıkmadı, kaçan gole yazık oldu. Top ceza sahası içinde [kafalardan sekiyor|karambolde] ancak bu topun kaleye girmesine yeterli gelmiyor.Aut ! Top toplayıcı çocuklar hayli yorulmuÅŸ olsa gerek bu topda farklı ÅŸekilde dışarıda Top kaleye giriyor, ama ama..Hayır hakem golü iptal ediyor,yan hakemin ofsayt bayrağını görmekte geç kaldı. _P0_ gol atması mucizelere kaldı ,pozisyon sayısı oldukça azaldı _T_POSS__ taraftarları tribünde dualar etmeye baÅŸladı, hala bir pozisyonları yok save Bir [asist daha geliyor|yakıcı ÅŸut daha geliyor], fakat [kalecinin|filebekçisinin|_P1_] [ellerinde|yerini iyi tutmasıyla] eriyen bir top oluyor. _P1_'in parmak uçlarındaki sihir yine gözüktü. _P1_ sanki kalesine bir duvar ördü. O ne müthiÅŸ bir [yer tutuÅŸtu|zamanlamaydı]. _P1_ için bir antreman kurtarışı oluyor bu vuruÅŸ. _P1_ kalesinde devleÅŸiyor bu akÅŸam,kurtarışları ard arda geliyor. _T_NPOSS__ takımı bu gece kalecisi _P1_ 'a çok ÅŸey borçlu olacak. _T_POSS__ takımının gol giriÅŸimleri, _P1_ 'in [süper|harika|müthiÅŸ] [kurtarışlarıyla|yer tutuÅŸlarıyla] birer birer savuÅŸturuluyor. _P1_ kolay bir kurtarış daha yaptı. Topa elleriyle sahip oldu. _P1_ kaleye girmekte olna bu topuda harika bir refleksi ile dışarı göndermeyi baÅŸardı. [SaÄŸ taraftan|Sol taraftan] gelen bu atağı _P1_ uzaklaÅŸtırıyor. _P1_ kolaylıkla tehlikeleri geçiÅŸtiriyor. _P1_ yeniden [süper|muazzam|fantastik] bir refleks ile köşeye giden topu çıkardı. [Kaleciden|Filebekçisinden|Genç kaleciden] bir [büyük|akıllıca|sansasyonel|kolay|kendine güvenen] kurtarış daha geliyor. _P1_ o bilinen kurtarışlarından birisini daha yapıyor. _P0_ yaptığı bu ÅŸut çok güçlü deÄŸildi, _P1_ kolayca topa sahip çıktı. [_P1_ 'in|Kalecinin] bu kurtarışı, bir kere daha taraftarlarının gönlünde taht kurmasına sebep oldu. start_match Tribünlerdeki taraftar sayısı _AT_ , statta her ÅŸey yerli yerinde birazdan maç baÅŸlayacak. Haftanın önemli karşılaÅŸmasında sizlerle beraberiz sayın seyirciler. iki takım da taraftarlarını selamlıyor,futbolcular birbirine baÅŸarılar diliyor.Maç birazdan baÅŸlamak üzere.... [Seyircilerin|_AT_ taraftarın] müthiÅŸ tezahüratları arasında takımlar çıkış tünelinde göründüler. Umarız bu soÄŸuk ve kapalı havada takımlar bize içimizi ısıtan bir futbol resitali yaÅŸatır _AT_ [futbolsever|taraftar] bu maçta tribünlere akın etti. Bizde bu maçın anlatımında sizlere yardımcı olacağız. Hakem yardımcılarından iÅŸareti alıyor ve baÅŸlama düdüğüyle maç baÅŸlıyor Bu geceki [ futbol savaşı|karşılaÅŸma|çarpışma|futbol düellosu] baÅŸlamak üzere... Hakem triosu hazır,futbolcular hazır, taraftarlar tribünde hazır ; ıslık sesleri arasında maç baÅŸlamak üzere... Tribünde yakılan meÅŸalelerden dolayı oluÅŸan sis dağılmak üzere , ve hakem maçı baÅŸlatıyor. Bu takımlar daha önce bir çok defa karşılaÅŸtılar. Bu maçta [gerçek|kıyasıya] bir [mücadele olacak|futbol şöleni olacak]. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ çok az bir üstünlük sayısıyla önde. _T[_TAVSKILL0_ GE _TAVSKILL1_]_ bu maça çıkarken bahislerde favori olarak gösterilmiyor. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ bu maça herkesin favorisi olarak baÅŸlıyor. half_time İlk yarı hakemin düdüğüyle sona eriyor İlk Devrenin skoru : _RE_ İlk Devrenin skoru : _RE_ . _TL_ teknik direktörü ikinci devre için [bakalım oyun planını deÄŸiÅŸtirecek mi?|sonuçtan emin deÄŸil|takımına bazı taktikler verecek gözüküyor] . İlk yarı sonunda baÅŸları eÄŸik. _TL_ bu stada piknik yapmayamı geldiler yoksa?. _TW_ ve teknik ekibi ilk yarı boyunca ellerinden gelenin en iyisini yapmaya çalıştılar. _TL_ takımı teknik direktörü [takımının|futbolcularının] ilk devredeki performanslarından oldukça [endiÅŸeli|çok kızgın] olmalı. _TL_ takımı teknik direktörünün surat ifadesi ilk yarının özeti sanki: _RE_ _TL_ takımı bu maçtan sonra teknik direktörleri ile yollarını ayırmayı düşünebilirler. _TW_ takımının bu maçta zafere ulaÅŸabilmesi için [sadece|aÅŸağı yukarı] 45 dakikaya ihtiyaçları var. _TL_ futbolcuları soyunma odasına [baÅŸları aÅŸağıda|suratları asık|endiÅŸeli ifadelerle] gidiyorlar,artık teknik direktörlerinin son talimatlarını dinlemek zorundalar. İlk yarıdaki _TL_ bu kötü performanısını çabucak unutmalı, ikinci yarıya daha hırslı çıkmalılar. _T[_POSS1_ GE 70]_ maçta pozisyonlarda daha ağır basıyor _T[_POSS1_ GE 60]_ pozisyonlar itibariyle ilk devrede [daha iyi|daha atak|daha ofansif] bir oyun ortaya koydular _T0_ daha fazla pozisyona giren taraf, fakat _T1_ takımının gol silahları da unutulmamalı _T1_ daha fazla pozisyona giren taraf, fakat _T1_ takımının ikinci yarıda neler yapabileceÄŸini hepimiz biliyoruz _T[_POSS1_ GE 75]_ sahada futbol oynayan tek bir takım var gibi Evet ilk yarıda gol sesi çıkmadı ve her iki takımdan ikinci yarıda daha yaratıcı oynamalarını bekliyoruz Dengede giden bir ilk yarı sonunda ikinci yarı neler getirecek hep birlikte göreceÄŸiz Fazla pozisyon olmayan bir ilk yarı seyrettik. Åžu bir gerçek ki ilk yarıda skor olmasa da, zevkli ve bol ÅŸut atılan bir maç izledik _T[_SHOTS0_ LE _SHOTS1_]_ ilk yarıda maça [son verecek|damgasını vuracak] [bol miktarda|pek çok] pozisyon yakaladı. Goller yaÄŸmur gibi yağıyor: [_GOALS0_ + _GOALS1_] , ve bu kadar gol maçın sadece ilk yarısındaydı! Sahada iki takım var, fakat sadece [_T[_FOULS0_ GE _FOULS1_]_|onlardan biri] futbollarıyla göz dolduruyor Ilk yarıdaki oyun sanki bir futbol maçı deÄŸil kan banyosu,tekmeler kartlar havada uçuÅŸtu ilk yarıda... [Çok fazla|[_FOULS0_ + _FOULS1_]] faullu oynadılar. Hakemler oyunu durdurmaktan yorulmuÅŸa benziyor [Çok fazla|[_FOULS0_ + _FOULS1_]] faul oldu. Hakemin yeni bir [düdüğe|deftere|kaleme]! ihtiyacı olmalı [_PEN0_ + _PEN1_] İlk yarıda sadece penaltılar konuÅŸtu. extra_time Birbirine denk güçlerin mücadelesinde maç uzatmalara gidiyor. Tabela deÄŸiÅŸmiyor _RE_: Uzatmalar oynanacak. Dakikalar _MI_ gösteriyor, ama sonuç deÄŸiÅŸmiyor _RE_: Vee uzatmalara gidiliyor Maçta uzatma dakikaları baÅŸlıyor.Bakalım hangi takım diÄŸerini yenebilecek. Maç uzatmaya gidiyor.Uzatma dakikalarında daha az hata yapan ve dikkatli olan takım bu maçı alabilir. penalties _MI_ dakika sonunda maçın buralara geleceÄŸini kim bilebilirdi.İşte penaltı atışları geliyor. Ve maç penaltılara kalıyor.Yine dramatik görüntülerle karşılaÅŸacağız,bir taraf sevinecek diÄŸer taraf üzülecek İki takımda beraberliÄŸi bozmayı baÅŸaramadı, sonucu penaltı atışları belirleyecek Birazdan penaltı atışlarına geçilecek takımlar listelerini hazırladı ve penaltıcıları belirlemiÅŸ durumda BaÅŸka gol yok, birazdan penaltı atışlarına geçilecek ve son sözü [kaleciler|penaltıcılar] söyleyecek end_match Vee maç bitiyor _TW_ futbolcuları taraftarlarının çılgınca alkışlarına ; onlarda kendi alkışlarıyla cevap veriyorlar _TW_ büyük bir zafer kazandı , taraftarları galibiyeti kutluyor!!! Kendi taraftarları tarafından sahadan ayrılırken yuhalanıyor _TL_ _MI_ dakika sonunda, maç ÅŸu skorla sona eriyor _RE_ Hakem saatine son bir kere daha bakıyor ,düdüğü aÄŸzına götürdü ve maçın bitiÅŸ düdüğünü çalıyor Evet, bu iÅŸ bu kadar. Maçın sonucu _RE_ _TW_ takımının menejeri bu sonuctan [mutlu oldu|dolayı oldukça heyecanlandı]. _RE_, Bu skor _TW_ için mükemmel bir sonuç. Beraberlik,her iki takımda beraberliÄŸe sevinemedi.Sevinen bahisçiler olmuÅŸtur muhakkak. _TW_'nin favori olduÄŸu maçta sonuç beklenildiÄŸi gibi _RE_ bitiyor Bu maçı tarih yazar. Hepsi birbirinden güzel [_GOALS0_ + _GOALS1_] gol seyretmiÅŸ olduk. _TL_ bu maçı çıkaramadı _GD_ gol farkı kolay deÄŸildi. _TW_ maçı kazandı.Bu gece futbolcular ve takım ÅŸampanya patlatıp çılgınlar gibi eÄŸlenecek gözüküyor. Bu ne [muhteÅŸem bir zafer|inanılmaz bir galibiyet] _TW_ takımı için. Bir kere daha ispatlandı ki _TL_ bu takımla baÅŸedecek güçte deÄŸil, _RE_ skor herÅŸeyi ispatlar nitelikte own_goal Top [yerde sekiyor|yönünü deÄŸiÅŸtiriyor] _P0_ golü kendi kalesinde gördü Penaltı noktası üzerine ayaklardan seken top, sonunda _P0_ çarparak kendi kalesine giriyor Bir [isabetli|rüzgar gibi] ÅŸut, ve _P0_'dan sekerek herkesin ÅŸaÅŸkın bakışları arasında kendi aÄŸlarıyla buluÅŸuyor _P0_ kalecesine tehlikeli bir geri pas çıkarıyor. Olamaz, kaleci inanılmaz bir ÅŸekilde [ıskaladı|ayağının altından kaçırdı] Kendi kalesine attığı bir gol oluyor _P0_! için Bir küçük anlaÅŸmazlık _T_TT__ için pahalıya mal oluyor,kalelerinde bir gol görmüş oldular. header _P1_ kafayla topu forvetinin önüne indirdi _P0_, bu golü yazabilecek mi? Gerilerden gelerek topa kafa atan _P0_ oldu. Ceza sahası içinde yukarıdan süzülerek gelen topa, çok sert ve etkili bir kafa vuruÅŸu geliyor. İyi gelen ortada _P0_ kafa vuruÅŸunu akıllı bir yere gönderdi. _P0_ dan [Gol ÅŸansı yüksek|Çok etkili|Akıllıca düşünülmüş|Öldürücü yere gönderilmiÅŸ] bir kafa vuruÅŸu oluyor. _P0_'un kafa vuruÅŸu , ileri uçtaki arkadaşına pas oluyor. post _P0_ çektiÄŸi bu ÅŸut ile top toplayıcı çocuklara depar attırıyor.Berbat bir vuruÅŸ. Defansın ÅŸaÅŸkın bakışları arasında kaleye doÄŸru gönderilen ÅŸut oldu Hiç kimsenin beklemediÄŸi bir anda mükemmel bir ÅŸut yolladı. cross_bar _P1_ çektiÄŸi ÅŸut kalenin üst direÄŸine çarparak [üstten avuta gidiyor|yeniden ceza sahası içine geri dönüyor|defansın önüne düşüyor] _P1_ topa öyle güzel vurdu ki biraz daha ÅŸansı olsa kale direÄŸi yerine aÄŸlarla kucaklaÅŸacaktı.Kale direÄŸinden geri dönen top yine oyunda _P1_ plase bir vuruÅŸla kalecinin üstünden topu aşırmayı denedi,ancak top üst kaledireÄŸinden geri dönerek ceza sahasına geri dönüyor penalty _P0_ penaltı atışını kullanmak üzere penaltı noktasına doÄŸru ilerliyor _P0_ penaltı vurÅŸuyla skoru deÄŸiÅŸtirmek için bir ÅŸans yakaladı _P0_ takımının penaltıcısı olarak bu vuruÅŸu kullanmak üzere topun başına geçiyor Acaba [_P0_|_T_POSS__] bu penaltı atışı gol olabilecekmi? _P0_ kenardan gelen iÅŸaretle penaltıyı kullanacak olan oyuncu, topu eline aldı ve beyaz noktaya dikti. _T_POSS__ görünüşe göre sonucu penaltı ile atılan goller belirleyecek. Penaltı!!!._T_POSS__ bu penaltıyı atarsa [bu maçta|golsüz maçta] avantajı eline geçirecek. _P0_ ÅŸimdi [sonuca denge getirmek için|eÅŸitliÄŸi saÄŸlamak için] penaltı atışıyla bir ÅŸans yakaladı. _P0_: Geç gelen bir penaltı oldu,ÅŸimdi ortada olan oyun hareketlenebilir _T_NPOSS__ takımına bir maçı dengelemek adına bir ÅŸans geliyor.Penaltı atacaklar. _P0_ sıkıcı giden maçta nihayet bir penaltı ve gol görebildik free_kick _P0_ 'dan etkili bir serbest atış geliyor _P0_ kaleye yakın bir yerden etkili bir frikik kulanıyor _P0_ hiç bklemeden barajın üzerinden topu kaleye falsolu gönderiyor _P0_ barajın üzerinden falsolu bir vuruÅŸ yaptı Hakem serbest atış verdi: _P0_ çizgi dışında topa müdahele etti Serbest Atış: _P0_ uzun bir ortayla topu kale alanına gönderiyor _P0_ kullandığı serbest atışta ceza sahası karıştı,tam bir karambol anı foul_yellow _P1_ , _P0_ için [tehlikeli|sakatlayıcı|formasından çekmek suretiyle] bir müdahele yaparak , hakemden sarı kartı görüyor _P1_ , _P0_'e yaptığı faul neticesinde sarı kartı gördü _P1_ topa hakemin düdüğünden sonra [vurduÄŸu|kaleye gönderdiÄŸi|taşıdığı] için sarı kart görüyor _P1_ zaman geçirdiÄŸi için hakemden sarı kartı görüyor _P1_ sarı kart görüyor,topa bilerek elleriyle müdahele etti _P1_ , _P0_ 'nın topu oyuna hızlı sokmasını engellemekten sarı kartı görüyor _P1_ hakeme ÅŸiddetli itirazdan sarı kartı görüyor foul_red _P1_ yüksek sesle rakibine bağırıp çağırıyor.Kırmızı kart gelecek _P1_ hakaretlerle rakibinin üzerine yürüyor,başı belada _P1_ kötü niyetle kramponlarıyla rakibine basıyor _P1_ kasıtlı olarak eliyle oynuyor _P1_ top rakibindeyken ayağını yerden kesecek kadar sert girerek, kırmızı kart görmeyi haketti bu futbolcu _P1_ açıkça _P0_ [yumrukladı|tokat atıyor|itekledi|kafa attı] , hakem tereddütsüz kırmızı kartı gösteriyor _P1_ rakip takım taraftarlarına el kol hareketleri yapıp küfürler ediyor foul_red_injury _P1_ kasti faulü yaptı, hakem elini cebine götürürken; _P0_ çimler üzerinde acıyla kıvranırken, saÄŸlık ekipleri acil müdahele için saha içine koÅŸarak girdiler _P1_ Kasti bir faul yapıyor ; _P0_ sakatlanmışa benziyor... oyuncu deÄŸiÅŸikliÄŸine gidebilirler send_off _P0_ oyundan atılıyor. _P0_ oyun dışı kalıyor. _T_TT__ ÅŸimdi bir kiÅŸi eksik oynayacak. injury _P0_ deÄŸiÅŸmek zorunda. Yardımlarla [çıkıyor|sedyeye alınıyor|sahayı terkediyor], [omuzundan|dirseÄŸinden|kolunda|el bileÄŸinde|sırt bölgesinde|arka adelesinden|kafasından|boynunda|kiriÅŸ|kasığında|göğüs kafesinde ezilme] sakatlığı var _P0_ [kötü|ciddi] ÅŸekilde sakatlandı , arkadaÅŸları dışarı alınması için iÅŸaret veriyor Takım doktorları iyice muayene ediyorlar, ancak _P0_ oynayacak durumda deÄŸil, deÄŸiÅŸtirilmesi için iÅŸaret geldi temp_injury _P0_ kasığında bir çekme var gibi görünüyor, fakat oyuna devam edebilecek durumdamı? _P0_ ince bir darbeyle yerde,sakatlık geçiriyor,umarız ciddi bir ÅŸeyi yoktur. _P0_ koÅŸmayı deniyor ama kasığındaki gerilme ciddi gibi,hakem kendisini saha kenarına doktor kontrolüne gönderiyor _P0_ kaslarında aşırı gerilme olabilir: durumu iyiye benziyor,devam edecek _P0_ doktordan uyarıları alıyor sakatlanmamak için artık daha dikkatli oynamak zorunda _P0_ [sol|saÄŸ] gözüne güçlü bir darbe geliyor rakip oyuncudan, çabucak bir bandaj yapılıyor, ve oyuna devam edebilecek durumda stadium_breakdown _T0_ statyumunda teknik problemler baÅŸgösteriyor.Stat ışıkları birden gitti. Stat ışıklarında problem var ÅŸimdi [iyice azaldı|tamamen söndü] Ağır bir sis tabakası _T0_ stat çimlerine çökmüş vaziyette.Oyuncuları görmek iyice zorlaÅŸmış durumda. stadium_riots Bazı taraftarlar kargaÅŸa yaratıyorlar tribünlerde Bazı kendini bilmez taraftarlar sahaya [yanan meÅŸaleleri|pet su ÅŸiÅŸelerini] atmaya baÅŸladılar.Hakem anons istiyor. Stat polisi kargaÅŸa çıkartanları, stat dışına ite kaka götürmeye baÅŸladılar Bir seyirci polisleri [aÅŸarak|peÅŸine takarak] sahanın içine kadar girdi ve hakeme [yumruk atmaya çalışıyor|tekme sallamayı deniyor|birÅŸeyler anlatmaya çalışıyor].Sahalarda görmek istemediÄŸimiz hareketler bunlar. Taraftarlar takımlarını protesto etmek için sahaya sırtını döndüler ve stattan çıt sesi çıkmıyor .Çok ilgiç bir protesto doÄŸrusu stadium_fire Yanlış görmüyorsam _T_TT__'un stadyumundan dumanlar yükseliyor Deplasman takım taraftarlarının bazıları [açık|kapalı] tribünlerinin bir kısmını ateÅŸe verdiler.İnanılmaz! Takımlarının aldığı kötü sonucu hazmedemeyen bazı kendini bilmezler yine tribünleri ateÅŸe verdi.Artık yetkililer bu [hareketlere|kendini bilmezlere|kendini taraftar sananlara] ağır cezalar vermeliler. Taraftarlar yaktıkları meÅŸaleleri saha içine atınca , oradaki kağıtlar tutuÅŸtu ve ÅŸimdi itfaiye olay yerine müdahele ediyor. substitution _T_TT__ oyuncu deÄŸiÅŸikliÄŸine gidiyor: _P0_ _P1_ ile yer deÄŸiÅŸtiriyor _T_TT__ taze bir güce ihtiyacı vardı. _P0_ oyunda _P1_ saha dışında _P1_ taraftarlarının alkışları arasında oyundan alınıyor. _P0_ oyuna giren isim _P1_ oyundan alındığı için pek memnun deÄŸil gibi.Yerine giren oyuncu: _P0_ _P0_ saha kenarında,yedek kulubesinde antrenöründen son talimatları aldı ve ÅŸimdi _P1_ yerine oyuna dahil oluyor _P0_ oyuna giriyor,çıkan oyuncu _P1_ structure_change _T_TT__ saha diziliÅŸini ve taktiklerini deÄŸiÅŸtirdiler _EX_ _T_TT__ takım oyun düzenlerini _EX_ olarak deÄŸiÅŸtirdiler. style_change _T_TT__ oyun düzenlerini deÄŸiÅŸtirdiler _EX_ _T_TT__ teknik direktöründen yeni bir hamle sırası _EX_ ÅŸekline döndürdüler takım düzenlerini... _T_TT__ daha atak oynamaya çalışacaklar _T_TT__ takımı _EX_ oyuna döndü Bir son ÅŸans denemesi daha: _T_TT__ dan _EX_ _MR_ dakika kala. _T_TT__ taktiklerini _EX_ stiline çevirmeyi deniyorlar Devre arası oyun stillerinde deÄŸiÅŸiklik, _T_TT__ takımı _EX_ oynamaya baÅŸladı boost_change _T_TT__ takım güçlerini deÄŸiÅŸtiriyor _EX_ _T_TT__ takımı yenilgiyi kabullenmiÅŸe benziyor _T_TT__ bu maçta baÅŸaracaklarını düşünmüş olmalılar _T_TT__ takımı vites yükseltiyor Takım desteÄŸi devrede. _T_TT__ bu maçı almak için varını yoÄŸunu ortaya koyuyorlar bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_fr.xml0000644000175000017500000010611711225071372023760 0ustar eliaselias general _P0_ _P1_ [à|donne à|passe à] _P0_ _P1_ adresse une [superbe|belle|lumineuse] balle à _P0_ Superbe [balle|passe] qui trouve _P0_ Petit ballon de _P1_ qui cherche le une deux avec _PO_ Belle remise de _PO_ Belle remontée et passe de _P1_ Magnifique passement de jambes et superbe passe de _P1_ à _P0_ _P1_ [adresse la balle à|trouve] _P0_ Passe [bien appuyée|précise] de _P1_ à _P0_ Passe lobbée de _P1_ qui trouve _P0_ _T_POSS__ [est à l'attaque|accentue la pression|a la meilleure possession de balle|domine actuellement] _T_NPOSS__ [se replie en défense|est obligé de reculer|est privée de ballons en ce moment|subit le jeu] [Exceptionnelle transversale|Belle ouverture] de _P1_ qui trouve _P0_ Remise en jeu par _P1_ [qui trouve|sur] _P0_ _P1_ [glisse|pique] un superbe ballon à _P0_ [Splendide|Superbe|Longue|Excellente] passe de _P1_ qui démarque _P0_ Une [longue|courte|belle] passe aérienne de _P1_ qui trouve _P0_ [Beau|Splendide|Habile] [mouvement|jeu] [collectif|à une touche de balle] sur la [droite|gauche] du terrain [Belle|Splendide|Habile] combinaison à une touche de balle sur la [droite|gauche] du terrain Rapide mouvement de passes sur la [gauche|droite] du terrain Un autre [splendide|brillant|] mouvement [sur l'aile|au centre|sur toute la largeur du terrain] _P0_ [contrôle|reçoit] [la passe|le ballon] de _P1_ _P1_ [glisse|transmet] le ballon entre les [pieds|jambes] [de l'adversaire|du joueur] et trouve _P0_ _P1_ [amortit|contrôle] le ballon [de l'intérieur du pied|de la poitrine|de la cuisse] et le [transmet|passe|glisse] à _P0_ _P0_ [essaye de se débarrasser de|est à la lutte avec] son adversaire _P0_ [sème|embarque] son [adversaire|défenseur] Un match nul sera un excellent résultat pour _T[_TAVSKILL0_ GE _TAVSKILL1_]_, assez dominée dans l'ensemble _TW_ doit s'appliquer et tenir encore quelques minutes _T_POSS__ doit [remonter le ballon vers l'avant|se créer plus d'occasions] s'ils veulent faire la différence Seulement [_SHOTS0_ + _SHOTS1_] tirs : [C'est une bataille au milieu de terrain|aucune équipe ne prend réellement le dessus|On est dans un vrai round d'observation] Seulement un tir : [C'est une véritable bataille au milieu de terrain|aucune équipe ne tente réellement quelque chose] _MI_ minutes au panneau d'affichage, il reste beaucoup de temps, les 2 équipes ont encore leur chance On voit ici une grande qualité technique, avec de nombreux tirs On est dans le dernier quart d'heure On est dans les dernières minutes du temps réglementaire [Trop de|[_FOULS0_ + _FOULS1_]] fautes. L'arbitre aurait besoin [d'une nouvelle bille dans son sifflet|d'un nouveau calepin|d'un nouveau crayon]! lost_possession C'est un contre de _P1_... mais il perd la balle et _P0_ est à la touche. _P1_ dépossédé du ballon _P1_ dépossédé par _P0_ [_P1_ donne le ballon|Le ballon est envoyé] [imprudemment|trop facilement] _P1_ récupère le ballon, mais il est sorti. La remise en jeu est pour _T_POSS__ Passe dévissée de _P1_ et le ballon sort en touche pour _T_POSS__ Ballon perdu qui sort en touche. _P0_ la joue rapidement Ballon perdu par _T_NPOSS__, _P0_ en profite pour faire une longue touche Tacle glissé de _P0_ qui subtilise la balle majistralement Passe difficilement controlée par _P1_ qui a du mal à garder le ballon _P0_ gagne son duel et récupère le ballon _T_NPOSS__ souffre énormément Mauvais controle de _P1_ qui profite à _P0_ qui s'empare du ballon _P0_ [intercepte le |depossède _P1_ du] ballon par un superbe tacle glissé Ballon perdu qui retombe dans les pieds de _P0_ Tacle de _P0_ ! Il [repart avec|gagne|récupère] le ballon _P1_ est isolé et perd le ballon, récupéré par _P0_ _P0_ fait une superbe interception _P1_ fait une passe hasardeuse et _P0_ en profite pour intercepter le ballon foul [Hou|Aïe], quel vilain tacle sur _P0_ ! Ouh là là _P1_ effectue un tacle avec les pieds décollés du sol... Il y a de grandes chances pour que [cette agression soit sanctionnée|_P1_ prenne un carton pour ce geste] _P1_ [percute|renverse|bondit sur] _P0_ les deux pieds en avant Rugueuse intervention de _P1_ sur _P0_ _P0_ [s'est fait retenir la jambe|est accroché] par _P1_ Un tacle vicieux de _P1_ laisse _P0_ étalé au sol. Il a l'air de souffrir On devrait appeler _P1_ [le Boucher|l'assassin|le Tueur]. Il a lâchement agressé [un joueur|_P0_] ! Oula! Ca doit faire mal, quel coup de _P1_ sur _P0_ ! _P0_ est par terre et n'a pas l'air de rigoler Pied haut de _P1_ qui envoie _P0_ au sol _P1_ a perdu patience et a séché _P0_ qui se retrouve au sol. L'arbitre laissa l'avantage mais finalement dut revenir à la faute sur _P0_ Ce genre de fautes ne devrait jamais exister, c'est révoltant La faute est plutôt grossière _P0_ essaye d'éviter la charge _P1_ commet une vilaine faute. [Il ne s'en sortira probablement pas avec ça|L'arbitre va sûrement lui dire deux mots], car _P0_ a été sérieusement touché scoring_chance _P0_ infiltre la defense, la [clouant littéralement sur place|laissant complètement figée] _P0_ se dirige vers les buts et [déclenche sa frappe|frappe|tire]! _P0_ se retourne et frappe Une frappe éclatante de _P0_ _P0_ trouve un espace et tente sa chance. Une belle occasion pour _T_POSS__ Long ballon de _P1_ qui trouve _P0_ en embuscade Belle combinaison à une touche de balle en direction des buts _P0_ [frappe|tire] depuis les [18|22] mètres, il semble que ce tir [soit légèrement dévissé|passe à côté|soit dévié] _P0_ tente sa chance des 20 mètres _P0_ [expédie|décoche] un tir en [bas|haut] à [droite|gauche] du montant _P0_ frappe à bout portant [Passe|Balle] [inspirée|lumineuse|exceptionnelle] de _P1_ qui envoie _P0_ dans un face à face avec le gardien Le ciseau retourné de _P0_ part en [bas|haut] à [gauche|droite] de la cage _P1_ laisse passer pour _P0_ qui envoie un missile en direction du but _P0_ reçoit un ballon dans le dos de la défense et frappe instantanément goal But !!! Et la balle finit au fond des filets !! _P0_ a marqué, quel talent !!! But !! Vous avez vu ça ? [Leur gardien|_P1_] n'a pas bougé ! Et [cette frappe|ce missile|ce boulet de canon] transperse _P1_ pour finir au fond des filets !!! Le ballon [siffle|vole|] en passant à côté de _P1_... et c'est le but !!! _P0_ tire entre les jambes du gardien et permet à son équipe de marquer ! Un but [magnifique|exceptionnel|incroyable|fantastique|époustouflant] !!! But !!! [Le plongeon désespéré|La détente] de _P1_ n'y changera rien, c'est au fond ! Oh là là quel but ! Ils n'oublieront pas ce but de si tôt ! _P0_ est aux anges et se met à danser. Il enflamme les supporters But! Il est évident que pour _T_TT_, la réussite est au RDV _T_TT_ [ouvre le score|est la première à marquer] aujourd'hui [Cette frappe|Ce but] a littéralement déchainé les supporters de _T_TT_ [Cette frappe|Ce but] met les deux équipes à égalité Egalisation de _T_TT_ ! Ca va être dur pour _T_TT__ de revenir dans la partie, maintenant La chance sourit désormais à _T_TT__ _T_POSS__ marque contre le cours du jeu Encore un coup dur miss Tir sans conviction qui passe très loin du but Quel [terrible|désastreux] loupé de _P0_ [il|_P0_] aurait dû cadrer ce ballon mais au lieu de cela manque largement sa cible [_P1_|La défense] réussit à écarter le danger _P0_ enroule trop sa balle et elle passe à côté Et [la balle|le tir] meurt tout proche du poteau _T_POSS__ a vendangé une belle occasion Oh quelle occasion manquée ! Des occasions manquées comme celles-là pourraient bien coûter cher à _T_POSS__ à la fin du match. Ca semblait pourtant bien parti pour _P0_. Il avait pourtant fait le plus dur mais il rate le plus facile Belle course, belle passe dommage que la récompense ne soit pas au bout ! Sur ce coup là, la chance n'était pas avec [_P0_|_T_POSS__] Il faut croire que les dieux ne sont pas avec [_P0_|_T_POSS__] Une tentative audacieuse mais qui n'est pas récompensée La réussite n'est pas au RDV de cette magnifique course C'est une vraie partie de billard mais le ballon ne rentre pas C'est parti n'importe où ! Dans les filets mais pas accordé. Le juge de ligne avait levé son drapeau pour un hors-jeu. _P0_ commence à se demander comment il doit s'y prendre pour marquer _T_POSS__ commence à se demander ce qu'ils doivent faire pour marquer ce soir save [Enorme frappe|Magnifique tir] de _P0_ mais [le gardien _P1_|_P1_] a sorti les gants en bêton _P1_ l'effleure du bout des doigts et le dévie juste ce qu'il faut Il y a un mur nommé _P1_. Quelle parade ! Arrêt facile pour _P1_ Le ballon [trouve le chemin des bras de _P1_|finit sa course dans les bras de _P1_]. Il peut respirer ! Sans problème pour _P1_. Il se saisit du ballon _P1_ dévie le tir de _P0_ au dessus de la barre transversale D'une claquette, _P1_ fait passer le ballon de _P0_ au dessus de la barre transversale Enorme [accélération|coup de rein|démarrage] de _P0_ mais _P1_ effectue un [incroyable|superbe] plongeon dans les pieds de l'attaquant [Frappe|Tir] à ras terre à [droite|gauche] mais bien captée par _P1_ [Frappe|Tir] à ras terre à [droite|gauche] mais _P1_ se couche bien sur le ballon _P1_ se saisie du ballon avec facilité _P1_ fait un superbe arrêt réflexe et écarte le ballon _P1_ [court en direction|fonce sur|sort sur] _P0_ et écarte le danger [du bout du pied|du bout des doigts|avec sa chaussure] _P1_ [court en direction|fonce sur|sort sur] _P0_ et [se couche dans ses pieds|se saisit du ballon] [Magnifique|Brillant|Sensationnel|Facile] arrêt du gardien Bien [sauvé|arrêté|stoppé] par _P1_ Oh [il|le goal|le gardien|_P1_] a bien anticipé le mouvement de _P0_ et du coup s'interpose sans problème C'était comme si c'était dedans, mais c'était sans compter le brio de _P1_, qui sauve la mise Frappe de _P0_ qui manque de puissance. Elle est captée facilement par _P1_ [_P1_|Le gardien] permet à _TL_ de rester dans le match start_match C'est la folie ici avec _AT_ spectateurs, alors que le coup de sifflet est donné Et c'est parti ! Les deux équipes sont [saluées|ovationnées] par les supporters alors qu'elles pénètrent sur le terrain C'est la bronca ici avec _AT_ spectateurs, alors que les joueurs sortent du tunnel On s'attend à un gros, gros match aujourd'hui ! Les [spectateurs|fans] de _AT_ ne devraient pas être déçus, le match promet L'arbitre fait un signe à ses juges de ligne et c'est parti [Le combat|La partie|Le match] va commencer L'arbitre est prêt, les joueurs en place, l'arbitre donne le coup d'envoi La brume des fumigènes commence à se dissiper et c'est parti ! Les équipes sont sensiblement du même niveau. Nous sommes partis pour [un bel affrontement|une belle bataille] _T[_TAVSKILL0_ LE _TAVSKILL1_]_ ont un léger avantage, mais sait-on jamais Il y a une grosse différence de niveau. Ca devrait être une promenade de santé pour _T[_TAVSKILL1_ GE _TAVSKILL0_]_ _T[_TAVSKILL0_ GE _TAVSKILL1_]_ ne devraient pas peser bien lourd _T[_TAVSKILL0_ LE _TAVSKILL1_]_ commencent la partie comme favoris Le clash des [gladiateurs|titans] [commence|est lancé] half_time C'est la mi-temps Ca fait donc _RE_ à la mi-temps. _RE_ à la mi-temps. L'entraineur de _TL_ doit trouver les mots pour remotiver son équipe. Ce sont des matches comme celà qui forment des entraineurs. _TL_ a besoin d'inspiration venant d'en haut. Les têtes tombantes en disent long. Ca n'a pas été une promenade de santé ici pour _TL_. L'entraineur de _TL_ se fait siffler par les supporters alors qu'il quitte la pelouse Pour l'instant l'équipe de _TW_ [a fait tout ce qu'il fallait|tient bien son résultat|gère bien la situation]. L'entraineur de _TL_ a l'air mécontent des performances de son équipe lors de cette première mi-temps _TL_ va devoir affronter [les réprimandes|la colère] de son entraineur Il est possible que _TL_ [prenne un savon|se fasse chauffer] par son entraineur _TW_ est à 45 minutes d'une belle victoire _TL_ s'engouffre dans le tunnel et [ça risque de chauffer pour eux|l'entraîneur pourrait bien leur passer une soufflante !] Une mi-temps que _TL_ devra vite oublier Une mi-temps que _TL_ devra vite oublier _T[_POSS1_ GE 70]_ a la possession du ballon, c'est limpide _T[_POSS1_ GE 60]_ a eu la meilleur possession cette mi-temps _T0_ a beau avoir une meilleure possession, _T1_ semble l'avoir mieux exploitée _T1_ a beau avoir une meilleure possession, _T0_ semble l'avoir mieux exploitée _T[_POSS1_ GE 75]_ semble être la seule équipe sur le terrain Hé bien, les défenses sont bien [verrouillées|en place], : [pas de but durant cette mi-temps|aucune équipe n'a trouvé le chemin des filets] _T0_ fait preuve d'un réalisme à toute épreuve : 100% de réussite ! _T1_ fait preuve d'un réalisme à toute épreuve : 100% de réussite ! C'est sur que ce n'est pas un match prolifique en buts mais il y aura eu beaucoup de frappes tout de même _T[_SHOTS0_ LE _SHOTS1_]_ a eu de nombreuses occasions de tuer cette rencontre _T[_SHOTS0_ LE _SHOTS1_]_ a eu _SHOTS[_SHOTS0_ LE _SHOTS1_]_ chances de [terminer|clore] cette partie Pas de but à la mi-temps et [peu de tirs|pas grand chose] à se mettre sous la dent Il y a deux équipes ici mais seulement [_T[_FOULS0_ GE _FOULS1_]_|une d'entre elles] joue réellement au football C'est à un bain de sang que nous assistons ce soir, pas à un match de football. [Tellement de|[_FOULS0_ + _FOULS1_]] fautes. L'arbitre va avoir besoin d'un nouveau calepin ! [Tellement de|[_FOULS0_ + _FOULS1_]] fautes. L'arbitre va avoir besoin d'un nouveau [sifflet|calepin|crayon] ! [Nous avons eu droit à |Déjà] [_PEN0_ + _PEN1_] penalties ! extra_time A l'issue d'un match serré la partie prend la direction des prolongations Toujours _RE_: prolongations Après _MI_ minutes le score est toujours de _RE_: prolongations Qui craquera le premier? Nous entrons dans les prolongations Tout va se jouer à la détermination et à la condition physique maintenant alors que nous nous dirigeons vers les prolongations penalties Qui aurait pensé il y a _MI_ minutes que ça finirait ainsi ? Et maintenant, nous tension monte d'un cran avec cette séance de penalties Deux équipes, parfaitement à égalité, se confrontent aux penalties Les deux équipes n'ont peu le faire, maintenant c'est un contre un. Buteur contre gardien Aucun but jusqu'à présent mais nous en voir plusieurs alors que nous nous dirigeons vers la séance de tirs au but end_match Le match est terminé! _TW_ l'emporte!! Les supporters huent _TL_ alors que les joueurs quittent le terrain Après _MI_ minutes le match se solde par _RE_ L'arbitre regarde sa montre et siffle la fin du match C'est terminé. Le résultat est _RE_ L'entraineur de _TW_ devrait être ravi par ce score _RE_, quel résultat surprenant pour _TW_ ! Un match nul. Un point c'est mieux que rien ! C'est fini. Le score est de _RE_ en faveur de _TW_ Eh bien, voici un match qui restera dans les mémoires ! _TL_ a sombré devant la ferveur offensive de _GD_. [_TW_ va sabrer le champagne ce soir.|Ca va chanter dans les vestiaires de _TW_|Ca va être la fête ce soir pour _TW_] [Quelle belle victoire|Quel incroyable résultat] pour _TW_ _TL_ était face à un géant et ce _RE_ le montre bien own_goal Oh non, Le ballon ricoche sur _P0_ et finit sa course au fond des filets C'est une partie de billard dans la surface, et finalement _P0_ frappe en pivot et marque Quelle superbe frappe qui est déviée au fond des filets _P0_ donne le ballon à son gardien. Oh non, le gardien manque la balle! C'est un but contre son camp de _P0_! Cette mésentente a couté un but à _T_TT__ header _P1_ pique son ballon vers _P0_ qui le reprend de la tête Tête plongeante de _P0_ Alors qu'il flottait littéralement dans les airs, _P0_ plaça sa tête _P0_ s'élève plus haut que tout le monde La balle attérit sur l'arrière du crâne de _P0_ ! Tête [piquée|puissante|croissée] de _P0_ en direction des cages Cette longue transversale trouve la tête de _P0_ post Belle frappe de _P0_ qui touche le poteau [droit|gauche] Et ce tir s'écrase sur la base du poteau Je suis surpris que le poteau ait supporté une telle mine ! cross_bar Le ballon lobe _P1_ mais frappe la barre pour rebondir dans les pieds d'un défenseur Le ballon heurte la barre transversale alors que _P1_ n'avait pas bougé _P1_ semble être partout à la fois, finalement sa frappe heurte la barre transversale La barre transversale de _P1_ en tremble encore Oh là là quelle mine sur la barre de _P1_ ! penalty _P0_ s'avance pour tirer son penalty _P0_ à l'opportunité de marquer avec ce penalty _P0_ a la chance d'apaiser les doutes de _T_POSS__ avec ce penalty Est-ce que [_P0_|_T_POSS__] peut convertir cette occasion ? Vous devez controler vos nerfs, avalez votre salive et vous concentrer lorsque vous tirez un penalty _T_POSS__ semblent jouer pour obtenir des penalties. _T_POSS__ peuvent se détacher s'ils convertissent cette occasion _P0_ peut tuer le match avec ce tir _P0_ : Un penalty de dernière minute pourrait faire aboutir à un match nul _T_NPOSS__ a perdu une belle occasion pour _T_POSS__ de revenir dans la partie _P0_ peut clore la rencontre en marquant free_kick Coup franc de _P0_ joué court _P0_ frappe le coup franc en force à ras-terre _P0_ enroule son coup franc à côté du mur _P0_ enroule son coup franc au dessus du mur Coup franc : _P0_ le joue dans la largeur Coup franc : _P0_ frappe un long ballon en avant foul_yellow _P1_ pour tackle glissé dangereux sur _P0_ _P1_ pour faute sur _P0_ _P1_ pour avoir dégagé le ballon _P1_ pour anti-jeu _P1_ pour avoir discuté les décisions de l'arbitre _P1_ pour une main _P1_ pour avoir empêché _P0_ de jouer son coup franc rapidement foul_red _P1_ est expulsé pour avoir décollé les deux pieds lors d'un tackle dangereux _P1_ retourne au vestiaire avant ses camarades pour avoir une fois de plus contesté une décision _P1_ pour geste extrêmement dangereux _P1_ pour une main intentionnelle et bien inutile! _P1_ pour une faute évidente alors qu'il était dernier défenseur _P1_ prend un carton rouge pour avoir frappé _P0_ _P1_ pour avoir insulté les supporters adverses foul_red_injury _P1_ commet une faute alors que le soigneur se précipite vers _P0_ qui est étalé dans l'herbe Faute de _P1_; _P0_ semble blessé... il pourrait être remplacé send_off _P0_ a été expulsé _P0_ est expulsé. _T_TT__ compte désormais un homme un moins injury _P0_ va devoir quitter les siens après ce qui semble être une entorse de la cheville _P0_ semble [gravement blessé|durement touché] Le soigneur vient de jeter un oeil et _P0_ est finalement emmené hors du terrain temp_injury _P0_ s'est tordu la cheville mais devrait pouvoir tenir sa place sur le terrain _P0_ a prit un petit coup _P0_ semble avoir des crampes _P0_ s'est étiré un muscle : il peut reprendre la partie _P0_ reçoit des soins et reprend le match _P0_ s'est ouvert l'arcade sourcilière mais a été pansé et sera capable de reprendre sa place stadium_breakdown _T0_ semble avoir des problèmes avec son stade Les projecteurs viennent tout juste de [s'éteindre|rendre l'âme] Un brouillard très dense perturbe la partie dans le stade de _T0_ stadium_riots C'est la révolte des supporters Et les supporters jètent des fumigènes sur le terrain La police anti-émeute s'est déplacée pour stopper des affrontements entre bandes de supporters Un supporter a réussi à s'introduire sur le terrain et a tenté de s'en prendre à l'arbitre Les supporters se ruent sur le terrain dans une invasion de grande ampleur stadium_fire Le feu ravage [le stade|les tribunes] de _T_TT__ Des supporters sur le départ ont mis le feu à la partie Nord du stade Un fumigène atterissant vers la touche est à la limite de déclancher un feu Un haut-parleur a été réduit en fumée alors que le feu s'étend à tout le stade substitution _T_TT__ fait un changement : _P0_ rentre et remplace _P1_ _T_TT__ a besoin de sang neuf. _P0_ rentre et remplace _P1_ _P1_ sort, applaudi par les supporters. _P0_ le remplace _P1_ semble mécontent alors qu'il se fait remplacer par _P0_ _P0_ se lève du banc pour remplacer _P1_ _P0_ rentre à la place de _P1_ structure_change _T_TT__ a changé leur structure vers _EX_ _T_TT__ se restructurent en formation _EX_ style_change _T_TT__ a changé leur style en _EX_ _T_TT__ change pour un style _EX_ _T_TT__ essaie de trouver l'ouverture en attaquant _T_TT__ changeant pour _EX_ se relâche un peu Dernier effort : _T_TT__ change pour _EX_ _MR_ minutes restantes. _T_TT__ essaie de changer de tactique avec un style _EX_ Changement de style à la mi-temps pour _T_TT__ qui passe en _EX_ boost_change _T_TT__ a changé leur boost à _EX_ C'est comme si _T_TT__ avaient abandonné _T_TT__ a passé la seconde Boost activé. _T_TT__ lancent leurs dernières forces dans la bataille bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_pl.xml0000644000175000017500000005612211225071372023764 0ustar eliaselias general _P1_ i _P0_ [rozgrywajÄ… piÅ‚kÄ™ miÄ™dzy sobÄ…|wyprowadzajÄ… akcjÄ™] _P1_, po [drugiej|prawej|lewej] stronie boiska _P0_ _P1_, jest [tam|na pozycji|z przodu|obok] _P0_ _P1_ podaÅ‚ [odrobinÄ™ ||trochÄ™ |troszkÄ™ ][niedokÅ‚adnie|za sÅ‚abo|za mocno], ale _P0_ [daÅ‚ sobie radÄ™|opanowaÅ‚ piÅ‚kÄ™|doszedÅ‚ do podania|sobie poradziÅ‚] _P1_ przerzuca piÅ‚kÄ™ na [lewÄ… stronÄ™|prawÄ… stronÄ™|drugÄ… stronÄ™|Å›rodek boiska], [ma jÄ… teraz|gdzie czeka|gdzie jest|jest tam] _P0_ _P1_ zostawia piÅ‚kÄ™, przejmuje jÄ… _P0_ _P1_ biegnie z piÅ‚kÄ…, _P0_ wychodzi na pozycjÄ™ _P0_ [rozglÄ…da siÄ™|patrzy], [komu podać|do kogo podać|gdzie sÄ… partnerzy] _P0_ [opanowuje|przyjmuje] [podanie|piÅ‚kÄ™] _P0_ biegnie z piÅ‚kÄ… _P0_ przedziera siÄ™ [lewÄ… stronÄ…|prawÄ… stronÄ…|Å›rodkiem] boiska _P0_ [próbuje|usiÅ‚uje|stara siÄ™] [podać do przodu|minąć rywala|wyprowadzić akcjÄ™] DÅ‚ugÄ… piÅ‚kÄ™ przejmuje _P0_ Przerzut na drugÄ… stronÄ™, gdzie wychodzi na pozycjÄ™ _P0_ Przy piÅ‚ce _P0_ [Przerzucenie|Przerzut] piÅ‚ki na [drugÄ…|lewÄ…|prawÄ…] stronÄ™[| boiska] [Znakomite|Dobre|Ciekawe|Bardzo dobre] rozciÄ…gniÄ™cie gry Podanie na [lewe |prawe |drugie ||]skrzydÅ‚o _T_TT__ rozgrywa piÅ‚kÄ™ Trwa walka w Å›rodku pola _P0_ próbuje jeszcze [zmobilizować|poderwać|zachÄ™cić] kolegów do walki Zdecydowana przewaga gospodarzy _TW_ _MT_ min. od zwyciÄ™stwa w meczu _TL_ ma jeszcze _MT_ min. na wyrównanie Jeszcze _MT_ min. nadziei gospodarzy na wyrównanie _TW_ nie da sobie chyba [wydrzeć|odebrać] zwyciÄ™stwa[| w tym meczu] Mecz jest już [chyba|zapewne|prawdopodobnie] rozstrzygniÄ™ty _T[_POSS1_ G _POSS0_]_ mimo dużej przewagi nadal nie może strzelić bramki Nadal [bez|nie ma|nie zobaczyliÅ›my] bramek w meczu _T0_-_T1_ Już _MI_ min. za nami, a żadna z drużyn nie oddaÅ‚a jeszcze strzaÅ‚u na bramkÄ™ lost_possession Nie zdążyÅ‚ do piÅ‚ki _P1_ _P0_ [przejmuje|zabiera|odbiera] piÅ‚kÄ™ _P1_ nie opanowuje piÅ‚ki, przejmuje jÄ… _P0_ _P0_ jest szybszy niż _P1_ _P1_ [źle|niedokÅ‚adnie|fatalnie] podaje i do piÅ‚ki dochodzi _P0_ _P1_ podaje prosto pod nogi rywala _P0_ wybija piÅ‚kÄ™[| wÅ›lizgiem] _P0_ dopada [bezpaÅ„skiej |]piÅ‚ki _P1_ [za daleko|zbyt mocno] wypuszcza sobie piÅ‚kÄ™, [dobiega do niej|pierwszy jest przy niej] _P0_ _P1_ traci piÅ‚kÄ™ _P0_ odbiera piÅ‚kÄ™ rywalowi Pojedynek _P1_ - _P0_ wygrywa _P0_ _P1_ rozpoczyna akcjÄ™ _P1_ biegnie do piÅ‚ki, ale _P0_ jest szybszy _P1_ jest już wyraźnie zmÄ™czony i niedokÅ‚adnie przyjmuje piÅ‚kÄ™ scoring_chance Nie pilnowany _P0_ na polu karnym! Nie wiadomo, czy _P0_ chciaÅ‚ doÅ›rodkować, czy strzelać Próbuje strzelać _P0_ _P0_ biegnie z piÅ‚kÄ… [w kierunku|w stronÄ™] bramki _P0_ decyduje siÄ™ na strzaÅ‚ _P0_ drybluje [w polu karnym|przed polem karnym] _P0_ mija [obroÅ„cÄ™|obroÅ„ców] [zwodem|i strzela|w peÅ‚nym biegu|i wpada w pole karne!] _P0_ [jest |]na [czystej |znakomitej |]pozycji! _P1_ podaje do przodu, _P0_ jest pod bramkÄ…! _P0_ [próbuje strzelać|strzela|bÄ™dzie strzelaÅ‚] z [daleka|dystansu|linii pola karnego|20 metrów] _P0_ przed szansÄ…! _P0_ skÅ‚ada siÄ™ do strzaÅ‚u _P0_ strzela [po ziemi|z ostrego kÄ…ta|z najbliższej odlegÅ‚oÅ›ci!] _P1_ [Å›wietnie|znakomicie|dobrze] doÅ›rodkowuje, _P0_ bÄ™dzie sam na sam z bramkarzem! _P0_, [wyÅ›mienita|dobra|znakomita] okazja dla [drużyny|zespoÅ‚u] _T_TT__! _P1_ wrzuca piÅ‚kÄ™ w pole karne, dopada do niej _P0_ Zamieszanie pod bramkÄ… gospodarzy! Zamieszanie pod bramkÄ… goÅ›ci! _P0_ ma szanse na wyrównanie! _P0_ przed szansÄ… na zdobycie prowadzenia! Kibice gospodarzy zamarli! _P0_ przed szansÄ… na powiÄ™kszenie prowadzenia! header _P1_ [wrzuca piÅ‚kÄ™ na pole karne|w pole karne], _P0_ [główkuje|skacze do piÅ‚ki!] [Zamieszanie pod bramkÄ…, |]_P0_ [skacze do piÅ‚ki!|trafia piÅ‚kÄ™ gÅ‚owÄ…!|główkuje!] goal Bramka!!! Gol!!! PiÅ‚ka wpada do [bramki|siatki]!!! _P0_ zdobywa bramkÄ™!!! _P0_ podnosi rÄ™ce do góry po wspaniaÅ‚ej bramce!!! _P0_ i _RE_!!! I _P1_ może tylko wyjąć piÅ‚kÄ™ z bramki!!! _P1_ nie siÄ™ga piÅ‚ki, która wpada do [bramki|siatki]!!! _P1_ przepuszcza piÅ‚kÄ™ pod nogami i _RE_!!! _P1_ nie ma szans!!! _P1_ spóźniÅ‚ siÄ™ z interwencjÄ… i jest bramka!!! _P1_ popeÅ‚nia błąd i _T_TT__ zdobywa bramkÄ™!!! _P0_ nie marnuje takich okazji!!! _P0_ zdobywa swojÄ… kolejnÄ… bramkÄ™ w tych rozgrywkach!!! _P0_ podwyższa na _RE_!!! Radość [na trybunach|kibiców gospodarzy], _P0_ zdobywa bramkÄ™!!! _P0_ i _T_TT__ obejmuje prowadzenie!!! Owacje na trybunach, _P0_ strzela gola!!! Remis!!! _P0_ zdobywa wyrównujÄ…cÄ… bramkÄ™!!! _T_TT__ zdobywa kontaktowÄ… bramkÄ™!!! _T_TT__ zdobywa honorowÄ… bramkÄ™! _P0_ zdobywa swojÄ… _PLGOALSALL0_ bramkÄ™ w tym sezonie!!! A wiÄ™c jednak remis!!! Wyrównanie w ostatnich minutach meczu!!! Wreszcie bramka!!! miss _P0_ nie trafia w bramkÄ™! _P0_ powinien zdobyć bramkÄ™ ObroÅ„ca wybija piÅ‚kÄ™ z linii bramkowej _P0_ nie trafia czysto w piÅ‚kÄ™ ObroÅ„ca blokuje strzaÅ‚ _P0_ trafia w bocznÄ… siatkÄ™ StrzaÅ‚ przelatuje [tuż |]obok [sÅ‚upka|bramki] Niecelny strzaÅ‚ Nie ma [bramki|gola]! PiÅ‚ka [poszybowaÅ‚a|przelatuje] [metr |tuż |wysoko |]nad poprzeczkÄ… [ZabrakÅ‚o|BrakowaÅ‚o] [kilkudziesiÄ™ciu|tylko|kilku] centymetrów! [Jakim cudem|Jak to możliwe, że] to nie wpadÅ‚o do bramki?! [Ależ|Cóż za|Co za|Ale] [wybornÄ… |cudownÄ… | znakomitÄ… |Å›wietnÄ… |][okazjÄ™|szansÄ™|sytuacjÄ™] [zmarnowaÅ‚|miaÅ‚] _P0_! _P0_ miaÅ‚ [Å›wietnÄ…|znakomitÄ…|wymarzonÄ…] okazjÄ™ [do wyrównania|na wyrównanie] JÄ™k zawodu [kibiców gospodarzy|na trybunach|za bramkÄ… goÅ›ci] penalty Rzut karny! _P0_ bÄ™dzie wykonywaÅ‚ rzut karny! SÄ™dzia pokazuje na [jedenasty metr|rzut karny]! SÄ™dzia nie ma wÄ…tpliwoÅ›ci - karny! BÄ™dzie rzut karny! _P0_ [podchodzi do piÅ‚ki|podchodzi do linii pola karnego|ustawia piÅ‚kÄ™ na jedenastym metrze] _P0_ bÄ™dzie [strzelaÅ‚|strzelać|wykonywaÅ‚] [nastÄ™pny|kolejny|ten] rzut karny _P0_ [przed szansÄ… na zdobycie prowadzenia] free_kick Krótko rozegrany rzut wolny Rzut wolny: wykonuje _P0_ Rzut wolny: _P0_ [trafia w mur|wznawia grÄ™|mocno uderza piÅ‚kÄ™|doÅ›rodkowuje|przerzuca piÅ‚kÄ™ nad murem] _P0_ [rozpoczyna z rzutu wolnego|doÅ›rodkowuje z rzutu wolnego] save _P1_ wybija piÅ‚kÄ™ [czubkami palców|na rzut rożny|na aut|na róg] [_P1_|_P1_|_P1_|Bramkarz] [Å‚atwo|bez trudu|bez problemów|znakomicie|cudem|z trudem] [Å‚apie piÅ‚kÄ™|chwyta piłę|wybija piÅ‚kÄ™|broni] _P1_ nie ma [żadnych |dużych |specjalnych ||][problemów|kÅ‚opotów] z obronÄ… [_P1_|_P1_|Bramkarz] [Å‚atwo |znakomicie |Å›wietnie |dobrze |bardzo dobrze |]broni _P1_ [byÅ‚|jest] na miejscu [Åatwo|Znakomicie|Åšwietnie|Dobrze|Bardzo dobrze] broni _P1_ Nie ma problemów _P1_ [Pewnie|Dobrze] interweniuje _P1_ [Jak ten|Jakim cudem] _P1_ to zÅ‚apaÅ‚? _P0_ Å‚atwo powstrzymany przez bramkarza [Za sÅ‚aby strzaÅ‚|NiedokÅ‚adny strzaÅ‚|StrzaÅ‚ w Å›wiatÅ‚o bramki], _P1_ nie ma problemów z obronÄ… own_goal _P0_ zbyt mocno podaje do bramkarza - bramka samobójcza! _P0_ stoi na linii strzaÅ‚u, piÅ‚ka odbija siÄ™ od niego i _RE_! StrzaÅ‚ odbija jeszcze _P0_ i piÅ‚ka jest w bramce! _P0_ kieruje piÅ‚kÄ™ do wÅ‚asnej bramki! Nieporozumienie miÄ™dzy obroÅ„cÄ… i bramkarzem drużyny _T_TT__ i _RE_! post _P0_ trafia w sÅ‚upek! SÅ‚upek! PiÅ‚ka uderza w sÅ‚upek! cross_bar PiÅ‚ka trafia w poprzeczkÄ™ i [wraca na|wychodzi poza] boisko Poprzeczka! _P1_ wybija piÅ‚kÄ™, która odbija siÄ™ od poprzeczki i [wraca na|wychodzi poza] boisko Spojenie sÅ‚upka i poprzeczki! foul _P1_ fauluje _P0_ faulowany Brutalny faul przerywa akcjÄ™ _P1_ trafiÅ‚ w [kostkÄ™|nogÄ™|Å‚ydkÄ™] rywala, zamiast w piÅ‚kÄ™ _P0_ pada na trawÄ™ po faulu _P0_ powoli podnosi siÄ™ po brutalnym wejÅ›ciu przeciwnika SÄ™dzia uznaÅ‚, że faulowaÅ‚ _P1_ _P1_ [nieprzepisowo|niezgodnie z przepisami] atakuje przeciwnika SÄ™dzia odgwizduje faul, poszkodowany _P0_ _P0_ leży na ziemi po starciu z przeciwnikiem _T_TT__ gra dzisiaj brutalnie - to już _FOULS_TT__ faul Gwizdy na trybunach, kibice uważajÄ…, że _P1_ nie faulowaÅ‚ foul_yellow _P1_ za [kłótniÄ™|dyskusjÄ™] z sÄ™dziÄ… _P1_ za [zÅ‚oÅ›liwy|niebezpieczny] faul _P1_ za [symulowanie faulu|zbyt ostre wejÅ›cie|za nieprzepisowe zagranie|niesportowe zachowanie] _P1_ za próbÄ™ wymuszenia rzutu [karnego|wolnego] _P1_ za zÅ‚apanie rywala za [koszulkÄ™|spodenki] _P1_ otrzymuje _PLYELLOWS_ żółtÄ… kartkÄ™ w tych rozgrywkach _P1_ nie zagra w nastÄ™pnym spotkaniu _P1_ za [opóźnianie gry|grÄ™ na czas|wybicie piÅ‚ki po gwizdku sÄ™dziego] foul_red _P1_ za [brutalny |zÅ‚oÅ›liwy |niebezpieczny |]faul _P1_ za [oplucie|podciÄ™cie|uderzenie] [rywala|przeciwnika] _P1_ za celowe zagranie rÄ™kÄ… _P1_ za atak z tyÅ‚u na nogi przeciwnika _P1_ za faul na przeciwniku wychodzÄ…cym na czystÄ… pozycjÄ™ _P1_ za [atak na|uderzenie] sÄ™dziego _P1_ za faul [po gwizdku sÄ™dziego|bez piÅ‚ki] foul_red_injury _P1_ bezpardonowo podcina zawodnika przy piÅ‚ce; _P0_ pada na murawÄ™ _P1_ brutalnie fauluje; _P0_ leży na boisku _P0_ zwija siÄ™ z bólu, a _P1_ za chwilÄ™ zobaczy czerwonÄ… kartkÄ™ send_off _P0_ zostaÅ‚ wyrzucony z boiska _P0_ opuÅ›ci boisko z czerwonÄ… kartkÄ… _P0_ zobaczyÅ‚ czerwonÄ… kartkÄ™ _T_TT__ bÄ™dzie grać w osÅ‚abieniu, _P0_ zostaÅ‚ wyrzucony z boiska injury _P0_ musi opuÅ›cić boisko _P0_ odniósÅ‚ poważnÄ… kontuzjÄ™ _P0_ znoszony z boiska na noszach _P0_ nie bÄ™dzie w stanie kontynuować gry _P0_ nie podnosi siÄ™ po faulu Potrzebna bÄ™dzie zmiana, _P0_ leży na boisku temp_injury _P0_ nadciÄ…gnÄ…Å‚ miÄ™sieÅ„ _P0_ chyba odniósÅ‚ jakÄ…Å› kontuzjÄ™ _P0_ ucierpiaÅ‚ w starciu z rywalem _P0_ opatrywany przez [lekarza|lekarzy|masażystów] _P0_ lekko utyka _P0_ odniósÅ‚ kontuzjÄ™, ale [chyba|wyglÄ…da, że] zmiana nie [jest|bÄ™dzie] [niezbÄ™dna|konieczna] WyglÄ…da, że _P0_ jest lekko kontuzjowany start_match _AT_ osób na stadionie na meczu _T0_-_T1_ Mecz _T0_-_T1_ Å›ledzi na stadionie _AT_ osób Mecz rozpoczÄ™ty! Gospodarze powitani owacjÄ… kibiców SÄ™dzia odgwizduje poczÄ…tek meczu Drużyny wybiegajÄ… na boisko Zaczynamy! Po konsultacji z liniowymi sÄ™dzia główny rozpoczyna mecz _T[_TAVSKILL1_ > _TAVSKILL0_]_ jest zdecydowanym faworytem tego meczu _T[_TAVSKILL0_ > _TAVSKILL1_]_ zmierzy siÄ™ dziÅ› ze znacznie silniejszym przeciwnikiem half_time Koniec pierwszej poÅ‚owy [Do przerwy|Po pierwszej poÅ‚owie] [niespodziewanie|nieoczekiwanie] prowadzi _TW_ [Do przerwy|Po pierwszej poÅ‚owie] [niespodziewanie|nieoczekiwanie] prowadzÄ… goÅ›cie Po pierwszej poÅ‚owie _RE_ Bez bramek do przerwy _RE_ do przerwy _TL_ przegrywa do przerwy _TW_ prowadzi po pierwszych 45 minutach _TW_ na razie wyraźnie przeważa _T[_POSS1_ G _POSS0_]_ wyraźnie przeważa, ale nie może zdobyć prowadzenia extra_time Dogrywka! Nadal _RE_ - bÄ™dzie dogrywka Po _MI_ minutach nadal _RE_ - potrzebna jest dogrywka Koniec regulaminowego czasu, za chwilÄ™ dogrywka W regulaminowym czasie żadna z drużyn nie zdobyÅ‚a bramki - zatem dogrywka penalties Karne! Dogrywka nie przyniosÅ‚a rozstrzygniÄ™cia, a wiÄ™c karne Karne - próba nerwów Karne - kto pomyli siÄ™ pierwszy? Å»adna z drużyn nie potrafiÅ‚a strzelić bramki z gry - a wiÄ™c karne end_match Koniec meczu: _RE_ [Koniec:|Koniec meczu:] _T0_ : _T1_ : _RE_ Koniec meczu! _TW_ wygrywa _GOALS_TWN__:_GOALS_TLN__ [Koniec:|Koniec meczu:] spotkanie _T0_ - _T1_ koÅ„czy siÄ™ wynikiem _RE_ Po _MI_ minutach mecz koÅ„czy siÄ™ rezultatem _RE_ I gwizdek sÄ™dziego koÅ„czy mecz! SÄ™dzia patrzy na zegarek i odgwizduje koniec meczu Ostatni gwizdek sÄ™dziego, _RE_! Koniec! _RE_, _TW_ zwycięża Remis w meczu dwóch równorzÄ™dnych drużyn _TW_ odnosi zdecydowane zwyciÄ™stwo Koniec meczu! Remis Kibice gospodarzy żegnajÄ… swojÄ… drużynÄ™ gwizdami _TW_ odnosi [niespodziewane|nieoczekiwane|zaskakujÄ…ce] zwyciÄ™stwo! _TW_ [odnosi sensacyjne zwyciÄ™stwo|nieoczekiwanie pokonuje faworyta]! Drużyna _TW_ miaÅ‚a mniej okazji, ale potrafiÅ‚a je wykorzystać Niestety, nie zobaczyliÅ›my bramek w tym meczu stadium_breakdown Pewne problemy techniczne na stadionie WÅ‚aÅ›nie zgasÅ‚y Å›wiatÅ‚a na stadionie stadium_riots Kibice wszczÄ™li burdÄ™! Kibice wbiegajÄ… na murawÄ™! Na boisko lecÄ… petardy! Butelka leci w kierunku sÄ™dziego! Kibice obu drużyn zaczynajÄ… bić siÄ™ miÄ™dzy sobÄ…! stadium_fire Na stadionie wybuchÅ‚ pożar! Kibice goÅ›ci podpalili trybunÄ™ północnÄ…! Na trybunach wybuchajÄ… pÅ‚omienie! Dym unosi siÄ™ nad stadionem! substitution _T[_TT_]_ dokonuje zmiany: wchodzi _P0_, schodzi _P1_ _P1_ [schodzi z boiska|opuszcza boisko], [zastÄ™puje go|zastÄ…pi go|w jego miejsce wchodzi] _P0_ Schodzi _P1_, wchodzi _P0_ Zmiana na zyskanie czasu: wchodzi _P1_, schodzi z niego _P0_ structure_change _T_TT__ zmienia ustawienie na _EX_ _T_TT__ [bÄ™dzie grać|gra teraz] w ustawieniu _EX_ style_change _T_TT__ zmienia styl na _EX_ boost_change _T_TT__ zmienia mobilizacjÄ™ na _EX_ bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_en.xml0000644000175000017500000010555311225071372023756 0ustar eliaselias general _P1_ passes _P0_ _P1_ to _P0_ _P1_ feeds a [wonderful|terrific|great|brilliant] ball through to _P0_ A delightful little [ball|pass] finds _P0_ A flick on from _P1_ waits for the one two A neat dummy run and pass Great footwork, a clever pass _P1_ drops the ball at _P0_'s feet A lofted pass from _P1_ finds its mark _T_POSS__ are on the attack _T_NPOSS__ are on the [defence|backfoot] An [outstanding|accurate] cross finds _P0_ Now _T_POSS__ can mount a challenge through _P0_ A ball in by _P1_ [finds|taken by] _P0_ _P1_ [threads|needles] [a great|the] ball to _P0_ A [lovely|superb|long|nifty] pass from _P1_ releases _P0_ A [long|short|slow] floating pass from _P1_ finds _P0_ A [good|great|clever] passing move across the pitch and down the [right|left] A [quick|well-timed] passing [flick|move] down the [left|right] _P0_ slips past his man and [collects|latches onto] _P1_'s perfectly [timed|weighted] cross. Another [clever|brilliant|thinking|decent] move [down the wing|through the centre|across the pitch] _P0_ [collects|latches onto] _P1_'s [through ball|pass] _P1_ [threads|needles] [it|the ball] through the [opponent's|player's] [feet|legs] and finds _P0_ _P1_ [traps|controls] [it|the ball] with his [boot|heel|chest|thigh] and [sends it|passes|flicks on] to _P0_ _P1_ [lobs|heads] the ball towards _P0_ _P0_ twisting and turning again _P0_ twisting desperately to lose his man _P0_ rips [up|through] the [centre|midfield] _P0_ [loses|spins past|dribbles past] his [man|marker] A draw would be a good result for the outmatched _T[_TAVSKILL0_ GE _TAVSKILL1_]_ _TW_ need to buckle down and just hold on for a few more minutes _T_POSS__ need to [get the ball up front more|create more chances|show a bit more spark up front] Only [_SHOTS0_ + _SHOTS1_] shots: [it's a battle in the midfield|neither side is really trying] Only 1 shot: [it's a battle in the midfield|neither side is really trying] _MI_ minutes on the clock, and chances from both teams already Terrific skills on display We enter the dying moments of normal time [So many|[_FOULS0_ + _FOULS1_]] fouls. The ref's gonna need a new [pea for his whistle|book|pencil]! Sure, it's not over till the fat lady sings, but she's warming up right now lost_possession It's knocked out by _P1_. _P0_ with the throw. _P1_ dispossessed _P1_ dispossessed by _P0_ [_P1_ gives the ball|The ball is given] away [carelessly|cheaply|too easily] _P1_ takes it over the line. A throw-in to _T_POSS__ A [wild|poor|subpar] pass by _P1_ results in a throw-in for _T_POSS__ _P0_ takes a quick throw-in A long throw-in from _P0_ The slide tackle by _P0_ was worthy of topflight baseball. A heavy ball uncontrolled by _P1_ _P0_ wins the ball with a [perfectly timed|hard] challenge _T_NPOSS__ [gives the ball away|loses the ball too quickly] Bad control by _P1_ lets _P0_ steal the ball from him _P0_ [steals|takes|snatches] the ball away from _P1_ with a sliding tackle A loose ball [falls|bounces] straight to _P0_ A crunching tackle by _P0_ who [comes away with|wins] the ball _P1_ is left stranded as _P0_ takes the ball _P0_ makes a great interception _P0_ gatecrashes _P1_'s party and comes away with the prize That wasn't _P1_'s greatest pass as _P0_ intercepts foul [Oww|Ouch|Aye korumba], that was a nasty tackle on _P0_ Surely [that must be a sending-off offence|_P1_'s going to get booked for that]? _P1_ [knocks|bowls|crashes] over _P0_ with a double-footed lunge A [nasty|crunching|fierce] challenge on _P0_ _P0_ gets his legs taken away from him by _P1_ A [slicing|nasty|pulverising] challenge by _P1_ on _P0_ A [vicious|hard] tackle from _P1_ leaves _P0_ lying on the grass in agony _P1_ clinically takes out _P0_ and leaves him in agony They don't call _P1_ [the Slayer|the Assassin|Killer|Chopper Reid] for nothing. He's almost [wiped out|run over] [the guy|_P0_]! Ouch! That's got to hurt _P0_ is on the ground, and he's not smiling I don't know about _P0_, but that tackle brought tears to my eyes A dangerously high boot from _P1_ sends _P0_ to the ground _P1_'s black belt in [Karate|Taekwondo|Jujitsu] came in handy then, when he floored _P0_ _P1_ just lost his patience and [took|knocked] _P0_ to the ground. _P0_ takes the full brunt of _P1_'s challenge. _P0_ tried to absorb that tackle, but it's too much for the ref The ref played the advantage but eventually had to signal the foul on _P0_ Frustration is setting in when you start to see fouls like that. That's what's known as a professional foul _P0_ tries to run off a harsh challenge _P1_ with a bone-crunching tackle. Surely, he won't get away with that. scoring_chance _P0_ [infiltrates|sneaks through] the defence and [hammers|cracks] it A deep cross floats in from _P1_, and _P0_ [slots it towards goal|fires] _P0_ charges towards goal and [fires|unleashes|stabs|shoots]! _P0_ spins and shoots A blazing [shot|strike] from _P0_ _P0_ finds some space and tries his luck. A wonderful opportunity opens up for _T_POSS__ A long ball from _P1_ finds _P0_ at the [near|far] post _P0_ [has fluffed it|can't control it|snaps a shot], and his miskick heads [toward goal|goalward] His [great|excellent] first touch heads it goalwards _P0_ takes it on the volley and [hammers|nails|plants] it towards goal _P0_ takes it on the volley from _P1_'s pass pushing goalwards _P0_ [fires|shoots|blasts it|hammers it] from [22|20|18|15] yards; looks like it's [drifting|curving|spinning|going wide] _P0_ [drifts|dribbles|runs|rushes|strolls|slips|sneaks] into the box, turns inside the defence and fires _P0_ [drifts|crashes|cuts] in from the [right|left] flank and [strikes|shoots|fires] _P0_ tries his luck from [30|25] yards _P0_ [snaps|arrows|beams] a shot towards the [bottom|top] [right|left] corner _P0_ shoots from close range A [classy|great|brilliant] [pass|ball] from _P1_ sends _P0_ one on one with the [keeper|goalkeeper|goalie] _P0_'s [scissor|overhead] kick heads towards the [bottom|top] [left|right]-hand corner _P0_ [waltzes|spins|drifts|rips] past two defenders, [dummies|wrong-foots] the keeper and [flicks|back-heels|clips] the ball [home|towards goal|goalward] _P1_ lays the ball off to _P0_, who [sends a rocket|fires a piledriver] towards goal _P0_ charges in with a shot A lay-off from _P1_ sets up _T_POSS__ with a chance _P0_ gets in behind the defence and strikes goal Goal!!! And the ball is smacked into the back of the net!!! _P0_ scores!!! Goal!! Did you see that? [Their goalie|_P1_] certainly didn't. And the ball [rips|flies|glides|bullets] straight past _P1_ and into the back of the net!!! The ball [whistles|flies|zips|whooshes] past _P1_, and it's a goal!!! _P0_ wheels away in celebration What a [mesmerising|marvellous|wonderful|fantastic|brilliant|spectacular] goal!! Goal!! _P1_'s [desperate|despairing|stretched] dive can't keep _P0_'s shot out The ball [lies|is] in the back of the net!!! Celebrations abound! They won't forget that [goal|strike|shot] in a hurry _P0_'s dance [ignites|sparks] the fans. He celebrates in his [well-known|own|peculiar|special|unique] fashion Goal! A dipping ball from _P0_ stuns [the keeper|_P1_|_T_NPOSS__] An outstanding Goal! Goal! Lady Luck obviously supports _T_TT__ A [curving|hard, inswinging|outswinging|swerving] ball beats _P1_ to the line. Goal! _T_TT_ [take first blood|are first to open the account] today That [strike|goal] has sent the _T_TT_ fans [wild|into a frenzy] That [strike|goal] has levelled the score _T_POSS__ have struck [pay dirt|gold]. What a goal! Can _T_TT__ produce a [shock|surprise] comeback? Lady Luck is smiling on _T_TT__ now _T_POSS__ score against the run of the play That's just another nail in the coffin miss [He|_P0_] [fired|drifted it] wide! A wandering shot heads awall _P0_'d like to run and hide after that [shocking|dreadful|calamitous|disastrous|awful|terrible] miss [He|_P0_] should have squared the ball there, but he went alone and lashed wide [_P1_|Defender] clears _P0_ [pushes|curls] the ball over A defender back to block, just as it seemed to open up _P0_ [thumps|smacks|fires] it into row Z And the [ball|shot] creeps just past the post That was never really going in. Oh, what a chance lost! Lost opportunities like that can cost _T_POSS__ the match. It looked so promising for _P0_ then. He'd done all the hard work, but he couldn't finish it off So near yet so far So nearly going goalward _T_POSS__ have squandered [a great|their] chance there. A great run and delivery but no reward Lady Luck has turned her back on [_P0_|_T_POSS__] That's a real let-off there for _T_NPOSS__ An audacious attempt, worthy but no payment There was no gold at the end of that rainbow run The ball [pinballs|bounces] around the penalty area but finds no way in That went everywhere except into the net The ball is in the net, but it's disallowed. The offside flag was raised. _P0_ is beginning to wonder what he has to do to score _T_POSS__ are beginning to wonder what they have to do to score save A sizzling [strike|shot], but [the keeper|the goalie|_P1_] [has asbestos gloves|is sharp enough] _P1_'s fingertips flick it wide There's a wall out there by the name of _P1_. What a [terrific|sensational] save! Catching practice for _P1_ _P1_ breathes again as the ball [finds its way|deflects] into his arms. _T_NPOSS__ get a let-off here with a superb save by _P1_ _T_POSS__ denied by a [great|superb|brilliant] [save|parry] by _P1_ Easy pickings for _P1_. He collects the ball _P1_'s forced to tip _P0_'s shot over the crossbar Great [speed|pace|skill] shown by _P0_, but _P1_ produced a [stunning|superb|just-in-time] blocking tackle A low shot taken well to his [right|left] by _P1_ _P1_ gathers it with ease _P1_ makes a [superb|remarkable|fantastic] reflex save to tip it wide _P1_ [sprints towards|runs at|lunges at] _P0_ and blocks the shot with his [ankle|body|head|torso|leg|boot] A [great|brilliant|sensational|rather easy|confident] save by the [keeper|goalie|goalkeeper] [Saved|Caught|Stopped|Gathered] well by _P1_ Oh, [he|the goalie|the keeper|_P1_] anticipated _P0_'s every move and produced a fine save That was in by all accounts, but they forgot to tell _P1_, who somehow saved the day No power in the shot from _P0_. Taken easily by _P1_ [A|That's a] regulation [stop|save] for [_P1_|the keeper] [_P1_|the goalie] is keeping _TL_ in the game start_match It's a crowd of _AT_ here as the whistle blows And we're underway The two teams are greeted by a wall of noise as they take to the pitch [The crowd|_AT_ spectators] roar as the players emerge from the tunnel A cloudless day gives the impression this match is going to sparkle _AT_ [spectators|fans] can't be wrong. This is the match we have all come to watch The referee gets the nod from the assistant, and we are away The [battle|struggle|fight|afternoon contention] begins The referees are ready, the players set; the whistle blows The fog lifts, and away we go The teams are well matched. We are in for [a real|an end to end] [tug of war|battle]. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ have a slight upper hand. There's an [undeniable|obvious] gulf in the skill level. This should be a walk-over for _T[_TAVSKILL1_ GE _TAVSKILL0_]_ _T[_TAVSKILL0_ GE _TAVSKILL1_]_ come into this match as underdogs. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ start the match as sure favourites. The clash of the [gladiators|titans] [begins|kicks off] half_time It's half time It's _RE_ at half time. It's _RE_ at half time. _TL_'s manager must [find|cook up|conjure up] something special to spur his team on. Matches like this make managers. _TL_ need inspiration from the [top|gaffer]. The dropped heads tell the story. It's been no picnic here for _TL_. _TL_'s manager cops a rollicking from the fans as he leaves the dugout So far, _TW_ and their manager have done everything right. _TL_'s manager must be [disappointed|furious] with his [team's|lads'] performance this half One gets the feeling the manager will read _TL_ the riot act _TL_ will be on the receiving end of their manager's [scolding|wrath|shellacking] _TW_ are [only|mere] 45 minutes away from a stunning victory _TL_ [head|traipse|trudge] into the tunnel to await the manager's scolding A half _TL_ will quickly want to forget _T[_POSS1_ GE 70]_ is dominating the possession _T[_POSS1_ GE 60]_ have had the [most|lion's share|better half] of the possession this half _T0_ may have had more possession, but _T1_ have utilised their chances better _T1_ may have had more possession, but _T0_ have utilised their chances better _T[_POSS1_ GE 75]_ seems to be the only team out there Well, the [banks are closed|tide is out|lolly bag remains empty]: [no goals this half|no one has managed to break the wall] At this stage, one up [might not be|might just be] enough With the number of shots so far, one up might not be enough Sure, it's a low-scoring game, but we've had plenty of shots _T[_SHOTS0_ LE _SHOTS1_]_ have had [plenty of|numerous] chances to [finish|seal] this match _T[_SHOTS0_ LE _SHOTS1_]_ have had _SHOTS[_SHOTS0_ LE _SHOTS1_]_ chances to [finish|seal|clinch] this match No bickies in the barrel yet, and [it looks like the baker's on strike|to be honest, no one's baking] It's raining goals. [_GOALS0_ + _GOALS1_] so far, and it's only the first half! There are two teams out there, but only [_T[_FOULS0_ GE _FOULS1_]_|one of them] is playing football It's a bloodbath out there, not a football match. [So many|[_FOULS0_ + _FOULS1_]] fouls. The ref's gonna need new office supplies! [So many|[_FOULS0_ + _FOULS1_]] fouls. The ref's gonna need a new [pea for his whistle|book|pencil]! [_PEN0_ + _PEN1_] penalties already extra_time After a close match, the teams head into extra time It's still _RE_: extra time After _MI_ minutes, it's still _RE_: extra time Who'll break down first? Extra time it is It's down to determination and fitness now as we head into extra time penalties Who would've thought _MI_ minutes ago it would come down to this? And now, we have the tense drama of a penalty shootout Two teams, equal until now in every respect, face off in penalties The teams can't do it, so now it's one on one. A striker against the keeper No goals so far, but now we'll see [some|at least one] as we head to penalties end_match The match is over! _TW_ are triumphant!!! The fans boo _TL_ off the pitch After _MI_ minutes, the match ends with a _RE_ The referee glances at his watch and blows for full time Well, that's that. It ends _RE_ _TW_'s manager will be [delighted|thrilled] with that result _RE_, what an astonishing result for _TW_ A draw, then. Still, a point is a point. Well, that's that. It ends _RE_ in _TW_'s favour What a match to remember. Action-packed with [_GOALS0_ + _GOALS1_] goals! _TL_ were slaughtered by _GD_ goals. _TW_ will be sipping champagne tonight. What [a great victory|an amazing win] for _TW_ _TL_ were up against a giant, and the _RE_ scoreline shows it own_goal Oh no, the ball [ricocheted|deflected] off _P0_ into the net It's a pinball in the penalty box, finally spinning off _P0_ across the line That's a [great|powerful] shot, and it's deflected off _P0_ and into the back of the net _P0_ passes the ball back to his goalie. Oh no, the keeper's [missed|botched] it! It's an own goal by _P0_! That little misunderstanding has cost _T_TT__ a goal header _P1_ chips the ball towards _P0_, who heads the ball towards goal A diving header by _P0_ He just floated in mid-air, then thunder-headed it towards home That came off the back of _P0_'s head! A [glancing|powerful|flicking|well-angled] header towards the net from _P0_ _P0_'s head finds the end of the long cross post A [sweet|sudden] strike by _P0_ hits the post And the shot glances wide off the post I'm surprised the post managed to withstand that cracking shot cross_bar The ball dinked over _P1_ but hit the crossbar and bounced [to safety|back into play|out of play] The ball smacks into the crossbar with _P1_ stranded _P1_ seemed to be everywhere at once, finally tipping the ball off the crossbar penalty _P0_ steps up to take the penalty _P0_ has a chance to score with a penalty kick _P0_ can make some _T_POSS__ worries [disappear|go away|fade] with this penalty Can [_P0_|_T_POSS__] convert the spot kick? You must bury the nerves, swallow and concentrate when you're taking penalties _T_POSS__ look like they are playing for penalties. _T_POSS__ can [sneak ahead|take the lead] if they convert this _P0_ can [square the match|equalize] with this shot _P0_: A late penalty now may force this match to a draw _T_NPOSS__ have given away an easy chance for _T_POSS__ to [come|crawl] back into this match _P0_ can seal up the match with a goal here free_kick A short free kick from _P0_ _P0_ drives the free kick low and hard _P0_ takes the free kick quickly and curls it around the wall _P0_ curls the free kick over the wall A free kick: _P0_ plays the ball out wide A free kick: _P0_ hits a long ball up the pitch A free kick whipped across the face of goal by _P0_ foul_yellow _P1_ for a [dangerous|reckless|late] slide tackle on _P0_ _P1_ for a foul on _P0_ _P1_ for [kicking|throwing|carrying] the ball away after the whistle _P1_ for time wasting _P1_ for handball _P1_ for stopping _P0_ taking a quick free kick _P1_ is booked for repeated dissent foul_red _P1_ is reprimanded for high kicking _P1_ is given his marching orders for contempt _P1_ for his malicious showing of studs _P1_ for intentional handball _P1_ is sent off for stopping a clear goal-scoring opportunity _P1_ has been red carded for [punching|slapping|pushing|head-butting] _P0_ _P1_ for swearing at the opposition fans foul_red_injury _P1_ fouls, and the stretcher bearers come racing on with _P0_ lying in agony on the turf Foul by _P1_; _P0_ seems to be injured... he might have to be substituted send_off _P0_ has been sent off _P0_ is sent off. _T_TT__ is now down a man injury _P0_'ll have to [go|limp off|leave the pitch] after what seems a painful [ankle|knee|arm|wrist|shoulder|back|head|neck|hamstring|groin|chest] injury _P0_ looks like he's [badly|seriously] injured The physio's had a look, and _P0_ must be taken off temp_injury _P0_ looks like he's pulled a muscle, but he should be able to continue _P0_ has picked up a slight knock _P0_ tries to run off a slight groin strain _P0_ has overstretched a muscle: seems ok _P0_ receives some attention and continues _P0_ has a large cut above his [left|right] eye, but it's quickly patched up, and he'll be able to continue stadium_breakdown _T0_ is undergoing stadium problems The floodlights have just [gone out|died] Heavy fog is causing havoc here at _T0_'s ground stadium_riots The peasants are revolting And the fans are throwing [flares|things] onto the pitch The riot police have moved in to stop fighting between sets of opposition supporters One fan has managed to [get|leap] onto the pitch and has begun to [attack|harass|pummel] the referee The fans pour onto the pitch in a full-scale pitch invasion stadium_fire A fire is consuming _T_TT__'s stadium Some away fans have set fire to the [north|south] stand A flare chucked onto the touchline has started a [massive|dangerous|horrific] blaze A speaker has gone up in flames, and now the blaze is spreading around the entire stadium substitution _T_TT__ make a substitution: _P0_ comes on to replace _P1_ _T_TT__ need some fresh legs. _P0_ comes on to replace _P1_ _P1_ goes off to applause from his fans. _P0_ replaces him _P1_ doesn't look too happy as he is replaced by _P0_ _P0_ comes off the bench to replace _P1_ _P0_ on for _P1_ structure_change _T_TT__ have changed their structure to _EX_ _T_TT__ restructure themselves into a _EX_ formation style_change _T_TT__ have changed their style to _EX_ _T_TT__ change to a _EX_ style _T_TT__ try to create an opening by attacking _T_TT__ change to _EX_ and ease off A last-ditch effort: _T_TT__ change to _EX_ _MR_ minutes left. _T_TT__ try a change of tactics with _EX_ style Half-time style change for _T_TT__ to _EX_ boost_change _T_TT__ have changed their boost to _EX_ It looks like _T_TT__ have given up _T_TT__ must think they have this match sewn up _T_TT__ have gone up a gear Boost on. _T_TT__ are throwing everything they've got bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_nl.xml0000644000175000017500000002210311225071372023752 0ustar eliaselias general Goede pas van _P1_ _P0_ _P1_ naar _P0_ _P1_ feeds a [wonderful|terrific|great|brilliant] ball through to _P0_ _P0_ gaat zijn man voorbij Een mooie kapbeweging van _P0_ _P0_ verslikt zich in zijn kapbeweging maar raakt toch voorbij zijn man Goede passeerbeweging op de rechterflank Goede passeerbeweging op de linkerflank Lange bal van _P1_ naar _P0_ _P1_ stuurt _P0_ diep Diepe bal van _P0_ De pas van _P1_ gaat door een bos van benen naar _P0_ _P0_ draait zich vrij _P1_ kopt de bal naar _P0_ _P1_ geeft de bal aan _P0_ De stand is nog altijd _RE_ lost_possession _P1_ krijgt de bal niet onder controle en _P0_ pakt hem af _P0_ pakt de bal af De verloren bal gaat naar _P0_ _P1_ geeft de bal per ongeluk aan _P0_ _P0_ pakt juist op het goede moment met een beweging uit foul Gemene tackle van _P1_ op _P0_ Achterbakse tackle van _P0_ De tackle van _P1_ velt _P0_ Dat zou rood moeten zijn scoring_chance _P0_ staat oog in oog met de keeper _P0_ schiet vanop 30 meter naar doel _P0_ schiet van net buiten het strafschoppen gebied _P0_ schiet van net buiten de 16 _P1_ past naar _P0_ en _P0_ gaat op doel af header _P0_ kopt de bal naar de goal Buffelstoot van _P0_ _P0_ neust de bal naar doel _P1_ schildert de bal op het hoofd van _P0_ en die kopt de bal naar doel goal Goal!!! _P0_ scoort en zo staat het _RE_ De bal vliegt naast _P1_ tegen de netten Binnen!!! _P1_ kan _P0_ niet van een goal houden Het staat _RE_ na het doelpunt van _P0_ Blunder van _P1_ miss _P0_ schiet de bal ver naast de goal _P0_ schiet naast Net naast de paal Goal!! Nee, aan de verkeerde kant van de paal Het schot van _P0_ vliegt net naast de kruising _P0_ schuift uit en schiet de bal over de goal save Goede save van _P1_ De bal van _P0_ vliegt in de handen van de keeper _P1_ pakt het lage schot van _P0_ Een verdediger ontzet _P1_ blockt de bal van _P0_ post Tegen de paal _P0_ schiet tegen de paal!! cross_bar Tegen de deklat _P1_ kan niet bij de bal, maar gelukkig vliegt de bal tegen de deklat own_goal _P0_ probeert de bal in hoekschop te werken, maar maakt een owngoal De ongelukkige bal van _P0_ vliegt in doel start_match We zijn begonnen De clach der titanen begint Er zitten _AT_ supporters in het stadion waneer we beginnen half_time Bij de rust staat het _RE_ De spelers gaan rusten De supporters fluiten de spelers van _TL_ uit wanneer ze het veld verlaten extra_time Na _MI_ minuten is de stand gelijk, verlengingen De teams hebben na _MI_ minuten geen afstand van elkaar kunnen nemen: verlengingen Na _MI_ minuten is het _RE_, zo krijgen we verlengingen penalties We gaan penalty's moeten nemen De stand is nog altijd gelijk: penalty's De team hebben in de verlengingen geen afstand van elkaar kunnen nemen: penalty's end_match Na _MI_ minuten staat het _RE_ _TW_ is gewonnen De supporters fluiten _TL_ uit penalty _P0_ gaat de penalty schieten Ultime kans voor _P0_ om te scoren free_kick _P0_ gaat een vrije schop nemen Vrije schop: _P0_ neemt een aanloop en foul_yellow Gele kaart voor _P1_ _P1_ krijgt een gele kaart omdat hij een zware fout op _P0_ beging Hands van _P1_ foul_red Rode kaart voor _P1_ _P1_ gooit de bal naar _P0_ en krijgt daarvoor een rode kaart foul_red_injury _P1_ tackled _P0_ en _P0_ lijkt geblesseerd send_off _P0_ mag gaan douchen _P0_ moet eraf en zo moet _T_TT__ met een man minder spelen injury Het lijkt er op dat _P0_ geblesseerd is _P0_ moet eraf met een zware bessure temp_injury _P0_ is geblesseerd maar kan toch blijven verder spelen _P0_ heeft een lichte blessure stadium_breakdown Er zijn technische problemen in het stadion van _T0_ stadium_riots Er is een bom in het stadion van _T0_ ontploft stadium_fire De fans van _T0_ waren blijkbaar niet tevreden met de uitslag en ze steken het stadion in brand substitution _T_TT__ wisselt _P1_ voor _P0_ _P1_ erin en _P0_ gaat eraf _P0_ krijgt een applaus waneer hij gewisseld word door _P1_ structure_change _T_TT__ veranderd zijn struktuur naar _EX_ _T_TT__ herstructureerd zichzelf in een _EX_ formatie style_change _T_TT__ gaat _EX_ spelen _T_TT__ probeert een opening te forceren door te gaan aanvallen _T_TT__ haalt de riem eraf en veranderd zijn speeltstijl naar _EX_ Een wanhoopspoging: _T_TT__ vera,derd zijn speelstijl naar _EX_ _MR_ minuten over. _T_TT__ probeert het met een tactiek verandering. Ze switchen naar _EX_ style _T_TT__ heeft zijn speelstijl tijdens de pauze veranderd naar _EX_ boost_change _T_TT__ zet zijn extra motivatie _EX_ Het lijkt erop dat _T_TT__ heeft opgegeven _T_TT__ moet denken dat de match reeds beklonken is _T_TT__ steekt een tandje bij Boost op. _T_TT__ gooit er nog alles tegen aan bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_pt.xml0000644000175000017500000007402511225071372023776 0ustar eliaselias general _P1_ passa. _P0_. _P1_ para _P0_. _P1_ faz um [espectacular|excelente|bom|brilhante] passe para _P0_. Um bom passe encontra _P0_. Um toque de _P1_ espera um 1-2-1. Um perfeito passe e arranque. Grande finta, um passe inteligente. _P1_ deixa a bola nos pés de _P0_. Um passe alto de _P1_ encontra o objectivo. _T_POSS__ está ao ataque. _T_NPOSS__ está a defender. Um [excelente|preciso] cruzamento para _P0_. Agora _T_POSS__ prepara-se para atacar através de _P0_. Uma bola de _P1_ encontra _P0_. _P1_ passa [uma grande|a] bola para _P0_. Um [grande|suberbo|longo|fabuloso|espectacular] passe de _P1_ para _P0_. Um [longo|curto|lento] passe de _P1_ encontra _P0_. Uma [boa|grande|inteligente] corrida pelo campo no lado [direito|esquerdo]. Um [rápido|bom] [movimento|passe] pela [esquerda|direita]. _P0_ ultrapassa o seu marcador e [cruza|passa para] _P1_ num [perfeito|bem medido] cruzamento. Outro [inteligente|brilhante|decente] movimento [pelo flanco direito|pelo flando esquerdo|pelo centro|ao longo do terreno]. _P0_ recebe [a desmarcação|o passe] de _P1_. _P1_ passa a bola através das pernas do [adversário|jogador] para _P0_. _P1_ [pára|controla] a bola com [a sua bota|o seu joelho|o seu peito|de cabeça] e [envia-a para|passa para|desmarca] _P0_. _P1_ [levanta|cabeceia] a bola em direcção a _P0_. _P0_ tenta desmarcar-se. _P0_ tenta desmarcar-se desesperadamente. _P0_ arranca pelo centro. _P0_ [finta o|gira sobre o|dribla pelo] seu [adversário|marcador|oponente]. Um empate seria um bom resultado para o fraco _T_. _TW_ precisa de aguentar mais uns minutos sem sofrer golos. _T_POSS__ precisa de [meter a bola mais vezes na frente|criar mais oportunidades|mostrar mais garra na frente]. Muitos remates ao longo do jogo. Estamos a entrar no último quarto de hora do jogo. [Tantos|[_FOULS0_ + _FOULS1_]] cartões. O árbitro irá necessitar de um novo [apito|livro|lápis]! O jogo ainda não acabou, mas o resultado parece que já não irá mudar. lost_possession _P1_ envia a bola para fora. Lançamento para _P0_. _P1_ perde a bola. _P1_ perde a bola para _P0_. [_P1_ entrega a bola|A bola é entregue] ao adversário[ descuidadamente.| ao desbarato.|.] _P1_ apanha a bola junto à linha. Um lançamento lateral para _T_POSS__. Um [pobre|louco|mau] passe por _P1_ resulta num lançamento para _T_POSS__. _P0_ efectua um lançamento rápido. Um lançamento lateral longo pelo _P0_. Um grande roubo de bola por _P0_! Merecia uma medalha! _P1_ perde o controlo da bola. _P0_ ganha a bola [espectacularmente|a tempo]. _T_NPOSS__ [entrega a bola ao adversário|perde a bola demasiado depressa]. Mau controlo por parte de _P1_, que deixa _P0_ roubar-lhe a bola. _P0_ [rouba|tira|apanha] a bola de _P1_ com um carrinho. Uma bola perdida [vai|sobra] para _P0_. Um carrinho de _P0_ que [fica com|ganha] a bola. _P1_ fica a olhar enquanto _P0_ [fica com|rouba-lhe] a bola. _P0_ intercepta a bola. _P0_ estraga a festa de _P1_ e fica com a bola. Não foi o melhor passe de _P1_, pois _P0_ fica com a bola. foul [Ai!|Ui!|Até a mim me doeu!] Isso foi uma falta feia sobre _P0_. De certeza [que isto foi uma falta para amarelo|que _P1_ vai levar um cartão por isto]! _P1_ [derruba|choca com] _P0_. Uma feia entrada sobre _P0_. _P0_ sofre falta pelo _P1_. Uma entrada [dura|feia|destruidora] por _P1_ on _P0_. Uma entrada [maldosa|dura] por _P1_ deixa _P0_ deitado na relva. _P1_ derruba _P0_ e deixa-o com aleijado no terreno. _P1_ não é chamado [o exterminador|o assassino|] por nada. Quase [atropelou|exterminou] [o jogador adversário|_P0_]! Ui! Isso deve doer! _P0_ está no chão e não se está a rir! Eu não sei como está o _P0_, mas essa falta até a mim me fez chorar! Um perigoso pé em riste de _P1_ envia _P0_ para o chão! O cinturão negro de _P1_ em [Karate|Taekwondo|Jujitsu] deu jeito, da forma que ele mandou ao chão o _P0_ _P1_ perdeu a paciencia e [lançou|derrubou] _P0_ ao chão. _P0_ levou com _P1_ em cima. O árbitro tentou dar a lei da vantagem mas teve realmente que marcar falta sobre _P0_ Falta! _P0_ tenta esquivar-se de uma falta de _P1_, mas não consegue [fugir|evitar o contacto] _P1_ com uma falta violentíssima sobre _P0_. Certamente que não ficará impune. scoring_chance _P0_ [infiltra-se|passa] pela defesa adversária e [remata|chuta]... Um bom cruzamento de _P1_, e _P0_ [atira à baliza...|remata!] _P0_ avança em direcção à baliza e [remata|chuta|pontapeia em direcção à baliza]! _P0_ roda e chuta... Um fantástico [chuto|remate] de _P0_... _P0_ encontra algum espaço e tenta a sorte... Uma fabulosa oportunidade para _T_POSS__... Uma bola longa de _P1_ encontra _P0_ no poste mais [afastado|perto]... _P0_ [perde|não consegue controlar] a bola, e envia-a [direito à baliza|à baliza]... [Grande|Excelente] remate à baliza... _P0_ apanha a bola e [remata|empurra a bola|chuta] em direcção à baliza. _P0_ recebe a bola de _P1_ e dirige-se à baliza. _P0_ [dispara|remata|chuta] a [40|35|30|25|20] metros; parece que vai [ao lado|por cima|entrar]. _P0_ [dribla|corre|passa|foge|avança] até à grande área, chuta... _P0_ entra pelo flanco [direito|esquerdo] e [remata|chuta|dispara]. _P0_ tenta a sua sorte dos [50|40] metros. _P0_ [atira|remata|dirige um remate] para o canto [superior|inferior] [direito|esquerdo]. _P0_ remata de perto. [Um passe|Uma bola] [de classe|brilhante|espectacular] de _P1_ coloca _P0_ frente a frente com o guarda-redes. Fabuloso [pontapé de bicicleta|remate| de _P0_ ao canto [inferior|superior] [esquerdo|direito]. _P0_ [finta|passa|dribla|envergonha] dois [adversários|oponentes|defesas], [engana|dribla] o guarda redes e [levanta a bola|tenta o chapéu|chuta]. _P1_ deixa a bola em _P0_, que envia um missil à baliza. _P0_ prepara o remate... _P1_ deixa a bola para _T_POSS__ que fica isolado... _P0_ dribla os defesas, remata. goal Golo!!! E a bola entra!!! _P0_ marca!!! Golo!! [O guarda-redes|_P1_] nem viu a bola. E a bola passa por _P1_ e entra!!! A bola [passa por|rasa] _P1_, e é golo!!! _P0_ ajoelha-se e comemora! Que golo [memorável|maravilhoso|fantástico|brilhante|espectacular|lindo]!!! Golo!! Apesar do mergulho [fantástico|desesperado] de _P1_, não há hipótese de agarrar a bola de _P0_. A bola acerta no fundo da rede!!! Aí está um golo que _P0_ não irá esquecer nos próximos tempos. Golo! Um remate fabuloso de _P0_ deixa [o guarda-redes|_P1_|_T_NPOSS__] a olhar para a bola. Fabuloso golo! Golo! A sorte hoje sorri ao _T_TT__. _T_TT_ é o primeiro a marcar hoje. Este [remate|golo] empatou a partida. Poderá o _T_TT__ voltar ao jogo? A sorte agora parece sorrir ao _T_TT__. Mais um prego para o caixão... miss [Ele|_P0_] [remata|chuta] ao lado! _P0_gostaria de se enfiar num buraco após esta perdida [chocante|terrivel|desastrosa|horrivel]. [Ele|_P0_] deveria ter marcado, mas ficou sozinho e atirou ao lado. [_P1_|O defesa] limpa. _P0_ [remata|atira] a bola por cima A defender back to block, just as it seemed to open up _P0_ [chuta para|coloca a bola na|remata para] a última fila do estádio. E [a bola|o remate] passa a rasar o paste. Essa bola nunca entraria. Que grande perda! Oportunidades perdidas como esta podem custar o jogo ao _T_POSS__. Parecia tão prometedor para _P0_. Fez todo o trabalho, mas não conseguiu acertar com a baliza. Tão perto e tão longe... Tão perto da baliza... O _T_POSS__ desperdiçou uma grande hipótese aqui. Grande corrida, mas nada... A sorte já não sorri ao [_P0_|_T_POSS__]. Que desapontamento para os jogadores do _T_NPOSS__. Não havia ouro no fim desse arco-iris. A bola [salta|ressalta] perto da pequena área, mas acaba por não entrar. Foi para todo o lado, menos para a baliza. Golo! Não! Anulado! O árbitro marca fora-de-jogo. _P0_ está a ficar frustrado por não conseguir marcar. Os jogadores do _T_POSS__ não conseguem acertar com a baliza adversária. save Um forte [remate|chuto], mas [o guarda-redes|_P1_] [está atento|agarra]. _P1_ defende com as pontas dos dedos a bola. Este guarda-redes que dá pelo nome de _P1_ é uma autêntica muralha. Que defesa [fabulosa|sensacional]! Fácil para _P1_. _P1_ descansa assim que [agarra|defende] a bola. É negado o golo ao _T_POSS__ por uma [grande|espectacular|brilhante] defesa de _P1_. Fácil para _P1_. Ele agarra a bola. _P1_é forçado a ceder o canto frente ao remate de _P0_. Grande [velocidade|habilidade] de _P0_, mas _P1_ fez uma [espectacular defesa|suberba defesa|defesa mesmo a tempo]. _P1_ agarra facilmente. _P1_ com [fantásticos|fabulosos] reflexos, defende a bola para fora. _P1_ [sprinta para|corre para] _P0_ e bloqueia o remate com [o seu joelho|o seu corpo|a sua cabeça|o seu tronco|a sua perna|a sua bota]. Uma [brilhate|grande|sensacional|fácil|confiante] defesa pelo [guardião|guarda-redes]. [Salvo|Apanhado|Parado] por _P1_. [Ele|O guarda-redes|_P1_] antecipou-se a _P0_ e agarrou a bola. Remate fraco de _P0_. Fácil para _P1_. [_P1_|O guardião] mantém _TL_ em jogo. start_match _AT_ pessoas para assistir a este jogo. E começa... E começou... As duas equipas recebem uma ovação enorme das _AT_ pessoas presentes, assim que entram em campo... [O público faz-se|_AT_ espectadores fazem-se] ouvir assim que os jogadores saem do túnel. Um dia sem nuvens neste grande jogo que está a começar. _AT_ [espectadores|fãs] não podem estar errados. Este deverá ser um grande jogo. O árbitro recebe um sinal dos fiscais de linha e inicia o jogo. [A batalha|A luta|O combate] começa... O árbitro está pronto. Os jogadores também. Inicia a partida... As equipas parecem equilibradas. E parece que vamos ter um grande jogo. Existe uma [óbvia|inegável] diferença entre as equipas. Deverá ser um jogo fácil para _T[_TAVSKILL1_ GE _TAVSKILL0_]_ O _T[_TAVSKILL0_ GE _TAVSKILL1_]_ apenas espera empatar ou não perder por muitos. O _T[_TAVSKILL0_ LE _TAVSKILL1_]_ começa a partida como claro favorito. O embate de titãs [começa|inicia]! half_time Intervalo! E fica _RE_ ao intervalo. E fica _RE_ ao intervalo. O treinador do _TL_ deverá [inventar|cozinhar] alguma coisa ao para melhorar a sua equipa na segunda parte. Jogos como este fazem treinadores. _TL_ precisa mais inspiração. As cabeças em baixo são prova que este jogo não tem sido fácil para o _TL_. Até agora, a equipa do _TW_ e o seu treinador devem estar contentíssimos. O treinador do _TL_ deve estar [desapontado|furioso] com [a equipa|os jogadores]. O _TW_ está a [escassos|apenas] 45 minutos de uma fabulosa vitória. Os jogadores do _TL_ [dirijem-se|vão] para o túnel à espera do raspanete do treinador. Uma parte que o _TL_ quererá esquecer rapidamente. _T[_POSS1_ GE 70]_ está a dominar a posse de bola. _T[_POSS1_ GE 60]_ teve [mais|a maior parte da] posse de bola nesta metade do encontro. O _T0_ pode ter mais posse, mas o _T1_ utilisou melhor as chances que teve. O _T1_ pode ter mais posse, mas o _T0_ utilisou melhor as chances que teve. O _T[_POSS1_ GE 75]_ parece ser a única equipa em jogo. Bem, [Nada a nada|Empate|Perda de tempo]: [nada de golos nesta parte|ninguém conseguiu marcar] Nesta fase, apenas um golo [pode ser|pode não ser] suficiente. Com o número de remates até agora, um golo não deverá ser suficiente. Chovem golos. [_GOALS0_ + _GOALS1_] até agora, e ainda só vai na 1ª parte! Existem duas equipas, mas apenas [o _T[_FOULS0_ GE _FOULS1_]_|uma delas] está a jogar futebol. Isto é um banho de sangue e não um jogo de futebol. [Tantas|[_FOULS0_ + _FOULS1_]] faltas! [Tantas|[_FOULS0_ + _FOULS1_]] faltas. O árbitro deve estar a ficar sem fôlego para assoprar no apito! [_PEN0_ + _PEN1_] já marcados! extra_time Depois de um jogo renhido, as equipas vão para prolongamento. Ainda está _RE_: prolongamento! Depois de _MI_ minuteo, ainda está _RE_: prolongamento! Quem irá ganhar? Prolongamento... Agora no prolongamento apenas conta a forma e determinação. penalties Quem pensava que há _MI_ minutos atrás, ainda estariamos aqui? E agora tudo se vai decidir nas marcas de grande penalidade. Duas equipas, bastante iguais até agora, decidem tudo nos penalties. Agora está tudo na mão dos guarda-redes e dos marcadores dos penalties. Não há golos até agora mas iremos ver algum agora, nos penalties. end_match E o jogo acaba! _TW_ ganham!!! Os fãs assobiam os jogadores do _TL_. Após _MI_ minutos, o jogo acaba num _RE_. O árbitro olha para o relógio e apita para o fim do jogo Bem, acabou. _RE_! O treinador do _TW_ deve estar [alegre|emocionado] com o resultado. _RE_, que grande resultado para o _TW_ Empate! De qualquer forma, um ponto é um ponto. Acabou. No final _RE_ a favor do _TW_. Que grande jogo! [_GOALS0_ + _GOALS1_] golos! O _TL_ foi trocidado com uma diferença de _GD_ golos. Os jogadores do _TW_ devem ir beber champagne esta noite. Que [grande vitória|fantástico resultado] para o _TW_ own_goal Ó não! A bola [ricocheteia|bate] em _P0_ e entra. Grande remate! Bate em _P0_ e entra! _P0_ passa a bola ao guarda-redes. Ó não! O guarda-redes [não controla a bola|dá um frango]! É auto-golo de _P0_! Mal entendido na defesa e o _T_TT__ sofre um golo. header _P1_ passa a bola para _P0_, que cabeceia à baliza. Um mergulho de _P0_. Parecia flutuar no ar quando cabeciou à baliza... Remate de cabeça de _P0_! Um [grande|poderoso|bem colocadofraco] cabeciamento à baliza por _P0_. Cruzamento e _P0_ cabeceia... post Um [lindo|repentino] remate de _P0_ atinge o poste. E o remate bate no poste! Fico surpreendido como é que o poste se mantém de pé depois deste remate! cross_bar Chapéu a _P1_, mas a bola bate na barra e [vai para fora|volta para dentro do campo|é agarrada pelo guarda-redes]. A bola bate na barra, com _P1_ batido. O _P1_ parece estar em todo o lado, até que finalmente atira a bola por cima da barra. penalty _P0_ prepara-se para marcar o penalty. _P0_ pvai marcar o penalty. _P0_ pode fazer todas as preocupações do _T_POSS__ desaparecer com este penalty. Pode [_P0_|o _T_POSS__] converter este penalty em golo? _P0_ tem que se concentrar para marcar este penalty. O _T_POSS__ parece estar a jogar para os penalties. O _T_POSS__ pode [passar para a frente|ganhar o jogo] se converter este penalty. O _P0_ pode acabar o jogo se marcar este penalty. free_kick Pontapé livre marcado rapidamente por _P0_. _P0_ marca o livro com força. _P0_ marca o livre rapidamente. _P0_ remata o livre por cima da barreira. Livre: _P0_ remata a bola para o lado [esquerdo|direito] Livre: _P0_ remata para a frente. Livre marcado frente à baliza por _P0_. foul_yellow _P1_ por uma falta [perigosa|bruta] sobre _P0_. _P1_ por falta a _P0_. _P1_ por [rematar|atirar|levar] a bola depois do apito do árbitro. _P1_ por perder tempo. _P1_ por jogar com a mão. _P1_ por impedir que _P0_ marcasse o livre. _P1_ por faltas consecutivas. foul_red _P1_ leva cartão vermelho por jogo perigoso. _P1_ recebe ordem do árbitro para ir para os balneários mais cedo. _P1_ expulso por jogar com a mão. _P1_ é expulso por travar uma clara jogada para golo. _P1_ leva o cartão vermelho por [esmurrar|esbofetear|puxar|dar uma cabeçada] a _P0_. _P1_ por palavras dirigidas [ao árbitro|ao público|ao treinador adversário]. foul_red_injury _P1_ faz falta. Os maqueiros entram a correr em campo, enquanto _P0_ fica estendido no relvado a contorcer-se com dores. Falta de _P1_! _P0_ parece estar lesionado... Talvez tenha que ser substituido. send_off _P0_ é expulso! _P0_ é expulso! O _T_TT__ fica a jogar com menos um jogador. injury _P0_ vai [sair de|abandonar o] campo depois de sofrer uma falta dura [no joelho|no braço|na perna|nas costas|na cabeça|no pescoço|no peito|na perna|na virilha|na cara|no pé]. Parece que _P0_ está seriamente lesionado. O médico dá instruções para o banco. _P0_ tem que sair. temp_injury Parece que apesar do ligeiro toque, _P0_ pode continuar em jogo. _P0_ levou um pequeno toque. _P0_ está com uma caimbra, mas vai continuar em jogo. _P0_ depois de receber uma massagem, continua em jogo. _P0_ tem um corte na sobrancelha [esquerda|direita], mas é rapidamente tratado pelo médico e pode continuar. stadium_breakdown O estádio do _T0_ parece estar com problemas... As luzes apagaram-se. Um espesso nevoeiro está a causar grandes problemas no estádio do _T0_. stadium_riots Revolta nas bancadas! Os fãs estão a atirar [flares|coisas] para o campo! A polícia de intervenção foi para as bancadas tentar parar a luta entre as claques rivais. Um fã conseguiu [fugir para|passar para|fintar os "stewards" e ir para] o campo e começou a [atacar o|correr atrás do|chamar nomes ao] árbitro. E os fãs invadem o campo! stadium_fire Um incêndio está a consumir o estádio do _T_TT__. Alguns fãs deitaram fogo à bancada [norte|sul|este|oeste]. Um verylight lançado pelos adeptos começou um [massivo|perigoso|enorme|horrivel] incêndio. Um altifalante entrou em curto-circuito e as chamas estão a espalhar-se pelo estádio. substitution O _T_TT__ faz uma substituição: _P0_ entra para substituir _P1_. A equipa do _T_TT__ precisa de um par de pernas novas em campo. _P0_ entra para substituir _P1_. _P1_ sai para receber aplausos do público. _P0_ substitui-o. _P1_ não parece muito contente ao ser substituído por _P0_. _P0_ sai do banco para substiruir _P1_. _P0_ por _P1_. structure_change O _T_TT__ muda a sua táctica para _EX_. O _T_TT__ muda para uma formação _EX_. style_change O _T_TT__ muda o seu estilo para _EX_. _T_TT__ muda para um estilo _EX_. O _T_TT__ tenta colocar mais gente na frente. O _T_TT__ muda para um estilo mais _EX_. Um último esforço: _T_TT__ mais ao _EX_. Faltam _MR_ minutos. O _T_TT__ muda a sua táctica: _EX_. Estilo ao intervalo mudado pelo _T_TT__ para _EX_. boost_change Parece que o _T_TT__ desistiu. A equipa do _T_TT__ pensa que tem o jogo ganho. _T_TT__ aumentam a pressão. O _T_TT__ dá tudo por tudo. bygfoot-2.3.2/support_files/lg_commentary/lg_commentary_ro.xml0000644000175000017500000010216511225071372023770 0ustar eliaselias general _P1_ pasează _P0_ _P1_ către _P0_ _P1_ trimite un balon [minunat|supereb|marfă|briliant] către _P0_ Mica [minge|pasă] încântătoare îl găseÅŸte pe _P0_ Flick on from _P1_ waits for the one two Neat dummy run and pass Pasă importantă, muncă excelentă de picioare _P1_ pierde mingea la picioarele lui _P0_ Pasa înaltă de la _P1_ îşi găseÅŸte destinaÅ£ia _T_POSS__ este în atac _T_NPOSS__ este în apărare Transversala în desfăşurare îl găseÅŸte pe _P0_ Acum _T_POSS__ îşi poate spori provocarea prin _P0_ Mingea trimisă de _P1_ [găseÅŸte pe|preluată de] _P0_ _P1_ [trimite|pasează] o minge superbă spre _P0_ Pasa [drăguţă|superbă|lungă|excelentă] a lui _P1_ îl depăşeÅŸte pe _P0_ Pasa [lungă|scurtă|perfectă] lansată dinspre _P1_ îl găseÅŸte pe _P0_ MiÅŸcare [bună|minunată|înÅ£eleaptă] de a pasa de-a curmeziÅŸul înspre [dreapta|stânga] Pasa [rapidă|bine planificată] [atinge uÅŸor|miÅŸcă] partea [stâng|dreaptă] _P0_ alunecă pe lângă adversar ÅŸi [colectează|închide] pasa perfect calculată a lui _P1_. ÃŽncă o miÅŸcare [înÅ£eleaptă|briliantă|gândită|decente] [pe flanc|la centru|înspre poartă] _P0_ [colectează|închide] [încercarea|pasa] lui _P1_ _P1_ [atinge uÅŸor|miscă] mingea pe la [piciorul|picioarele] [oponentului|jucătorului] ÅŸi îl găseÅŸte pe _P0_ _P1_ [prinde în cursă|controleză] mingea cu [gheata|pieptul|coapsa] ÅŸi [o trimite|o pasează] spre _P0_ _P1_ [aruncă pe sus|aruncă prin aer] mingea înspre _P0_ _P0_ se răsuceÅŸte ÅŸi se întoarce din nou _P0_ se răsuceÅŸte cu disperare să îl piardă pe adversar _P0_ face o deschidere [în sus spre|către] [centru|mijlocul terenului] _P0_ [îl pierde|se răsuceÅŸte pierzându-l] pe [adversar|marcator] Un egal ar fi un rezultat excelent pentru meciul _T[_TAVSKILL0_ GE _TAVSKILL1_]_ _TW_ trebuie să îşi revină ÅŸi să mai reziste câteva minute _T_POSS__ trebuie să [ducă mingea mai în faţă|creeze mai multe ocazii] Numai [_SHOTS0_ + _SHOTS1_] ÅŸutează: [este o adevărată bătălie la mijlocul terenului|niciuna dintre părÅ£i nu se străduieÅŸte destul] Doar un ÅŸut: [este o adevărată bătălie la mijlocul terenului|niciuna dintre părÅ£i nu se străduieÅŸte destul] ÃŽncă _MI_ minute, mai sunt ÅŸanse aici pentru ambele echipe Expunere terifică de îndemânare Intrăm în minutele finale ale timpului regulamentar [Atâtea|[_FOULS0_ + _FOULS1_]] faulturi. Arbitrul va avea nevoie de un nou [fluier|carneÅ£el|creion]! Sigur că nu este gata până nu cântă doamna cea grasă, însă ea se încălzeÅŸte deja lost_possession Este făcut knock out de _P1_. _P0_ la minge. _P1_ a fost deposedat _P1_ este deposedat de _P0_ [_P1_ trimite mingea|Mingea este trimisă] afară [fără de grijă|prea ieftin|prea uÅŸor] _P1_ duce mingea în afara terenului. O aruncare pentru _T_POSS__ Pasa sălbatică din partea lui _P1_ se termină printr-o aruncare pentru _T_POSS__ _P0_ aruncă de la margine Aruncare lungă de la margine a lui _P0_ Preluarea prin alunecare a lui _P0_ ar fi fost valoroasă pentru baseball. Mingea nu mai este controlată de _P1_ _P0_ câştigă mingea cu o provocare perfect sincronizată Destule întoarceri de situaÅ£ie aici pentru că _T_NPOSS__ pierde controlul Controlul neînÅ£elept a lui _P1_ îi permite lui _P0_ să îi fure mingea _P0_ [fură|preia] mingea de la _P1_ prin alunecare Mingea pierdută cade spre _P0_ Preluare crănţănită! _P0_ [vine cu|câştigă] mingea _P1_ rămâne suprins pentru că _P0_ preia mingea _P0_ realizează o intercepÅ£ie superbă _P0_ se face praf. _P1_ petrece ÅŸi vine cu premiul Nu este cea mai bună pasă a lui _P1_ din moment ce _P0_ o interceptează foul [Oh|Of|Vai], acesta a fost un atac murdar asupra lui _P0_ Sigur [aceasta este o ofensă de suspendare|lui _P1_ i-ar trebui dat un cartonaÅŸ]? _P1_ [îl loveÅŸte pe|serveÅŸte pe|se prăbuÅŸeÅŸte peste] _P0_ cu o lovitură cu ambele picioarele ÃŽncercare [murdară|neplăcută] asupra lui _P0_ _P0_ rămâne fără picioare din cauza lui _P1_ ÃŽncercare [murdară|neplăcută] a lui _P1_ asupra lui _P0_ Atac vicios din partea lui _P1_ îl lasă pe _P0_ la pământ _P1_ îl elimină pe _P0_ lăsându-l în agonie Nu-l numesc pe _P1_ "[criminaul|asasinul|ucigaÅŸul]" degeaba. Aproape că l-a ucis pe_P0_! Au! Asta trebuie să doară _P0_ este la pământ ÅŸi nu zâmbeÅŸte Nu ÅŸtiu lui _P0_, dar mie atacul mi-a adus lacrimi în ochi Gheata extrem de înaltă a lui _P1_ îl trimite pe _P0_ la pământ Centura neagră a lui _P1_ în [karate|taikwondo|jujitsu] îi este la îndemână din moment ce l-a trimis la pământ pe _P0_ _P1_ tocmai ÅŸi-a pierdut răbdarea ÅŸi l-a trimis pe _P0_ la pământ. _P0_ preia întreaga furie a întrecerii lui _P1_. _P0_ a încercat să absoarbă acel atac, dar este prea mult pentru arbitru Arbitrul a jucat avantajul, dar în cele din urmă a trebuit să semnaleze faultul asupra lui _P0_ Frustrarea se simte deja, când începi să vezi faulturi ca ăsta. Asta e ceea ce se numeÅŸte un fault profesionist _P0_ încearcă să scape dintr-o întrecere murdară _P1_ cu un atac neadecvat. Cu siguranţă nu va scăpa cu atât. scoring_chance _P0_ se înfiltrează în apărare ÅŸi pocneÅŸte Transersala lungă pluteÅŸte de la _P1_ până la _P0_ care [ÅŸutează spre gol|atacă] _P0_ încearcă să înscrie! _P0_ se răsuceÅŸte ÅŸi ÅŸutează [Un ÅŸut|O lovitură] incendiară a lui _P0_ _P0_ găseÅŸte loc ÅŸi îşi încearcă norocul. O adevărată oportunitate se deschide pentru _T_POSS__ Minge lungă de la _P1_ îl găseÅŸte pe _P0_ la colÅ£ul [lung|scurt] _P0_ [nu poate controla|se repede să ÅŸuteze] ÅŸi greÅŸeala lui merge aproape de gol Atingere interesantă aproape de gol _P0_ ia mingea la voleu ÅŸi [o trimite|o serveÅŸte|încearcă să se apropie] spre gol _P0_ ia mingea în voleu de la pasa lui _P1_ împingând spre gol _P0_ [ÅŸutează|aruncă|explodează] de la 30 de metri, arată de parcă [alunecă|se curbează|se răsuceÅŸte|înnebuneÅŸte] _P0_ [alunecă|driblează|aleargă] în careu, se împotriveÅŸte apărării ÅŸi ÅŸutează _P0_ [alunecă|se prăbuÅŸeÅŸte|cade] dinspre flancul [dreapt|stâng] ÅŸi [loveÅŸte|ÅŸutează|bate] _P0_ îşi încearcă norocul de la 40 de metri _P0_ [se repede|indică|aruncă] un ÅŸut [înalt|jos] spre colÅ£ul [drept|stâng] _P0_ ÅŸutează de aproape [O minge|o pasă] [profesională|minunată|inspirată] a lui _P1_ îl trimite pe _P0_ unu la unu cu portarul Lovitura [în foarfecă|aeriană] a lui _P0_ se îndreaptă spre cornerul [drept|stâng] _P0_ [valsează|se răsuceÅŸte|alunecă|deschide] după ultimii doi apărători, îl păcăleÅŸte pe portar ÅŸi trimite mingea spre gol _P1_ lasă mingea lui _P0_ care trimite o rachetă înspre poartă _P0_ se încarcă cu un ÅŸut Mingea de la _P1_ oferă echipei _T_POSS__ o ÅŸansă _P0_ trece de apărare ÅŸi ÅŸutează _P0_ se străduie, dar tot degeaba. goal Gool!!! Åži mingea este trimisă în plasă!!! _P0_ înscrie!!! Gol!! AÅ£i văzut? [Portarul advers|_P1_] sigur nu a văzut. Mingea [merge|zboară|străpunge] direct peste _P1_ în plasă!!! Mingea [fluieră|zboară|trece] peste _P1_ ÅŸi este gol!!! _P0_ merge să se bucure Un adevărat gol [hipnotic|minunat|frumos|fantastic|briliant]!! Gol!! ÃŽncercarea [disperată|suprasolicitantă] a lui _P1_ nu poate reÅ£ine ÅŸutul lui _P0_ Mingea [este|se află] în plasă!!! Petrecere! Galeriile nu vor uita acest [gol|ă lovitură|ÅŸut] în grabă Dansul lui _P0_ porneÅŸte fanii. El celebrează în moda [lui binecunoscută|sa] Gol! Mingea lui _P0_ ÅŸochează [portarul|pe _P1_|echipa _T_NPOSS__] Un gol remarcabil! Gol! Norocul susÅ£ine cu siguranţă _T_TT__ Mingea [curbată|legănată|virată] îl bate pe _P1_ pe linie. Gol! _T_TT_ e prima echipă care deschide scorul astăzi Acea lovitură a înnebunit fanii echipei _T_TT_ Acel gol a crescut scorul _T_POSS__ au lovit aurul. Ce gol! Mai poate _T_TT__ să ÅŸocheze printr-o revenire? Norocul surâde echipei _T_TT__ _T_POSS__ înscrie E doar un alt cui în sicriu miss Un ÅŸut cu semne de întrebare _P0_ aleargă ÅŸi se ascunde în spatele ratării [ÅŸocante|pline de spaimă|dezastruoase] [El|_P0_] ar fi trebuit să îndrepre mingea, dar a mers singur ÅŸi a atacat de departe [_P1_|Apărătorul] curăţă _P0_ [împinge|încreÅ£eÅŸte] mingea Apărătorul înapoi la locul său, când se părea că începe distracÅ£ia _P0_ [loveÅŸte|împinge] înspre scandal Acea minge nici nu se îndrepta spre plasă. O, ce ÅŸansă pierdută! Oportunităţi pierdute ca aceasta, pot costa echipa _T_POSS__ meciul. Era atât de promiţător pentru _P0_ la început. Atât de aproape ÅŸi totuÅŸi atât de departe Bună alergare, bun livrare, dar nicio răsplată Norocul ÅŸi-a întors spatele [lui _P0_|echipei _T_POSS__] Cu adevărat o uÅŸurare pentru _T_NPOSS__ Aceasta a mers oriunde, numai în plasă nu ÃŽn plasă, dar nu a fost aprobată. Steagul de offside fusese ridicat. _P0_ începe să îşi pună întrebări despre ce trebuie să facă pentru a înscrie La echipa _T_POSS__ încep să se întrebe ce trebuie să facă pentru a înscrie save Åžutul sfârâie, dar [portarul|_P1_] cele mai bune mănuÅŸi Vârful degetelor portarului _P1_ trimite mingea depare Este un zid acolo pe teren cu numele _P1_. Ce salvare terifică Practică de prindere pentru _P1_ _P1_ respiră din nou după ce mingea [îşi găseÅŸte locul|refractează] în mâinile sale. _T_NPOSS__ se poate descărca cu o salvare superbă a lui _P1_ _T_POSS__ este refuzată de o [salvare|evitare] [bună|superbă|briliantă] a lui _P1_ Culegere uÅŸoară pentru _P1_. El preia mingea _P1_ este forÅ£at să răstoarne ÅŸutul lui _P0_ peste bara transversală Superb[ă viteză| pas|ă îndemânare] arătată de _P0_, dar _P1_ a produs un blocaj [splendid|superb|la timp] Åžutul jos preluat cu bine în [stânga|dreapta] de _P1_ _P1_ culege mingea cu uÅŸurinţă _P1_ reuÅŸeÅŸte o salvare superbă din reflex [Savat|Prins|Oprit|Preluat] cu bine de către _P1_ No power in the shot from _P0_. Taken easily by _P1_ Doar un stop regulamentar pentru [_P1_|portar] [_P1_|Portarul] menÅ£ine _TL_ în joc start_match E o mulÅ£ime de _AT_ aici când arbitrul fluieră începutul meciului Am început Cele două echipe sunt salutate de zgomote la intrarea pe teren [MulÅ£imea|_AT_ spectatori] strigă în tinp ce jucătorii ies din tunel O zi fără nori dă impresia că acest meci urmează să iasă cu scântei _AT_ [spectatori|fani] nu se pot înÅŸela. Acesta este meciul la care cu toÅ£ii am venit să îl vedem Arbitrul primeÅŸte semnalul de la tuÅŸiuer ÅŸi începem [Bătălia|Lupta|Bătaia|Războiul|ÃŽntrecerea] începe Arbitrii sunt gata, jucătorii sunt aranjaÅ£i, fluierul sună CeaÅ£a se ridică ÅŸi începem Echipele sunt bine amestecate. ÃŽncepem un adevărat război. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ are o mână uÅŸor mai sus. Este o mare prăpastie în nivelul de îndemănare. Meciul ar trebui să fie o plimbare peste _T[_TAVSKILL1_ GE _TAVSKILL0_]_ _T[_TAVSKILL0_ GE _TAVSKILL1_]_ au venit la meci ca subalterni. _T[_TAVSKILL0_ LE _TAVSKILL1_]_ încep meciul ca favoriÅ£i clari. Ciocnirea [gladiatorilor|titanilor] [începe|e pe cale să înceapă] half_time Este jumătatea meciului Meciul _RE_ este la jumătate. Intrăm la pauză cu _RE_. Antrenorul echipei _TL_ trebuie să găsească ceva cu ce să îşi motiveze echipa. Jocuri ca acestea crează antrenorii. _TL_ are nevoie de inspiraÅ£ie. Capetele plecate îşi spun povestea. Nu a fost picnic aici pentru _TL_. Antrenorul echipei _TL_ primeÅŸte aplauze de la fani în timp ce iese de pe teren Până acum _TW_ ÅŸi antrenorul lor au făcut totul bine. Antrenorul echipei _TL_ este furios de rezultatele echipei sale la pauză Cineva poate avea impresia că antrenorul va citi documentul de revoltă al _TL_ _TL_ va primi din plin [cearta|furia|ura|mânia] antrenorului _TW_ sunt la doar 45 de minute de o victorie răsunătoare _TL_ se îndreaptă spre tunel pentru a aÅŸtepta cearta antrenorului O jumătate pe care _TL_ va dori să o uite rapid _T[_POSS1_ GE 70]_ domină posesia _T[_POSS1_ GE 60]_ a avut o foarte bună posesie a mingii în această jumătate Chiar dacă _T0_ a posedat mingea mai mult, _T1_ a folosit-o mai bine Chiar dacă _T1_ a posedat mai mult mingea, _T0_ a folosit-o mai bine _T[_POSS1_ GE 75]_ pare să fie singura echipă de pe teren Bine: [niciun gol în această jumătate|nimeni nu a reuÅŸit să spargă gheaÅ£a ÅŸi să dea gol] La acest nivel, unul mai mult [s-ar putea să nu|poate că e] de ajuns Cu un aÅŸa numpr de ÅŸuturi, un gol în plus poate că nu e de ajuns Sigur că nu s-au dat multe goluri, dar am avut multe ÅŸuturi pe poartă _T[_SHOTS0_ LE _SHOTS1_]_ a avut multe ÅŸanse să [încheie|sigileze] acest joc _T[_SHOTS0_ LE _SHOTS1_]_ a avut _SHOTS[_SHOTS0_ LE _SHOTS1_]_ ÅŸanse să [încheie|sigileze|agaÅ£e] acest joc Nimic special încă ÅŸi [pare că jucătorii sunt în grevă|să fim serioÅŸi, nimeni nu se străduieÅŸte] E o ploaie de goluri. [_GOALS0_ + _GOALS1_] goluri până acum ÅŸi este doar prima repriză! Sunt două echipe aici, dar numai [_T[_FOULS0_ GE _FOULS1_]_|una dintre ele] joacă fotbal Este o baie de sânge pe teren, nu un meci. [Atâtea|[_FOULS0_ + _FOULS1_]] faulturi. Arbitrul va avea nevoie de provizii de papetărie! [Atâtea|[_FOULS0_ + _FOULS1_]] faulturi. Arbitrul va avea nevoie de [un fluier|un carneÅ£el|un creion] nou! [_PEN0_ + _PEN1_] penaltyuri deja extra_time După un joc destul de închis intrăm în timpul suplimentar Este încă _RE_: timp suplimentar După _MI_ minute este încă _RE_: urmează timp suplimentar Cine va cădea primul? Suntem în timpul suplimentar A rămas determinarea ÅŸi oboseala acum în timpul suplimentar penalties Cine s-ar fi gândit acum _MI_ minute că se va ajunge aici? Åži acum avem drama intensă a loviturilor de la 11 metri Două echipe, egal până acum în toate aspectele, lovituri de pedeapsă de acum Echipele nu reuÅŸesc, aÅŸa că e unul la unul. Jucător versus portar Nici un gol până acum, aÅŸa că vom vedea ce se întâmplă la penaltyuri end_match Meciul s-a sfârÅŸit! _TW_ triumfează!!! Fanii huiduiesc _TL_ de pe teren După _MI_ minute meciul se termină cu _RE_ Arbitrul îşi verifică ceasul ÅŸi fluieră sfârÅŸitul timpului regulamentar Asta este. Se sfârÅŸeÅŸte ca _RE_ Anternorul lui _TW_ va fi încântat cu acest rezultat _RE_, ce rezultat surprinzător pentru _TW_ Un egal astfel. TotuÅŸi, un punct e un punct. Asta este. Se sfârÅŸeÅŸte _RE_ în favoarea echipei _TW_. Wow, un meci care nu va fi uitat. [_GOALS0_ + _GOALS1_] goluri! _TL_ au fost masacraÅ£i cu _GD_ goluri. _TW_ vor sorbi din ÅŸampanie în această seară. Ce [victorie superbă|câştig uimitor] pentru _TW_. _TL_ au jucat împotriva unui gigant ÅŸi tabela de marcaj _RE_ o arată. own_goal Ooo, nu, mingea riÅŸcoÅŸează dinspre _P0_ în plasă Parcă se joacă pinball în zona de pedeapsă, în final _P0_ se răsuceÅŸte după linie Un ÅŸut absolut superb care se întoarce la _P0_ ÅŸi apoi în spatele plasei _P0_ pasează mingea înapoi la portarul său. Dar nu, portarul a ratat-o! Este un autogol a lui _P0_! Acea mică neînÅ£elege a costat pe _T_TT__ un gol header _P1_ trimite mingea spre _P0_ care o loveÅŸte cu capul pe lângă un gol Lovitură de cap a lui _P0_ A lansat în aer, apoi a lovit-o cu capul Mingea vine spre spatele capului lui _P0_! Lovitură de cap [puternică|uÅŸoară|îndreptată] spre plasă de _P0_ Capul lui _P0_ găseÅŸte sfârÅŸitul unei aruncări lungi post Lovitura drăguţă a lui _P0_ loveÅŸte bara Åži lovitura priveÅŸte cu jind spre bară Sunt suprins că bara a reuÅŸit să rămână în picioare după acel ÅŸut puternic cross_bar Mingea a zburat spre _P1_, dar a lovit bara transversală Mingea loveÅŸte puternic bara transversală trecând pe lângă _P1_ _P1_ părea că este peste tot în acelaÅŸi timp, în final a trimis mingea în afară pe lângă bara transversală penalty _P0_ merge să dea un penalty _P0_ are o ÅŸansă să înscrie cu un penalty _P0_ poate să încerce ca grijile echipei _T_POSS__ să [dispară|nu mai fie] cu acest penalty Poate [_P0_|_T_POSS__] să convertească această lovitură? Trebuie să îngropaÅ£i nervii, înghiÅ£iÅ£i ÅŸi să vă concentraÅ£i când daÅ£i pelantyuri _T_POSS__ pare că joacă pentru penaltyuri. _T_POSS__ poate să se furiÅŸeze dacă convertesc asta _P0_ poate să regleze jocul cu acest ÅŸut _P0_: Un pelanty târÅ£ziu poate să forÅ£eze acest meci să se termine la egalitate _T_NPOSS__ a dat o ÅŸansă uÅŸoară pentru _T_POSS__ să revină în acest joc _P0_ poate sigila rezultatul cu un gol free_kick Lovitură liberă scurtă a lui _P0_ _P0_ Å£inteÅŸte lovitura liberă jos ÅŸi puternic _P0_ dă o lovitură liberă rapidă care se opreÅŸte în zid _P0_ trimite lovitura liberă în buclă peste zid Lovitură liberă: _P0_ joacă mingea departe Lovitură liberă: _P0_ trimite o minge lungă peste poartă Lovitură liberă bătută prin faÅ£a unui gol de _P0_ foul_yellow _P1_ pentru o interceptare prin alunecare periculoasă asupra lui _P0_ _P1_ pentru fault asupra _P0_ _P1_ pentru faptul că a trimis mingea _P1_ pentru că a tras de timp _P1_ pentru henÅ£ _P1_ pentru oprirea lui _P0_ de la o lovitură liberă _P1_ pentru dezacord repetat cu deciziile arbitrului foul_red _P1_ este sancÅ£ionat pentru o lovitură înaltă _P1_ primeÅŸte ordinul să mărşăluiască pentru dispreÅ£ _P1_ pentru o Å£intă maliÅ£ioasă _P1_ pentru henÅ£ intenÅ£ionat _P1_ este sancÅ£ionat pentru oprirea unei oportunităţi clare de înscriere _P1_ a primit cartonaÅŸul roÅŸu pentru lovitura dată lui _P0_ _P1_ pentru înjurăturile adresate fanilor echipei adverse foul_red_injury _P1_ faultează ÅŸi o targă îl transportă pe _P0_ de pe iarbă Fault a lui _P1_; _P0_ pare accidentat... poate fi nevoie de a fi înlocuit send_off _P0_ a fost eliminat. _P0_ este eliminat. _T_TT__ a rămas fără un jucător injury _P0_ trebuie să părăsească terenul datorită unei accidentări la gleznă _P0_ pare destul de rău accidentat Medicul l-a consultat ÅŸi _P0_ părăseÅŸte terenul temp_injury _P0_ ÅŸi-a întins puÅ£in muÅŸchiul, dar va fi în stare să continue _P0_ s-a ales cu o lovitură uÅŸoară _P0_ încearcă să scape de o uÅŸoară luxaÅ£ie _P0_ ÅŸi-a întins un muÅŸchi: pare în regulă _P0_ primeÅŸte îngrijiri medicale, dar continuă _P0_ are o tăietură deasupra ochiului stâng, dar a fost bandajat ÅŸi poate să continue stadium_breakdown _T0_ are de a face cu probleme pe stadion Proiectoarele nocturnei au rămas în beznă CeaÅ£a deasă cauzează distrugeri aici la stadionul echipei _T0_ stadium_riots Ţăranii se revoltă Fanii aruncă diverse obiecte spre banca tehnică PoliÅ£ia a intervenit spre a opri bătaia dintre suporterii adversari Un fan a reuÅŸit să intre pe teren ÅŸi îl atacă pe arbitru Fanii se revarsă spre teren într-o invazie la scală largă stadium_fire Focul consumă stadionul echipei _T_TT__ Fanii echipei în deplasare au incendiat tribuna din nord Un vorbitor a fugit în flăcări, iar focul se împrăştie în tot stadionul substitution _T_TT__ face o schimbare: _P0_ vine să îl înlocuiască pe _P1_ _T_TT__ are nevoie de un jucător odihnit. _P0_ vine să îl înlocuiască pe _P1_ _P1_ iese în aplauzele fanilor. _P0_ îl înlocuieÅŸte _P1_ nu pare fericit de faptul că e înlocuit de _P0_ _P0_ vine de pe bancă să îl înlocuiască pe _P1_ _P0_ este înlocuit de _P1_ structure_change _T_TT__ a schimbat structura echipei în _EX_ _T_TT__ se restructurează într-o formaÅ£ie _EX_ style_change _T_TT__ schimbă stilul la _EX_ _T_TT__ trece la un stil _EX_ _T_TT__ încearcă să deschidă scorul prin atac _T_TT__ trece la _EX_ ÅŸi o lasă mai moale Un ultim efort: _T_TT__ schimbă la _EX_ _MR_ minute rămase. _T_TT__ încearcă să îşi schimbe tactica cu un stil _EX_ Schimbare la jumătatea partidei pentru _T_TT__ spre _EX_ boost_change _T_TT__ a schimbat stimulentul la _EX_ Se pare că _T_TT__ au renunÅ£at _T_TT__ trebuie să creadă că s-a sfârÅŸit acest joc _T_TT__ a schimbat viteza Stimulent activat. _T_TT__ joacă cu tot ce au bygfoot-2.3.2/support_files/mmedia/0000755000175000017500000000000011225071373016276 5ustar eliaseliasbygfoot-2.3.2/support_files/mmedia/pics/0000755000175000017500000000000011225071373017234 5ustar eliaseliasbygfoot-2.3.2/support_files/mmedia/pics/match4.jpg0000644000175000017500000011673011225071373021126 0ustar eliaseliasÿØÿàJFIFHHÿá&ŸExifII*  ’ž¤ª²(1 º2Äi‡ب NIKONE4100,,E4100v1.02007:04:21 16:18:47#š‚‚‚Š"ˆ'ˆ20220’¦‘‘º’ Â’Ê’’ ’ ’Ò|’)Ú†’} 0100  ð ° Š££¤¤¤¤‚¤E¤¤¤ ¤ ¤ ¤ ' 2007:04:21 16:18:472007:04:21 16:18:47  s NikonII*^d kx† Ž–î(€‹‚ ™…¦†®ˆ¶”•Æ›œËžß¨é¬ ý­ ® COLORNORMALAUTO AUTO AF-S NORMAL èAUTO a1©#vôèèöâd¿2%°%&(#<Ydô""""ÿñÿñÿðÿíÿÿ""""æªöd(`\R  ¿i½f5ÇèLjˆé   ¦ Å 1é  ¦ Å 1)"/å3õ2€wwww&    “/n:i?!9"!øo7Ê(!#HkBNORMAL OFF dd OFF ASCII dR980100öþ(‘,,ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ ($µÝÔvvÏ<™*ƒ8MKæ&í»†ïLÓ«Š“X{×‘á€Æ¨f,>^zç·ZÔÑu4’,‚0 ycY*Šö+”ƒ]‚E½ g‘s>rNqŽùí\¬Ö,±I4¡Ùã!‹+gpÏ¿¦1øWGây'vìîêî8ÛÆÇ_^ßNk›®.Am3¾ðc*6Ÿ_Ã$žªV¸+—~Ì&¾sçV0Ø<çVÔzšØ¬Y•¤†Dä«gtÅgé¿imMŠ$M0…KsZIá4 óÀcg?¨¥%fÚÕXì,.á`mÅ]¬k+»>Ù#i•IPXnÉÍxŽÙ8Š)d>¸Ú?_ð­ ›Fm¤lÑ\¬þ#»|ùiC×ïÁÔ¼Qo?oÖ=TÊè*ùY<èô ïí-¿×\F‡Ð·?•fÏâk8ø‰%˜û.ë^Qyñ@µÏ’Ó\·ý2ó8®z÷âœÍŸ±iȘèerÙüBælöiüOvùÃCÔåô¬›½ZîU-qzá;Ûô¯¼ñïˆ/ ð@§´(õëX÷x “޵ВfÜGàNJ.ZLö‰|C¡Å!I5MïæQ̧¸ÇñŽÑÎ?â`=È_þ*¤_Œ–?ÞÔ?ï„ÿâ«Æ#’$rðš{wÝ2ç ¦åXö•øÉ§Ÿùiz>±)þµ:ü_Óön7 {µ⑿îÚ€,%2Ã÷ôæ“tmú§3¸EÂÇ·Œg{©ÿ(ø·¥Éÿ/—„¯V€å®yÊñOR²±ò¢}£œ*ç]™îcâ®–­»í’äÿÓjüQÒc!ÔgÉã2Gå^Œ†\my1É 3O3@•PH9êGµ /3Ý“ân*íkÆ#9ù¡jmçt äÛ>¦T³é^—6Àí'=1Æ?JÝKe$´9þTY1݉ü&ùI«H¾ùç?Ý­[øZæò4: ,Ùº°äû‘^/áÛ½-FGÖ0ÐþE OÍǧã]+ü@ѬT®›¤ÈØïµPZ=œX9´{%ÛXF²4W‘ïqŽãLŽ•ÏAZÜ©‰¢C¹W@$`÷*Û&EŽ›#úX(ü†k ëâN¹tÛak{U'TÎ?Ÿå\fÿAM%Žzò(æ`¢½KXÖ®²÷:”²FǢϕüãò¬brrO?ZA¬~ïæi 8<ȃñ¥~åXMËžù¡›ÀÎ}jÄvaÔ0r; ¾·³E¬6ñG°Ü«ÉúÒ1-î¥HƒÜ/*éÎ 4aÕœ ±,÷—XW,G`HVèÏnÉŒyè g qÓ6œ›u#‚ ?J*™™”‘¸ŠPÛ›’zQ•õ©#‰·….{Ô©‚Ù\ƒÃqLv+îâ’pjÜ:l’Ä[ivÇ&£6¬­ƒ Gi°XŽ,#¡êhÈêXàýâ“Áz ±mfÁ€xűá×wZr6{æ§\ ù·1U¤‚X3FTwô4jÔàœÀºW^$µ6Bob²lÁ˜c®:ã8ý+“µ’=Á€ùAÎ:×g-ìW1°Rë¯cç§Ó4$–'ììq¸tôäÖþ›.‘%Ò¤66ñJT„!Ô’kί–KªîS¼FÙúg·c4ß0XäA%ŒGõÇ­LþTw4gðܢ\éðßÂl'òïWäø-áëÔß—Vœg)(aÿ ¯e0r );FwwÅtI«É ›Ìvež,!èÏó® ­;6i5¡çZ?­:þòñ&Õä[ܼ ±W,œç¾j÷‰>x{CðÌ÷v²ÜKr¥@/ n§Ð[^¾³Óùf"]1É^⹟|A·ÔíΙ¥…kv@¶í!÷pAú:ïM¶d;O˜ÌÖTBHÈLS®l£ˆHrùägƒžj¤’9nIÎ3×5~SóÞŸJ»†‹F’4sP$ûfœ±£ d üŒï@X¨‘oÉØÄgŒ°QRœÄÅa¯4QaØÕHC£(GgŒ_z”Æ#*ÁU# ©9¢ÖˆbÜ K"‘™YB’?8¦µ´—r«¥Ú…È;ä`OŽÔ˱PZ —h›£2‘ß5Eå-Kya2[!ÇaZ»ZG+å³Èüu$œãŸJe¨Ú#+¡qÏ×è²ÜLÏXU¢;FÆá€ÛÔzõéâÑò®âI#§w⯘d’Pñ,k6 ·'w¡ô«$i ŒUQ¥$nÓŒñþx¡!ô¹%¯˜®g;Þ;®*´ÖĤ§–›ÜãzØhDH&²îàr²íêÕ”¶ .‹¬rpb-Ù\àƒéÐb¦[X”µô=aý¾4š7”7åõæ±ïü\R.8~Ñ,g†‰NÐ1Кço5BòS.ÖHÉÆJöïY‰orÌhÎ×ìà㎕œ0´×Bœ˜ÍGS¹Ô.%/#¢³–dSòÿõúU/³'œb ç`O®ÅÌûž>x“àsÛÖ’Þ%‰$FÁbÚ8cÏLý+¡EXW iù2 •Çùüê&HÄaqƒå|¡A'9ϽZŽ9d˜DÂÃb“ùœP½Ôˆ‡θ‰þ”ìI…„A]¶9bx`öþX©`EŠØNÅœÀ”¦rsêEK,Gí¼dÇ Ú¹ÀÆ~µ˜yæ1'Ú%v йÂñŽý=(jÃM^äwW-#*œ,`‚@Î@ë˽,°}–L¿Ý+·“Œ?/åC2̱Ç2m°fÚ3»¾œzT³Ef²ÂȲ“ ;‹þb„ƒc2$&]û ò`/ÔÕä†ar<¤i¦ Œc§ô­xô±#]L®‹Ð•äõéùÕkËåKgÊQËp«ÔŸéô56°ïاe0³Ï!C¼…ÊŠ’;aüÓ¨fùˆ Ãü(£—¸®uiW¯g†°™m»Ë8ôÆr;vþU'ö-ÓÄ…,7wùˆ óœž3ÚºûE¹¸µŽ,8Rªzd⬈gÿž3¢“^<³ ±våEIÊ/•œZø~ü±Ûl\¢@9ü)¿ðŽê03¼‘” µ¦!¹Ç'·ë]Ø´ºa‘ 7Ö2?¥/Ù.Þ†AùÒxúïh¯Äžy\¾Õ¤Š[ÅÆÄ˜öàõ'Ö¢ÿ„Rî!±esÁ+î2Ù®äÚÈ1’£?Þ S3ËÉÇúõþ¦’Æb¯~_À\ϱÀ¶qef#•§ É’ÍîO >ö:ãüŠ£>ÞbO*ܤС°°€ªütç§½wż“ÛÂö³Ûa™dÚncëÍ^v­Èvªì¼fPpkU‹Är§Ëø2Ú÷T“ÖçžÉ»”i ÓÃ(Üÿ*®; c¿?Ö¢ˆZAlÐ}žg‹+;giãtíú×}§Yé6Û-&¸‚Ku0RY˜ ƒÙ}sV¤Ó´É˜²­¹RN?ÑÜ÷õÛU:õl¥aUøÛ†Þg™ÉöhnK æ7 ! pxá«Þù±Dß1#ï gñ¯B}J~Z$Ïû þb¡o in2캟âiÇ4öü¿ÌÉóœz«G&VÊ58ÆU±þ5[ÍK¦\Ú1—9È‘GN:m?λØü oI¬q‘휿G‡,´ëÂ÷‘O'yÑ*ƒÇûÇŒéxš‰^z„»yö—lGnªHlŒ ûS-·/å­ÅÔHX†b[ôšî³t‚±^Ãmvc–Bbˆ0ÜG?/ONõKVÓRÞÃûJÂÝ•“ âwÇ=@"ˆâ.íúš8>TÌG±hÆøõ™ðƒpÁqŸ\dñYÖ·q¬’´×“ÉpÙÚ»‰Rsô®°xj4·Åví1| ƒa'ª«’F_JÃþÇie1G ÈF:¹â=›´—âd¤Ö¶¹œš…ÄÖžk¹gä€ÃvÒ3ÛñØï¯ä3ȪY°àƹà㸫cT™âUè p¸ëŸð¨Îœ£¼ç4¾·ê.uØ£w©ù7Dß¼ý)ñêVñÅ‘·q¹×v}ÅK6•®]Gn)‘èëòĨX\õæšÄÁ–ªÇ±>·«ÇæDÖ¢œó0¸ãµ›ýª¬Ä5µ¢ç’ÁN~kkVðUö‘m ×vÉL>VŠ@áO\t8íY2iÀÆ*as‚Pg®zÕº±»MØ9➢G©Ù„ýýšJÇ¡(ª§G’LÝØTûh÷/ÚSì{"ïÈin&‘ GpÎHΠB矮값±P~ õêFPêsÁü+çåZrnQ“ ËšM¡–ñÛ >hSÁÊÓ|$nHà>œð¬Â…zH1Ïqþ$2íB2~÷njim/ÌžfjÚXD–RJÎ%erIŒ 'Çó¬=i¢‡l«6”£"(9ã$ã×µYµ˜šÊþK[%‹7íÀ›;ry«J·>HDR7å÷O§¾+ºUbœ' .èÔPš“ØdZlöË2åI?)_^jE·hÐ*” qš’XQ”ǃýÃéQ*ò3Ó²æ¼éÊw»G<›nælSXŸÛÉ4S,e¸IYTç(W ŽàÕ½ir¶ùS+k|N%NŸ*þ­ «ò©¸Çk‹ö8°Iª°e ò‘Æ‹‹K{ËIáuŒ½ ÈÏ>ŸãVJÆÇå%Oû™§E™!d9À9 Šä£RM¹_§ù&î`ZÛj>c‘*[Ú1°Pb£œã<÷5ƒª´×+¥Lì.-rrçÌ\wôÁ⺖óQq'™g&wÙÇø-T¶‹ò9,eÉ é­Ÿôl} ÿ©/†ì6–ÌVŒÖ·YŠôdo¦?­Dn'ýÒ~”•J‹fÿ¯˜r£—Óf¸ñ’m.mnlÌ,®ÒJû„ÌAçê?­2O¿ð\¡úƒ]TDG"«(U ·ýiæU'á]Œl§Q´ÁÅ3Šo ]ƒÃÆG¯?áEvFT¥ü謾·P9"d‡~1üM9&‘;(ôÉ#³‡mÞÝù¨sðCqÛš§Q3B9UâTÃúTñ+Û®8È8 =«-dEÁØÝ¹ÕËYö†,ŒOÿ^®5PL²b*U–åÁô£2²€ ±o­[I3÷béŠq33mØ£ØÕJ)­gIw2 ÆNêßýjòCÕãÜÿ…ZšÚRœayG^j±¶¹^½=qY·(“©Èø—SŠË]·¹‘°#F ´ò2¾œÖ—†uxõ+‰Þ¾ dŸ—c¯×ÔËñž•-÷Ù"ˆ')d {ásŒþwÁZUÖ—¥7ž|³)&yÆ:þdþUÛ7…W PÒç^’0ˆm#©jäõ¨nC\@ð;Èw@9í–¬Û4Ed9ÉèI« ÛœîfÏçý+BÚÁ–´wEhš@"ifT_½ÇãÆ*A($îs“ØS±oƒ‚ß‘æªHñ£0[ééS?h÷Wm»– B?ãàóéH‰,»‹ÿ]Rk¤Qþ¥‡l“SÛÝ¥Äyí‚ZªÊêÚ 2WXÕ sƒÛëMGT]n ÅÅš_àlºG§µJ’ÌÃù5E§(Ù}>ŸJO6í±û€sÓæ>ŸJ¨§Üµbô¬þT‡y<’qQ•ÜÛCþuJXµ'È0¸9-ÿëV×/v®'ô­bÖårÁ¢¶µÚAÞ7}§oæ§=þ•«äº"¤®YÑ@b;{~? ÀÖl¢Š}:gœ;5Ú!lœªœñŸð®îm‹×RHÝÊ©$~¼ÕÎÎ’õ×üÉil>ÖÇÔJ•J§#Œwçüj i`bÁ|Æ¿…k¤öÜ GYÜRzvúUUûQ`«“즗Kñµ­Öž#ƈY‚¢’§>R1È«0øŽÈ’)3ýÔŒ“úR©‡†ÀìaF.‹ `ÿbtãy­‘ù#*ÝxÈ5XOw?оÛדö/sD@ÎüãšÐ{ÛµÈeDç?<ˆ§õ4Ý¥® ÷, ¹÷Ó’ÖB9ÀäUI/&]FÚ3ß÷ ÿè9ª’^Û†ÉÖ#$pHöZµJ]"ʳìk¶›$™Pþ TÙ îœþ8®~-{O»Vd¾¼+'ìãåé%×,âònäô̪ŸÐÕýVOì‡+}YZ(Çšÿ‡ÿ®ŠãŸÄöAÈû s3ä´Sú«ì‚ëÈÐ7ªNVÙˆÏLŸëŠ”ÞÊÁ‚ZF¼ôÿ9¬Æ–íºêºlC¿— ÿ SFq‰5ËÇÿ®Vç«   ù_c]®o™@ò!\q•‹ÛÔ Xî.Ref;—¡ ê6ûò± ¥ƒÍu©Ëï¹S?ú,VºC¸T´’Fâ[¢AŠ¸Ð’z”©M« \F÷ÚŒPƒÎלäHªÍ{¦F›ßT·8êqoåTÒÂÉ<­"×{œ&D’}$UÉì&²¼ºMµ°|íy,r>«C ›Ôj”º”äÖô–Ü«q;“Àã?û5>-B)òt»ëŒr1ôÁ©ÖâðñÔ«íÊ?!U5Iµ Kq5ÏÛ,Bù²†Û“Ó“Å5…ˆ{/2MuÈíRhü«˜å>n`sœU³>©Þ+?ß¹Sún52øoS‘ͨÃ!¤™øµSÔt »{Ygó­TF¹ÙÈìÇè iõxY&/gæH·wËÁÔô¸ù鱜ÿè¬&¤ßet¹×/ ¿Áöka°}CXZ[Åçm½yàC’Ò˜K"€:sëúV¬w>û ]MªL"‘™W÷I8ëÏïZ*] †}°JXKVœt Œ3Q2Ú3kk·#¼·yþJ+<ëz†¦­ä—{­Wa½O…Mâ{{·Ð'½²·ŽZKî9Æ×$ôíTèÂ;¢¡MIì\ChìV=6ÜKÉ#ìØ§½Ç„­­‚:}™[ùæ±tŸÿa¤j6 Ī¡ÞâØ8bz»=§«{âßÛj6°Ei Vò˰ Œ‰#UF§Z\‘[XÛ–+ì‘M¯^Û,¢ a0¡b¢D@ž€~”ûMnóRÐeÕÖêý¬áÏœÌÌBëƒôªºíþ›«-ÂÚ=Õƒ«®ån¸9ÁÇ=¹UÐúYðUý”C6r´C´a±‚„c¦Fr9éB•™n ÞÚôùVn‘‹[»ùk+È èI%”·çM ÏîÈëéŠ9¬L’néX´ÖPωxÉ#s´ûó’(ªÆåÔÜÆ(©åD{8>…ô'Î^{ÿJ½éEe™ÚËwl  ±#5Ðh¢x×BuEWy˜;‚ï­V+ã7—ð¾cþ/\ÏŒtP“È¡c|r1Ín ›‹†ˆO<²*`;–ÇçEO¡øY4w×iÞË©×$#Ò£Vkýà^1¹ò&;ÿS¨BØÏ¾U‚Õ|#Ú  ƒãÚ¸íröé´[’×33!õ¢ŠóåòõGOÙg’<·1œî±Ïz³®|±Û áArtëEìËâG~t~'þû˜óòI ^ÄóÎ?Z[¹ÖõTÜÛ0§nxÎñÍVÚG¡€ÿx¥êˆ|xŬ´ü’q3ã=¸Û"d×­#s¹ Ü€v¯8¢Š)ì¾gNcþ÷?UùüO4©­, #ˆUþXãæì+¿‚ÚÝ>iR¬ Ì€¸A’>nôQSöQÃâ?¨|º¤[xéÓë^ã417Ãë1!`ªÀ•ŽOÖŠ+w¹Ë§Ÿß1ó@ÉÅR±Ï4QR2Ìh ghÏÒ‰QMZ_¿øQEÀÿÙÿÛC  !"$"$ÿÛCÿÀY"ÿÄÿÄS  !1A"Qaq2‘¡±#BRÁÑð$3Sb’¢Òá4CTcr‚“²%5Uƒ&DV„”£ÂÓñ•ÿÄÿÄ9 !1AQ2a"q‘¡±ÁÑð3BR#áñ$5r‚’ÿÚ ?û/ŒÆbÌf3ˆC1˜Ìf! Æc1˜„3ŒÆbÌf3ˆC1˜Ìf! Æc1˜„3ŒÇŽÁP³$öÄ!î3 áÏ •¤ ¸ÄYA¶“Ðÿ† ƒ2¢™’u³zúÛªEó ˜f+|i•ûúG4®±Å7p e­¼¿~˜±Fé"†F B0~ì” ¡Â½‰[¦¡p Ü|°d”•™±É3üúl²5ÊÄ<±¯€€"!Zûéo{l î7ÅzI3…–©s=T`þJ6Œ)$\í`Mý~ÛÎW–Ä(3 Ã=š7ª Œ®ÊWPíÔŸþ€ôQîôŽÔy¬±»Eo,ž-O°Rªvìþ׾×ÂΔ]4¼B¦ó6Ã2ÕÓÀíÍÉòf×e§kžø»ä™œÂ_t’¦)ÃjPìãV®½kÿv+‰_Y–gGŸ rPÔÚXÐ ‚Ö+a`-qÖÿWìG›U­/5E2˜%›SË@¸Ck7Ôê{må|W©-_®tú*µDr”2)½Ð–,OžÇðÃZyRx–XÍÕº[÷ƒk=ò}öC4ÒÞ9! ÔípvÃ×9të*ì¶òít癕5b\f3‹€f3ŒÄ!˜ÌEQQONº§ž8—ÍØÇëøË!¥%V©ª\~l[ÌIf(5¼}T÷X_'ÿPÂ<É8Ьù—!OæÀHùàäb:ˆêÕôé®yã‰|Ý€üp‹0ã>¤bžûÏ~d*Xã—H†f2TK,îNæG&ÿ.˜À6U =@GT¹×{DvºåÙSŸ'¬>θA_Å\IYpk–•æÀ¶#þ.¸MS<0FdšT‰Ý€犦uíƒ2­B§?¤w™3ùx/ož"Bv–yÃÎí%LóÔ9êdro=Ú—ùˆÿª1ɳnÙ E—+Êë*Ø~t¤D§þ£÷a/ý¼Vÿðý7ÿRßÝļQ=cïfÖPzf”ó—öãa›åG¦gGÿ=n(4Ýã0 Í2ÃÓ1¤?úËûq°Ì(Jêcÿª¿·—A8ÌB*©OJ˜OÁÆ6çÂzKõ†!.‰1˜Ô:ާçn<Æ n{ŒÆ\yãFš% m¹ïˆC|f Jºy¤SÆî/°7;cZJ±705”£{ìw¶d@œf®®¤¢…¥ªž8ÕEΦ-Íh3D´•)"“k?, ѽ®@Üf"J˜veV‘EʃÓ Ç5¦cØÙšÂÊ;w¾d@ì&â> ʲ¨Z*º„2°°„nÄöÁYu=>£#]P^Kàï¿–8Çfé]X¹ˆõFSªY‹iûk¢þ¿u5jåZ*ì³ÏÄô?Ƨ¥~dRÜ FÀi­»ÔÿÃ×¶"ɳX ÷Êä™ÖT%bX•µÍ;ПK+áÚ|»KÉÂ;Åd °%ït"ÇÔßxaXs¬¶ç­þ:€¯.5ÙTj ß}ÍŽ×ì2IÉ«î\­±Ó¸Ff¨¢Y×·!PÜY0V~ÕS?¹„ˆ—ÖÂäÔ o{ S8s9­£¤4+LÍh•˱­ŽÂÞ‡ «*è¸èÆ\õKùx.¡ÖkÝ­·N»ßk]F¶h¥ÌIÂÌå™Ü<ÌÖššŠá]%åv,ÌAf /AÔl<ñCTÙÜJkÚ@BË+Èá#Ø‹ta}$mb ÇM±nÍø}òì±ói¥Š<ÆgH‘6—u`: “¸[þÌU8r€­h35™k)ˆ'^¢"é·Õ>죄•ÓZÆã2Ícâ*8%¬jȧ¤Zi¤x‚µ×\Š tb;¨|:¤®¬Ëø§6©M"ÍXºS@³9QG™`-ð£QRSÍÂÓWšB$’î’r xWY"ÿTõù_ð½I›Úu] XRXêae¹çÄn7ð±°Û©=qwìZóK±ÖkYšUÔ©’™iV–Ç‘"‚Ê£K\•$nCì§¢ÛrH)³JÖ¢ ¨IV®FÔêå»}PMïõ|D\‚obq`ã)^’¦¾ZGÜZ5@꥞ä‚÷Øl;+tuQ4ÐM=xàÔ°Ó t7Äö·AsÔœ,éÊOD8Ç™nà\ª‹èá#’H$Ö¿V&æÖ;†ý틽<ņ̃–O‡¨"Øæ‰Ä™’ÀðSÓÅ må¢7¿mºàzŒã9©¸›3˜Õb²öohJ(¦uâÞ‡Qª¬¤¥RÕ50Âwp0’³Œò8."šJ¦¡Œ‘öôÇ9dGmR#~“GïÀù†e—eñ+«©©~tÒª¼ãJ¤Të²éYÇUoqE–¤Òï÷ %¬âú°‘&dЩüØ'ߎiœ{Xàl»RœäUH?2š6{üþ¯ßŠnsíö†2W)È*gòz‰DcìüprÅ žR;<è%bÓ;ÌÇ©‘‹~8ôiU²€ÇÌYǶþ2­Ô´¦‡/CüÌZ›íkþ¦g[ÄÙ±?HçY…J7TiNêôf&dƒ–Lú×8âÞÊ}#žPS°ê†`_ú£»¼ãÛ_S±Š…«3 Êb‹Bßâä~ù‘Üu€?â¾5^£KB°©§8öõ˜‹Å–dT±¶¹å/[ ?Ž)Ù×µž6ÌA_¦½ÑOæÓD©oø€Õ÷âŽc,Þ%ßÍ›rÜŸ #ýÕýxG62‚ Ì+ólËUMuemm‹Ë+=‰õ7À°IEø›œC™fk´´UóR;®aœ¦ <í×·ó–Ù†[–WÿHÓrœ=Q”$ÿ½|Vå.…‰!'KîíðÛ¨ÿ4ÿoøcÃ*–!Wo-x÷™èþ?·(úŒ{xá1·Ñù±>‘Çýü¶þ0}Ë5lAŽ;íü~Ì|Ë?(ºIÎV+qª1¸½¼ðÉr¼Ê¦•ZšŽªH·:Ò;ƒ÷öÄrKr(³è˜ý¹ðq;ÒæãÿF?ïâUöáÁ‡¬Y øÀŸßÇ̯GQ”’µe6`aè~ÜxÐJ ŠÔÿÊÿ¡r¾§Ô+í¯Û«×¯Æœ~£‰¡öÉÀ’l*ª…üé[5ý«Ãñg3¦,õs7¨úÊ´v½úöÄT”sOTR–)ª÷åÅf°ò ªE*2®}G'µŽˆŽfa*ß§ñgÜyôÆËís€ˆÿÅùY?»•ëië#¨)SOU€<RmŽ!åÉoô¿òÎ4ÄqgÖCÚß[ÿ#ÿ–—û¸õ}­{?·þ<ÿ-/÷qò.Y˜Uê4ÔõS„úܨ´ül6ÆïK-451M Ãó$‰•¾Ã‰š;$·>³§ö£À®àCž®¢l?‹Ê þÎ$Ô8 'ˆÛ“/÷qò\rrƲ¬FÀöÇ‚I¤“ó‹1Øik“åÓè9YõÃ{KàiOˆ#bJ)»áö‘ÀÑ-£â#vIÿÇ%ÔÒf°Ädš à»<(ûJâZŒ¶ZXé&¨ª§˜UEÍN\ºÊ‹‘fê¶Ý Žh\eNv>¶ƒÚwk.(„?A¤Éç´N{Éü'‹ÕŒ¬1ñÊHP”Bƒ}€'¯Ù‚&©¨†"JJ«ùÅ‘ì>ï¿èYöðã…¥ÈüGFÎz³O¹íßï€m&c¬ÒGñïŽ$Ì&;,蟳Á#M*¤•zû›«Æ<Ñ—&}š8‹€]6Îø|¨ÙTÔÅa×µýN §Ï¸!òó¼‰Bn-W߯ß8c-¯Ï3Ër”†IÊ*X­€"û‘¿_Ž:^Gì£36|Ë2Š#o« 2mø`vi샭Ùô¿æ|+S˜5=o–Ï,‘GX¬[}ìÅ¢l¢‰Ö0¢[O-´ÚÆÿ«5å^Ìx~–Uš¤ÔÖJ7–c±ô ¤}·ÅõH陪êž%²£Lt¨ø_ °÷ä#¯bãÄôtÀÑEŸÒQ‡AÆÑ /cpÀã~öøb—›DNdµ¹~g<Ò°)>ªP‹"Ý~°ó=º’p›5âîɃ{îy–Àê UŸú«sŠŽsí³ƒè…©Eu{u1áOÍÈ?vá¡û„ô‰=ޤõÕm–¹#Š:b,ä ¶µ‡§kÛË=:ËTµs6©Â,b@¡[Hã{ëŽ œû~Ì$¸Ê2*X;¨”È~Á§õâ››ûZã¬À²œá©þmŠÎ=¼ðÝ0eËrܹ‡BúbCóÜýØ¥æþÞøŽ¡Šå¹v_B‡£5åqóØ}Øä¢6½ì®çðÆ ^ÇË}Àü7ºŒeI¼ßÚ7怊ž ­E=V/ö-„ù}6m™M%E3ÇU0Ù–J•æµÿEKjo•ð¤˜Eÿ8ž<|¾Û~¬#”¹1ÔRä˜PWPÏÉÌ(ê©e;è–#þÖ6¿«_ðÁ7ÌR‰èR®¡i$>8DŒQ™¶y%ν†fæ5‰ôµÁìz›[1~»}­|@H½·¸ûúcÍ™MA½ðIbndz¬–'Èmøãfpл¶û“ú±%c#mLvo!‹u $ù5=mUkD¥Q´ªnCï±'°>X*Y5\x|ìÆ]ô†k››w¶.c'ášu<Æy$Új€5oäûÎ=­Ì2)–:¾•˜-ˆhÙ›ž…Žý¼°u%ÑK»]'g¡wû0e'gU LUK ®] þ6ÃØøŸ2J’AT…ºÇäþ:cÊþ&¬’3*–ÙƒÝ[ëu¹þ‘íå‰fÐ\3˜Ô­-#ؼªlwëkÛq÷cßàÝWúü?Ô›û˜¯4¨ª+̪We©®¢ýÏ|Gïr=Sö¿íı.{,²G3sÑË ®Ï«¡ü0RUj1Çi+¿Q¤ *’Ye·1‹[¥ñ®ã æYªb…g–ŒØÙMÇ\Iµ•HdŠŒ´`›•Ö¿oQ„gU¶8ô#Úä>˜–`ºSsêª9Ó4²‹øvëµ±½Qª¡-M±Üko„ÃP?[ïÇ¥›ÏïÀ³¹.‡²{ý:Jòe³ŠÆBT7é,kGY<ÌR •d¹?vââçíÆ.»_]°Rv&ƒ‰+¤ŠBNñ½÷Vf}øö–Iê¥ÓRÍ<ïÒ8v6ò¶¢Þ‘Úû‡Q‘Æž1k’1,ÈXdJªVQ_C5 ÅÔL®š¾õÀôÕUÍ¢ Ye~Êš˜ý€á3³Ûë}øñZKÛY¿Ç'b]\²KUQ²Õ¤¸¿ää.­±¯ñû5¡ˆb¦ÃúMûp”»†³që‰Ò?n"‰˜p¹š “n„“·Ã|ÜI3¡å«)ÝLÏoú±]E’BF²¢§¤Ž¢9kD’ .ô겓kØÛ| ]“ÕÔÓUkIJ#7,/oö‡Êç±À4ù/œöjCPMÓ ½ñÉXría¹½úúb!/³'ËøWŠ~“ª†¢XyN­ËP]˜ôµÈbñœûw”\e\>£Éêg¿öT~¼Ü1Áråõ’®a ¼ Ø#øˆ¹ Âþv=¼¼ñdÉýšpå}4SÄYM—ÆMů{á”ÚBºq“»g8Îý°ñÅk0¦­§£Œö§„öµÏߊŽaŸçyÌê™¶{["»YŒó»ªúØ_o€ÇÒY³ü‚Šyž(½iÕtÀòë‰I¹-£¡6=î=0&iÀœœÃÊ\¢ *Ô¹i) l:+áØ|O¦2ÖǪrË$ÇŽ-];¶M8VjZú õç—R¨~I&–?ÕÂÙL¦Ú£Hرc¹·±<³2ªjzî®î5VE$ íb¸6ÿ&î3§»åµy}zƒb‚Mkôé÷öÀ£Œ¥RöÒ£$qa%®L}ü1#Îbð‚_µøß#öGí!¤zÌÃ…kÍ,h]æ…èª7,Y.õÂL¯„ø‹:œ¦Y’WÖ#µ‘ …žçä5f‹ÖåYeÐNÕ(c‰î®"2»H$Ћc¥å~½¤ædIC%}03Gr3“;ê‹\¶çá•”­ïo<QÓËÉ’‹m!òèF%¥†º©ÒÐx:…ü(Ø—  ¢¨— ÷8 Ð2/ågHõÀ5Îó&wÖ·úçlA¤6¢ 6·o\ Hièc µPõ±ý—Á4ù|ÎÆ"X¡›÷û<°¦RY< –Á™]Tt®Üñs!^‡Êûà;q 5+&¡Í…¶¯òj$*s¶Úäè·‘Ä šuUEŽ@W¨¹Óå|ùŒQE CFγFÊö:ÁýX+2ñzj ì±Ó‡ÓÔêñêRV» Ícú°½«ªC:»„-{ÛK[3‘r”êé‰ëu%‘`ƒ%©‘I5 ©ýq÷›ah¦’»Ý•®-v6±ënØÊlÖ¶–Š­*Mú_=e] ¨4õë×˰#ãk`$ù±´5©° |L¤^äßÞ/ÜãÚÊzªB°TDÈYn °éLô%wó+ýlB—a&•±øo‰áIÞ˜£Qqá;ãU´H:¹;º·ÃŽ$ #.¤ÔÚ@ÔIè ”‰dvk6ô8Ø:‘˜ C·[bHy‘QÛkë¶%Ì"F”TTI±¸Ü÷Á¬w \†$*‚-{âH¬U‹8$ÿ hg’"É=ˆñXu¿—[c_t`ŒËe½´ƒû“lBXÆ‘uro~§÷óǚɌ«mü†'JtVEƒ ][a¾ÃsT)b“¾å¯kbÖ7ŠH/•2i’=WÜ›õã%YRæxg7Ôr<'碂¢“.«w‰”3¦‚Wc¹þ8Þ™X¶™ãEI@ú¬,¯–"ÀsKËb¬§×óJ#³o°ë·\m[I,Sr‚ë½ô›ïlaË«"A4´²î[a×ð¾Dਙ\lÀàvHÇ2–R@B[êùßÏ@æ7Ü]{ŒK\ƒZvPMÈ<7Éž1˜Ó¥zµg+ÊXõº­Ó #ÆrÔá´0uŸ…ñdà—ñ>^åC#l{þM°, È²éZJøšCr‚ÅÆÛ}LH'iCS5eà0jTµïpw|=­Ìª#’Xஊ™TýVƒPé{_× ^'ÄYŒÕ±’´ÍF¨TL;Û±{`$ÃsÉ%²É$”y›FnYVš2m×ôîp]#HÈ4RæÊ-eýͶÁK_9ËZ‰Z©çŠ[6µÅ»[d5SP%\AàÈ<²ovk}ä}˜–v%ßBÁÁÕ2Sδre¹²Ó2°.ôñˆÁm®|fçÒÇ©óÅÒ§ø½4©O[‰$aQÒ@H¸ROKôï{ZÄVrÜâªbÐBÔÊ•C’¤id A½öàXüváғòu ¡õXj;é&ç¥þXãqã+ØÕI]n“O• 3›8oÏ#n/Øä;ßo.¥¤ÅâŒu¶M`FÞ{Ž/–²3ócu@Ô qñél?Îs êŒÊšº ˆEŠ­²•¾àßmÎöõÆLh©5 ÖNÚkyæO“p…VQWP°Tæ”uPÑD^c,,Ä\ìÀz–¾9·°¬â†—²Häw Œ÷´.mâ”u½³VEARÌ’SÁO$«á>–~£Âq]ö:GÀ¹Hk ,ãÿ¿0Çw´Œ“ËÈÊ÷:mw—½4$<Íù*~”òÎÿwOò„¯Š£V:E¨¼¤Æ^™Ñn&SՖݱy ¯§ŽÝDTÀ’¦qóŸ·j‰šÃÄ\3SñxªÊPÙ.ÂÆÎ0ָܛ;±Ô[Mô8þc”ÌÕ«-Un_•mM$¿Lk”GÏç´è¡Å™F Û Æÿ/–M"[V¤KÃ\ˆdvÐZê@µÀ6;þçìÅÊ"jY³jÈ tÀçÔé©F#•m u=p‡ŠåY+)ÄŒN‹«îû‹žn³8v‘C‡¹'¦ÞXöriäx*£—YÔ§Vä ÁÊ£¸w?$ë žY-w–Âÿ#爪³,¿’ÑSeñY”“«Q؃åÞÖÀKM0rîèTvÔ¶ÛÚø“Ý©ÄFU‘@s¥Ùšáwíçöybe"AYä¯HñÇKI ¶ÖD!‡<.¡k*j'1HÃò`ƒw>WíóÆW:K;ŠÖñe·\—-,P¯>:‰s1k”¾ÂãЛúमF« £XôÐËQ,·ñê(“6âÊ2ô1¼rêU¶7¾ø+Ui™Q 2c¹½õymƒffú7*šf”„•™ˆúÖ¨¾²KK ²ê…¥¬I¤¦Š -Ç.UºÞÝÆÕç•2Á%:e´ÑÈ¥o:Im·À³D•uîÈΓ­ÏŒÜ§ãß²A´21.¤3µ¯b:»zúáV£eû°-nj¨¸¹ë`ptræþzj¹ÌkeŒ+ºÛcÛ¶ ¬ËáÂÓêå9ÕJ,Ì;Ÿ‡ìÇ“åS¦_,‘J²²7HûÚþ}-žØd˜\VâÉéê'ªU¨¨i]ôéw“VǧãòÁªæª>ÕÄf:ziSóQÅÊ»ÛqøãÝ2þŒŸ~9z¥9–hÛQŠ@”XzZÿ#¹Äþ 8y ¬èÎ.c°7=·ƒRZQ$ï |V°PÀì µík›n7î0SC×ÂÑ2Ɖ(b ×a}Ë*6¿¦Ø/Gd:Žay¥§YÉ‘ƒêÞ áø…îG¦6“/„C®£\p3Ú9 îâÛ›^ø:¡Dj¡‰V¼7o.·Ó{oç©  ¨£¦‚º©bÜ„XN«|$ís²÷óÁÆäù|ðBUJ…,Á™ÜØxlÝIéû0šGÊ*å’%§žŸ”äŽbI'ÒÝ<Îã ©èàšŽhç’¢y#—R“ÕÀŸ«§¦ýHóÆUS=Å›A k Pî“ #{€,A¹¶*ìÞ{ß@Ë*ŠVÚÿžBÏp¤Ž”ÔRÔ«ÀÅGŽËnç«o·|‘¬ë å®ï}vSkºvø`¤Š‚®®ªFŸQtn€jů{`È'æ:Ö»´”Ž9>îéu*’—ýúâÇ{ØX«-À™„rQÊ g T'ó¯p7ùyâèç¤fhµ9Þ2¥tµõt#¿c†Õ9zÅ\­M3¼s#0Të:ïs·¯Ç¾4L¹ 5E@ŽVHõ2¿)Šj뤵¼¾Â1.6K#ÊQS«ªX㎙E´ßµ¼Íþì4´õ2,ð»RªRjÒʪEì-½öõÛÓBfŽD«Db±RúÑé}…ÏÇSÐM[Fød‘ª9†œ³A’BMkyíƒ(æ[‹‘-5@´¤g‘K3rÇå<>-]Í÷Û sJ£f÷xåпœ@ úm·ž-yº*è%p1L:“D47´¢Ut6a¹·^öÞâÞvÃJíK—G*¶’¢ÎXØ‹b—šÕ×5|±AS;-1(˜Ebkßo×[ŒÛ%_Iæhé$hR—Óg»xRÄtõÛ!ÃqµM=žÒÇV/BÍ=@lº¥5u‰ÆýÖÅ ‡8·&áºº­%Ó4¢4yB°Y¥6 \ü@õ¾*¹ÿ´9êa¨£Ë¡œ†Õ$¦Û±ßbvó± WON™ Q32Eb~¿ÃåŽî('›™D­+Î6ö“šæò4tuTô\”E_xi ð’ãqÒíaÞÊ;âˆõË#M9-!nhvñ1&Û·ÍÏ㆗Z©µìm½ þ8946·f¯4¹O6–$¸@d·ˆï²¯]î '¿L# h’#Qk*òFŵ‡Ì» <ö·® ‚8àË)&™‘ä³s` Z{›m}ϸ8óèLÝ`©š(Ö9ž"c’üÂ7!Aì ûq,Ú½{=Y­%G¼¸9mJrÃBà-‚¶6ø\¹=f˜ùžœ—u,VÂ׳\Ü yoðÁ”­-]LÓ´;2ÌÄÔ)$mc{ X[­íˆeÌj™bE‘cztu]Lâ=Çq{“½¼·Äõ[² £5Ín/Ì‘¨e†’š›Ë:Z.aê üG{ÜŒ°*å"R&ÈÀ!-íoßãlMÓTf4õ9“C+©$:ôë:HQ×a°¿L3Êòi¡¦¬ð­Llj é%ã#m콯~ƒæ0#Ý…Ú͉ëèsS– M6KÄ ©±·K·,,’E4”ÑÅy¥a-”ìt‘×á†Y²ÇK,¥RM©T$‘¹ ‚O­†Ø“Lk*ª0tÖú–êNÝè;Û (ÚVþ­Ó ª¥¨¨Í„fW¤‚$µ‰Ð = Í­ÚçÓP5Vh "TrXª®²¢ÆçO¥¾üBeD&™97u Km”õPH$›†ø /S@jã[– m&0M˜±¾àÜô¶ø*+~DZ#|Ã,w½0Y¶PK"Æ×µ¾?‡ka?»Íþ½/ïòÃY Tgye7.¨ =à»hnëk¿ [¾ƒË¿Õ¢ûpmèI8ßÕÅKG[yT(ÕéySwfØ5›êél}/é=.*KŸrÂDO28ô‡;ùmÖû‹Œ8¥|º b¥Ë(ë"Ô¬¨'æ1:|G¥†Þ#qøb)â}dóÉEE+ ”BW¥Š‹‰S{ØÜä’ܹ©s[‹*fË¡’°ÒG6žJJ\ h÷½÷%V!Ë"ɦ…呤j´³´*žØÜ7CÔ^âý~8jùPÍ&¤‚<Î"YGriãÚ…ÜÜÜèzŽ&l¥(( ¯Ë%5‹#²êuUÔÊîÉ&èé|KYÝ Eêk4Õ¹Rrõ{Â!Yˆ:Bƒ`5‘õ@klFþ½aÉ2ÅÕŠ£%+jŽhž[,fþ 67ϱùèjd1§ºÔfÕòž$gE•Ò[úøAøIWO˜Á!#x¬²¢¨P¬N›5€…‡‹Ï Ôe{‚Úmkóblú ŒºXàB’QH×§K\ GÅn߆ l¨Ç@-,(3,`8ºÞö¸½€#©·ž ª¢|Ï.±VO@©’˜žb¸#Fý^žXÚºž~"€ÁPëG=:*TS‚# °pOA½¯Öç$Uû¬‚*CUQª‘Õ• Õ$Ž¥]41[zûzbJ*lÏ0”eµ3,P²‰"”QÈn½X_f3)ÉÑcaN'šXcfuŽP ¨müW¿cµ¾ÛîË)÷Š<®J¹ZTÔQ2…Á܂ר\[¶ÿ Hêõ/šŽU•lGW³ Rš–±ª’®|lÒIúÞ!¹î<ðÒËÈŒš)"W†ÈdÔ{ZâçNö=þ,ë>ލ¤ÂºA&¨›U‚Çcª5ëkÜz^ýqåE2ÒÇÙ”¥¤ŒÆÂK+/2÷¯b,:ß|=¹¦,›–¯î—äqQÔ‰*fŽXbŒ¾¨> ÊÌ|&Ä›Úݰ¯;¡©‰$š’i£¥yŸTb‘UƒywÃ,¶,ƦI8äŠçXCáÓmI}V>+yŽÝí[2ÊíÍŠƒ0¨¨Z{B<%¶ZÞÖo\%¯ªå¶ú€KU%t´¢Z½iš)Ú7µÉ[tú—Ïs†UP¬ÿ¾@tÔ-G:ŠZœC}ÑAì‡åö • ÊuMLÏ”4úgX˜Úu BÛ‹‘Òöß¶›:hª#©¥j¡´r-9”yn’:ž½zŸ3º´¹>~û×à__˜ftï „ –G†&ez’Ì쬿„vm§Ò˲Ùej‰(+âf?$ŽXG]€c`vòÃz¼Ç.|ei!9ˆ„™$M-¸`Ên ¤µè6½–çuUÐT––ZsShª,ë ¨HÛMÈóÀ›QÛ™b§*‘Þö×èÃ7›2vŠŠ!p÷‰Á!T‹5;XClI{Äyr5>Šê¡·)}™MÎÀ© Žû`lÊYrÙÕ§¨—ò¶ $xdë`-øÔneWæYŒ+QM˜Å ò²µCÓ]'rz&Þdà9¨«¶g„e9(Cw¡göYÅRÁ™ÕSÕœœ-S![Ä%:ˆR}ë率œæÙQ.aQ4V~«Ÿ.Ý?^9=vYRPSeÒPÈÕÔ2ªÙ&ñïs¨^Á6n{ô*ë«6Ì!¥–aŒ¸¤j`꽉·AÒÿ ©§9gÙ~|ÇYã^3.*ŽZIá£ÈêYÑ‚¡®Çc¶×ÞÄ‚-{â‚s“0+ï"šÅ9 }7º\\uûoämbežhÔ”V¶ » \îÛü­é` –¦…åjNtD¢Êno?ܶôƤ”EËpÚøõ%L¯C-(Ôѯò¦×\øº€mÒÀíÓ楬†B´°³ÚeÊ6¯áö`¼Ò——OÔUþZdÔB¾µUm½ïf7`oÜcj)3r’«‹‰G&¥ƒù MÅËz/AúñbQ“×AnÖÄJÔ•c/‘a‘žâGquÙEÙHò°ùŒOA—êiÚž9©×òÕv6±“ßW‘8&ÒÇÐårQ9d§æc¶ï¹IØX߯sˆâ®DÚBÚæêZ§VXÝYdoÒA:.. ¶Ç¯_†2 ) ­©ˆ±zU‹L‚)ëìuZúN›íä<ñ¾p"žhê+«§Ž®6Ö÷ƒW,kêEM"Ûãl®:vN^™m$ ‡K(6½þ$‹vßÓE¦¬ §|ÛÕÑ;C Uái#ŠG/É6k·°½í×å´´ïR rÔóÓCJ]•®6Ö°ñØÛϧœ…]cR´†J‹“J®‘¹ðú|9Ž)i£‚(#÷ yód ©À6 -Ïr€î/³u醌˜²­ÒÉ™¿Ñ²eµrÓ)1½ ±¼ŒŠÀ’wÜ=ú[åéi©ãgªÍDÔâŽ3ÊHã±k–$1$Xé#±ÞØ"ª*º ^ªšyj™Ý–J™€±_Väïw7°ì ½í‰«#¢š4LÒIèX÷~Z†-kÙšä¨ûÚã*½˜[oR9ª©ójh’ 8©"^fм6 A,M÷aé÷âË^jHérú‰¤:ÈècñÚÊëÐïåðÀ¯š¤II—Pk•§UZžTY˜ß@¶äy½òÄ‘Òç49•jO5U-XºT$D©{÷· ×¾€98\Ëݲõ’Y9:ÚP€: #­…®g9ŽbõŒ´ùx‡™N\À©bKu07ñx¯{Üù im=ERNô-*ÿœ#ìAÞÍn-cÚöï*3˜_#w¨ËhªÂÆÓ!ÕÃn5½Æ‘±ØXyàÆözÙ ÷*fU'2¦`‹–Âe1ŸÉJ•Øìn@ßÌ`´Ë¨ZŠIrù#¨aÌó ®¶ /½®¿LÃoOœR-oP±¬’yÞÍ£Âom‰ w¾-KÃt(d,4S g28Ðí±&âöUÜíÖÖÜá%NY/j:œ9ˆ¢Éêš'§¨‰ S+Ž€þ‘(µ™x5¨rì²óæOµ=V5M¯Í^ûþãf™Ô4tl´1„Ðì :Ÿ²›Õºõ>]ð‡;®,‚„43VÊ#¨57´·#xÍLJMï¹íéˆÒwk¶m«‹3º¸[ˆ`Í›[>–>1ª% Î×Úý;àŽ]Wèç_ýÌiÃt¾[-fc<ѲÈ”Ðê½Ø\Ü/q÷íÓ 9OÿŸËöÉýìÅ-d÷ï‘gáêÑïT¢ª†TQ¤Yu\2t,~°é¾Ã†¥¦‡8iæÌõS¥0)¥#Ô Ã_M¬oaÖÄŸLXr¯g5”²»&z´n&iW‘F,6]Ë‚¸éÛ|:ϸ3:®¬ŠZ<â’X•Œœ¹iyjÆ€ÌøãŸýK ê+~t,íU®÷)”y Q:ÕG˜ „Ȱ–<À—Ä0³9Ôx+£ZÚgÌaŒÐ!ˆfR¶rß”½¬wßn tÁ°È=Øç¦`l¦uN€n­Úø‘8 &¦HçÏ+Õ€7Å@–ÚÊ8õòï².+Û´·¼²L ßÞiM,0D!/?š· ¨±7PM·aÒ÷óÜãÚü·3’ºjœâ¹$A§P”±ØAQb…7&Öß|tX8,ޱê1ÍX¸±aS¸ñk¸"0‹Wc±·kãÙøžª‹Ü+sLꦄ´T:‰°m»oé`ø¶]*Ÿöj®s|–Ž‘r™ëg¨Ê¡‚•XÝÝ‹!!@ÎûH,’g9N[[Y›Ë“¬ù‰€ÁNÅÃ…;K½ÆàNý¶¾÷ïeùÒ$s×Q€ú˜—Õ¯¯QÓ©ìSç‡Ô|1•Bb2RPO¥484ñfÀ]¼>—Û>7O½'öU[œA3eÎa©†²ž j¶y$æ‚Çù·ÛžÖøõ¾7Ëj©R‡Ý«]—T¢XÚ&² ìnÇÎû_sktÇi¦à¼Ž—(õ«$n¦à‚z}ñ-WC$²ºÎ¨’.•ŠJE1ű>¯^ÞCÓÿa›nI ÉÂ1V•Θæ¦Oº2Ô0,MIOåCX'‡ómb:w¿C|>“0†«„a˪óZD†¤€Ñ4HXFɹ ©zߦ:]OUš8ii³*HzZ”+0Ôany—çôtßH˘å¦KHÔrõ«áµ‰¹õ·¦-ÃTjÏPú·ÉMÞîÛkóøÞªª‚«-2SE™I%=ô£ÈQ%K(;@+uê†8³G«Jé…@ˆHv@ÁTØx—UÛ­ˆó¶:¦S“ñ¼·AØf4щõfáì¢ý¾Þ˜|“Š¡ «¢h%4Õrs'@µµÁ½ìOaÓË>/†WŠ–¿ž%.§gS,âÕžº} ýuL“¼SPpýT'T²T #Ók‘T* ñ_¾ý.®á‰+ã–£* š9"6™ µ®­Óp|Ž,”Îo™åÙ­ ©ÕÉ#{ÁE!B„±Ø · ©$ÎòøšžŽ¶®• ‹$nTläùa¥…ìÍv7¾"£Ê£Ž'gw½®°Ž»áý6”–áSQ³äüK•eŒjâͩ˺É<òͨÕÕжÃ×n§¾g4F°­iŒ4zuHR×µ‹ié~¦ÖëÓ¶×ÓTEL¢†VWq¿0 úZÿ½ð¹×U4J"¼¥U@n¿vâcm$_ ånÌ74Ís© L*›€”YUÁl¤[}ÏüG®y™ÅN‘{¾O ”RrÕ¹n„tÀõ±æKM–¦[pKŠw|O«m»€¡vè-‡9 =tÕôµ’Zyá4m¤HCl°Ü0aYO\Úù´´L]Kæ‰Ndz|šXÝY Ï@›»}Qâ¶ß ÷ÁY_g”Ì`…2‰ìbj{(6Øwíæqt—=WæC.Yr¡ U{‘ú"ÝÝwÂüã5‹èTÑGW ª*†”áÉYö=<ñjrJÉŠæ¤õ)5Ù­~mž—|³+«©¬az` ©Í‡]·=7=þ°ÕÔG•D­S—PóÞE |{‹Üµ¬H·¥ñX¥â/ ¥•iœË¡I!EÎâÆàôǼAšTçL QQš6ºØ,©[°bBn2ÖÏñÚ›Õ©][¥µ¿Ð±Ë›Ç™åó¬Ä”VF€ÉÌ’@Ä—²‹ßÍžðò¥MVTÕŽ'xŒR½œÄ,ª¬wé…”Ç.S$’#¬!d·[¨6 –ûOž¯‚y+Žm3ÓÇ Ì^««im]î-¿öq%VÚ¾zÆ è†Ty·ÓS^”j'Æ*€ßþ^¸;1“-™ƒ&­i\1:ç"E6½É½ÁB”ô¬ñk ò$ÛêµÎí¶ÝÛ|žÖ§æ$®×Çr~ªøm÷ŒOÛqàžl·¡jz Uj,°;K¤-3:Ü·`7¸ó=‰Æô±k¢±ä µ£Är$º:ZêE×nÿ‘<Ññ3ÔL[˜È°¶¢ÀÁhÖçÏq߈Rh>B =§ï¶%JÈ ©‘ŸYq±V6 Ó˦+u­`Ó„§4›±of ie›3ø])Tb’F¡Òǯkœ;þVæõÔ§ÿöã%y—XÕPÄn5µacׯ¯liôµoúüßóÎ"ª¹¯‰j¡›TþÖùfv+¥­ˆA-¨æHîšC1ðùàôzy;2â|®"÷l÷Ž2Šó ndu3L9A•¶æÝ7ÁWÁþý® »7IPß„xð˜ž^3jœn¼A‹¡ ui<˯Ìõ€üŒäúuÆÅªÔïiÂøß8D+Å@ê6rÊ›ßúƒÏ&oÂñKÄuÌ/k&Q9?}±Dxn'ø5æ¾æl’èHÓ¯úXó [¯JßUž?…ðU>mÃÓ+ró î¢ÛZ<¡…þ×ôûñ(¬ÈÚ)ø–k›¹|cU¯Òò}Ýwx/…b:/zû“³—@d[‹ÇV ò8ôÇ5þ¤N~üIï™Ë—q9_6§€ ù¹·ÏlLµùPÔäYà!€,ÒÓÆPù/ëçÓpÊÜì¿ö@ìØ P¿^™Áþ‹cÅ’‹<Ê¥¾¥u*†oàÞnÚ¾¬Â¶ÛøPí¿ï|G6qG”~”3ØD%ÍOå 춇s×n»}‘pºÙJ7ö¯ U)=ImQé-±Sö¯MRü"òÂSJJ¦QéÖ– ƒ·®Þ¶ëÓ ³^1¢ÈØE]ÂâW˜3æÈDvÕ¨è‹e½ ¨Ì>’¢’–§‚òÉ •lÀ曎Æà¯¡ìq}><5hÊsгêþÆŠ0–´'5³L‚óÍxvŽ¡ vÑÇ­à•mÐn-¾ÃϾf GC=Nš¦åF_B®¦b@<ÏL“gf–º¶“.á<‚š]bZ„i'q©—gÒeÚà ì/l1l÷?#l£…ãê)ämï±ÞO,-\ Lý¤Rzóû(UÄJ¤U“wµú•^ÈgÉ8€HÕÜù3*i&«C£IЂüd™ôœƒ ȳlÆlÚ®Y„ô´†_v²XÙÉ` ;ïò­qç¹.W>g%DáU–¹·#X ï¿LÃücžVQ¥me•COWL¥Œ9u?‹ªÖûÜyuÆü=:K5jÒRVµìôš¶&uæ§RWv±4Ù^_#º¶[G6‡(YBÆŸ ÈÕ'Ê%ñÜÁM‰¹Ümµ¼÷YòÚÎ ¬£Žo§¹DêÕTÔÀi FÄC±Úÿ‚ö‰@ÄÕ„”1¦¤Ûq¦!å¿ÇÓ½•9_µø?¥ŒÝœ.Q¤à¼Žsxá¨ÑMÿâöoK/ù»V+Å«ðÉS>ÿIÄù˳è®eºöa`7ÿ\BikØ–¨Ïó÷±ñÛ3’ÛÞÌ7oÐm°Â¥JÖ—ÿ/êÄt`QdöM™>ô©¾4­…kìÉæÌª(bÉó Ðy²RH‘HÂålH½ˆô8éM–Fê9ÕÙ«…ÙµÖHö=˜ZOAûœåY}eM Ù=UuD3Í’g\õ›pT>à×Ëlt0P…y8£oØc‡¦Îwš{/ã*X^DȤ©‘nPuBÂà3mp ìzÛf\J¯ùJ*X”elGÚã|u~É}›TŒÊ²¦ˆÔ, !jj‡ $ U4®çaµÉ¹ Ä\–äÙÔ@‘ÖeµP£Ã­PqpÊìTÿÅØŠ1ÂÑí'v—O–“‹míñÒ{;áÙ8é+eÉ2Üú$‘N¹Ä–{ê(ê­¬zÆ×ÅF£Ùà4D"áÈj,5+æ‘H„\x¼7#·cñÃ>?¢­™èh²ÈŸ.N`yêt¨¿…nàXX›zØtÃ<ú“‡ª Êã×UDDRXrPYu³Aß¾ÞxÍC˜OÇùÝQ– 2aúwøá¤Ü+œ§þáP|ìš¿ [Sá,®|—>¾fV§er„Ù\BÅb k[KžÆýýqíUOJiÚ)7Ô,[í#éòjè¿•¥‘-×\D~¬ÔFÖ1­ðñâå v“¾å+ø;LÊíæ§•¼¾ói2%¦ˆ¢ÔJN°×Ñm‡n¿~.Eµù$z‚qRZ÷WuÄ&¹‡µŸRªÙek4õ„´kgPÖ·Ÿ_ß¶4LªŠE§ÔÆHŠÏõ6µÀìW®ýqÔ=œey _rø‚QJ"gI0‰…¬ }»w6éÒr> â^Ì3^Êhò:Ì­Q¢1*¤uQ–Ãm@“ck›} U*Îj¬h„å8^úŸ.G“ΚQO8Yã<–†]õvôõôÄù´-PÍ'Ñ0 ÊÑØ›\žä’~¨¿¶,ïH:iO˜š5îäq\x«7 «^|Ê{YfR|Šn_™»ªŠ3"…¥‚‹ÞÆßiîÏú‡ïöâöÔ¶?Pøñç»Ñëa?¨_‘b¯#³ðå&i–å³åyÓÒÏQAPPN·2I­CXžà[¿KžØb²G{*¯§Öû0Ê+¤ZºÌÊ*YëÜjPì¦0Š_WPzÜmÛ¶ò= IwË%][.½~K'Œ¼ê9'Ðècj*µœ×;xr‚ þn¬p¬?n I£u7F{Ùm¿ÌâËi”+{ °6:æÿÇሹt‰©Z:q¤ÞÆSÓ÷¾1:²†™5CZFXªU™K ßù5¸ò=pá©â¼QÆ!{†Â|úô?†+ ´hÄ*À»lyÙ†vlid)J,o}J¨ƒÖãoüöÅÔëЖ’ k˜ÙàœxôOòг&ÿÒþÿ )6å°ýx§89P|Ú©CSG2´ÈÀŽlfÀ§`Û›oc{[Ž 4«d“ÒJÃÆIÊ‘éæÑ\SÆÖ1H$`Ö>jFã~×òïŠe‘WÒÅZk¹^æåÄhÖdm¼`Vµº[^¡æiļÄr™x36Yjb_ãQÓC°n›y©þX®ñBÖ7æßÆkl)$ñ‹µ¬½HÚÿn+þ£¦žW/¡>Ê´%F]“&y%U-mDÒHiZ'y)Ü+ÂÃc}–âýAÞçcrpö·!ZXyÔÆ7A²ò€? _®ðöX”œCšÕ¤†GŠ’c%„Š!›wÜõ¿\<®’£–„¹.—Wþ˜Æ#‹…J¹f®lãu±9mk%ÓèF”RÂÌ1´‘²D¤ üNØÆŽ@®ÛÌ ýþÜN'²>ª`– €÷°³ÃA?9þ=±ÍSO¹+ancWBx;˙隡¨ªƒ•ZUˆRÕ¾äm¸å籈ò|ÏØ6E IÉÌiAÔ¤.¥± ô¿…óðýµ¿hÕ™ ËUWÂöÌ£JH½ÜÓ?.u®Ãb®GCõGÌo`©Ãù÷eET²ÒWR×I«²´§Å©€°æ¡ÚçÁl{zr…~“ŠnÖöµÏÛqà¤åmËþ_MKÏC˜¢K!ñ‰$b ½7û€Å’‹0Ë]Vrã’ă3/¯Q·^1Y®¦šŽº¢‘牥†M$¢lm·_·¬³G4 Ô˜í!¹+áÜøÛ¶È?xÇVdp|S±ò+li¢0nÒÌGÆØà®#Uo/zûö19Ü(¸¥/þë©ýxø-œåõÕÇe"“¡ú“þöÔ?ÍKöâØñIõ_¹;õS¡"g°°÷éñôÁQGìçf\ÜôÂÈf‘Q€Æú—ãé¹µ÷•Õ{øVö*„§ÓcR0y!„7[6£Ð cÓ—‘•©éHÒ7*GŸ{abUÉ&¸ç¨P7ï¾'503£†bTî7¹ÛTTÖˆšŠ9Q£!`¯E¹òó‚Eš3‘T"ÈzmÙ‡»Œ@ÕT ëZÁ¬tÆZÖµŽ!5”Ñ*¬«rb{$ÛM°™Ý h9F EšBÒJÆI;‘ŠçÉOšð…V\²pî­¡ad7VV:v>½pÝë ’H¥*­¯k©_.·kâ3"‰¦ª¶ .¤y¾1J”èMM-µÜ›jGÀ| GÀ\9.a×s³ 5+ËY Zæ0…MŒeZàùÜÆ×ÕÇ&_R°Ë;ÈÐÈfÓ°>#a~¸MM›²$´-BÍLŠZ$qù=N ü7¹ô$Û®'ZÍEY)n4~£`G–6㱕|ðÕ;2ÉÍ7tOC5>WOkœÔÕÊ A¤) ¦Îû‚ÚˆøàšÄÊÚ’áꯨk\î ·ÀQfR«Gù(¬HëßÐcÚŒÙÚŽP±ËÒ×µì6ÆyN¥yî+–gv{$öS¬ºJwQ~ýÄrE «Ô®ƒëå¶'’³˜àStسßÏ× ª€æíùØ€>ÿŽ(–;Å dQ}°ðôÜCðRÒÇ"MJN ÃB¨Posb{Øz‘Š·±¼žŽ|’“9©¬ZX¨kKN9„4£X°Ä[Ï©ÅûŽªf 2“+*¸ŽÄéµú:ãœû1x—„Ý*©‰…sPŒÛéÆÝ…ÆÝõwÇ…ÆrÃ:[Y‰ÚJ3õÇѵ#µ;æt•”9”%’âQ¸,§p¦G$Ì/-[˜„\u¥þ8ç¼=šIAÇG+‰ôSÕSÉH‡b °*¢Çú`¿ž-•É&iJ•%^âÄ7B Û¦8Øçèõr¥Ì0©œ²5%MCfn»´Bä¿M”Ocjê•%z §Å}0š–0æp4mu;vØß¯ž#Lã/@­W¸(M£·µûÛ»XËxü .¹”?m™_»ÒÑTµ]L hõiV°o1o«øá§²8ê*8vZšÊª-'.0B *€@7¸øƒ†¼_*gYH§¤5÷”<Øy–Dbo›žìpOgY}G Ò=5J‘“@] X›þ~æ÷¹ïÔÚøéº‘©‚ɳ×òçvKc÷ãYh£@4½/rß³šïGà—Bðç°¼wûÛ:×j´Q-¿ÚÔ…ÿ¤6E >‹´ûŸöŸ·ÊaC³+ú›öbF¥ìâ|‡1GnìAþÈÁrT¤îe©„ ƒ6æÚ¯{žø ÔQ­Œ”éêñ‚»- nJƒØZø·´N Ú[Œˆ–¢0„ˆn>7LJ0ˆ 0Û­°@­Ëµ_Ýímîˆ$¨¤.]i‰ì7·á…Tê½¥pšœÂ;jŽœôî¿á~‘ÿcýœxg‹EÄMÓ`XŒGÏ‹ù±ÿ3³©Î)® ytÊun-ëóÆ­Fœ¹ _VýòõÁÐK:³Œ0qÑ®wßÈyàI²é£‘㕊#¡c~½;c¡*n%MˆaWË-‡fQ¿¯L ’Kt°cc±òÄI°&V‚~ ôîq°‚4Zo b<6߯§Ã ›BŒé,°gÒûV* û0D‚–DäH²¨}`Àú|°œAI@šÀn]lzz`…ѪHùŵ ¸¿}ûí­ÔdËš™aUH 'QÿF6éצ=5*ȼ¸WÅÖËc×°¾#§4SÓ—Xâbl@ ¿CäpGñeæ„'Á·\iÜpZ‰† ܽKù„€v° Êc1$pT¨è/Ôuÿ >ŠHÍ„{%ºêÚÞ¸ˆæ # ÎPþŒ{ƒ~¸ªTÓ¡4ìñ¾†S¬ÛS‘åðÕÇ,”“%K0ú M PH>¾˜~óA2†Hd¸7;Xöê0-S”¨={…7=úÿýÆg ÇQZb¤µ$RɨX†coÍ»àšX¹(Šhé)`9 é錧ªüŒECÿ'¸±ôCƒ +µ·ê6Å.´âôb^Â.:¬‚“%¤Ši¡¥TÇík›¶øcˆÁÅ3dQ4PRµJK<†ÂRŸ£ÚÇÓìÇ~ÍbJêŽu‰Â1u$ÒEìGqòß0q\q+¢ÅªHÄò„`mqd±éOÁœkSwߘU5-_3¦ð¦q/k¦‚žJjúXB@5“¨´¨zÚͽ¯âïŽå_2Mµ{Ü’Ë;:ÒH;“Ôm×3ØÔQçò …1*:kxôïÿ }øíñ<³iG2±“sÓÎøÃÅ)Ò…ṉÆ0Ñ XrÂA˜ë×ah€¯bHÛçCÖYQf#ÅÕš1¶ÛìçeðNÔôÓ\ÆdPåƒ  ¾x ”¸Gª„¶½¹„“òÛÉáb¶_žô  ¨¨‘“˜&Crc-Æ«ã&Û›ñ¶[ òŽV½U’#q=/¶ó’9Ø(R%`CQ#}­ëƒòªªXc—žÂÒf¤›€G):㯂šžµ×ñù¹«´Å,F³Ê·,þ÷ÿ G],öa¢CãK¨a·\¹­òà÷•(³¿ÈôÄ59?$‘,Á€K)° ã½¼ÇN¿>Ø¥aã=ƒæ/o|~LŠOû?ðÆÊµŠN΄w mƒeÌ£.ym+CçÓ¶a ÆÝU˜}g¹û ±àj~Ñ,ºœÊ#S·I˜;s(ë¨tÔ¿³Ml¶ÖOÄœP«j´ûyŽEWVO¦ÄÜý˜¹O™W-ùQE¸ß÷=1¯FºÉoâ€ìîr¹•Óën˜!hµZõ(ÇÔ~Ü$lç5R %4ô6ØcÈøƒ3Xä܉# ~޸ƥQi/‘‘aL­™A#[Òã}…´É(éÚÃå„‹LÍâ—}ùRa¾'‹1Ôÿç mþ‘ hý˜:½íùî8±”¹\j͇]±¡‰/¨’¸›3}GY‰é¦_ÔwÄIþRRwñ Ï èÃyh#v¥U.c[yêb&Ž¡:cš¿n=x߼ȿñÕEO7qä/Šž¤·»Ä|«ð¶ÿn4ç§ó¿Ù\” *êg"þkÓ}úÈû?DzkiÅV¢ª­¹¤–âÀ›mЖ<ÕT3;¼— k0è~Ä©ËÙØ‰P e#­ý/=õdä…Õ¦Ý@víŽ;Íi¨x•ýб©$©·‹IíñÆ« V¢-q¯©ï¿©Å‚jÈYT½$o¥Š‚ÌnàtÀU2F©#GI[€I¸°'JÏA@$¤¨"FVQ¶¢½_¦$X$VTÔ»\o±ÁæAµÄ)éÁ j‰oß½¯ÿ÷IS)dü”6aoÜvòµgar…QÑÝáš7*¨­©|"Öõ¾f§d$æ`È ÁØ_Ë è&qM©Uãq}%nÚûÛ˵dÁÔ=l¤”$‚·óÅñyYfA¼YhåG!Žf‰†Î¤ƒrGoŽ5Z8£’4Ž8´—$– [§Ÿá„¢vV‰¹òê Hµ”Ø[ÔùàŠijy%]dúÝ\“çåøâøÕOA’¸çÜ`ä˜Ë‹\u\¿®<åS‡‘b õ0?û÷¹©ÚpdXÔ‚%¾m×çŒv²‡±Ò5· ¯¾Ýο8¾H•’HáMN@G厄mo2vÄ2ÁE¹s«€ÆÚ’Þx‚šd‚ê4M%ÁØýføcWÙŹڃ¬l:Ÿ‘ÞÝ1EH&ö§}]bwUŒÔåAkw¸ì=qÇøO%˳췊(ê©Ö´­r<-7'Çb§­Ž;F9A¤’%»€¤°µú\߆9dzŠu¢ÏxÍb€Éú–$»3Ê«æm玧 ¦û9$ìóGæ4S‹M®eÆ8r“„òÚzX饆®x¢z­r˜¢ØôÒÖõ8kR#_ÄE‹ÏÌ`|¾‚¢(ʨ+ª%’¦ŽŠ¦¹}M¢çrwä|±$PÀ$Põ†c¤Ós¾Ûþ¬rqÊo7)_V5dÜÛØgA™N”Q*«Âkòõ"àþûà™3vñ«ËJ$-±ÐGŸ_PE„ždÑfÝÑìÄtòûq;FuJG»Îš(@67¹6¿Ëæ©£Q„y•AYuªÞ=ï&©«`y“Bö=ÑOŸAm»az¢Ù™`¥VÕ{ó>=ï‚y¢W îêÚ·Kïöâ×V[I^dÍYPÊWÞm "›ü;`õ«3ÎL“:Ô]…û¾ø:Â8VMqÒÆKÒÝÁòÄ3fŠ‹B]\1ÞÄZâþ§¤¤¬Atù|’s ²Ü¶ë¾‰¨*̪ò ‰'m¾v°æ<Äu2.¤º–RoóùŒi6c ë'ž/½ÕG[vøb§I>BåBihjbÖd‡AÔ7=;a²!zvÔªUAĘPoú¾xÖ¢ª˜9‘\(*\ƒb/‚DäT–½šXØi°éßÌm÷}š°´Z£U.i|Ã¥pSO¡c@Í¢"ã¡>òý÷ÄÂV—Nª„ü†è÷ò¾˜„b‘„™«I7ÁÔŸøáuD’Ç"sЕq§v'nÛã ¥8²ZÄñ«­µHÍn·Äð˜× ¾ á)«Ø‹\ùEñžù5¿•ނ֯UV¬y‰q%Q„ûz  |-“­~Ìÿ³ •îbU·N÷øãfSJ}²å®Är¦[ßúRbì³O¦ÀQ|tq5¤•;ÿõ1k~B ±©ol ˇ^­Hàô[­À?~+«S1ÒLhän¡—|0¤úJ °Lº¢U3BÖ¦Öé·ÝŠ¢ãSFî"Ò€}@&ß.¸€è*dþ‹)¾"jjèä³Ç%7r&~]þˆÆ±Ê¦GC4;K,ŠÀ|Ö÷ùbÕ‚Œµ°Ö<©’ÄꉞâÞkg$.9o2{5°Â v™„QÎáJܰ†@øè#ì¾1òi]Æ©Àî‘\·Éôþ¬éöî°å`㈪ ÖHa˜tñ¨í8ŒgÚÍ Cçíöۉ߇ùŠZ„cæˆ-ö9ÆÑðÙÅɽ¼Úÿ-L#ÀÕ¿"e:×ÄH+\ˆÇ}3DÀ˜'ûìŸëtó?ÇGÃI¼æ ¤XÈâü17ð~ùØ>Æþö`§Í|ÇI•qL^C,5P¶ÂÀ9ýxš yZ8šë{sfíþÆ–10aNÂâý®-ožJØc’0Ñ:w\_cå‹òØ«Dôœ”UÖ± UVïŸKãfŽ)d’w2*jdsß˧Aˆšªá™d¨VV Ço5øãf«a1!šáB“ ^Û÷¶ éÌ’¦†œJ²+THÚ,Tƒénöî0,´è¡HÙYM6°;ïÓ-]M“”ĆáP\ÞÛì/ˆ óÍ™vÔ0‚wߦ+”dN7Ô2‰-¢jä°-à+²Ü’.os±òèpD£Ÿ-—4@]P‚Mú¶ûúán^õ¼ŠGf$#Çu¾‘¸ØŒNµ„]kNþ2HÖ€ô£ëaÔz¸Óeœ5‰RÛ^ݶǯ4I¬4¬|VÓas¹ó¾+Ò×Ö•u÷jdEp4©a±ì.N7jìÜ4Ê'§A*«¬ÛqØ…aÃÆoWùï.“Ý–6™Lf1Ÿff`¾[Ûü;ôÆGV¬ÀÊœÇÓmZH^ö#{[ÓãŠÀŸ3•ÃFi,¨¹^ŸœÃÏ.EžæšBæÕe2°¦‹Jõ;öýøÕNNÎHєփˆçiâYå‹y¤MV ªå»Zàü|úö™­-9*'2°>ö=.<ûb»Nõ²ÔÔ-c2ʴ˹!MîG]þü5¢È¤ŠY#[±²U]”m·Öµ€ùâʃÑ;+Ihy™ñ7"’ZŠxjk'×u*1°ës°øß®)˳%Ž3ÿ¦£rÕU4üÔ‚ZnÌI°/×¶:ÐÜ窒¢Š™‘†£$£Ä ºu=¼ñHàF=«ñT2VD±àup¬uŸÀ[×½±vJ”%•xüQšnÍXé9¤ÑÍ[<ÉRjcyŠÅn ˆ"÷:[O2ÿ)i!…¼/OßíÁ’Ç•Á9s:‰$g“H.;yŸŽ«¯È#KÉQS ‡„Ωqé{›ãŸ896Ûw¾ä™w9c•‹È—r/¢èv·×HÏr%4ò­‡çòíqøc\¿1ËÔšt˜ÞKjÔ]M‘v:E¼Ï_–zøAç&U—ÎZ?¬Å£[ÞýÆÇáŠÝ ¾÷Ì[xƒK.Ì‹9ç“~žGIñC]ä±ôê bzœÓ2•§É²¸l¤P¦æÖ·Ôc÷ü±-ižSÄÅ$^DñZ+‹ì›á}<åðTÁ Rë!ºá:É;v?f š2–¦1OCW+\#oÍ'Êÿ›øàšŠ¼Ò¢D5Y‹TmÙË•;ôïóÂú|Žœêë ;r…Ü‘Ü÷½ºyàªP¾·÷¨’4•Tkzˆ\ˆÁFR†ê|­×±ÆA[I$P7¼ Õu+¬\]öé× £ ¤V‚ –b[@½÷ô¹ÁñåõSª X%°$0ŽsÞĸ².+D›üöX,ÓE!,&„¯.ãò×Ü–7¿§Ï ²ÚŒ¾tª‚¶¹)HÌK+ =‚ Ξ¤u#§|&+¬ŽÍ¢©@ ï2òö¾ßZà 8§1\‡!lÂ*S˜4%U©éjciØ)'mÍÀÛ©J¤}XÃG×î­ÈèPäÉ,®“ûÅ À£´É6À ût>xÞ|Š‚#¢š¢µ›_Ôk.¢@Ø·=»c”pg´«ø•©rŒò* D¤Vjzˆí6¢ÁX]FÆ÷Üí{ã -§ƒòµ­MT\šNdlv¶úÀfœj•8ÃÕ’³ñ,ÑÃÃqJ«$Ñɬ‘`'{tîëç¾^¡ZfŽHi’@6sn>œ‚}mòÂJ>3ÊÙM8¥”eæjP.l6ôÆóqöD £«VaäŽVÇÔ±‘öwz&VçS3¼®š›Û÷ÓE&µ›)”ÙÀ°aÍÛ§M½z㦶[—¬ñ%ÔøBáá·ï|r ó;†«Ûgæò‰‘(']E4ÚâNß<^'ÎZkC JYX$wûñmyÅ(iËêÀª$ËL”Tz[Öá^©ôúif¶ ­ƒ*Gfx¢æ1±/¤Ÿ´ƒ„‘ú±@6oY}ì1p8ØäM#‡Ÿ ¯-kÎÂ?ú­Š”¦×©ÆÌÞÈfjè æÑap¨?»ˆ›=§†6O|,…‹öÛ Û‡j£Ÿ]•Ñ×››Sƒo€{àYò¼µÕ\UÑÎ"Y%oì£ YX™mMû˜?¸öˆê!£$“ñãqêaLR«,MÉïsеhá^y¸¾‰.Ðeò³XykÒÝ…Ô\Iìö²œTSæ¼EWèM$4á·µÖîÇîÅÑÂâÚîüWÜ*5z&âF:Œ¤±"ÖPü |úuh‘ö±Õ!ÅoøEÂQ-©òú±º›2ü’!øàyø×.§©¸.÷«¨©sös}ØuÃñOv—ç€Ê•RÊÙòF¤’_=nêÄ?ÂJæ[úÃöb£7´ZØP49W Ñ’.¥¨[\>!ÿµ<çýw‡ÿ&ŸÿÕ‹ ­ü×Ä.œ–òE¸ÑæJ5QU¨U:¯ÛqØtïˆé¨ª§r\à ’Nº‰æ×k ïÒø¯{Ýl³jheg*|O*X»õóóǰI›<ŠÊ´°‚IñNM¶ì-øc–²ôø‹£-MG Lù¶Xª›[˜\téà¾øö¨Q÷ŒâŽ|M¢F¯`:ôòëŠÊ.`Q’ZõÜŽR› »Ý®{c#£žYÚõ³¹Øþjo‰š+‘6ÒÅž_¡ãXU3w‘NÞeÛ®òòü04’åâ9YÙÑ-9ж:½'¯l([Eú?4”[r‚ºÜûœmN9-:]Ãi©­M¯êoŽ'Ê?|‡™mE <¯ F†Kh¨˜õWó¬ ¯ÚÿçºVÓÓÙþ„¡ž;“`ò¸‹>ý>XMGK˜Ò×%M5W ÓÐ’½îV’F±€‹að¸óõÃ8[/÷q.oŸd–Q± ¶ãĪzÛ­ñ§Ñ¢év™•ú[_•¾$NnV˧SjšÈÄneÔ‚Û–·;‹]ÔÖLPªÍCf!S~]½q­NsÀ°³ƒÄzä7å­2‹ ö:˜m¾N+àD§?çÏ*Y•CXo·/c×ü1™Ñ›æ½ÿaüÆ ›æq…h£¨ Ž¡*¢¾÷ßð4Î*Už0åMÁ›SýQçç„9—pü $™X+ ª<µ _ÎTe¿ÊØY7´Êe¢ÊÔº„TZËßóµb¿E¿¼VüGTuR“#FðŽs‡Ò×m¬ö6Þßx½°mêª&]¢Úÿ“XÆàwý;T´LÖFäÐE¥öäåè­rz=ð óÚmxdËh¸†¡màE3)øìGÙˆ°‘nÿOò*š-”™fi!¯šÎ5-Oá°;}Uôçù--BûmâZyåšqJåÜDÄiŒXë+æ6Ã2ju6zž¯„’I5,!·­Ü¯ß„ôžÎ8É8޳5®­È²öž%K˜ӳX[²»ÞXèað)«=WÕ¹5eïô~X²•rÍAÙ«b‘¾`8ôœ¦"\Udñ9ßÁ…íñ nد/Ê|ËŽ¸z5'Ä#iå'%ˆ¿7 p¤h£Ž*Ü[qG•·^ÿZDÅk‡Ôþ/Íÿ¡”*?ÚYè³^¤^dÙ¥BÍ#­<\Å`,.ã˵¿l­Æ< –©š¦©ÂXk¤Š¢Û±b{÷ôÅEr¯g4úLµÜGXA±ºAm‡]ßË(àñSð¦qZ4ÛUFg¨(â_Ç#æßu{ÿËB¢ä‘f›Žx:§¢Ì£Jø*O®Áwê~ì.ŸÚ6D‰+"–¸-4²-ïðaæzá„þЋåK”¯díBƒDp×$²*,4«¸ÒÀ[[‹d‚DŠ“‡¸f–C²èÊ`¯õ[®ïº÷Ý=š÷7´¨Ç% QG"}RË­Oõ‰ßöã+8¿Œ³šh£Ë² [&“-!·ÿu~Ú.2ã=ݳ(höÿÝáX,oþÍlCUŸqmmÅWæ’}šy ôض,·î÷"G 'û¾Ô°û\ª‡_Ñ|CµIb[_¬@Àõ9ÇÓ¹jùrúpo{Î O¸ÊOÝ… &g&ªªyɶìmÓÐßSÆjª%ËiTB6ê[öbzÖMš©ðôÕܘѸ;1gg®ã^¥SrQjšM?1ûñ·ðc"‘ªxþ"ñµÿŠÑÔHMº‹ào£` ó›ß¬ß¯|ASOEÖH‰Üø…ðËG£úm%»ø›eœìã+¨– çyýdÓñÃC6 rEÚV?2?fˆ{8¦´YÖ½÷×™Ç={,gJÖ¯†ŠžZºT…*—™»º¸• 3Xí½Åºúag׿ô¼)WžRÖEÊIÄ ‡˜†àÜÜZÄýú>J3iµ{ûG–ŠŽl§F3á8€÷~Ö6±©­œúî¥Ç«ÄtqÛÝx+‡ ·MQmÿ2CŠW±üÓ1ã¡>]M—-Nc ±ÀB±¦úˆ‚:üñï´üÚ¯‚3Äȳ\µ©kÚj´¨ÂÄ*H±ïåç‹ãBšvQ^äS’’W±q^3ÌÖ¤ýE‘QʃëŔӡPoÑ„e¼ûâixãJŽ#ª€Ò™Ù_@½±Zጷ4Í8~n(ËuIÊž4œ-LDOäØbÌÓr|†.¼=pÖm•ǘhd1>Å=ÆC"‘Ôb¤ðűVWH-ì‘\ªÎ8’µí?fsêÛK3±;ù—ýXUœIUK IÄÉ)uWlÂäãn¸íl„òêż=|î~pÿh„in×óé…\[ÄÉÅ>Ì„™Å5|UÙT‚: @GQ"ÜÆÔHP×"Ä‹†QmñtcFîZßa^töÐiƒÐ°?¤ì;ú…Ù>kfrTP˜*`¯Œ1ˆ™5¤–7"Çq|5ö!Ç/œæ’Pçü1ïn´Ú„œæ+¬§ÄzuÅ¿…r öŠÜC™RÀ´#4t¾éÌŽ;öë{+}½Ö¥)¥xêkÁU £.Ö7¾ßNOÄUKÃÕÓ­5õŸWÌJØ—•ß=ÛÇ–óžc¬4ž™¾¯ÁÞÕ*&l‚xu ýñÖ×+ú±‹ì÷‹X„Ìs¬†„þzIšE!$výþègœRë’¢·óA%¹í°Üž½±Fi53ÕÍ#%.’üŵˆØ ð’}Yª—VÌäÃdzÑÌ/˜ûDÊ•lŽx”ðåûñ1àÕ|ošÎ¢À¤mï~ž'• yÁk?'$Ëës…BLq–$%úØZç)¸‰érúŒÆ³†`¤£§¦šzÉá (¹cv$X,XðôÓµŠ^•îÝüʤ-ìÖ›Á#ñ`$B6ø«ÛŽöh–‘8:yÁŒÑΡÿ¦©×Ó =ŸÑ·U¥>M™dÔ¬à˜ù¬ëªÝ@²ZýìH8¸ñ?²Ì⃠5OœPÖTÁ"ºÃÒÌš®Ê.|G¸w=n1uŠP¥¬J,MÃ4ŽVƒÙÎG yažBG䃂£Ï«¡Þƒ‡xz‡¯Š,®”0=·*[Ñeù…rk Ê³Ĺ]PR»­ÇQp-†TüÅÕ?ÈðÕm¿Ú”þ¦t¼R¦¹!yâþ1 ¦å©Wm sõÙ sN$ΤVo]PÖ$ë¨vyÅÕ=™q„±Þj: 5ý*бaýPØçÖ¸c>àšXkjjòºÚI›–ÆŠ§œñ³±CfùÚݶũI“2Fî%’ÓJÄ›ÜX~ÜFÔ×=e}Éñ¿ŸÂعp¶UÀY§Òæ³qÍ\K:êh†XRD`lTýqpEºœ:§È=“h«8Ã3k^ÐS­öÁmG¼™ê‘Éó )a2%3Ë%ÀDVf,×°l+¬«’ž¬STÒÏK2†æBÑ© k7•ñÛæÉx2­7ñLÚejÚ–§ƒõÀÇ&ãØè긞¶jZܾ–2Àrª³js* oâ»Û{àBYç–-?˜$œUÚ5Êš­`JÚè©éh§.)¤O¡¬×¸ê>Ü6¦¥zÓzJjº²˜ä'ú â™AÄ-ù”RÒqîY—½!w§ &”«±¯¢VS`,N,YÏ·Ž1ÌøºŠ8iríj©5<|¤pmâe ‘ÅΜá Ò©+- 5?ñ-ZZÎ.z¤hÿë 8“øó"O¦kxR°eñµÞHÊJcܰBJS¶"ãÿnÕ9_Ueíšñ=W-µ5ltɸÀ®£mû‹âµœËˆë]—ðîm™TJ‚¯:’bGrt¢l{áã¬Íè,“ŒœyCÙöQQÇ4/&E™ðü2Ãüµ5Uc¬è/mE½olE˜Påùw.K[ÅÔ"U$òQѵBDO®¥¿­†ØäÞ÷Å5f[ðFQ•¥tžíMRLÕ*Ř\jio{uÛ_…è½–f?÷KMW–çoSc\¤É!?œ„Ø   X\0•ÚJôÝ˨EÞÓG—Œs»ˆ¥ Íâü¤3²¾¨À`×ëûúc¸ð]/ ÑÔ'Ò9_çËWOÎÒ«Äb+cÊuµ¶ÖlÁ·±Øc˜çüEí"®µê%¦ƒÞjd–0À2>—¹+áOäüYÁì*s:¸«b­ ©Iµ«¹=;‰ÂB¤'§3}~ŒÃÓíjA¨uð>Œ—7à\¼ø¸ !#¾i¾dHq[ªöÏÂnf(è=žðá•$ÒÎÑ+Þý4°ü{ã™pÄù/ðL™~}'¹ÔR6µ¬‰JŠãsºØ’G’ß¶q— ÅEÅPSSç9[SIËåM$ê—[¬UÖëcâûp!(ɸµª2Î-$⮟·îvŸj9e==]œæ-áü®¾-TÜŠi„AŠ—Ñ`Uˆ q~Ø©dü%A@ 9µZÇP¬â’ZTOxklÖæý›‘‡Öaœgðf<¦ ¼®.Xb0°0ëV×Á‰±¹`AÖ°Ç'φ}”WE˜ÒgJš)CÌ BÝo§ºú‹>¸Î§8­Í^µ)''·Cµ“æG•ðgÖey¤¿EC˜eÒ´u R ™®?'¯± ¨`MŽ(^Ö86*Ž<–£Œë&ÊÕ]©ôÅP*å—H9:lŒ¤7Köµú?àlóéü² Ú²‚¿£¤¥£bÑDêA+Øb¤^Àhï}ê^Ü«ó> –’º¦HÙiÔS¡‰ª m–Ã{~¤œ<•ß'Ì8¥)Ã6é.‰iäunál†»ØË¸z(xŽ&5ó×J£Þu}hÞà:M—È…ÞÆøÙ6q[6O–ä\[QÇP×KzJ´v‘£`ÔÏk©V ÂÌzA¾Üã#ö•EKô$tô´QBª¢nH2^ãrÝOBH&Ûín¸34­ƒŒb‡5ÊÖ(³H¦»4eµÊ€Úìã­­ÔîA1t³Ájb†Yè½ÇÑ)tAÛ0“Wǵ|Í%¢†ß,ËN~t×îzcPc‰vR·ôÁB¦°Ã¦ÚwòǨŶ˜|íƒ`XÞ ÕŠ+!°±#{Ðý,_O  !±ð?5¿GîÁ³,u'+ÿ6ï7ýGŒÁDˆ Œ\f3ìîPø¶Y†‘§1ô—Q°¼‚ø»p ËGD’ãf YA–÷øã1˜æâ7Gk úRó,žÉ©éòïò”š—/‚*8³¨Š€{½íaµ¯¾:ùNVÖ'³Lú$«cj`D„ .Äc1˜è.G—‘òW±yçN&¤TšE^yØ1ê¶>Š£fÑ<šŽ»ªûý¸Ìf1ã?Q,è‹xŸ2Ìh8¿Ükê©y•Táù32j€A±ÞøÛ/ÍóUÉé!\δG˾;[©í|f3)þ’2˾ÍrçzŒîj¦ :u\xëüI‘ä‹Ã!×'ËÃ.E2\ôôÆc1ÈÆsîŽKÆ™…~Qhršêœ¾1Ñ)eh”|”ŒQk³|Ú¬Í+g¿^dì×ûN3;‰Ý ™lQ¼‰®4k°½ÖøâüxOð¦³sùŸôŒf3ŽúïÙõ3qOÒ^Ñ»&Ûb÷ÁÐÃQ—d¦x£”ûÆÛQÛ|f3—Ý9˜>óüæŠ{#É›U¼ŽÎÆf»1¹;áßË,~a4ìÆc0Óý1Wë¿k:‰¬«©á±*j§™1¥eY$,æ°¸¿{>x©çįS•$zŽ3Œ´;¯Ì߈ï/#®–cÄ™à,H÷© ¯ß[b›í·ÅÁ4 Û•¬!Iì ïø f3è~²>«Ç¿ì’ÿÅÞèÔÛu—þƒ‹³Øb›‰jçš$’Pà‡u†þgŒÆøw¦|ÊŸr‡³êË··êx2/†:I%†Ò4 ¸Öäuß|qw“ˆòÓ#³êžÍ¨Þà¶÷Æc0´»²ó2â¿[ÌûGü‘)i£ö)˜ÖGM TÉ$êó*ìì u6ÇãõSÓÝFôàôïqŒÆa_v>ÓF»[Øq¾2$æîI$–ýxëÿä‰?´*gU–#Ä£‹© \+c1˜ÙS‘ņìï~Ó§™ør<Ò0Å‹¶¢1Ãsf`bGÏŒÁÄ÷‘t6+¬N³¹Ä/¹ßÏŒÆq¢Uü—„}˜5`„P~Ìf =°Ðvp4ݱ˜Ì8H[ù¦Æc1$CÿÙbygfoot-2.3.2/support_files/mmedia/pics/match5.jpg0000644000175000017500000010735611225071373021133 0ustar eliaseliasÿØÿàJFIFHHÿá$oExifII*  ’ž¤ª²(1 º2Äi‡ب NIKONE4100,,E4100v1.02007:04:21 16:19:10#š‚‚‚Š"ˆ'ˆ20220’¦‘‘º’ Â’Ê’’ ’ ’Ò|’)Ú†’} 0100  ð ° Š££¤¤¤¤‚¤i¤¤¤ ¤ ¤ ¤ 1 2007:04:21 16:19:102007:04:21 16:19:10  ® NikonII*^d kx† Ž–î(€‹‚ ™…¦†®ˆ¶”•Æ›œËžß¨é¬ ý­ ® COLORNORMALAUTO AUTO AF-S NORMAL èAUTO ÿa1 "D:ttcd¿2%?%/ 0À@%BÌd:""""ÿñÿñÿðÿíÿÿ""""æªöd)`\R  ¿i½f5ÇèLjˆä W ³ 8 ·ä W ³ 8 ·9ƒ=¿=8^0±wwww (   „  NefÍ6 /**øõ]BJ) .f NORMAL OFF dd OFF ASCII dR980100öþ(a,,ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷æŸ^Wiâ‹ "úâØ÷óC ˜ÅmÙx–YòuXgŸ+gò¥í×T'EôguJ+Ç[ó˜ Â?Ƨ¡÷´¤9¤f¥ª3qqÑ‹KINÅ (£QKŠ)QA!z>µÝ[Ç÷ç‰~®KKMGIP:0e=èiÔÁEPEPŠJ( Š( šJSIL£2ÝÂOx?é¹?øêÑUe“˽ºÿ–™ÿÇVŠ%³‘G eQUæÑôë†Üö6®Ýy…sùŠ·´GCJªGÖ¸ìŽÓ>-Ú&ͼ×vÙþn]GýòN+¦Òï.,­Öu$›Š\1üx¬Î@¤RHÉüi«¢ZGM¯0Æ|¶ý*vÖ–šI¡!T•Éþ•ÍÇ3õb;Ž9Á†©ND8DÕ“[¹(¯ 6åd0·½*´š¦«07†ž¢=ßÌÖjΚtÛˆÿC•¹Ï"=ÿÝ=ý:úÖƒœ…üdÐêH8ŠeÔ$áõ@õUUþB£x™þýíÛóÿ=˜gð¤ó Aò úVm,æó´êjy¤ú–+¡˜4È¥“SÊç¦ï˜þµ¹g£ÛYDfx#.v…UëT·ŠI!™cyǯJ†Ü—ÔuÉã)ú­iud¹v%‚íeë€ ±ïè:qú՚̴†D:~å9Xˆo•¬¤óM æ=žbJÊ ô8=+DÈhµEsƒÅGröóÆ‹2: à~•v?X¿Þóê¹þTs"yY­EU‹R²›î\!>ü:²²+Œ«)úÓ¸X(¢Šb )(¦IN¤4 å5Y|­RàsÉÿU_¶ÍbOuSúQNÄ5©‚“ÇTŽ*ÊÊ rŸ¡B8 ¸oÝ_Ú±'ŒHò50Ón—¸'ªƒüñ\W;M*çŽxïN(Æ>µCû.äÛ@ï€Â¤ŽÞu lð»³@‹ŠH?)ãÜÔÜ tJ¤ º#åg?Ä3K›”8vÁí¹8?.“”ØÜ¡ãd^Á®Û@F½ƒË^‘\G’=ƒg§µ[7>tŒû€E xÜ+Ÿ509#©x±nÂ]j¦ÞN›D?#ŽkÓ¼wr¾A}3ÜL%peb2{Ö Ë ‰!,¾„«úV©™À°±‰Él6xÈÁ­I\†Ž¢6†+Ù®L¸ó•R9$ZXLBî{•• rì_£súX«®é®»^'_mÇŠž=_K˜ƒ2‚ÅþðêF*ù¹MÕ’>Ò!Ïm«ØFñ›½êFn—=ÁšÎû]œ©"ý¥K”ès“Þ®ÛÜF‡oÚ#e9ç$}¨æB±™6‘»¦ÇquoÝÃsÆ9ÃŽžÕÎ?‡ìC±<,8ýÔ¬Ÿ  Wh%˜Ö7MªFq(<Ÿå\ýÁh“9S¸þ5¶è¸ù™Jž;¥w:o*ãõýjÀ}^b[I±ýäd?˜$~•hǵ.õaÈÇҢ쫦³«Â2ÖlÞñ\ý:x²h¿×ÛÝ&:îƒpüÓ5Bž !äÿ…W3*/Gã;#2H—?ß&?ý ´ ñ”ã*Ù¨Á‡èk1)Î@?QUdÓlä;šÚ<ú…ý£";xõK9êû\:·y+βáSû¹g‹ýÙ[–kkG¿“MFŠyf¹ŒŸ”±_n‚ª5;‰Ã±OÅqçX'˜—¡úÑN×¥†öù&…·/–N‡&ŠÙIw3qgÊ]4nwgiõp_^D ‰X7)B@>üUÏÜèLñ®“®÷u'œaj¶Ša– $,òDåŠÑÉæ²°ÉÓÄ:¥˜ê7jýv¤î1õæ¬ÇãÏFÇf¯|¡˜·óÝ]´ÓcžÑÜ^HܦìÆsúÖ³4q¥³Ÿí'“—UUC€êÄàô¢Â:(þ$ø†"vj27¼ˆ„ŸÒ¶­~(kjªÒjö/ÌrÛ0?šë\>«ýŸ&žÓ^¾6“ííÖŸag¥¶›ö›ËÒ&$í†*HlÛé–.à¢ÊÊÿP±d²/;ÁüjXõ:F ©dÝò³¯ø×ÎRXÞ®¢lÊ;\î ¨99©$Ký"â3::žªðhä]ÇÎÏ¥ƒÐÝ,«Ûd™¥o<ƒ‡f‡¾nW»œ5Ã!A#’¬ Ou¥ó52—]ŽÕëK“Ì9Ϥ‘nËcåôÜ¿áJÞx$4kÇ|ùâêö`Oý¡{·<ˆ¥uSÿ&§—â‰|¸ŒZ…Ôh™2–ÝÏrhäcç=ìÉ*óåãßýjAps÷=ÀÅx}ÄŸ €ŸS˜£!zöê ]¼GnÙšhdº!“ùbŽFèö?´©êò¤ûT]ܨ5äiñƒV ÙYIîc þ†§O‹³° .‰lTðJ» ÒäcçGªùÑ’/çG˜!‡àk͓ⰅYôDlŸº.ã×îÔ©ñ?JžNt‰Ãz%À?Íhåes£Ñ3žÃñ¢¸hþ x}×2ETÁùFª†þ±›MÿºfÜG¿áS <±Ô ã4Ù-Xg Âäd÷¢áÊ4ê3›5´;L`å~^EKªe.S=$aøŠìçåN'©­mkOùtés’öjÇ·Faý(¸XÀ Å81Æ3ÅN¶…Ø…À\g%©žANùÏJÅËd2iò¹ùg «y’6W8_AÀ­ÝÏÎÒuÃî£0D'úV4q’çé@ˆÀ4U± ¢€&’Ö(¢”n^$ çÈ­ï‡ÁWÄšdÑ¡Ø× žw¥fØYË~^ÝbŒ¤®9CºM òGr8­ßé7:oŠ6C:y žPãðÌæoì–=Zè'¾e—¯<¯XDvB”n<ü„‘“‘ýk·×ôöMZîö°˜.™ì2å²F^;ûÖ-¥Å‰ºxõxâ8‰ÞØ$÷ä}3M6ÂÈÌkA´,rƒ,1Æ;‘Ö¢‚Ú[¹ŠÄÌ#õì1üë¯\2*²M—÷B@™sÀ+ÜõéPÿcE§»Mmy Í&c1°È¿__ЊZ­ÇÐÄ’ÞÚÉþÏ©ÛÜ9MÌÛk.G®xõª²iŒû.4éá3½cuÚ߇¨úVåÍÖ§‚i÷G$EÂ,»Aã’~oñ¬Ý!<¢‘NÓ4y ¢¨lžƒòª!«ìUÓmÌ÷&µ™îNq§#9Á®ßÃЪéÚ°Ž@ʲ!F!ŒL÷jͳº´KÜÜÆðä*ÆÛŽîO'waƒZ>†ò[[†œ3<²|¥,7"õõ榎,…6ó·”C/îщàwËŸ¹¢Id23òàŸÄ:9‘>ͦ®y\z|«#(u‘î3ëQÜiA·1´ôÀ¯T¸ÐV3n¶öÑDöåÖå_¤ß7#d‘Ž1Æ*Åî§O$E-á.{s‚(ÈÏ@Jžrý‘Ãh–ÁßÍ!–ܑъã§ã\ø±BxŒ«`sÙ½y¯QÓtXã–9vÍåºàÄãæAÔÜj¶4­5dû,–Ä„`©$k¼o$àÀã·z9ú¡:jí3Ç^%W;U°y?ÊŠöû™xcÓ!ºŽ] Ó¯ùÏáEÑöcç?„[K¾óT±ªÅi\‚F ‘’1Œ÷"­Ç–Z¼RCöyC(œ!·}ì?ûG“ù×I ,Ó뾫r¯sd‘ ²íÌkŒ‚‡¯Ê7`ý}j-fXe¾$—òMˆóægÐ` /æhMü†âµî.©àí¯_Ý­Ú%®æi£L† “ëÔ}=G­cÝxæÃí·-ºGoneaÀ;ð09ܼû~•Þë’\,v–Áe’³Lc-˜Îvä¯PHôϸ¦ÜOizŒ0K-Ý⫨‘—ä@9T$GyäÒ{îÖ;·‡|?gu¥Ç¥$YrŒÄî¶2 ôÅ(ðæ‘ý£˜r–A$S,‡~e\Û×Z~­êRØ^XÚyªÞr1ˆ8\ÃØäãéš5Ï j7^!k»i„SP$¶ƒ. ½~¤”Þú.Å» Ã-­ŽØ¥Ymç2\ï*¤üíÔc‘Ï<öª7ú>›c~å-àžáO˜Kœ/Pdc_BkfÊk­:9m£ŽI-.úeääæÙßü¼ãƒúŒÕ‹û[%³PûD¶šz$“åä¹-ƒ×æ öïRÒèÊ¿ó#›×„ý“m ‚A>e%2ܘÆJŽ9ô"­é7v—zßú,‚â(6´ŒWfÆ ‡o¾QïZVÇu¹º¸1Ãm嘜+z ô™¥±Òl´ÍVò/³G"^of¸sqÇÐx>™êh¾·c”}Û"äºll×Iì;„ ƒ2ÆÝðy8Æ8Ç Õ᳃T·Y,|ÄI#ò#16óÂä9#$úu´Ú¤:¢ÜÍÄvñ¶1óÈûrÊ óÎÍI/ˆeT³7ÐÉo$òª,o…+÷ç<AïÔP“K]Ém¢ r Øõ eŠ?-•hÃºŽ \(åNøÔ±ùö×óEöƒ% @ò“g– Á Aƒìi4o´Ý¤Ò\ÝE%Ë»Ço ¸`eÝ'§aUµ9'²Šh$òá1Ä¢iäRä8û9ÎzŠqßE#oíME aŽ E˜Ûß}¾¸àŸSêE_šÚ X¬­È”Dd“å ÎÜþöÞýc.¬Íc$ ÙJBÎ%ÈV8¨yéëô«Z~¤­guecoÏ÷]6™ñ´1ÎROû´;Y¡YÝH­¨ºÚ²,r¶óâ2Û|¥$–-´rwuÎq[²ê) Kp褻D$“•ö<àsŽ?ÙªMn5ÚÝyS—ù”É‚Ø<ñÔsÐúÒEckìG– Z\É*²È$^¼ä`À=úÒ[hTšêÊvZ½í­ÍÕá»k†s+ºX9ÎAÏëôªºt·Öqµ‘›ÏØæê6’PŽ *óŽ“ïW¢7—'ìÛ£·EhR&pÛ—k!Ç%ºqY‰¥­×‰áûKÛÏäÛ´ÄѸÇ^ߑ⩧w±—´N÷f“Y}ªá¯@Fx@#lá‹H'’@®AëRÇ%¬&xwFÉ´0\n'Ýp>´ªÂ+õ¹†8ÀP6+&H;·gôæF”Æìhó°÷9<Ômní&í̼äí$õõ¨uiÃí"eˆ‹V TÉ3@!ü®¤°ÇãŽÔTåyaùÑX{zÌ_×< ÿÏÑí”^"]Á›öR2“Øäàg¦=³S¬í>§3\èRÅÇï2v1~èZç´ý&Ñ4ýšÔ·w3.`Gr8#'¹¤¬r]ÏdmÅÕÈ’ÞÞ2Ùƒ“>ñË1<ÖeÄ­®xsí1É%>Z®ˆ<ŽzŽ?,VD·zôšÖç†ÛìêØC¿ îBHãqE®ØÜ⬯¡»u=ú1Ç ¸º+J€á¼Ò¥²=AþÖjÏ›.‹q-àº%$eqC™÷*å‹rO8Ç¿i-ݽÕìrìm:ðä$¤,`³Ž§ŽA­/íKtžÒ yDÔ#½{F–KfK¿úÔØÀì}©ô©§–[«Xï¶} ù‘’[n0íÎqøÔ3ÍwrC;ÈäòM'—+YÔ}\T?g‰¢^%…Ô—7vÇ4þuÒ’Ta²f„…Fíë cþðÿ ÆXúÏÈžvH`PrN?þµBm 7}¤ÊéþMduTû–áA•ÈùJþ÷ÿZ°–&¬·¹™0ÝŽþx¤%½c_~¦«c÷¥ÿÿ­L&0OÎü ÿ­Y¹>¡rÃH¬Íÿ8¨šUÏʽËT^bÿ PÞÿëSK;q¸ß_ýj\ù'šßÝ_ÌQPàŽ²®ß?áEc(Ër÷$4ƒ{W/óqéÍ5x<(Øb®¬p)Ê‚Ÿðÿ:zµºœ´ó÷xþUëË1ŠÙº„]ÄÈ~V#¯¶jAk 1 þ}ª_6Ûû× õ&¤YaÆN­a,Æokê2¶ãþZ7û‘“S%”)0Ü1 ‘ùëO »þZÌÖœ/⹸üëc+K©Lx·DP¾[¨ìçùšrº'G˜ýØÔT?è‹ÖiÏü :Ôpoư•YËâ—âMÙcÏCÀ[†ÿyi?‚'ÿ°*´Åœ,“<ÍÝ&˜~5À°^r>fdÂT´’ÿß"£òѹ{‰âM-@¸˜Ÿs@FÝ”ãØQç¹û‘ËõÚ)KTé4ßZ ÌC…š_΋®àK†çl£ê¢—[ÍÙi¾váÅÌãð£j·Þ»—ñͧjõi3þè¦y‘òùÄúmï.ß?ñõ)÷Å(û88ûT„öÂæ– Eæ³p£þJ ­Õ¥ðœ¯ûC ÿoåþtÂЃóê ÏdSýqNÝÇa›p9iÑ)»£ù¦üV—ç‹©G•û×mÿ|ѯD1r fÿ¾j´;À*ß•9ºr>˜¤&ä^øQiuc*åÏ;¥?ð*o:ùûsø )Z=Æ7q'’jd¥PÁ–<€:Ô«ÚŠ*Ї· ~•Pryõ¢Š–KTl< ’R™Ú:úQEJd*úʤڸè?*(­W’™´dð(¢³ µIQùU¤Š0*(¤€w–ŸÜ_ʘè¼ü£ò¢Š±v!˜ªF}*ýäi '”Š™ë´c4QD:òF…ùEü©ËX?ºOûäQEgÀB‰Ïʽ})LQõعúQEl2¬è£8P8ôªL‰·îÊŠ+)n ‹Ÿº?*(¢ gÿÙÿÛC  !"$"$ÿÛCÿÀY"ÿÄÿÄR!1"AQaq2‘¡#BR±Á$3‚’ÑáSbð&4Cr“¢²ñ%TUcdsÂÒD”•–£ÿÄÿÄ0!1AQað"q¡2B‘±ÁÑáRñÿÚ ?õ ÒƪhïöZ£ˆnTäü `þz´‰ÒE Ž®§±9×Z”eÃ9dšäpvÑ膌iŒwÑhÀΓ£!¥jXÁ£-Ò`D4z@ Ð= †††4€œ9#\îfËLTYú¢ùF å:‡O=×$~Z‘/O{B¡”.²¡¬ØÞXkiS¿Ô9×ò÷=K—TtŠ[ŸRÓÈV®üs´©Çžxí­³ªo1¶*O8Ûå$|søñò×{—µJ0³¦­Uå{5%CÄÌ>‡pÓ§ÚÎÞ¡îÝ£pI/Ç:Ž~‚}}´ŽI¯Ó/Éœ¡ú£ø= dê*KŒÞîÈÔõáö¾;O®®À×­~×z2eÅeÂ[l¤€þõM$lÇ%qóï®—ÑÑìW‚´‘^(k䇧¨I²ÀãçváÏ*¬ŸÉÇ— æ@=7 ðÊ?U4oÿUÓšé0 Æ@iC¾¨ 8ÐÒ´4¬Ɔ4z,(-4—’4»ª‰8Ô›õŽ™ŠÔ^-ñ0î¡þ:{ŠÑc5œ—®:R%'ôÌŽO†¬ÿøAÔGö‡ÓÛKB+ç¥#Œçþ°?ÃRÚ\”“|#] a&öŽ…¶ÒtÝÚnq™<8Çþ"~šHë›ÄÌRš”€Þ%XàŸìêH.¥¬Sµ›Ý bèoYp“dø³èÛ›ùi¬]’9^ïU²¹RÚ‘Œ|ù?ÃBÉp7ŠK”NÐÑèµdCCC@CCC@CCC@@è€t3¡¡ (b†††˜Â:IÒ´“ a¢Ò´Z,¤f=£ý ~í\gøêïĪoi6[÷gŒÿÞÒ½ô~ùÑ.›¦r8¦/!"a!Söó}s©‘M»@ˆçLvñq’ÛyÇßÃJpCecóê3Û×”zÆ WSç qÆF>#@øÈÆ)k¥@x›pùýËIÁ`¤¸8ò¨PGãøê@•˜m[ KdrGÓîÐ☬aíÔòïúIË îð—q-*Ù`±ÑWÇ[žš â$¬¨»\gçÎxàó§•—,bôlœ>|ziÅexÀV*ùÁ ò>‡S¡¦^RL®€$»öpçò:´§©­‰IŠªEb=XãYd™ü3±ÈÈܸ'üu: ”1¢œœgÿ=ZµÁ 'ɦ§¼ÜcP„¬ê¼uD’Gâ]‚®ã½b…‚8Á9É®¯·Ü¶ót pBU²Û<.¦G×îÕüˆ¤Ä.P<çÿ<å¥",nìÓ‰Ÿ9U È=¸çó:ÍæÈúš,X×BˆtŶ2… yÀጲÑz>»è‡þúë㟈ӫFy:¬Ñò¸ämÚ~åÛ@*®pÇ,<Ä~º‡„§bžû¿ÇR ©!w¹OË:òO]±ð…f@U½xã«Ú6ñœ€0GŸvd ›T6ÈÛè~|è|3ºùR[Ó#øöÕ-øVÛk‡QZ®<-T Àª‹Õëàú}çR·€TáŽ8Ïò'RMCxa? c}„õ-Ë©úQëï uÆRÆÓh £×÷OruÐo InÌ¥6Êû=Þ œÕÐDŽGPÐ>ïR=F›ê°[¥îª&Žlp꟢Q–ùÔÈÊWÿHoï­ â6¨´VB—zwPï•#[rAè·ÝÒÖ¦<¨]#¦¨š‘kà‘ á3)øÃø6“ÐÇ=kùD£ð8ÕÉÞ*&0êCññü´˜âèªèêyièëD€€õõ¹øx¬?–˜éG&á|Lò·?Šh8PPw'ïÖc¤Ïü¥êh¹òÕÆ½:bc]ch–(¥»ÚÞH™i㌑‘êÿë¬M¯®$œp¿ÃRYVOǾºU]ãéû EÖHZq A±N Üá{ýúÄû@öcÓ7V{¢X¨ÞS“0TÚ~%†Ö‹ŽèÖ.öcõ­Ññ#‚QëåÁ?ž¬)úé8ñèHù¤Ÿâ5Ì@[¡cú>º÷BÈð.´qû§#L7JõM;CÖÎãýmnú®Y¬Íu)ãO¡Ú)zÂÑ.7™¡$~Òd~Z³§¼ÚçLJ[˜d;søë˜=¡Q½:zâ= m$ÿ{#ORõGU[X ßÜê’À`h³ú¢ÙžƒÒEÝ«ˆ9Ñpúoh}6­ý+ß-’㔩¥u?ÞPGç«ëW[ZjJû‡TS¹?ôf­Y‡öX“­V_B8÷:ކ²_î xðL‡±dï÷Œj\}I8Ä£ÇÅ$ÇäGóÓób/)ô4š#ªXz–‡ë)êcøùAþ:• òÕ&?¥¢ýà)üF©N/¨¼¹v,1¡"à˜n†hä`tæ®É ±£ÐÐÒŽˆèÏmšCת[¤n#ÿuŸÌk—xÿ#økªõº–é+˜ý݈ûµÅvÔÿ¶oîêâFEÁÜÛ;e¢Á×~Hç·o†ž‚ãLP—¥¨R¼úgïõÓ/C]$¤CM%@"³¶ß]Gžž¾5bôÏ´ °’=¬¾Ÿ»:ò.S’Ù+èY„-!ÎGo¡^ÿ;Æž ¨$¨Çr?—ñÕ5¬ƒ"€Ø`2{þ?–ŸI"u'b£|Xd¯}HЉ¦¹40UÓ»)’ª"„çwˆ2};ýu>&Y£ý[ÄÜžWœ}yþÈ­<„nv·¦K)úzÏé¥AM ­BÆfÇÜgÓ<ÿ–‰5aÚÁÛ }¬zý4‚w¦e‰IÏ¢ó÷ê™)ê)ä?­š"<¥AÛƒÏå§#Z¤oÔÕÍÀ'd¸ãètXQˆŸ–RJž ¶8û´ä…8ØîŒaÛ»gÚ¢æŽI[¹çÃ`|xÈÔ˜ªî¯mƒàB,?óÓØEÈ´€[¾Xs£a³%ÇœuP×:ȹ÷ç¾ Ûùó§…ât2QÉ’9 w`ü»g@+"ä ÊO¨>œjºÿÓöKå:Çt·GQär£|G¿ 9ÇÇ×F.´,3"H­Û¹^ÙõÓ©q£1,Ë3…ì«nü1§¸Žvöw=¼mÕÓŽ|>eú6~Ÿ-A¶ÓÃM(¢¯¥––R8G·wÓ㮫%M!Q"VDc<€ ?èÞ8ªéü)V’²™ÇØ‘C£9Õj¾IÓØ°öI§°ÞD>"–¤Üb!¥íðôÖÞ¢¦¢’žEC<8•¶K/ˆÊO‹ûDœò¯ÃXž‡4}5WR«Æ–ª0¦&}ê§$ñžpr}u°–ñb®‘e¨Ž@ê¥A9‚0=ÏÓÓ[Fj¹!Å–5—3OzŽƒíuF-á’ª“9nÃìú¯~¤žšŽžZºDñ$™• þ°:€£ê ?vW²ÉÃï“0e ]¥f`bæÏï2öËÊ‘A4PFŽdŽ5 *¶à}ß™Õê] ¢ØxVãKAIF3y\‚2yïËi^ 1ÆòSÔÄÒ°É’«€wœ…ÁúgG:«k¨´Åô3+]ÁÌWËma ãÒm8þäÇÔg+WÓöê¼whjÌDÿe”ÿh°­êU¿-7$mØá€ô#:z˜´"‘:®x˜µOJ^GsŽ@ËÏŸËRi=£ÙÑ‚µÊá@ÿ¹QÑ÷‘·óÕ‡†¹Üñ)Hšš—Î3£SCÓêXÛý ÁP@¤êuQýÃ$l#^Su”ãzXdù£•Ïã`«,6šÅ UCK*žH0¯òÕhè‹:±jD’‰¿øZ‡‹ÿ Õy²^ì^Z}¿±Ú­=CCpoÞ‰&9ú[k€«—zqšN¡ºAö¬“ûÀŸÏ]/¡oqÃkŠŽït–ZÅg™B©ù‚BuÑ‹6­™Œñ8îUÝ5sü,ŸøN¸®ññ×m¾žÃ]±ƒ+ÓHSœùN¸_?¼uÕ «8õ'úDÀÓæ¯£bv'&U¸Ê¤Ÿ¸ëCmÿHkB¦d°]CI÷yüNÿ6myÐÌÆÑ:õ<ÿÇ:òÅËÚw´Þ›¡¦Yz¶˜¨b¢Jjºj§o_1BÇï?v‘·ÏhÛ”MÕtóéQNü”iÇ’µ¸<”ø==Qa¯‹iš2Ü­“ðäwúi“CSÉ S±$ðUañÈÆ¸=—ÛÏW¸£ðún©åu{R '-»®¯¯žÜzâÅU»ôÍ©"áh$#+œgÊN¡|4hy‡\–ŒÂÁÞ™îáqŸ¨ÓSRSÈFTŽs’7ƒ÷k”ÚÿÒP©QWÒße²;¤À¸ñ«1íÿ¦ª¦Yjí7µclU¨Ã¿©q’èW™çEH"pc†V_Œ# ~¾üiç‚«oüî^1Œ±8ÖÙí£ ¥Û¶–ùÇMÀ}ã'Vû_öp‡meᑜï¨$r{øh©.ƒ×曲§êëKœŽ0GöŸ‚ºáâd˰8ó¡Vü¸Õ}»Ú'²úÀZ>¢ ‚ j–ñ ‡Vt÷΃®ƒª­3.2ÀWÆßN ®0×G]r„ž)Ûw «ç= LkÍÔD£ÝÉ æJž†œ€tôÅDØeì$‰‡ãâ :¶¤‘º\‹•S‚AŽß†¨˜È|ÐTT¡ d4„gþ>íL¤§¼Kjyå ÉNˆÏùÑ`JÁŒnÈãŽGmƒ•? ãQEEÀyV¦9~φ>XÑOS^,”²(ŠFÏ0%–oÙ$drsßFw¨ÎC|xþZ¯5S† h“c+'òÇóÒá– %4ÈTþÃá¢À³{Ù h›·‘Áçœê ¯pÏï79:¾˜É·Þ €y%ü4É»½ •û´œÆÃçiÆ£­\=ýâRxÉÁΔ’ÂãÉ,9?î}t [¯Æ:NW œ¯Ì-w)ìTŒé2# +¨Î€;+¹â?ÃAš9\é·` c#<çiyËcá+\UuÔ±¼tóÈ"‘J²zG™ô#YJ”’’l4M«Èç]«®=§ÛODÓ­¢F¨º\a1ÈrÓþ®5v`=I ãã®'r«zÉD³6dÚo¦º´µË8nˤÙt¤ñâP+!RdAûjqóþZ¹£³T½,•”t’ÔI;*.Ä'$Œ…ü‰Ç®«:*åAKm»[æŠV­«X$È£lžã#á­Í¯©§®VËEBÇ{õ=`|Ï'‘´/Ï9ƥŽ›9µÂÕ[O!jªZ…brI]VH”þZì^Ò:îÃ[c´GD›ç©Q4ñžZ ´G$7>:ã“JÇ9“ªI§¸-ÉTÔrLRŽëêBÎ{uLc/€Ô:è6?hÉèm֨颶n¤Iäz\8]€Tç$–䮬:£Úª‚¾²Ïšžà‘VTf¡ÜmlÌÌ6à0œú!Z9,ŠT$‰ÑǼr“é=vª÷¹#„WØw•ÉÉôÖ÷ÙÜ-kèê»íÅ-õ×qQáÃES0\ hyüw¿'ÑOÀèVÇFÇ0ógñÒ\Êä¸k³tõOJ^º–íiª¥µÃGa£ª’¢4Â@<äœäÙï®u×¶Ëeºÿq¤¤tU¦™Ð"¶{1hWÕ bŽ‚¤Á7ˆé½p8çÓV«ÝÂéPÏ-D´ñË®Xí)¿Õ(:„N¸’âh¼";|ý9Çݫޒ¢³Iýú‚"°Št™WaR¤åHÉÎìŸNÜ ¾ƒ£Ì@ÁŒÇWÚ—­¥4m#,è3 ÃáõÕ]ðSGXE¦HÙcžÿ~‘–¡œ‡ˆ°ßc€$d|FAPt5h SQP”/½Ÿz¸çœäéÕ«zG½O3JànT|þŸ”ÕT¦àèHŒ’§£2ö?Ž5O®¾y½î±£¦IyNØÉ?ÜýÃIz…ôÄSÄsÇ™IÓÔOY\£¤GaµJ*¶ÞÇžüvÔ«u¥(.s¨÷Éíñ¬Œf"lȱàry`}5¨jëatz˜¼Õ íǦ–ÀZÁ5múN²œÊ> ]¾…‰À=½Nžê½¹×­-½æ¢ ·Âb¦jv ³–cžNXýØÔNŸè»¥ÚÛïñ˜c‹8Ug÷ÎÞøÔ^¨é{O¹JøŽCgƒÛNצO£öƒÕ”òþïQLJZãùêò“Û'^Sò½Oy$|f øäaú~Çq½Ìa¶Ò´î¼±žž»tõÎÛ ÍUK*Äê8ìAðÒzxcÜì–k]q_hª–N·hê Ré U,L³ÀsÀì}>#Pû}ëZzQ'è©‘› ÍD¹æ×J¹ýÙ©ÄÌ"ø}ÿZÛéjéaYjé¦Z¥åÊœcц”±Ã°õHëóÿ¤Q«#OEa;¹i¯•†¬iÿÒûÝ-6Ùö¯ƒ<`Ügq×–ÜñMºD2ˆ ?é ä}Þ¿@uz­I3L<(‡f‘‚F¿BxÒòáÀj—sÑѤ?»E?GD±çŽâø'×¾{jÚÑþý9PIn—¸ 1–4òÂÛ~d~:òå55 /Y%[ƒö)“#ûÇù¥Ç{©¶3‹e4T%†ÖnYÙ~ž1ôKÉAù’=‚}³ô=e¡ï7eÎâ™"_529`ÄÚÊYFÞx$iŠOm~Ì&®«¸B»q±¨Ý¹øä9:ñÕEÞïWHÔ•©©‹ï14¬SwÇÆuI"þÑFÓXüÉá§ö­ìƤ,k{–3Ç2ÓHŸýóÔê~ºöoZ¥SÒ"äòò²ÿâEþ:ðÍt°T¤­,¤9 I1óÖ‹¨.’]n¦fyåfDAG”`Aå½;vŸ‚xWpYYí*+¯KÎáiz’ÝR¹ô«„œùjrÓÛª›(3ÉÂ>ñÿw:ð\•rQ•ÈdŸ•ysÏ'ÒMö¥³„E9à‚ÇKÉì5™£ß1Ùdq“±¸ûJ„}ç#A–ÃP uHH<äHªx׆©z¢ûJ»Üêãù,î£ò:´¤ö‡ÖèAÔwuð•Rç¤ð>å,ϱìz‹-R ¤p¶<²¯áÁÒá·ÜYXAH#Õ»0üµäz?k]}Ôÿ[/!Aç5lØûŽ¯Çµþµ†ÙQãõMÏßQ×ÝÆÔxäSÜŒƒëžsÛç©xdŠY—cÓKIzI™j”÷¦"5ªnQ¹W,}3á)ü»ëΔÞÝzþœæ¢ó œcl”P“ù.¬)?Ò­÷a*-N1ÿKHWÿ ^TƳÄ簾§o>§aÏI÷ˇÂî6¸Õ7·~¥r­_c²2“ÌìòÆ~eÿ€Õ÷ÿŽöö6Ïû)4¼¹ö)ç‚<€¼ €sŸËHûdzcZÕSÑ­»u:æ`ÁO›ž$Œü~CU0lAøk².ÎbÓ§@7šUòH?x:Ö{db¼ZC%ž™ùøÚÌt¼L÷šF_2‰”1™8Ö×ÛlOIÌí¹MŠ$fÌqø0ÒêKès¡‡ÈÑ$gçßTQ™¤Ž:tgb@ÉÉÒÙ0»võ9Ó( *N4FP õùô”$vïÎŒ#g+“ƒ÷iŠƒ žÀî1%NÇ9ç4€~ó“ú° ¸¤+…¼QÃ$•ëØñmÄ)Ï©Æ~šYÔ÷7²ÓY%+îð+èHe郩Öy†> ž{cG#x¤O• t^ž‘ÒØá,=,ÅKrU£ƒÄúŸá¬Åïªkn–Úz9ÂEì>l‚?!÷lºNå¶X˜Æ6Ë;Bß=ðH¿ý?ž¹s €Àüt’nú>óÓVî—– ¢âè󃽕ðÁR>ž¼|¾š‰íB÷g»õlﺊ8ÔxžÝíÉ$gœvü²“S¼,#•v1¶äÓLÈÙÆ9äc¶žÌ4ý)Ô–ç¨zÊXg NDHÉïØgñïð¤ºÔÃSsš¢š,ÙXýÔ&bÜí8Ñ.Xx:)¶7N—¨²û“QÇ ±Y˜À ¡GÔn=ý5¥™fñâ 8ÏŠŽÄ)9ü±¬Ë†ã$ëWìÒ=Ö¢"¹Ý'ÞxÇI¥@g¤Èí#6YŽIø6®™$ú®IÿŽ ‡óÆ¥¨–|'+¸`ñ¨À‚4hWë ·Ž®­™ª£Bªh›b¼IuE–´½?¢ÎàdÇ:³–‘l²U¼ŒQ¶Œx‡ŸñÕ…©VDÍãšY&ʤj6åAÆIùz|HÔÙjzT_ŒH ª‚Ølü´íLO `.ÒŒ7üÆxÆ¥ÏkÔÓ” XÕæW;YNO?Aéê4»Í2ÁD‚E—ÇšL»m z‡9v‹ÜZYT!P®Uˆ‘,¹ùji¡ž:d¨ÚŒò^1Às‘ý­\ÒÛ­’:³RÔÌð·†Y Ý N8çòÒo½¾†4YaIèÆ@Ê¥˜ãç °Œc{”C%54³± «"ÆG¨cŸOì&0íHcvÁlp:±¯}”ÒRÒ£4rTîg“÷€<çáÉï¡Ræ®h(_z¨!c ]ãóϯݢû†é² Hâv-€ÇF®•.$tV/ÂŒü»ÿ YÛãZ)Y$<«~ì¹ÆÓ÷à}úU:½ÅáyâŒ`s´c8|y,lØû$¤šªÝq¡ð™™áª\cŸù³7Ý‹ívÚöÖ˽ŒÖj N6“N£éÝu«öI ê÷±IphÀ~s©Ïâ5Y펒IGJÊÅc§é7 ö|@sŽ{Æ1÷è½ÉQÝìsX(•¼Uœ³ö‰ÿ™çR)ís0ña˜Lw`ãžßp:ŸW =Þž óºý €´Ç?_óÒsŠq 9Ì…£áGädvV?/r®s+ˆ’7Þ£‡aÎ…E¾X$23åWãŒêÊŽ ¡Œ¼ÅDÇõÌ‚TÊýþoËJ-_UT'ª" [Ôïž8Ó°ÐûÕ”RŽB¨'àþ§m¶äª¯H$;°Ÿo®¯+è#4qÇI'‰ Á¾I‚ý¦<•îy#:©Š*šy)Œ›–Dª’A]À ùs¡0ÐH½[©)h¤d2xˆâ<rNpÃøþ=@†˜Èá’1©N0}3«9¢òÕ-ESÍ9rTÄŽþ€ÿŽ•NÒN<9Û{±RFã³o;œ¦4p\’“U±Ò½•ÛÞ¶ƒ¦³á-î‰$aÝVG3ÿ‡\ŠzO TPU°X8~såã8 N¦iå”rSìƒ,Tm;v‚OücQÖv ƒXù›ÇÏðÖŠ;m-MS£#ã3Ýå$ãjŸ}G4i-Tk0ÚdFب¹\íôz~Sh©Vð¬~†Áß#—®¶>Å©¤ªëŠ*(€fžE‹ŽLÑŽçë¬õ £ÜX’¥Aàç·ãÇ[¿b´mOÖ¶Ë‚0Pµ3åc‰T’¨ÑdÊŽeQo1ÔJ®Lc̤ã”›Uqoå­ß¶¢ë9«+CW†Ï#1FH?<´5‘ ˆî”#Ì=>GJ.Ñ2‹OqµCû¥xû³ùjo…ÛKð†˜!Ømê/©TH%¦ðÌhp­*îFNOÇ5÷L°K4U¨ RHSg‰Ürþj[ëZ@.מ  C’WÊû#’WPPFÞS»R~jŸª(æŽãWOf’tTgàT>~™=øí¬ÕpŽÖ›Z‰ÖŸ ˆž5ßáGܯˆâÉçÔ‘éòíÞÓ)’§ýºeš®(£‚çU4¬+·ŠÇî'p:á½WeXš™#5uîTŒ`Sœ÷üuè>¬²ÖÞ=€PÐÑÒBòAÔ¥œ¹+áJHäc<ÇIÔ7‘‹z¶G›"¥y(Œ”¾¦HÕIPb¨³ò9úœiù xê&’CTd¤u…$PC€OßÛV× 4D¥vðGPÆ¢c"åP`Ç®=ž§^z|´•&Å\µÉKj™œJ€Üúž3ßÓïjM«F¯ºêf Z“6ÚŠ4Ú• ´• ÆB2óðÏË'[~÷E¦[mMBÄW2Ç8«œ )çÔýΟºZè{e¶®îKR¤Ï †AåY‹ ’sòÔØ¬•bÖke¥ÉBÓÆ‚Dñw‚Çœã8ç·I»äJ;® âÛ§H¡Œ¬>+Ëâ-»ö{pAÎ24Õ\²eHTÃ#F¾ñ*giøCÉ$kKQk¯xCSà†ViÔ0Üã<ó¹ {Œ~zÎØãªŠåOGUDSÕ¤L°‚~#BÞݔڥi-ó½]U6ì*¤‰N[ílLîàHïü5¢¥“§#zJÝ¢²ãMXt’´«Æäg(F2S­h¯¡éê*k}]-Ö:¸ËЦpXd67dg?â{iC쾞9«©¯Õ•R°Á]”€N0Ð>ºqŒÝºÙäpŠÜÍݺw¦ï¾!é*ê›|a†Êz£¸3$·çc.tÝAb¹%M}1ržT”Ñ‘è2=>Z’â’ÇÕ».IDóHÞNߪRHÉõÈÀãå­¥º¶iDÐÑÔG_Lй†¥·n 26¿'ýà{êÓ§f m±Ï­³-mJÓÖ³%:¦õ9ϯäàü k M¨PÒ½Ògsµ ‹)ÈÂãôÓ×™¢¬ªÙo« ª*”Æ!v9ÀÝöFFq‚>šÓtœn²U~žéùj&‚g¨BçÃÛµFFváˆÈ8õÕFžÅ-U«¡kìª+tÐ(a·Ô=J<ôf¤8ÛàÊÆUuŒ|{÷Õµç†+oFH퉖HÄmVÊTÌ£²x-ßæt×²ŠŠ9zѪ©#A5e3ˆÑÆS2°'ŽßµÛWþ×mƯ¤íTÆ45IQ_ ÊXl©vÂþ<ãœgJ’dÛwG+±×P®5HMkS˜Ð¬eãF>Q¸|Gßßáªjy|9·O*±HɆ óóÉüõyJvRGf "VË/ŠZ•q“¼àädÆ21Ç|j#Á-=; 55\¬jL®ÞmŠ À\p Æúhjú'ƒfIÃH²”„ BáHÁˆ9?=ZÐÑRI@±ÒPIW,ÄÇÓÕ’##$€ß\Lê¦×Rö©§>$f²uhÜ®J6쟩\ާPQÔ-U¥‚¾øðÁÉ/´29$òäóÆ¡Å^Ʊ“¤™ÜÍDbš b²n§@»F€ËyP;v'MÜ,²µú¦ki¥jIžFÏ •@3ß·ó|ޝÇO].RÕÏ "Ħ5ŠbÊò2c$…«n8>cß9ÕU–z›»ßhjLI-PŽ-êÇÅm¾b׎~=ô£*n/“IczT’Ùþh—]GOjžÄVT’jœ¬˜ò“„ˆñÀžÄj¶åKî—`%Gç0r3å.ÄœIÁúl$諽º³¨jbóÆŠÙ0ŒGµ—!A?hç>½ûj5¦Þµ”o-E#QÇ8j–“ €vA´aŠ<ÇÐý1¦£©ü¨t”~fk=Úê©:j²;Žÿc†uiqæÅd/»Ž2Aí“Ük/í:ÜŸë}ùªáY+ëZfÀÃðø^r7qŸá­MRVÃb¸?†ðÓÔ[ä‘pÀˆÄWáŒó‘‘Æ=tž»Ãõµý#–Ž Òµ8“Æ;ðì\g(¯œŒ Œö:nãÁ–57Øå¶øÓßVK…k%-JÇòÑ!$n q@ÈùžtqÑPÖUº5|”´´âWrî+öW$ö!‚ƒŒöøëGf±Ô]+Z+tôoJ³BM<`!ÚÌÄyxÉ Ä ‘ÛÒÒßVհФ~øõ•þî»±.ÙÏ=ò£¶Hà|µQVíŽoLv)ªé鄊’º$ÒÆN;UlŒ`ûôÁÔJª@)üQQ²ª4’m©Ë)Ϧ6tÊn•§{}Âçq¢þ•M˜Š1$B#èðÙN]N=qÎ4‹L +"¦£¥’[…d¾Ô°ÆD© q†cÀÆ0ÊH'#qî{Nú¨¶“ðsÊ ˆZ)n4iN´éâaŽ3Û¹ŒvõÖ§¢ T]EnŽ Zc$G͸@àsÿ-*ån¢GŽánŽyž¾sPÛœÁ=ÁËO\÷•Ò©ã¿ ¥¥m¦IDx8ò†bO!¿¬\`ä3¤š}IœZ¾»´\¯ú³Ýè]á§¼T*ʤƒÆrcë·?ç¶5ª·ÕÊ'½4Fl´Žê#¸Ÿ—|à玺¯_¬çÚ'PÓ²°Ui®L®oýŒXï=²pÞ½µ[aèËÏR]m”6úX£ QÁ þ®6˱Ï9fϺ›£XÇTx06ê±TõpÓGWCx‘Á®1Á#°gî<çH’Å>\Dœ¡ ‘“ÎQòǤéY«^Í-;Â?E¤s§‰‰JéÏn¡ãó¯¸{9¸ÐÇï4P« Ò ‘I/¼£xÃç…æÅ:l•†oit9íU-0…^8*?Rª'Ü€wÆ>ºÕZ:yªjîÔWe¨zé(É£1B’‰NßSœmÉ+•<ÏÃT¶u³ôöc®«kŒ3¬QÀ†F¦âT`†ò““œŒk¢tEשí==MYoý¶¹Oê©$¨ËÓ31Fp¸Î3’=´ÔTÕ"%p[òaz¥îè–ÊS]™Wcd±pÜ Ž@+òãwéáötXꤎª›¨K¢®NÈ”òFwã=¹Ö-,3t¿PÃ}ý#ÂìѺËQ%CÀíÃ÷à6æŽ1Ç®:GMC=ûÙQŽž×8j"ñ$ÚgˆíöO#òÆ–‰6á.E$’ŒºÔqkßKÛînñQ==L*jéÚ\ÂÌ .î •È÷õÖfôk-´Wj©j¯’#´„*¬HùŽr0}s«Z»½âzÓjyîZÚ#2Kxñ!V5=džœŸ¿¾‘t骪;(¨¼ÌôÀÄCeGvì*>Uî |m=P‹HÖxr+¯ï·òXô7Qt•¦Ó;Íj•È 4%“pù|T8À9â~8q”)í°ªnH•7GÅÓ âZŸ Q)Xe•›k£åƒŽÃ=†tu3b¨¥®¸5RÔ\éf4²ˆÆ`hƒzäòï«ë¿³›µÔót‚\ÄGï!3~¿ÎÛ\`7vÈœŸ†¨¯#w³US7T‰(í²UDŽJvE]ż7'la˜‘êqûCJJ0¸¿äqRɺþ82—.gÙQo¨ba?«ŠW!“ÌA\“¬EǦ¤µÜäKt1ÒÒÔB²¢Ï*<Þ;³»©!ƒÄp‘‚3¯Lõ´×¢QMGKMm¹ 7'J†V¥y7ãxãXÞ§§é;gUWÛhÃM5BøUòÈì*)Ób¼Àœ0É ç·ûàjã)ðÑŒ¡M=Ìg³»Lþä¢yCC_n®’‘§8Uƒ»nìà®{}Ús¯ºbûUצ¶†ÕÛ¡APÅiÕ^ Èªíæ<¶€}ùs­Õš8îwÛ,B¾Šµ§¢–Ï ÃD…«Àå”’<óØz]]?H=Ú ?kÉ GGQS´éáD*©ÁüœÈ=‚Y%«©”1Fy\ÿO°VG'MTÙ(é ¸U¥ILÓT*H`ÞV|Žòîî;°xÝŒ¼½CYn£¾þ“¤¦­­«5$ÔÃ4Ñ ý¥ÛÈžà9UʶÓÓ(¢¸´³Bô‹F‘c*6÷©1åçg}¢EÔÿëëíÖŠøíÂÛ{©@rÎ6´|ã*í’2‡ß#X9)FºžŽ5“ÃNã.=ú˜•¶Ð\:–ªép¬1%°%7º¡+ ‘)XãpPmÜCÐçÓ¶®.KZZoUõ¢JÉ(&¬xÕ^UädnA´ç¶ î:碂ém¼Øéh­”0W‚) *4’®Y$c!ò g%¹ãH¯¿èÖ™ià¸J15$dàoÅ·yI2sò÷ÁÍÅTSÔc‘ë–Ð13{3éên³ŽÐ—GªZzS[¬ÌÑÍ1Ü#Ó•À@ƒ9€ŸXõ ¶«¶~€¶ÑVŠa‚  D¬¡GÙ 6÷#œë Ò¾¯ŠÕq¼QøpWW–ˆÒ³,>χ$\’ud cãªþª¿Þ:zf½õ †…c]ßÅ©‚cà—ˆ¼¯}‡ž2ò¯Ïí‹Äc„cŸ+GÃöÎÔ=9KWÕ¶JÈ)ªi¼)¼@L„ÇÙœ¨ d¿¨8‘%5W@^*¨¿H=<­O!£Iy–[Ÿ7$í’¹%¸ãV÷׃o°TôÃ?¾ _¿˜|T f52åðöäÙ¸ÉÐêËâýWNÏYo£yá_v–6f ŒK"¶8 X`öÈØ :ÍÔS}E†Þ”Öߟ}Œ;t¥ÎÛÔ’uL2AoƒÞTRÀêëË+<™ ·+ÀçÓbîŒV¢¤iQe§¨YV²Pá^Ls»œúŽ5‘éw» ŒU—RíOY\sÃQŠX˜±,+@bÿ§ ¶¶ )­sÜnOS3Ò[$W©§Û"Hcˆ ï–#$uN}&ß }?‚ÔcnKoó¿n…E\RÛ:fkÁ£¡º[.W?$ªp‘€dŠËö¼BY†Óœpð0?BSKE%îŽ#D•YÂaßiPØÈl“œ`Ç8խꂺ–Š¢âÕ"Ž*CMSR3J‹µÌŠ™ÁgÇ·³êî»lÝzŠª„Õ#ÒøhÂ"| åQ‚`*&6+ ¸ÀÉõÖ|JÓ4pSƒT·ÿ,fU¤4õ7Ù‰…®z‰%bÃTÈ(Æ ·qÉ+Žªí·z{la/–˜ÒK•KøSIZÀ ØøÇ—#«IjéîT°CYq1USHÌg§ó1xË$G>Lª¶Sž˜eîSÞè.V3K©;m\Õš£!‡,nsœsêN1ãM¤Õz³žk&8½í®‹Ó±q{©éÈ)=òŽá$a+±xq$Ò’gˆd¯¦ÓŽrpN«¿Ö›¯þųý€j__ȳVGqaJwÚûc†œ†g`™q»È02~>¢Ïô/þ·_ÿa/økšOåŽi®Q—êÞ‚º®ÇI{jjKb·z¹œFj¦b­®â0@RÇèqdiºZïÕ×ÃOÑvúH&µÔÉ]+±$hÛ¢BW‚ìÎ=TsÎ4¯k7KåÓ¨­ôTÔ°Mf†ž›sª§‡S#)RÄ“‚T³ÈÀÆG®»ýšË[=¶Ût°ÓÅd»« ›¬Ì6U–Oµ‘•pO9ù`ò:ÆQkkVr¹ÂZ¡7½ûû{êy««h#nVº3,sÚŠëÚÉ­–Úº[­Ø$«ÊM6KøÎX ¨vÆHí–¯¨®6ª%è0zÉȯ’U !0 “–##ù„Ïroæh×òm(¯•?Os+Ô=Òý%ìvÿ-¶ãï5O3Ã:ÈÁÑÐÈ)òŒç$žF9'­öaIAq5–hÁ4sR% ÃÁ–Y|v‘¢8á‹©m€‘ƒÀ']oÚm /OtMÊKU5®ªõYL†áOS0Z•ñ¹JŽ><Ÿ‰×:é~¢ºÓß©±X³DðªÊ$ð×öàíGªsÎà5Pmh}y3󹮜«,¶(á­êJ:)-ôSÔUK\ê³Ê‡ÂT }SÌÎ}ru‚êE­ë ÷ˆ*Ö¦ºßrEY*ÅîÑFòH,¡~ÜhgËëÛZ.±ëº«Ÿ´˜¬–µÑM"ÕÇQ{t›j’H'%víÆ9ÚsÇ"ÿI:{„]uKé›bÑ‹…cј)Æê‰'…‡ëvA'Œ“ÛYâQŒ¥ óÐÓ&·Î;w­ýýŽÅÖupu-emwJÒSQCg‰^ºiP'ŽWõŸ«ã©9'¹ü5gÔʾ®¦©©¸ÖIOp6ÚqHb‚VVYD±¾9#$ÈÈ#=θ՟ýl¾IÔüv¬¯4¾ø‘°@YIŽ<Á7¤Øõ']“ º§§ú:h,=aÔÂ[¼"jzƒÃ‘³ú¾22o\àëLxá'W¿§àY2N1Ùl»þQ"þ¶ÊZ&¨t«ª¹Yã–žÛO ;9¬QfHÏ}À?²së®KvZ ½Žñï Eš¢+di^–BwÈΪ0˳;°0v]?¥,’ɽ]\K_OG;Úi™¥IÄ6YŽ0ǘöƳTvž¬3ÖY(ìõ”F±Zj‚ѰŒˆï*äÞ|#ÄzãX8F1Ößdo›èÿBiéïÖšYú^Þ*h©ê¦I-õ¬ÁLàÊQYFv’@íŒñåÂ[k^šåU]ú6W†¾ªªXëâi¢heJT·ÚÜ ž NºH¹´Õ4Hk(îUpU­¬C~*ÇQá0M¤á€Q™˜àã°Õ·NSÝ[uJÕÔ¿ºRÉ Dñrк¯—Ô6Ò¾§oІæïL·OÞÆ¸ðÁ­ié­ÿÕœ–é×ÝwÕÆ*+]=¹í´‰®CÌï"1'¶@9¸ç>šív*¨½Mežú=ꪅ•ýÞQN„`œAão/ôÏ"螃°Ø««jnöÙnW[•G»H)jJû¢I–Y@S…€8~G³®‘í*J~žê;ÞϳAv‹Ýª§Ž\Ï'‘68àŒ~'D±·‹ÊÂø[2N2ó'µýÉÏi´YjS¦®•µI-‘VQ숔¨vñ¶>b<>þ_Q‚.hèo³ô³Ú«é¨å¿CHZ)#ªÀ÷€†îŠ@¸b;’5…¾uì·n¨¢¶Im§ž¢ÛPæL/âO†XÑË÷nç»çÑjz‚’ŠY-ÉKï5õ–ñ$O,Š7´LÊ26yy }±£’ŠÕÏTVYJ“‘Ê+ëît÷=5 Ô÷Šgð)kd¥SîÔùe˜!-êOÁÆG]4YkîÝ;SIÕ‰zµÏ4l‹ÿS…^wO›$äñ¢šçp‚õf5”K©i+VH· l1aâci'Ê1œú`àã]úÆíö,ÿ£hÒ ÑJ²K»&-§qRžV @$ú vçN3nN2ài¼²q„w_ào£h-ô§Á¢²µÜS\۵༣(VE Ê¡òÎ Ç8Õ·_QÚ.×K=%[Âi¼9¼Iá@L>+…%cÌ ls·<ã\_M5ƒ¤ë§«±½uµ&©ä‰÷=\L弤‰$üi‰äŽ×e¥ê:¸'Š;ŠF•+«‰b¨asß yÏ9ã¶š”g½pSzW={•ÝIp è[UâÉ+GUt­‘d¦Šò‘#1Jy¤à•;B†9ä·±5ö@m—Úè µMSYSS”RÏ$«LJ’;KñÜ ÎF=1¢7j+•þHÅÿ ^‘j)ç©+â¤aJ`€Üd0ƒ$rÃZ;}}²^£‚—«é¡f ² TMò|6Ç%]°Ç¸ô$èPn}µ¨ÉG«4]?hµQ\­Uz 1SÅSÉÆÅbv•ÝèH$9¤çYª»¬U}M|©®±ÔD,UÆŽÛ*LJ–l«±V¹ñÇ®³Úš;Kõ=ö¢åCIKqJJcO3§‹N­7‚V0Ê1^aƒÎvÿ¥l6~ˆ¸Ù)-µì)hËVLÞØW¤^O ?yãs”Û‚! ©Ü·egPu ¶›¨†ïqjʘ厦) ‹i™¤!ÕÁá!¹ÀÎIë ]KvÖ©:¹©ê%Ž¢‘?GÑ´ÅáwˆTÈFÁyRÙÎN´·‹Ä•4PCYÑ1Èb†š¶9ßʲòEF9Ü{x難Gûí‚ÇU-Å)ÃX!´I²È{aÃd8 F <©ïD\bø7ÉI]oïìK§«j[%eο¨èë/kš1O æ µJ7+àe°FpÆgªjêo²ÃîךOz·Èþ'¿ÃáC"²È¨ÁvïyœújJôZ×ÖÒÞíõWªHfª¢·ÌŠd2Kݪc'xñnkTu'¿Ú¯v˜b“Þé?PÅK”Ÿ)ÀðG y¶“E¹8NI5iòhú#Æ¥Ž¨PÐÍJ©¶%ó¡Òd€¡p2@ÏËTýiErºõ,ÖΠ¡¶L±’²þ±¢M­*¼e FÜîõÉïØRÞï5°ÞjÅ¢¾®žÅ4tñG]o¼y°,<¨å‰w¨Qêx°ö…¯7ŠÊê $óËD^‚Fñ#Ú°²¼ª9v%¶Œp2äãW“XãºÝrqàÑæ¸ÎWv÷õÝ~JšïQþ°=-ά˜iàªqá@‰*Øeƒ:c+/|“‹úm–êxít½UG)®Ž/y«©§q,‘Èv¬1`aRx$ðF¹½žËÓ7_j£æ¨©¶VQM=<Ëá^wÇ+†À9 ´óÆÜúë¯\-ôöJŠj[ÕltÓ56åÊ´¹- H¬@ÈÜãâ2¹ã'D÷¥Ïà¼sŒ\µS÷þÔÙéiºNoOÞ¿H U.éà£jÌñ‚’Gño^ûpÀžÇ(‚Ö¥jîµ0UU×ÄÈ”ÓbQ½¦ßoàð OÇC¡æ¶Ø¡´l³UE%6é&c"1f!ÆÝÛ ŽÝ€Õ¯O^Ö–²°VÛèÚ–iD€F¡\€0 ÏqŽÜÎW—nèˆPŽÎÊ{ÃÔZYã¼\éb’?¾½OŠÌ¢"2Ù€àIMQR:ÓVÒÑV´òSWÈôo;lh–!ˆã]Äí,ÁA$‘ês­»Þ¼jº¦ £¥ §¬&y7°Á}ädž`úçU¤†ók ¶Ü#5 G ™eb|Yd´ì0[¾HìO§m8â›Þè‹Ç¦´–=iKYt·Ér§ «´Ò{Ôž<²Ô…S+¼Œ‚¯µTXƒÏ5?QS½ˆô­Ú&ŠhLwH–ž<ðÞ02FT•Î; ‹–ðÊo“kG¶IÝ”)ÈÆ –«eŽ­öSÛjÿGá[Á‰ eÀ'¸8Õ(8[½ÌçâÔâ Öȱë.¦ô,× ¸*(ÛÞfAØÏ°ªãqb\xÀÔß‹ÿaÒÿü‚öê‡;"¨.åHÉÛßÓ Ÿìäü5ÊÖúä¯ëÿK—ÄäãRI]9ѱê;Ú¢É#Ã嬉Ù4Cíd1pYùÉù®×1tµW[äö{©T•KGXSq JPù™rùƒ߇}Wû¸WÞºNz{u¾µÇ»+VÀJ»Ož2 œã ŒäîÆ´T•5ÞË?GÛj㊶‚¢¡÷ƒ.® —b1Î23õMtc‹ãÚ6Í%­µßeßß6ê™:B¸U*å”QMŸs /NWÖuµÂª§¨¨â‚Ít˜PÁ])¦Q2ËŒ}¬]Ùê׬n=CC-“¦í5ŸÓ+éÙÆœ/‡#+)ó)ÉÇoµ¬Õ—§®wÊ{§PC}¬¹¥ÂXå’—ÝÄÓ¼”m£'(@ Žà5/ÚŸ[KIÓ¶¾†¡[Œ×Yª ŽJºWÄÔ̾̅ò1dë<—zëcxÁFŠÞWºÛù²þéd¹]l÷9.¾á%SÓ¨Ì<[‚åÉÏŠ˜,Ä€¤c ŽM?³> Ÿ­–»c¿¹Ô*)*Dm"”2Fpp ä6H`~]VùsK$ö˜¤«’¥š¡çeñiƒí+±Á`2 /|çBê>ºZ[õ¾ÑZ©xˆRÛÐËh‚>2Ä0ÊÎÜÇðÑ)8®imù%b×ʾ{ôÿOIX,÷·“§«ŒõW0Ñ›ª¬¬«âBÜI;‰V!¶’8㺾ÖY/m[Óv)mµ–¶T5 æ4”Ÿ;rH%°2;ù ÒŠN£¿uUJA-*¯ºG5K˜F%©ñ÷™\1b Œ`7ë©Ïn¹~œ¹ôÍ®¢ßGn§ž)Tx#Ħ­Û¼¦ò9il9çw¼ÿŸNh' BUï^Ýnhë: ¾ŠåMÕñÝšª’Ks§¥”Ä•†J1ÀÀ8îqðûò=5Ðö>¼£¨êÉ$†+æã_ ÃJèÎd%1¸’§ÊÓŒã•õÕþïrè礖²Z ‹³‹s³²24.]dØpÚ2½ûÇ\‡ ¯;еµ4ߣ…ÅêÞ×3P±ÎøÐ6 ¼623Ÿ†ü¹$±¶By¢›Ê—Ö½NñÓ5ÝQÕW«,µ’RЭ¼ºÞ#±)rqlm²îì8ÜG'Eíÿ%ªóYKÑ•p\.u´1RQx²«4’²”¸Àž=¡öK/H\îÍún™âÅ&©®œ ‘Î1ä(ó6ÖbIÎ8Æ5}q莛ê::Ž–`ô3 jºÉ¤,Òк6ÿ€¤¶w¼>¼Ö•×$©)>6üÿf‘ÔËc´Ü%Š‚xkjd3àٙؒ*¨8_. „$cï­‡ª¯ÅàVýJ´W ay2®U!wdý°K0Âí#9Ö:á_GܺzßuŽV¨¬I&j‘”™$*¨1¸ä¨É=ˆ$c¾´fê OQGo»Ûâ¶Ûi§ð£’f •rd)Ï ¿—häg9çk"ƒu±ÙxoMÛ÷öü—Gh¤ê{ûϦŽg– òḨÞ#Cೌá£Ýž1†ùXtÔw/wŠÚÓw¹Û‘ÝVhUJN"ÆWo™ÆN9 Æ 9ÍÅg­´uU㨧¢ª¹MÇr¨œ" W‘·ÈÈ8»:v²ut=S%} Ö[â« O´ìì“JÅ n vá—€3»éÁNRrooR2hQÒ—M½ìJ¸ÅIc»SÜÚÁU%Ö èÚ¢ºR@Ž.­î8+â9_CÎI#Q®=3ÓisÿÊZúº¡Se\M XÞDa"±2±O‡’Ã{¾t¤ôFô."šI*r–žº¹Éʱeqøê£ÙuU–[­êqu5•eåªz˜ê$xÐa B¹a·ÊÀmc]ž®›ûG<äïwïŸà§ê»OPÖõ55©q´PÜGº‘^Ç&KI*¤G‡qös½ˆøsÅõb—¯.=OWÒ ¦*W¸V4‘·ê¥ÜË•r³» 7öÉ´éšnœD·Ô×ÑS×TBMH‘Œû’w;šR µ21sÀľ-mÔ‹ÕÞº¢š% ¥âMŽœ…ðÕ€ÚC ä~Êü°F97FkÄcyá¥Ïÿ?ÀŽ…ë¾’ë™ZÝ^ÑMIm¤I)¡rÓHŠÊòG6v 99ΊõÒ£ªº’‡ªènê»T%#Žž²˜2¬{¼¨«“æó’Œ/~N°ö/gv»;¢C}®®ˆ+FôÒFa…‡Úl“xÃx#ëtJŽ¡¬h©Ò9a§;ÇOÑ&Üà’Ã;ŽH9?ù¬¸œ“HˆfŒw³›ßkk:®º§«ib·ÕSGJþ•cEÚÑ A—r AÏa»Š›½*=Íé¡÷kŸŽóšTe’˜Í¿1,’„P²²Œã ë¤_ž’îŽC9‘ƒ<´å£–L0îæUà’ÑðÕEšÏaµ@E¦ÍIH%S¼"} qœü{úˆá´ïaÿV•RàÌõuªÕCÓýAÔôsIro% § Ï›Œí*@Îàw?wVÝ7s¹u?JÎ׫³SÍ],URËE/†V!cP±¶ÝØœq’9Õí(H_tQ"qµ@¾„ŽÍÁÆqøé¬IF¬™øÇ)ê¢Êé]o‰i©h­Ï4”Þ©2T¿„ ³0L1 ¤.?o¿Y¢¹GV–yVw©1Í\΋+Û‚Üpwp -DPÇA'ä4ñ¡«™r°HWÔã–±A|ÌÎ^2}È•{ %ÏÀ§Ke]CF²FÈó¼À´9'‘ÈÃŽOlYEZc´Él‘¢’i%yÙ•YʰÂòxùý5–×—±teÂép¸ÐÐVš±ïi²|9#fvQ‘Œ ³`p{ƒ#®:*+]5®Hê ¶•žD¸A±xŽE xô )Îs¸qße¾Ózª³¨*èúa²mEH&>òîNÎÃÎy$äöV=oí&én¨’ަáS$ÂZjcO(‰[ ´Ÿ3 À÷=½uZ£æ9%óàƒÇœê §OK6ïw¤èè®vm‰­Ö¹àt³É±T&ÓæÉ9$Œq’u3£oÔ¡bêJŽ˜ž¼^Ö5¨Žž!$†RcƒÜžçŽ@î4ïRÐÑ×Y®uöHm·jÛœ‘ÌÑÔS$‰2,c(Àƒ€Xsþâ—K?^Xº>‚ŠÖÒ!®ËY-< ¾à 1Î6÷8 d`çXaœu¨ÊKèV|ªJÒ§×סÑꪭCÖ•â–šŽ{MM;"ª°TÓð­œñ´*üA²5JóÙì×›Âuš-–¡%Lô@;ÿGåÛ¸\ù{‚2ÁÖ £mýmJÔvzÈQ,tæO ©Rpò¹ƒíldÜ ÜëEÕ};z¿Ýéî­û”TñAIRÆeTŠ0¾cµI$‚Ùÿ{ä5»Äç?•|¾£yái»—uïÝªÉÔÃÓ—ê¨nôðijªì ¨ ®é=AÝœc#=ùÆ­ï p’ÃEx‡¤¼{Öª3s¦–R`¥t8-“†‰©'ŒŒfúk©¯MN—Èá¶ÜÉcO+JÆãj¶;môûÆ…êûqºÔ%cܪi†ÕeŠšBŠ9û\÷ä÷'YGZqiiègýLMݯt@ºô?VÐ[nµ<7 ¼u¨öêy$,‰LŽ $9òd!^XËwÁÅå’Þ«t£¼Ó[­Wv†çÀ¦JiNâcVQÎU@`¹ÀmTu¿Z]^’ôUjs‹#G8Œ±AÎ;ð;_žœ¡©Y)iêM­(*À;“ÊÆ>NaÁ#ZdÂ¥P¾Çâ£kkßä³®§±UVµtUTT÷_}¨ˆ®òG$g`NÆûCçŸMm:n;¶‚±¨&÷U®[1ñ5Úˆ6Âð¤Frp~\ó$³yÔ‡ª•ÚF,s çN [“oßÜ3xç“d©{úž¨¸Xªá¢ 1ßGHåZ`Ä®Ò<»ÎGÔ`÷º¦‹ªç–Ý%•›ÞiûY°Ÿ(ó$ãÍîÏr{é•F5r`ˆ×ø¶´òâÛ¯©ÊóÏ©cÕU?¦©wUVUF7þg‘æ=ÈäqžvŒöÒ¦¸UKL´ÒUÕH¨†<É33m㌞@ã¶£ÃEQ2íHÙÿtêDºß ¨±¶Ñì:™øŒ_3Fo;ÿÑßKm¤”­=¶•Ô2m„ÇssøjoŽøÀÂŒÀƒé¥‹s$¡‹çÊA ¹õ¿ŽœZL&“ïUþzæŸÅü4?ðdòÄŒŠÀcÌ0òÐw,Ã$öƦÁÑB#ýò`–Ì“‚r~€|;iø¡® íôè>&uÇ“ãøVÐM‘çmÁXŠìq´“ôÓ±QT4ê†ElåØaWëOzJÆþ²úxÄ 0ÔÊ?[K }e=õÇ“ãùé‚û’ó1 BáròÄŸÚøi”¦Ž0Äi €ݸ?‰Ô€”±d m96ÿ%ŠàxVÚ~y×Ox™~êúòÉ‹†€òÐ<‡ýéÕFtâÃ!;…ŸRgQ÷W3Z*aðí¦ä§¯ §‡ûØ㟎ϓ™¶N¶ù'Úh㼕;†Þê[2!¦©Ž¡Š å ¦cë´“§ÖÞBeé©ÇÔãž¹Ûœ¹_É6Ã54‰ö) ¬äé ]“姤ÿœN•îÑ/>ëF؇:a™Påi©¿ M>ô8ei8 H>?®:KG#6è¹õñ›2Õ3ˆéèÁù®tŸµŽ<nO$/m/—«ld ýa¢?Û#Iþ€§Íî ÷Ææ:‹%=i9)J~di"’«×ÝÉõÀКè‚É/UF„쎌ÿ½2÷\ZO®ùi+K62`¦?6ÿ F〴Š>u5Ø™+Ï•iÇÌ&š–Wåš”˜Ïqž@0‰HOÌi¿R8÷`Os¨o»â ¯¬ôÿri'ݽ+Ÿú¹Ðe©=ýÔŸŽ’"«o²)þðQ膩ƒº5 ôÀ‹J÷˜?~›þÏI•lùßHÏCÜê~›ðÑsèŠDšËÃÉn…(«ráçi‘› ¡¿$0ϱÇ:ÉWÑCré¿ÐUsÒ­¶Ed¨‚žœÆÒ1(K’I;³°9à’;q¢ŠF”67 ˜ïü´â)í鯤G8ªHôÞiRŠÙU}»Ý'ÓV®“«÷ž’¾‘Î aRá‰Ç®=ή¦‚†­æ¬¸Ó%uc°ýmOëðyËg8ãLçNFŒÿd~ZHÁÛ£'-©½‹j›µDÐD‚FòqŒ’ OmA§¨•¡P[]¤(ÀíƒÀúiê{ucÇ¿ÝäÛñÚq§à³MÌ’*‚IãÍÜ“é®yxìÿr_OøD²¦÷d@äþ£GŽK>ã¹Ù³™:žhi¢¬z‡ÿåÇÇçc„6#¶ÔÊsžd?v¹gñŸ™¼©Ç$wÓ0Ã$”Œ‘«;*².à  ]Ä+² V(€øœŸâq©QÉ{ÛÅQƒÆ?—}rOãÐ_¦-™¼Þ…¶Û^¶Ú8Å<‹·füŒm“œý1«6¦¤½E:`ò<@Oà5aw9e§R~#‚?=/úLm‡£Œ€9,ÝÏÏ\søîwúb‘3+£÷ põËóÚŒÃR#’έ撢o¢íþGR¶d  ~=ÿ=+ô­vÏ-L¿ ßç®9üWÅK™×З’]ÄÇ5O‡LàV^FÝ œ çŒzíUÀi“yº…¡Œ|±þz#]vaŸvè3üõÇ?9þ©6C•’Òö–ãZÊxÀ“M•´+Õ5GêúaÞêè7S©3碊+84éÿ=ezº ÇÍE•9W©o Ïç¦ÍÂŒ.U§SéžtîʵäR£ÁÝÀþ:6š¥N=Î[çœãñÓ©/@#-l,p¢úþŒH¯ÈzÌ|ˆÓ¦áR¹Ý%j<×JÃ&å…HôÉ?Ài?VÌ4û‰s?Þßç¢ðmÜj~=$\®(¹Å“Ï Î›j›¤å‹íwÚºW±ö6Å!Y%ÏûÍ '¶!ÄhüwÔg[¡9÷@Nq“‘¥$WÎè3‘Οç¢ë„"KÕPnÚ¾'Çü´Á¬¤V,„žíÿžŒÓÖw4¬O|`é䎱+D¹<± IÏü|ôõIÞi¤È¤œöòÑn§Ï+ ?>ú˜j*&JpÌé§®.å£çƒÎ¥éêÀˆ˜’ÎG×¾”! *IŽ\|Μ[­A8Kô*Nšš¶¾L”¥ |”ᥫÀ-Ñ¡~Ÿ™Óbkve—'““Ïå¤-Mcù”Çl¥«'-@Aù©Ð¦ïd0Ú®ÞxÊG¡Î4ÓTÑ·hÝ~dãùêLF¨¨&€îãN¬“ ÿ˜çö¹Õ-les5 ã¿Ì6†ÚFÇêeï‘–Õ‹ÕÖý]@q¤5Ƥ ½ Î}3£DWêc"¡a—ŽLvÇËñÒ„v Ì~ý~Q¨ËStr#gÓ2¤µUîF*xÇÓ\¯Ä>­Ù;Ü®Îùj£óbAüô#·×±þµXþ_Ž5µéÀó“ñÒÒ;Ù «Hqñ#Y¼©ð™-– t*»dLŸLü´F{¬j`xî05)®ÌpòsðÜ4òSWŽ ”ŽÄŒhÔßBlSÍ{!Y@céë¤)ê&S‰ã©kÐö“Þüô~ó^ƒí·ËÑO«ËSu Žf$pHÒ–Û{ÎLÈ¿R?ÃF÷ ð1ºcŸ€iënܱɑÆIãIè\±6‰ßu æŸpõÛ,RÜ “Œä‘¨&ºðÇË3Œå¤-UÝ™§rÜÇòÔù]h³1ÜbàºwÇ%O!%Á‚ÎxAñ¯Gb•}rP†VòËç/Ï|'?Ñæ>ˆ,óÝ—PÿyGòÒ^¢ü ˆÆ9áOætIÈd”™½Ôÿ-9V À¥ÜHàºó§ó¾Xˆ½KÙÝÇ9è-%í¶„„¨Ïs·V -Ãì€Ã>‹ùi±WpŠCýiãÉå¤à¹lÆ‚ð9f Iõ §#¢¹`o;ÎqÎДÕ×’"˜žÜ¦–kîä#(ù¦–¼h6%-=ÍS ‘çã…ÿ=(-Õ·*ð;xÕy¯¹ïg#Ô„Æ™jºÒüG1ãÈOñÓY¢–ÈvXµ]Ñj¢ž}%ëo œD}<ºˆ’]ˆ$E øåqü´êËt %~>Rtµ¹p­¾1nÞ{`di/5é¹mÇYã¢[½|ŽØöURIûÓåï›sP”ôŠÛ¸R?²N-Tt?Ò¬ñ®¼þ¤(ôÚ4ÛVÜáábGÓO{ìO½ÖÉPsöiâ!¼Äcûºmº†_öêaóŒ­øp¿–ž¥ßüÿaרÜ5yŸÃ§¤’W=•cÜ9Шý=ä£h_*˵¿ÎŽn¨¸¸ðÀ3û ˜Óû«4•õ®Àˆ"\žä‘þz—$Õ&ßãýnãl÷}Û^–GoHk«þ&> Ô¸ëeo Ùäí¿×J{£'%#˜':ÝŽ—r[˜[ˆùíoøPŽìä( ’88:’÷iÉÊÀ˜ùäc@]»…9ôMRÃ÷c—U’ÜŒgüt]"äÐgÕ .áÜ€óõÓ2_Àm0cñfÇ?MS–(ð=—Qç’ðä@aÏaþZ»ìéìßP¨*?« >´ßéù?Ù·÷ÿËQçÁk¸àv<$cÔéÕfˆûô44º l¯˜ò~:±ˆxÐÐÒ\‰ŽIÌ(bø?=*ª(PÉì445¯QŽÿvœ~ R;äèhh˜™gvŒnvn}Nu p~:ÆD¾Ga'dãËRTE£8ï J¤Uz… ¡†{Ÿ†¬fòH¡<£à8ÐÐÖ‘äà'ãê?ž@8àvþZØcÀ\qÛMÈO†§'9ï¡¡¤†AÉdóxõÓ`ÏðÐÐÖäC«Êëÿž‰¾ÉÐÐÔt(pÈøX€òú kA¯m* ì€yõÐÐÕ.A‰“ÇÃL?õ[½~:d%ÀÜKvïÏ®¤ZQã º+Ü‚3ñÐÐÖ õ¡#CÕdÑ2EFM@ž(÷ŸÕ§÷tRA0ÇýÑ¡¡¬W# ó~¦>ߺ5Á‡ý’thhjXÏÿÙbygfoot-2.3.2/support_files/mmedia/pics/match7.jpg0000644000175000017500000010643211225071373021127 0ustar eliaseliasÿØÿàJFIFHHÿá¡ExifII* ª°ÈÐ(1 Ø2ä>ø?8i‡P<CanonCanon EOS-1D Mark II NHHGIMP 2.4.52008:11:25 21:54:009èIè@d!ddGddd+èKèrèš‚¦‚®"ˆ'ˆâ0221¶Ê‘’ Þ’æ’ î’ ’ ’ö†’þ 0100 ÿÿ X  ¢¢¢¤¤¤¤¥€ 2008:09:10 22:02:252008:09:10 22:02:25` ,€w5p¥#ô R030100Š’(šÿHHÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ñ0³„Ú¥XçÈ-ž+¾Ý"èqÿtWŶrêf|;üy£¥À&#p3‘žpqú×±|K¸±·ˆMy4¨‘ð£®~ƒ­qžÓËÄVw b}Ã#Ú³¾%x¶mA§²‘ã"·§‰çZ›Óƒqlçáñfš’°hžHóÔ.8úT uo®ë,¡qÎÏÆr(p¼I¯IðîýŸ¡‰r77°ì)Ô©e©­*pæ\ÛL #Eºðzšè¼9h×w¼o`…R[éYbärkHi^d;MrÇÓÕ‰§N.ôÎø–;‹]ù#¬;¿ÞÛIo›mÑÂùW^ÅgÚé¦Þõwçi÷®©tȧ· €x®¿jç ˜¹iu¹ÍêöÍ©j?jŽ•¥”*æ·ü5áûñ¥]ÚË’Nï/{ê+N#VL€YHÉjݰI÷#š4ñu–.X<±É?Ÿÿ^°§…¿¼Þ碫{©Ý!+M¦jW7 ,°¹Fäf¯A6ìsùÖÿÆ}4ÁqsöØC³z°àÿJátûç³ZDÈ€Õ|=›±ôØíÓ‚çÕüGhÓXyç–Œç'Ò¹H\^éc‡<9=†ÈÒäÆ|·WˆjuÞ•{%­ä/¨H!†3î+|"|œ¬ñóœT+âxFÍ­Ïî'YNAã5Üø'\ƒN•¤ž$Àƒ «ci÷¯;ŽOjѱºhe_­é^:e¸Èª‰Oá{žå­:ka¨³î—[ÚL`FÅqzeõ­Å¥¿ØVW†Ü}×?ÒºK}CÉQšÎ…ðÌåÌWÕj¸¥î½W¡ÖXÛ#Þe±Võ­FßMµ%Øzä]–7Ü æ¹_ëWSÁ½³±GJÕbaí«<µ5RI3¹°ñ=ÈeÞ¹¬/5ª¯Úšòhué_ ¢¶õÍVYü2ÿ1ÜS¹­¡‰mZKP­N1øYßéÞ6Ò"²Di#R;fŠùÉ&lrIüh­½¬» A[sÛBÔð@ÓL‘(ù‚Æš¸­-16¯h€ã2¯ó¯*í#$ÚE–𝲠.¡@e•;ˆèxŽ­žË[e–MÒ>Y€=3Ú½ËÄú«h>"»2ÄL3C½µó–½©É¬êó]>Iv8è¨/ke¢G¨ùaKN¥ÿèÏ­øŠHÌþòSì+Ù&C…U¨À•‹ðÛÃw>‡-ýä~\·x(§¨AÓ5Ñ»)rkRK ŽAR8 Š+×.4n¦u äñEwrHÑMvnXUÝ3P{mJÞUÉ+ â².$0À‰œ1Á#µu~Ò"¿Õ¼ûø÷µ_5½Èè+Ŧ›šHÁ-L¿‹~"xàKfB&ÏÊqÊñ\o„<'=|I}ûe“lj{·­n|^½·Ô/m'@ÅkØê sà]?L†C Èëï^JŠ7“4rw³4[ÄxÀS…U?µ±æ©Ãd#U¥ƒ5çVªê;õ%K’MMö²*ï$Êâ±"Þ15¡c9óâEf,@µ˜ûsZR©É+±­Bð½Ðš  gÉB ©ô©µT *·|×/á[Ó½ ±ÂJ é]~º˜U#ûÕëáª{HÜÖ÷Bjò„ð­Ãú ­y£JK‡‚ z‰O—á&^îT~µç+‡/Þ"%¹ÂøÃT¸¼»hU|¨ãàçÞªèºÝì2Àßk”ˆØdn8ÅXñr¬:‹eyec½sör0“ ì+™7(\ýN‚Tì´”UþhõéuˆîY[9®SÅþ‡X´k›xÇÚÑxÇñT Îù¾ÎÇ“Ê×P¨BóQídåÍÔùÓõC„^›¯CÅaÒ5YíÅŒ¤ç¸Æ+Õ|1Æ›¡Ãmrß¼‘éZL€ŒŒUÕ®ên2Ue%fXk¯zaºÍVj‰Ž+™Æ\(îq]¥È0è ÎÊât«v»Ô¢@8&»mn “KŠqŠôòõ£‘QG–„¸ ÿ9剢¯Ìë…HÁQ:(íJ!9é[­gmsáµû@F<÷ÉA{ÅÓÜð½^î]SÄ9$b…À kÖ-¡òía‹@¯;»H.•(AN 3\„ ØÔá©‚ñÒ” ŒGOæœi>oJ4É­ØÁqªpÈÀƒ^£wÞ[DʹÜW•F®òªÔ^½ÌjÝH/`¿¢Œw¯C/ˆÖž§?ã,Ç¢[Åë ýp%q[º×Äÿ\kÏ£›v¼[s‡—øwªj6¶S¤wº[³ZËü$ä¡ô¬±mJnIޤ%©Äø¯Lû]ž5Ì‘õÇR+€`H ‘^ÈlË‚$ZóŸh¥j&b¤ÛÊxüÅrÂZÙŸG“f Ùý^øÈ©§Üž9bÎå`x¯AV.€Žã5ç7M"l*Ÿ—ŽÕèšA7štr“–èÕVgGÓ«[ î*Ñv½õ׺·ê8©5ŒúÖ—Ù) ¶*O³2Ú:ŒÅZße¨d€ÔX,Ëþ·ªtè+Óî,â–Ì«¨?-y^•rÚmך õ®‘ü]¹v€Àcèá«ÂìÙ¤$’Ôáõ›//Uvñ»Š*õíȸºi1ÖŠáš‹“d4®Q.Þ•,÷ræÑFYÔíÇ­QB3¸TˆHÎ[š…ZQw@¥frþðäöz„—× è‚»`㊪§ÔÔ¨}è•YMÝŠ÷$bÛ¸$aØg‰œÔêÇïR›î1U[ÓÒ<õ§ª’94ð1ÞØùC5 AŒbœ™ÏJ~óØQqè$@Äêáz×Iâ}JEð]ÔöÏq<$C†,xãé\ð•ˆé]>a­¦GjÌCn&BAšëÂɶບR—,®|Õ¤é¾!Ö.æºÓ´k©‘¥ÚZ$8ÝÜg¹õÅvþñ¥¶jú%ø¸–ëϬ1ǺE“8Û·‚Nxé_EÙXÚé–qZY@Á¢ _0iº%Ìß¡¼òÏ:镇˜„üÒs·9é^ƒ¡ =K”›ÜõHaš[vŸì·ª:Í#'ÕHÈúô¬íWL‡T±’ÞUê>SèkÙ ,ˆÈêX`ƒÜWœëº_ö> °+³Å0/n Êç¾2+޾ÁsGaFR¥%8=Qà„iw²A"èØ®ßÀ÷âhå¶n¿}­Kã_}¶!¨F?yùÀþ![^øq},qêW—ÑHÌq…Ë0÷ô¬# UVŠÕ_,m,V_?k$”–ßÞZšYã5!ÎpkKQ²—M¼{y0HäQëTžLv¨•âìÏ‹hˆŒŽ†¢d ò KæÐR1sÏjža¤c¡`µ+±<ÍW`çƒIÉ ÝÖŠ<±š)\“*âöeVeÈcŒ ¸·Ç/QYs¼r«™R }³,C÷„>0x6`lG$.2V¦V€¶qÀ¬Ô¼ŠO»qÒƒ¨ 06>”ì šàŸàTÁ¡P+o×nåàújHµ6åç'’1ÜÙ[˜z•8¥ûu¶í¡k%ïÎÐ'× ™ÑYŒ#ŽØ¥ÍÐ9‘y Kæ†<.¬t¿ ¨`£>Õ?Û™<Ž‚‹÷ šãÝxF‹KiÀ¥s“ì8¯.MNldÂÀg¡+n‰ZO„´:ª\n2 Åíç3Ð~5Õƒœ}¡pjç¦^ßEio$²¸TE,Äö½|u¢Þ,¬uy<È­$Õ<Ô•—©“9ýk¢ñ÷Å­_ÄÌöQ =:UT%žU=‰ýâ±µJÛÄVö­¨i÷¶[D#W†2Ñà³Æ+ЩRp”m§¿—ÈÙ$Ö¬úê×PŽtR¬9GĶ)}¤—àIlÞj ä~D×Ïø³yáÈ#·¼’ ZÕ8Wc™G¸#½|WÑ|K£Km§Ÿµ>ÒÑ<{vrrzvÇãNs^Í·±2ÑjJ^&•D  ¸®÷ûZÂßF{ù®+x—s?@¯›^A!ýËdz Àñ¾½¨j~‡M±†S}Ò`u†+ÍÂ×JN,Šu>Ë;¿øZ~ñ4ïi8–ÞuÈŠgÆÒ¢†òT²)+ž¤c5àÚW‡ïú.¡–(•ÁfÅzªë±Dªn1œSÆN<Ë—P¨â’hèÚê,ýÚaºB8‚u{0¿-Á9õŠ#ÕàrDr†#¦k™˜óšÿjŽñÖ¡kXåMA À9o1F{SÚâ/¼Ò _cF½Çv;í?ìQP=ÔLÙGùÑEÅs-<÷†ç¾Oj•#•¹<ÅVIÂï °ŒñÍ<ÜF °NÜ€¹ÇÖ‹ŠåÛ#&ÎKAQŒU pÛ^ˆVÒîhù ázTÂñ–6d…wzöÅH.7îÅ„SœìÎù4Ô»˜¶&†BÄI·Œàõ*ËAœ“œbª¦=Ì‘­Ó×ð«1¹‰É¸<}Щm…ÙgÊÃ,2qÅE²,fY›o_¿Q¤”–…÷'©¤ªÚ»¸þ Ú“\³V쀦ç=8© [Œb3“Ï&ªfÜ£nÎ0}¹¦yÊÁÄm‘Ðcÿ¯G2 š;¢ù‰`vžÅUÕìlµí9ì.62ÕH=E@ÑBçq‰˜õã¥0‹uÝ'Ùä#ÑAçã&Ð\çõ=3Fð”6²ZÚÉ$‰“æÍóá±ÆAÎjçañMÊNÒ¼ä–99=kÐD6rîßg)^Áç­Wo è3rÚ\)¸òXŸóšëX•/j ¹²²×n‚Ók’ñ|¡sêzW}áÝÇÃv‚eYfæYOsØ}*Xü;¤Ûü±@ȇû»€3xHï†8ó5•JÒ¨¹SÐW–Åàг0}Ï\b”ÛÚŒ1#=>b:ÖCè:g™’''ûÛåOþȱü’dxóþx¬R@›4Î7D‘2ý2j)´ën l Eg 2”ùP°ÛÇõúÓÆ‘Pà¹Æih}‡ýŠÜ·É¹>ËM{ÐnC’xzÓWE‹vï-FFM!°Uo-žvöýh³ { q/–qŒvÅ/ΊdŒ+Ÿnµ*Ú¡+ÂsüéË h»UäÃ÷Î(å¾áb·b>U{-®Al¤Î¦qŠ)hXxÔçjžýªGn~a¹Ïû\víUWnÆå©Å=I;I8㚖ɹmq Ú‘699 Š“÷Ÿ)tp½¹Îj¼jà.ò;g¥HÇ$2ÈXô棙ŒyÊiPO®sS+",;œJŒÁ7¬zSšÎ<¯™1 z`óG0YŽD“²@ãÏ<ÔŒ@àù¸=üf‘|´}Èu¦ˆÕ˜”2r;6)\ AÜÊF2ÌNéŸZ±Fb\;°ê@>žµ]‘‘rßÃÞ¤´„·Ïæm#‚½R“½¬…¤p¯8g¯éNVŒ/Ë$Ù<ŒžœóM’pLà8ÿ"‡Q"œ2Ü(ëMìSDÍ6ÔÈ-Œü¥qÍVviXmšT9ãäS–7ÃnhÔ*@ÒŒ‘2îÕÍ‹rwxئÎp⚨D¬Ïs)]ÙÃ3Vd`dPd`Ç®zQŒ©e`Äj#ÞL™Ë`ò‚3R0ÜÛ¼Æ!qü<Ô^S¯Íæ}H†, æmËÔ®(ææO)¾Gvb9!N×ô¦½Ó¯Ë:®0Bƒ×éŠO7’ÌÑžØÚ2i­/ÌY¥õÏ$|øÙMù{‡aŒc ò¨$'ÎÉmËŒIü{sDŒ3Ÿ1XtúÔ2ÜŸ1°®08sÙ+™Jñ"¨àóœóÅBò€ä<àã®r ‰¤W*Ô¶yÕ%¼ÑîÏ^)cd`K}jcoà8â´v˜©qrJ“ƒÓ5?‘… ZŒÁ]Á†M:  Ž@æ¡´;1òNì@*[Å1îlŽáïV°…¾ø¦€ˆû‰T6 FxòÎO^jyfa·b*³•~TŒ{R ÚÀïÈ¥ÍÐ "c¸;¨-ê*o4–/Þëš§åyŽvœT…0£{àŽù©¿`.²Æ~îr:óHbýË‘œuÆj¬eG^ )l&SúÑ \• R¿7z‘ÈŒ©XøñTšfa‰©MËð âš²Ó];m8wPò9~6¨ÇAU0ÏüX¦[LS»c,‹«ŽÝÍ1å…Á+¿&¡`ʸ4çœ=*ùWQy(NZM¸fªIäB¾fíÇÓÖY\àš’-:Y—rhJû!nTûJä0áq@™w䎂µ¢Ð§œ„Ø«·¹«ö¾Ìf ÏAZÓÃT–ÈÎ[F…ü±âOVņ•-ÃÄÚï]vvù`1ïQIs OòH=ë²(ÇZŒµ Fƒ$ý(¥—VŒ9UCE_&È«#„çš\Ÿ7©¢Šá{˜­‰‰>´)8ëE™L]ÇÔÓ£bU¹=(¢‡¡©áûŠ*$‹ÇÓec°rh¢¥nXMI8êh¢©ìJ$$úÒ±9š(©òN&¡b|ÁÉ¢Š}“3£“R[¼óEGq­ÉûŠÛÒ‡…Wfø†‹sN3ûÆúÔ¤Ÿ,óÚŠ+×E˜W®Ûæ?ròHþk|íùÑEyØ£9w7©ü袊á?ÿÙÿÛC       ÿÛC   ÿÀXÿÄ ÿÄB!1AQ"aq2‘#3B¡±R4rÁÑð$Cb‚áñ %’¢ÿÄÿÄ7!1AQ"q2að‘¡B±ÁÑáñ#3$4RÿÚ ?â+;é¡b9­ÈŽdáŦ}6£(0&³dš’¡c†È=ôórk"‚¾H°Æ#ö·òÄ£­¸¤º)xÕÙ—tTͪuæ‹¥8b.¯b„܆p+L²¥ ¢×Gë=Õ‹i}%¾œ‹ŽÜ*qÛŠˆé®9ÄšÕßY»Ôú‡S¸Ô¥f>T!xAôD±¶÷I™fŸ“S™,aÔü‰Q­H8ùé>”þ i3!¶ÒôËøJÃzÒ6?ÕW%} ¢¾M]Ö¶¶ún¢ÑL꪿5‡T¶pw%aÓp_h©ªM“lí… Á5NFKs6ÏÓsF;çËhzÛ€ŒzúÖ‰c…–(® »½ÞåE¶•i$ÓÀ`UMãév#Ä×èO ~™éX,îÔ$€‚@­Ø$”Reø•*7–ŸÔ›\¬€V›EéqF?ÔÚÒÜBZS¼/#&’I0Jcúˆ}7}Ò2èÚ”ÂÞt_á³`ýê©5µ¦Tå±Óéþ¯‹SðúH$‘'–([9õæu‘öíø=.ƒ2Ê’òhm[DYõi®xVrÇ5Â(í:lN8aÓºšÆöÜpX#ÓšhI)££æµž~¹¼†RíüV©Û\ãã"g›á£p„üÂV~tÒÂÜQõ_Oõ8ãUeý½è–ÛÁ®dðí|ŸAÒúŠËWc±ÜN@ÃàŠ¥¤Ž®=FY.ÇVúð&Ýàýê{y5Æsø04Ö¸Ó~8E‡’ÀzWoÐõrl¾ÏÿåOHz/ñ{y“X!¯XÏÏxÚòXÀÁpTÖi«ìîi¥·˜²ÁfGR@>õ™Á®ŽÜ5š©!‹k¥ÆIÅU“‘»I­Ž rm¯ “Nê¬N¼¼[Ôí”6Þ}«Îú–ŽŸƒè:/ÄpǦ÷5*;3¤ºš×  µé[KãRb@ÜÛ=ÏÚ¶úf½âkhò߉½;7®aŸ©,{hÕ^.ôì±uÔ:¸ uØíšïÏ#ºgƒô¬‘ÇpòXôµªÇ ƒïV¶’àédš“äÚZ\ aQTÚ1·.­T¦6~•FFŒ³2~ÒËM¨?JÛ¦‚£›–|™lÈ–¶Øcé](ðŽ|åf¬j–‰qµŠçïVFH¥Ä&ŸwgÕ^ šåzVk‚’'ëŠô;Ù×®ý :뫺jbÚ]Ôl’d3°Î*Œº™E¡¼œ£qÖM¨_µÍÕó³±äûUSwËdZtß!âꞦ´Röº´ÑçЮ\]XÏN»C/§êÝsÖöÖ—÷rÌ¥·HÌsòŽôºŒ´©vΦi!<ßWK“uõ-”v|z}”~\Q.ÕU®v§"Æ”b{í;„ ÓF+§Ù¼×H¥‡Ö°ÃWÍ6qõº|IÜbg:*Åj $*õÅt1ê”Qå5‘WeԚѵÝZºä»g)1?®Þ|¶›+÷­˜õñ—LÕ|—+¯É«!UrGÒ´{Ö¸58$Š g¤Î¡ ¹RIª2Iу:O.Š·¼éަ6ò¼k8ØTœ€}+ƒ­›}ƒÓu?Ã妸6x[Õôïqieå[?+$§bàÖLŸ¨ÏùW²–»U·ýÏáwKè6¿Uõe¤­Ÿ.ŠßBÛÎY”ÿú2òÇfáé º÷AŽÖËãõ(ÂlüU‡Üâºx=3 ]¶Vòê·HâÚc¢lúÅÑq¤iðXiú‚Rf߆ÏÌHôî(jtу¨ªG¢ôý\£-Í¿&­°Õ¼¢oʹ9´Ö{_LõÏn“fQc©$ª5ÈÍÄú¦ú´2¤Ó2}#OÔ5V eg$çÿHâ°Ën‘Þ^·£ÁÿÛ"G½WÒÚ¦…4:žŸ,*è@.¼=êí;– ‘“à«Ôòh½gÓòâÃ5+LæÉã0ÝË*ÅC_E„·E3ñž§Úx߆×ô ÛX ñI8Ù~›;‹H~9Aç5žQ;8³ß!ÒE-ΪÜM˜òžL£B¼ó#£e9N®N³äÓ=÷áý^85¹pnž‹êC«ks<òHèà†fÉÅpñ¯nT}~Xqkt2Å$š£vunªuËk<€ÈpÀæ»qÖïJÏË>«¢—¥ëg†_¨Î…DQŒbºxò©£*Õ#aér"ÂïVml2Ô*쳑âdЦxÚ2ËPŸf å¼6£g¿M%G?,¹ê²°y ªR{Ö¬“QVU¹:G0uW‰³Ë«ºÚn*¾k…›ÕªUµ‡Ó.7 ÚŠ’Û²¥ÙdêÎEjÓzÄ_à¯?¥¸ó<´ë‹mNÔœ6~µÚަ3£— ƒ¦k¯uèìô»‹µ`6‚k.\´ìÎѦ4Æ•)þ9ÊzSÿ’4cÄ侑…é¥ùuàýÕ͓4¼e8 òS&Özn2?–?Jë Zä2tÌyâ:ëÈ]#!èîXúëI” Ê\£Ž=ŽjÌS{ã_%¸csVt‡‰ž*]èZZÛ< ê# ý+ÔOZáI£¾´›•¦q/ŒþÔ[< nƒÜÒ²´¨É=>Çvi;o8x"´dÚÚìa¥–FRO ©E.A)¶tg„]Ó]¹S®ØV'7ÎY#¥‚kTWžË nÝç¸o—,x®N§;|í.¥8Ð=;AØ›¶óéÅaV™uY­º.­4‡28ûU¾óGSLrï§ÄÑd¦M+›g\HÆ.útÇ6à„`÷­ZdÛà¿jfkÒºtBUaÞ½NŸ˜š[6 ¶’³DQŠlòrVÜtÄrkvçåø€‡#8®&x9eŠýLð‚sV5ÕW]auª¥œýJM„ *Û@"Ãë“]عÝnUúCÁ‹G ¬owÏ Ö¥£M- [”sÝ£¶.ÇÿsSÍ~èË)Årß÷ÿCbxs¥j3Á´‘LÀ3s6ÿÕjÜvø2åÕá‡Rþ…_íaáuœþIÔ÷Rà ΘÁãCø³ÆÒÝñÍ&§ ÁËàÑ õÏ/µ]þ§çðPƒ~á÷®KwÁèÔûÓuÒ™?–ozϨÁq㱡ëYaôãtnßúò+k¨âP+Šá,.š*žWŸ™;gJéÑiÒ2éwÐÇ#I ØäVøFˆí’IêzŸLËîa“GçÏŠý}Ðþ(ê:5äl«¼É€è{ô^%Úàò^¹%—W,ñT§Ïóòa â¶QÈN†b•s†5T¢nÁtÆã6ý}ê‰ACÁÖ†Ú=¢_ïUaõC¶Y,Ö»0n¾ë+›Í9âG8ç<Òj½KÜ[bkÑäJVÎq×:”Úßí€ rqã–Whõ«:ÙboÕ«$`,ûÕë Ó+žu\—Du.é‚ ›Ù®¶—+ŒvœM[Rv}⮲ïÒ“,rG5~L—HãäUÊ9r9I»ÜÙ95Ó”~ž zyT‘ÚbÝÆ9¯TqŸ*¬¶N>Z„ª¶Ñã~”–È8Ûý¨ TdÝ5¡j?¾-oVÂq¶ï0¡ úÖ­>Ÿ#’š‹¯š5ic)d\pc>=u2YCåÍ—b8Åtg•Ê{|žµáKœªjë{<„_½tðéÜ)³‹šäø)£¹(0¬?ZÙ,i™m® ËÞ›¹êž±·¶Š2ц ä±ꯌqí‘I'g]Ma–™ Œ „‰B€>•Ï×=‘Úˆ²Û䪛LW”;-qÿSvS\1»{$â“m°åϸ²‚Ù~KF,™,°XÇ·mF„¯ô´xX„æº:Юë‘mE­öÃÆN+½¥Ÿ‚ÈÈØšknQZò® %ŸÃ3ÞÛ4J7‰õ®f\ork»*o›7ÇMi³iq ÍØ2ûFkÐÆ<%–uÙ‚êÝc1ròJyì>Ôû*•¾ØçFi6zf¨aHÁ>íÍK $d~+tÔ]_àPôû o‰²‘Tc³m8þõ\•Ü_“F HÍx?"´í Inç¶½V_b ymV£Útc-CÉ‹‘ûθ·‹Ì‹'×Y1ú‚n¤4tÜwÈ•´:†™8••Ó½[9ãÌ©.PtΉðWÄ‹U·µºŸiȚÅËZ}gQË;6ïŒ^ ôÏŠš4:œèRú4>]ÄGdzôú%?¹æµi¸Óð~~uï@ë}ÔÒéZ¬-°åNË"×BIÅíg*XšŽõÑ‹ŠV"àjÞAøHªg£¥Êºh}æÜ1YÛ;áÍ¢ÿD»{{¤*ÄðA®v«èžÏÐu¯Eg[x#Óú–…wu©âár›ŽHÀ⸺lqÉ)YØüEøžRpÅý+¿ÔoKºšÓ_¾éëÞ'¶s³?Ô‡µ`Øñäpg‰ümèXç§ÇêšUÄ»û—¾Yö5m,ûòÏ·46·Øoà‰ŸÂj$-ú帱q·¸â™#F,›YÎýoÑúƤ~räûéhu jÎ’×É*Óz*ý >b1#ÜV÷/qÙ©¾ ‡¦4é´íQĨàj%µŠò6©žõýÊÍÓó¦sòL¹’©FVšàç¬âLýk¿àxºäî@£=¸¯rÂ$«†Î2(Y<ØTQšN¹àßCÙk—ÓëZ´aímmÈf¦»ž¡Ži<™¤jÒáS¡—ë:¬šä³þíX­ôÛF(6\Šëë5 'ŽQMI/'3x¯Òw:°»ÕqšòÓSݹX%%´ãU£]Rè(ÜBâ½F™7Ž' U(©È¨ ÷­‡1£°¿g.†:GA·Q_G‹›Þc 9 éXkt¥—ù#çnѳocÌnjןÖä¹Pªvᕇ"¹éœÛ –à`cŠ…¯5ŒÇ_é¨Ù\§C£¨¦g“²N…£+ŒŠÑ‹%1WÁC4M ²šë`ËÊ$]>LßJ˜Qô®âú¢hLËt4ë¶Q°Îf_óYœ~¤Ù¼ïeÚ«ôZëÄÚP\ÀònÚ¤æ˜ CKÓo"Ö¼öL'Öˆ ùbY¬&ÁWR¦ª— sòóÆnƒÔú#ÅýnHmɱ–í¥FQ†9Ç÷¯ê[}ùAoNÖ«ØûF1g©K4‘ÄÑ—ÉÀ®,¡³“Ó©îTlÛ>„‡^ÑÕV%uàWâÇ,m&XE}F'¨x[Ô/¬%Õ¶è¾l®;Vì¸2Å%2œ:˜Mµo‰ñU²²·Ñuä`쫞ÄUø5o Žâœúu•:ñ7í'Ä^˜{{ÈN´SÊŸ|׬œ–\iž?Þ– ¸x8#­:'Y认›LÔ­ßj·ðåÇ=ë$2¦ö¾Ðén[¢¸1ÅrNãcÃ#ƒŽìíþõD±\:×E–Ÿuå^G#óƒYsãÝ‘ÑŪ•öu‚dDðÛ—Àãƒ^Z à͵›²ì†æfÞ.i³éK¦õŽŸylDWGu>¦›Ô1p²£ÖþÍ‹_ Íéš‹_t[Ú°¹±Žqƒ½A¬ð{•ŸÖàö3OÃ&c>ß•33ò†9¨ ù"ð#!V TQÞtå­ÔÛÙóÐtíØ'éÛH"'ËR1í]9~M•¨ÐÅμÑÁ\ý+|_¸é9$QøÐÏÓ“É ,NÂ{VßáeÚM³•¿wNº¡´•_k9¶Yš±-í#·‘8ƒŸZð‡wË8¨˜)†X¹ÿâ§Ø(ß~™“Â]A`‡…{CÿúçSÓä“F-ЗˆÚDÚKOæI®$$÷9¬µ’XßÉê2K{÷ AûEõŒGNI¢Ú:‡|ïÅfÉ óXѪlÙÃWR™îžCês^“vÅ#Ëgžù¶]ôN‹þÑuÞ™¤•šu >™æªÔIÆyãú”Éý'èµ®“ÓÖº|8bU v^v¡ ¨Ã. yã ;}+Éç{¦ÙMT4‰d‚ R ±€{T¥A·Û ±ý¨‘þ¡`úS&K½±¥…nÃV‹2` {ŠôZiÜy,‹àÎúb^§²oi«RúÑtW&àº>eæ=…tQ°òæk{K&‘±*Ä„lÃQ‰o„Q#žõfÒ½×ÑšhڃɤŠFGz®q±Ó~MãGIÚj=Q2ÝB¯ÒnŽÄWõ¼û”¾Lò“Ç’ÑÍ×]NkLM¿™9FÆx¯7(J3äöÞ—ê Q ²ìÚ»¦öÃbâ»Þ݉®*>ñS·šÑž]Šc< ëjef +”%e6§[u-…¬à…–"eï\Œ˜ÖN“‡&ϵ¶uÓb]Ù*6šîèr?ocðy_VÅ·&õäÕž1ø{iÕ=3$¢Ù ÔCr¶Þk™ê9%ëhÏ£Ô¬r©tÎ(꾑¸Ò7ʱ0ØØu#µ]éÞ¤³=’ìêjtÉÃÜÇш«#ÙjÎ|&âø,í&PW5“$ÙÓåN‘µ<<êeÓuXJÉ·gšózý;Œ·¬•§iÕžËnÛep™¼Ð„Ö\.,¿I•éµ h­Ñ×C†9ƒiü«Ž4«àð¾µOW7,hÍ3g+¢%F=èý‰ ~‡=‚ìp;Ô%‚”õdrPT«ý/£¤úá >•ØôÇ¿%fÉÕzBÞãAmñ)=«ÕcŠ4%Áž!øo§^››x6‡rHŽõŸ.¸8æá+FÓò¸ÈüëÀ®x9ÎÆ†=èí Ž9 âΚðÎÂ?ÿPÇÀi•‰üëÜzL4ÑýN†™íVsÍî­áï‹ÕÉsô°ØçÒ¹:üRèy<3ÙC&<øbãÚìå_ú¾ÿ]ë;¸®°®xÏ¥]éØ77š]œÿQÕÒö¢kEFs…’põ®»ivpßVu¯ìÍà•̽wÔp›oþþ£õª+ÝjO¥×êS+lèÍ]‚)ÇjîE™§f0f‰÷¯1'lªø>2Œö¤±o“á Î8¨ùDâÃÆù<ö¢W# ã=¨„˜qš(Ÿb@‡8 UØK’vYi%#œ #šôIñCÁ†“@´ÀÐu@ÜÈy£5ÈÍ™gE2ó‘ë]ïF\± Í¡v‘è’gÛ^·MžpꙬnú£i!»Q’æÊݘ”w¼žkælÆ» ·ÀŒfØ6«‹}Žr*uÀ/ÉÒžuL'ÃKtÞ»¢]¤}«Ûú\ԴѯG–ÓFþÑ:æ—6ûÑc»€ä0ïGYäÇR7iõ¾Çoƒ†:‚öms_’ìFw9ÇÞªÒÅaÇM”gÕG#ÞͽàÏ…Q]êpkE-ЇHÜpÇÒ¦ç™ßøÌ̧¿ŸbůZYéqÚZìHÑ@U^¦Níª(µMed‰ˆa\-tí3&IQ@/òx?Þ¼ý”ß<ü~G~h2]ðMosëQ21¨ïÅ7]Œ˜_Žrjn%³Á©õ ;€ä‚® âŒ]pÝ󛬎õÜÑÉð[lÊ ºQ\àr+®ú³B7gHêsk=3æÉÀ£ûâ¶`žåf¹%µ49}û"=Æ+Sä¤Àîâ·ÁWѪÈ.(I §[}²sŠY>‰®¼oc½Óv±¯5ë¯èŠ(ÔK”+vÏ"§ô¯1¹”[] Y_G%‰’1ÿSjÙ‡*鞃ÒsK%b\¶hOzÒÞëU–ÛM>s'Ê\<²{’¯Ò4_†²,^æ_> ¥ºß¨´iž;[ ¡ Š™` ®_Ó=O›&̱6Kx£ÔÑu¡¹¼ß\zÁüVLrRO£Öëzv}ETªÓ:#QÕ¢¹Ó–PpCW£ÖdSÅ'åý^™âË,oÃ1“t®8#±æ›FÃ5/ŠÞØõ>ž×ÖQ„¸A»Þ¬Óê§¥žøuðoÒji¨Ë£“µ6MV{9”‡Cƒ‘^ÇKj1©£©›f&œŽZ^Å6˜ðIŒãŒÕpÊ3RGC¦1S2 õ ËO`Ž×$3|Øö¬ž·Ž/›ípë^ Éù;B Çkdg8;FkÌ©3ÏfËîMÈ‘»Ï±GqU¾µàÎI476 ®ÔŽMFÁ`^ásÃÓÁt;g4ù ø3^‚&k¶pI«Ñz{e‘ìκžwƒA‚GÉ^¾ ƒKtŽMÖµKŸöÆF‘¼Öl¹6[*”ü#ëúWÍí¢•dÑÜ94[ ¸“Äw'.M›·Áý.ÿQèRæ2ÛP°@{Šõ^…'íÉ>¬Õ§W”h-[RýìúdìC£œ­t3;š‹+›‹š‹1?º*^¹ñ_OÑî#- 8y;(ª2ÅdÉkÉ&£)¨£®XÂÌØ<ñŠkðJ´DÎû»Ô'žk“ÜŠG#VîÍ Éâš5dŠòZÚoŽíZëé§´¶*™”¥Ë˜òk«,ü §áF¾Ïos¤LÀíùÐ}+F‹QºâÇÇ/ǺŒ=ÕØ‹´?F»×AM@Ç5dJäfý(Ìl×>Ô³èh—Çk£þÔÙÀb'û×”õùs™õ äj_9³É¯4¤Rù*º‚núzæe13!åx42Kéáž“ð¶xâõ n}Yͺ²Dî„ÀI÷«ðͳôþ¿58.ÑŽ©{{ÐÁOzé´§ÅÂRÓçM#.ÒåìÁJâçI:>•éRy`·tÍË£õ“Þh‘Û³æhÔ)ÉäÕðÖ·Û—ƒâÿŽ¿ÿ ¨–«ú$\YêNã'γîmŸ(ÔècÈN%Œ†çÜQ93÷“Mx•àúu5éÔt¹ýG½nÐú„ôª¸Œµªf ¥ø¬<‡ã®Â]¼Vüž½)qR=L×å6WDxY¦tÇÅ–Ïþ£É®V«Y—Rï#ëÁCœ¤í³d‰ÈŠÊ—”@Ü·85/кaž{Ðm_"ò‘ˆlþ!Í;"n½DÉwÂ×'w'ÒšÂ×<›wÃ+|ië+Ž[šõþ‹Ç²ìq2^¶™S@•sÜb½$xE³9’÷NY5™gÚ;šäëdÒ3nò*ë0´Â¯&¼&ÖË ØjV:„í´¡ØpGµG»#M—šn—>§ªÛØZ®é¦F {ž(¨95ä‘¶évuæ¥iÞt-ž‹_1£Ì‡ÕŽ2Oë^ÛG`Æ Øà¢¨à/Ú]lîüC7Ö¤ ù >µV¢wêúdšò_þË:†ÓýI6§tëñ-ò¨>‚Ž­îLšZ·#kxµ¬ž¯êdhÎcp+‘êúÍù6Eð‹sJÝ#¶ÑŒL88®;Êú)çÉo Ÿ–½VäÙ:C nrF +V –§ÔP ËmÚW"Ñ?‡$ÿÒ¡)³ß„È÷£ÙE®3šô&×ä4Qm Ô\0–6ò 5j†]¡M­è €õsÕñHtÌ›ÃÍa¬üC².q­å·>ý«W¦êþBOÈc*’:béZŒv"½œ LÖ}R»5P]™™·I&4ä8ô¤ŸCÄÑþ5ÍçxŠS<$@WõùíŠý ù1­J ס;ెÔò6‘I7Á·Òæ±ê±¿ÕñÕ¤zÅÜc ¬ÁÙúúsŽM9~ˆÂ./à†}¨žkûãŠìC ¤­ðxmW©aÓlæ\i—Ê¡‹°ê!ðzŸGÕfÊ“n—Á“izƒY_G0$€pßQ\ùGÉÛõ-=CK-<üÿ™·tÒ³ÚG ~tmDŒjòΑ Ë3'&¢ˆt'Eé¯g£D9 +è:,^Þ4‹ñÇ‚³Ä ™ÓÊ_Q]JfÍ3s„ÞÄ ×Ô2¥f”¨§kdžŠEù[‚+Ç–YU¦t­¶“{-űmÒœÕrs•Y*ú77ƒLsuÂê·H>É ³7`ÕÓôœ;ó&üaVËÏ|Gµ¼×>6Îä [u(Ø=ëÒKQ¶i#r«8‡Åî¯ÓõÞ¡cfÛŠ“’(É,ŽÑ‡,¥ö2¿t&¹’ëZºfTA¶0Ozçêr¬m´,aµ¹Y¹Þ2ó äšóS““¶%¦Ma• %¯$ÄCâ§=“Šà2 gš‰>Â¥à:§®(¤G#Ò v¡ä £ÑlÐaR$æ¢D²[~”(‰ª€/à–L ÛÀ?­J Ú‹ÏjnÊg´¿†å?n±«qMÂJKÁ:ãG¾MS¥-/£l‰"ûWÑ0ÍN*KɲÒfÕpÕQ°qZbÅ’äÍzj-šDg”™ñ9ßÅ ~'Ä›öï´…û`Wˆõ§»RרÉ7Ë0³Ç¸î"ÁLc½ ¥¸ç²I¯ÁïRÁ~I¨!ûÔ@nˆâ‹kÈÖÙï”Þµ䘅˜{XÈ …ÆjmE„÷Å‚E€>•DoÉ!Ýš;A!D8CdÂqQŒÎ‰ðŽöK¿ż„“ ”oJö¾‘“~ž7àцè²×l$žò"±ô×Lµ™.™ ƒL F0µ\…trÿX¹¸ë}JPs™xSw¨“07Ë¢„Ä@ÉÅsÚ¿ ™@µ#tGÙƒø‘ÓçWéÆšÝ4?0új¦od”ϤãÏ^Z=OðÙ_Ó>}’Çc–ôÁ­ë5ð¹OÓÒúßBë-µ´û°3V8ÎhÅØ4Ó¿%µìrœdb²dÂâz-¨C/[Ò¦Ë©íœ‘ÎÆüën¯àOľŸ¥æÄÕñkùŸ9^iÔ¯“ñ–x´: |hyíœRÈžxÐzÑ䎈ôÈ"ÂqÈ “@ix$±œãTh:Fx¢AûòÎ; ud} Ž0*0Ù0(×À,–8äP²?ÔðñŽÕÙê°”wpù$e"£’ ž €4»¼“u àl{ú.æSØÎGö¯]è®´ÿÌצv™³YÌ(®ÅšÉÌ€Z¾?ÒiwSäVsî·áoT\Þ^jvÂÚPò3ˆ•Îìgí^[UéùrNY#Éà—fµ¿†òÂîKKËy!™`ŠâdRÆöÉrPÛ\1v=…PæÄ°+Ë#¦TŒb’ø¡ðæ–)©Ç´hÿ:m´‰Íý´x‚SÎ;)«4“©ì‘ú?ð·âˆú¯§{Sû k+[Q©4°«0Aï]|™}”¤ú+Ôåsé: ¥ºùÑê& €¸äš£W‘ºpVú¹ðâknO£>ééº~I¿0 ±=ë$㯪Î<åøãP§F*.ÿ¡·í]gµŽxNQ€ ŠÊÜÃÑð¿WÒêtš©ãÕ*ŸÅ Bßg/†KËob(§ð50±íš”+wÑ÷ÃñœNƒ@Ì=-ì‡Ã½ªQ+‚n@ã?j¸à]á8íB¾&Yáô‰m¯ÿ)Œ×cÒ¤”Ë17|)£ëQ‹Eùâ½Tr¦Ž„XÕÏP[ü3®ñJó"Ë47‰O ò1ã$WÔ¤¤­™óSFª6¬Í‘úW!BÌ~BÇnÃŒŠmƒmø6ßJínub>_Jîzwÿ>Mø)¨œw5‹6¢Y†?³³¤ôØ<~ö¡Ò}/“è?Úc¨®míîõ3Ijzs^mzÎLYvLåê#Iûnѵú£QÒõÏϬú?¤æY"™¾:oŽédŒòÐü¦²Å4ÜWÜü÷ÿ˜=øoQZ˜®&Œ¹,ÆËÍ^“£ãµÈO€Èü?Ú¦ÆM¤M˜ü½¨lÐFÙsŒ`ÓU¾z©¦&ÓÆ¶]¿‡>ô°× ÍáE#¿€4&`ÉåIjŠÊÚA­Ä–s¬ÐåY~•d'(=Ñ%S2›~¸¾‚Ø"«nÆ3]%êRK•ÉrÊÒ>oxA2)4«ÔŸ”Yï3Õõ§Ô db³gÔ¼‚K-¢„ËñGzEmÓ<¡?‹>”¾êD»\ÇJj¨4©lZLzó]?Oο)¯O.(åµk…ëiV7áWjœ×V NT_9W&+àïMͨõ8Ô%Œ²!Éb=kªj”jÇî+ûSªÂ¨àWYäGmòMO=ûR©þ¢‘•€^ +ȈA'99úÐYQXe—'¾êìkä2±àÑY(?a”bG'g¹cuÙ-ºªy,P©°7+=òÖ™²$ü’H ašTÁV4–ão4Û¨e- è(”cOÀbn燨:ÓGY6¢>f÷çí=7"––)°>üZêɺgÂhhóÃiq  .v‚@¤ÕæÙµoOŒež.jÒ?-úëU²Ôz¾×UmAîneM÷EÆ“ØU8c»Ú»6z‡©åÍ‘Áñ—ZN½¨%“Am‚é¹2ãšájôRRÈs3hå‚7wgT~Ïf/¬Gº³0¿“üFÝæ´i%xbìÉZèÏn-‚ÝHªV,‘ú_À5‡œ J!ôñÆ(Ð aâ—@'Pi ¨YÆä ‘ø‡µQ&ñËzþgÑÿþ"Ž‹/ð™ÿ$Že¹µx.)†S‚¥t1äÜ­gͧQv¹LbÂìA(LÕY±nVt½3\°Ëa»|"Õ‘ï¦ÓÝÀ.7.M`ª’<÷þWÑÿéqÔÅsrŠšÒ£Áù}ª ƒŽÅ0i‹ÍŸCA¤Ø¡V/Û4©!Cm¼Å=ß@Ü61Qþ Wb®¥Ž1ùÒ°´™ò@ óE ¯n4΃·G¶*ÄqU¸¡ihsR‰V'q/lIDGœÇ¸wÆ*›mþ‡‚5Sîi_Àð5ïnA‰Š“õ¦ŽWqcF[jŒª¼?´êmSâîß'99«V»<]Å‹’N~Kþéý;¦ôñog ƒŽMQ,²mÊnØ©íà¿IX‚qH²Xû™5,Íœ~”»¯ ñÀýi_<¾­‘Û“A&ùDrÚË“N±¶¬hÄlZsV(ä"Á´r(ÕvK/œf‘¢ ¢ßôÏJ®8|,LN@4ªÁßA'õÍ@«lÌ}i”•“Ž;Lâè_ƒ5ðçY—E×ùS `û×cÒsËÜá—àmJŠt7뾓F·¸[gçÌ=‡­tõÞi*ðw};_ü_r¬à~†ýž|BñGÅ-S¦:jk}6R·º´û–ÚÜgÔ€K1ôP ?nk±†kb¤aÔç÷29.lèM#öꨤ¸¹mnKdÌ2_Êc,xŽ0Æ5ÿ‰³ôl¡ *’3Ktû9ßMñ‹TéBú+ Úlðæ €V]ÊH,ÅÁ,8Õ—ÿÌÓnÜ£LhÉ¥i#¤?gM3ö†ñ‹£¯zÚÓª:eôË{§³[MZÝÕ®$UV8h—å8çžsÅfÔz>‘ú×ò#ŠrtŽÓ|6ê[þóoôçÒõ¨Gñ¬žE–Hþ¨e^àû0Ü ä¿FÊ¢Õý_Ùÿ·ØIb¾ba÷óÛÜÉmp±±WF*Gpk‘(¸Úe xÈ6FR0E+‹}Žn-I×ãG¶‹­6­i-®[…jšW²^ÛþGß?þ"^££þ#úáרÒí4‚ô<æ»j o&Ùj&³¥ɰº#UŸKê+Ýø à7Ø×V«˜žß&ú‡¦äÓäò¿¹Õ°¹¸´ŽxÈ!ÔÒÆNQGä}~™éµÄü6H$˜#4ɳL÷Ὺ!ÙàÛ8ƒMmòœw47H †Þ¦=‡h9-X.sAßDÛÀ-Бº–Ø6ø=&Lc577ÀÝr/+0ln©¹ùü!y$*¸8Í ì ×3]ã4#èW/“S0 ¬¯#EI·äôMsœ<Ðy$Ár¡›v¶9¡î™#~C»0;sÅ&Ù5 ~Õ}¢'à&öãkäŽ^FW<Þ>L2¹ÀàçÚ™[%Œ¤„Wõ¦m¡“øCQÊvv残 “YŸÓÚƒ#“C!Y×8?j‰6N{±¸äŠJaNÓš)îxïÿæ‡èA¤äQ\ düñž)”ˆæ|·AOcCܧÉ7†`¯j+"òÓ¥ÝnzºÎ3°¿8õ­:))fŠäl~¡é7ê ^=;Kp ƒæb2"_V5ìqàRwà×7á¤úKDèžšEÐíC$pi¤oÄì}IÿãÒ¶(¨ªH1Šˆö­sðÚõÉÆ"·‘Î~ŠM ?´Ž”·êK=SV—Z¶³’7y/ý\“ZmYL²ìàý ÿñþóŸÙ ¬ŒWYºÿÈÿçšF‡ƒåþü#ªPäT£Å?u GPN«éÖ/r‰åÞØ–ùgAÙ×ÙÇ÷û ãk})j&òEÓkû•f…«]š|N&H5ågŽNᣘÿVèõ'M\iÓ&K©ÛŸCYò_qíEõLžŸ©Žh3‘õ“¼Ðz†âÖú6+;zéÇ\²ãI¡}K]ãq»ÝýŒÓÃÞ€ê~¹ÖFŸÓö-.ÓóÌÜFŸsG‡.­Ö5ÇÉèu?ˆt^‰ ÕÏŸ…ÙÖšo…½kÒýïqÑ…~c$ù÷«²úm>7$í|žÿk=?ÔµrÕh“øeYm½üë•~iqœqEH;¸÷+œW? Ýbíp¹Í&ñoɉ#°¨¤ØÛ9.œ`ÐrlVÝÑ4Êš)²) SLàQlŽ^eœç$Ò9p#“g‘ó…4»›`·ÒŠ@wà Xc)ýª”“d†ýã JÓºB¹2~\êù œÔ’¦ ™ÁlQØÛ'-Z°ÎS;M­r l"[ÌÈ[‚M…¦Æ!ŠSÃÕ#|…&1åH¬2iÝÇ”2Lec;@ æ:*ÄøíÅGd¡¸-Û¾)£Û¯ÔFsV®¨”ÏDsü9©)…§g¦){~ÔT]¹=KWcó-/¶Ù6·à8µm‡Õ‹¡¶º pÜŒ ©Å¡hõ¡cÚ‹‹ЉaED•ò9a+éÚœ7±w³WaoÔ×ãô»GHtU¼£¦ãÔ®,÷ÀMŒ`ªòӟξƒò'òm<™ .îÕkC”=]q §Ak“ܫܻgéìq¨t­ÿìÍmwÒ:LºU”š„åìä”ɲO—vúv¢Ý æÎ†AÆsßšˆ‘<íÆsBÂr×VôýÇIø»ªhÓ?™c©ªiòmÆÐ͉bÿÚijŠó^·§Jk2óßÜÃ8m«D¡rk€ê…0¬ðäõßWéV|{&’OãJáÖ¬ôí#ÔêTcדèß„?äô}>X>mp¿Sªz ´~ƒÐ`Ó4»(¢ Ü꼓îkÞcpÅÿ«áw_¬Í®Èóç•É™1Ý#ÂåYÁZ±Í5Læ?ƒŸzë§.t¡™–låbѸ¥x¯SÒ¼9¢¾–aÉbM!'h˲´üx$`X €kà·“~Hâ•AöŦ{å Xšé†‚3Ç?jtÓ%p/,ci#9J pJ¾DÊs’3H˜«³Ù¡^BãíRIvø éíU§À¬ÆÌr8Zd«1ÆœyM š­7D½ÜXuF›6¢mr<ÀyªÔÚj×ìÚ­™_Z*â´ÍÅr&ôxÚ„ À!}©7¥ÂÍCsF8ZtÕ šò2n XÆþÕ7*rAax÷°ö¦‹Wd°³MnîÆ{Ó6™•ðM%„¸…¥Ã%¡±,"00>ôm!”‘!mà…©î$¹ä‚G¨ÛmÎ4rG°ïˆs«YÆŸ6ÑFY≽y 5›2ÙM¨ˆ7¢CV·fÊàUÄE“z<:ÌY ÁϵâUÒ¸Aï÷¨àÒ<°Jm‚mÄeA«!lŠ_#,À¯` YAl³éÛ!ªu%ŽœØÛ<êöÏ?Ú´i±û™c–4mðtô{c €ª  ¯v¸àÞy$áW‹d0õë'Ân¦½¿b¶‹KºiXú/”ßõÇçUݱ'ÓGâAïÇj¸sôÓöÕôûÙ² hnËȺɚ#ÿ–ù^?5(:®R©.:ÎßQŽ`6œ~u‡C¢L¨ ѰšÿÅ®›:Æe­Û„L!'»Bëµ×õßûkŸê˜½Í;¯”æV¯àÒ³J1‚kÆÉ®¬ÊÙqÒ7–Ö}WËÌ‘çÆµúv¡`˺/²ü[Õôo½D¹´‘þ LÕê4Ss”›;‰F–Ó ñ;Äî˜ðŸ§WÕî”r19fû ³>uŽ«“¦¢­˜gLþÓ~ø‰"èï1Y%\bâ< Ÿ©¡ïcȶÍv6RÔ'²7F%Õ·‹Ô/ ¥ìr[ÈwEƒ“ö¯'¯Ã >V£Ñƒ*PtÄcÔ¡xÄ‹ÊšÈæŸ"ïòFMRdJó/¼ž@6¥“ùRo‰=ÕÙÞQ•<€(,‘ºô-> Ú–YRñ3©¡8_ʪþ">÷/²:ªªŽþ´²Ïà2È…Æ£y4Þê\17¯$SPûWõ¨³«¤G’ŒN[-CÉhQ€Èäf‹ƒü±aQ’f2º=µ®¦×fdYA;†qB¥$¢^æÔ9/mîâ&7VÐ’¦eÚß%Í„ÒD¾`Ç5lqp‚¡àtÁqÙä}*Åác] |,ÇnヌДe t±¶EE‘Z& €¡°=ù¥iß!Ø6Ž‚2Ìà0iÔS\†¼ŒZ=IyÀ÷¦„/±¢›ìƒÛÃ#|¯œœqBX¢Àà[6X†Ð=ù4²ÃÇp¡)-ã|«JçT¼ ¹en!`Ób ¸Î úšhé’DP ðÁ$,À}é–àu„µ‰e¸'èi£‰&M£ , Mâ­ú#TÆÑÒüÅ Z2Éò‡Q¥aþ"@*ë“Cß‹èžKÞ—»]k¤ÜyŠn£Ýö-ƒþkV“2Žh?Õ:UÜùÁF;dšö×ɸ§Öõ!¦i³^Ýb8"RÌå€ VØ£„ÿhïôß5=7ÁŽŽÕ£#X¼ŠOPFÊGàDJ}I<Ÿ¶=k.»Uü“&©«Ú›¯°1CÝšŠòj|0éÏ ü<Ó é¯%žB—z”™vöÉÏé^ ðâ-W¬ërKW“jJãÅÿÑÕÖéᆠE2£öhñ¦? º¾ãJÖfhôMM•š\ñm0á\ÿé •oÈúWÒòÆÕ£‘4ûGé/Jõl:ö—£¥¸¹·ed‰ƒ©ûYâÛvgÐߺZ$’2ŒsÊz»¡¬¢ñ3¨“Gðù¶mi/å[5R{ï'òŸÊ²zŽ_oO&þÅy¥¶'>^‰V,‡¼&^92Ip*“2/ÌüÒŪå‰Â6‡Nu¤Z‡’jSqlŸa^¿Ó³%Hèá›pV~oxåâÞµâ__]êSÞ?ÀÅ1ŽÞÜžƒßÐÓãÞ÷Írÿ±¦zH¼++|³XÚkz•ޤ—Öw/ ËØ¡À­2ÓÂQÚÐty礖ìNŽ´ð›U—]é }G[ŽInÇg‘²÷¯êÍCPãw]}VIåÜ•Y´Íü·ÛÏy)QÌM1/ÞHóyÒN ªÜéÐŽ|žÉ2ÅøŽAìh«O’>¼èš5Ãr}3V¨pEO¢w"!kùlfŒ±&¨f’@,J¿â>õ^2\0C‘—³†TÞHàÖ¯á¢Õ“eò+-­¿tæ©–(ßq¾^ÒÙ`ÆáÞ¬öà•‡bFi«Å<Id‘d<(Âvü&¬©»µÓ®ïÄ‚I7ÃŒ±E6˜\Ü•vëeovE»ÈW?zyÆ.t™ü±ÇêDŽ&GÞ¤p K’‹äâ˜Í¾¯,±®KêH«¡û r0M®Þ,¦FãØªòÉÆTOqøÝMw™¡ ¡ îu ÆwÃk®Çs3?OJ*QºdS´™åÖ£ ’¯žþ¼Ò¹AºL"dâÔîÕdO0ó†£)(ÂÁ½®G Õ®!µÃ£rߊ‚œRä++]žÜë·èÂ$F;àÕYsS¤G•Q¨\³¸‘A=½ê¥)OêäÕŒÜütƒËÞIïÞ´IÔm “D`¹e·2K,‘œóœŠ×’)RÓõžIÏf>„“CK¾GŒy$)*ªÈY9Í,¸tM·ڦ¦ˆ"´Bà›ÕY%$›Š'¼ÒiKÛæ„Ë .G ñUÆR”wAïcÖÚ¶ “Å,eã™8Éõо’k°¬’/¼Eý»4^Œ·—F¶èRã¨Ñ8¹‘#·'oã $lWÑtz…ªÆ²DèâÌò.É1xùâ?Š:™«]k÷6zlèö×zmŒ†8RubyÇ$4l„gÙ½«lRºc(Ûj\š> n!»Ž{g‘'FŒ„îV‚>´gÊ.2V™uíäÛzgý}ž¶šÞœ5›P0Æâ ©Æ xÝGàßO”÷éåí¿Ñš#êêM1 G©<,ê?›Sé{íéÍ5‹¿}¾µ~ ¬høÅ™dĿܞæ÷û ô÷Zë>Ü-χ>,\AÂÊéúà¡ÊŸÐWO¯U.5vŸÌZeÅâÍíп·–¥¦²ØõÿKǨF>G¼ÒäÚXv'cpZéÆ «)q’ýMŸ­~Ñz?‹=;§ÚôfŸ©E¦ØHdžkôòM´¨ç˜“õæ¿jj+Oç³§#½•ч^õ…ÔNd“=ñ^Fr¾3Jm:+Ÿ­§LÌÖó”ôwªö:»%µÏ®ë-oSðâ÷KÓ#š7™ {×kC¯X«ü¥ðÔl‹Lå‹Î‹êf½(ºTÅ€äûׯÅêºUfuu:Ü2Û³à³Ñ¼<Öšîo´§hCêO¥gÏëx‘—»È·+‰Ò9­èú>‹ ³Z˜‚€»ãu“†§+È[êù´Ù2)iݯ‚ѺßEGþ,,3Ø¢¡àâ¼±N¤† ë={r¦-ŸúªÈÆ>ÇY"Õ ·WédùØËŸZ§§Àžìz"[¥MyŸ dŸj-·$"šo„8šŒRÊdY¾R{f§µ4Ûlµ2Úmü d|§=êõ‚¹²Ä¾F|Ûr‚38\ñÞŸoøldÏ>"ÆÊ0ÒNŽÄã¥Ò¹dÞ—`'¿²ed7QŒŽÀÔšI )+1 kûW’D‚Þ2¨w1§„Ô¾” ø#§lùŽÖÉKï;˨²þ{—‚pÎcg#¸bÕÿÉò߀Â-³íC¨të8 SLò˜ åǯåëVû’kk,i*Or.ô«›Ë!y²4lªª=Í_ ·õ1£¤6ÒÝyû¤Ób ÐÙì>´rݦÑ>èúÚHna“d6¤,…=Á?JÏ‘W^ H%ÍŠAr"1[(1ä•džÙ$þଠhš=–ˆÀ—ֆ诒Ip‚³Ïn‘¯Ámf'å œÒešŠ\rW ¨ŒÚѰPÀ7ËØý*{‘¦˜Ô’¡µ¸:$ Àp—k”)x¡ .u¥p‘Û)@ À…S)IªHW)]xaÖïV9## »”c·ÐÐÚä“‹äWr¦xšf¥4rC6ŽyžÔš¦í‚©r3…tR!#pÈïOuÂC(×`èWlí)¸Uyïö£ËWDØï°––E#>yÉRžÛÙÊ"_<£v²b pJŽ‚È¥€ÕòË 8ôàÈŒÌ=<ÆÍ[Žxi'ýH©3Nxûásu…„:¯N¸Öm?† \£’>M0Ìû^ I«xlSlš§Ò‘Ÿ.s±ÏÛÐ×K¬AÿôT_T›¦Té>u^­Õ°tü:TÉs#…faòÆ;–b;9­ýSO‡Èå×%’ÔÁ.?gôoIi=Óš¡FHW 熒Oêc_=Ϫþ++Í?&˶û,n­ô«»ãaU»¯z¡ì”þ‘>–韧m%„˜¤U€ŽÕg±r;ÄŸL]ºlÛÊD3+±¤Z_iïì_e®XÖ•mçñbò7õT›¾“ñÓ4©`Ø–r™qó öe%^C±>„Ké/’±H»–ô4±Ço€{Ixºé] æ`’$Ê1ê(Fn«+–Ë–€KÑZOŠ› Ï‚*èÎ]¦Ié Ý¯Ih(LbiöNh{ŸW(e†U@?ÙM;‚!¼Eœ1#֢ʦítj)Ðݶ—¦ÆÁÓPo,‚ÿMMÐݺÇQ]¡§:þ.œùC ·œÕ<\l¿ ´Kfæ6y¼²wg'5D3Å´Ú *´ {HïHË” ä0<½,¥):^pÝØ8ììQ›(Í*Ÿ,äç8õ©N¹ö¡96“T6ü€·Ô¬L¬ï©Íæãç¤*®{Ž)qäŠåKŸ"©'Û5Û[PË›;I–Œ¨çƒÉ?÷Íj9JîÅ÷z ¯8…›PŠKv¤$`£ééWoØžõO¿åö Èûc2³okˆ®&Žæ.pÌÔã?Zwµ}I ú¯·7ooS\j,‘·ìüXÿW’*2ràfü¶DjËr×1˜ 3£ ãŒçß>•{¼?'–Úý²ŒM¨…ó·F‹°/Øûö¥†X¬w7ÇBû‰vÀ§Ó †f û ¸íÇ·¿[ͯ’{‰.F#Õ,/"IRv…›˜ɽ:^êÜ¿v5¦y«j—C§å°Ò5x±gH®@1¾}Á퓟Jëi}FxcíÉÚð\²mUg(u–£Ô6º…ݦ¥¥›h„ÅÏ’ŸÃ p qÎu´ÞÞª2çàË)9¶ºäÃW[Ž'æ\ÒºHÚèÂMò†¡ê³€ŽöÁæ©—¦îì+I’<Ñ—ôÝ–½­0‰ƒK²R7LøVÇþ•îMru™°i­+”¿~J^]ª¢ÍûÑ÷]+ÒšKEi;µÌº{™UL²œc$ú¥yüšÙäw%ÿCãÉ.{þラô·½Iþ!Xü¤çëXœžíÎ!ŽXÝ]õ>œ²!:…šÆ¤0»·sVæÍ7Q‚ºý–X§vÛªt7•R=fÕ·,…SùþUv,­6¥i¯”žVN¬éû[‰RóY‚C‘œ7Ñ~µ¡JÝ]Ð}Ø+¶Eº×¥oBî­Av]ŽÅãÞ–YTžÍ¡YñÊšg–ÚÿL^ÚÏ,3ØĘ¯€yÆ)W|$þB²A«E„ýKÓ¶ÅÕå›± .Ævÿ÷÷«7Æ=»,–hG¶ŠÖêš’9|Ùíöí,¢9=¸?Ÿª›Æïp‹4%tÊi5Þœùí¬å¶9ùÊÿþ«5qô. ¥ž7µ2p_h7æßS³W'L€ôǽY}ºòšvš.4$²JlåY\…~ à÷çÖžŒ1ïíü~ü‡|_+¢®æÇâ|Ùþ"ÚÜ ‘ÆA%Góýê½™wp/-ß‚KBžNÔÁRF%ùí÷ꩱwEL:›Ûê‹m ¾æØ“,,G㽪Å6›iÿn‚דӤé‹mðɆ•öá‰;pvåN3œƒÇßÚ•ÎOÅ¿ò%.¾O!дˆ O> þLîÃðdÈÎrû}Í‹lßü¾9°$¸°7 Ã‘2…¸¡ðwryÀ#í^)&šM_ïÈ»#Tÿ¿è1'DôÎÉ ¹´]ÁäHpú“‘ØàvúÖ¤ÜU]~ÿ¨ÞÞ5&ë²–O ü0‘¥4ˆP»Kå˜6Wƒ‚N2HÀãÖ´ËÔr¸(G#T2¥©ˆ:}·‘ôÙRS%v2àà ŒÈïïB¡­”SY]2\Ú庶ð£§ì„–'ÌOã˶åqÊ÷ä÷#µeɨÍ9}S¿·ý¥¦´Ç`ðƒFž)n[Xhâd9tw~}qÊ®ÂæÕî[~Ã- ÊûO´˜ä†åõk˜í‰a·µ—$Ž 'šs/ Õ?Ÿö$48Õ_÷?ƒö]H²ê†H‹€§ ” ÷äcã¸Åež9WIè¡tÁ[øI¦[3IåÄk…æ wáÀïíGÜžKܸýБÐãnßhtøugÛ-Äרòâ.êÄœ‚çôÿè }I¸øýÙsÁùÃqý±M‹tÝ*]‹1—7V9˜-­f‘u1$¡6|S¦r¡@À\–äúzÓFã;ãîÇöÒ_ò êÂê Uòeø}¤©Xe/!%{çŽP*²9&¶¯åþ½þÙ)_ü˜ºêl÷‘N`dìAÈîAÃqÏlŽÍeŠv¸+R¾BC4÷W¬%k•eMγ8 ñÛØsöçhÔ¤ºä å.I½ÈIÆêú4Ž9bŒ,(îã9È 8Ϧ)·8½²]0[Wÿ§üŠ,ðGu%¼×r¼;Ðù“‚J`œŽ~…AÛµWºšâ—÷àHÍ]_õ-s‚inB°x#ŠSòç¤w$`ŸcÀ¨çµÛ\~ù,q®þÀà¶ÓçÒ ¶‚uY7ÓF ífä`dãŽÞœQy79~þâ¨EÁDqÚÉ@µÒu) æVW ¡„LO#' œgú‰Ri¾ز’AÿÀk]Z}TÏ$HnŠ<Œy`•'×åÎIî g‹›·µݧÊ}^Õ59Zàçx¤;¶ƒž@÷àz}ùgŸšH4m‡ø› ‹C;I4›ÆBÊA.6´çÐßÚ³Ï:’m*~?—ü¹K“é.GÃFªÞPaæmEÎJ99îÄçèhomZUè.ë\C©ibÑŽÅ™™Èù—H=ù8#ÛØòÊ\[Aߎ‚·‚cp.Œ¹+$.É8Î}vŸôãíD£¶6¿¿°\’|‚žî uI/®ÝH²HŸ“qß$sõôæ¿õ%^ÈG’0í‘›TÓ¦Ómîd»‘¤”me‰ÿ“ۅõÇ<ýé§'·t—ïõÿ K66®û#©jµ×ÀÇuq dC-À|ãæú?Oj1œ¥Vî×"ÎW-©ýÙ+XÈä7fDü@¡„›Aʨ^G¿#š˜ÛJ“òH¦ÝØÜÊ9 ÑËmhò‡“?&ÜsÜd.>ßj‰¦¯ôýÿ ÐpO÷öŠÆÊêFk­d¬KˆdáƒdçžG¿½4To$¿ð:„dùb¦ÎÚIm÷j(<°6Ç1ÃÄ•NÀ9'Ó^Lrþ+¯ßùø¨ð›=¹éÈn­þÞö@€4Ä—C¾Üy²ÀzO¥HäQãj|‘á‹T#é"žX›S¼¸xãÇ$€.æÉmØžóÇ< l™-5·íÇóùý Ÿ§€ŠEK¹|È™¤þ вü9íÎG¹íUÇj’QWWc Oþ'rõ±¾X ×äpw`gc€{Ÿs‚çõnþám|×ó!¡i¥î.šé\,I“ ä `ý8Ï çÔUkQ EÉ»ý, q®í}Và,†K¸RFå^ÃæR_¯Ò™ë!}ƒÜç°º¼íl|牢ÌÊ ?!É9ìÍßïM¨ÉùýüwûAȸç¯ô…!2G+jИÛåe]¨N@'æsßýÈî"¾­üp*üÉî>[Qo*IJ»2Ä;£c¸=³óo¸¦Sо[ø¯ßýHâôçdtüÅTgqõ>¥€ óÜqL³FQ®­Ê—¿ßó§ØYÜJΩðr1m¾f×lA í<2‘‚8äúŒUjÓŠrýýë‚Õ¦Ûþ.Ç¥±·šémC¬jA•BF6p1ß8ôÏ9î1Øe87iþÿhbÝ.•Ã%ÌoÚ¬ªÄ†|ñŽÙÜú䟽[“¿·ïî4qÇ´àaµ•'¸–Ö9#œ8ù—sg¾p‰8Ôý*ØÍ.%ûÿ¶±,ZI-"…‘ µ¨s Á9;ˆ ‚p27R{‘æ)r»ƊˆƶóÑ:„ß™ì61øxõÆxª÷¨µ.“O†*Ÿ»Z{Qoi&f‘ZS³i,Ê=sèO·Ëš/b¥"'_#P]âÃ˼Н–í §*G$ç¶9'=¿:²3UN¯÷ÿc§ôÔ¨ ¼CMÝk'æß0½Ä €ÉÀÏq€xö'¸¥ä¨ÿ˜-$è„×°|jG Âx‘òªÈJä¨Ãdä”vô9Æ(· ý )r’*eÔ&IÒYgFf ƒƒŽFO{`qžøª¥¶ß’¹I¥kŸÐ¤{¸^ååY%þ*mŒ©Á Üc¾GÜÒ/¥¦w[¦Ã-ÍÓÀÑZ·–ãPØ,{éÇZ$«k|’íí¾ ù±Z–[›1¿å•f‚íÀÎsœŒdzŒSÃ*Ši¿°É¥Ã<¶ÔŠG4*Ya B²rF=»ÿz©ÎKÍØ·ý›Ý>[ø­> fR+°ÆÆÝ‚탓ÏÓŠY7¶ï‘\âä“D"¼[wDK ˆP®ªA%AúvÎü©._÷ •R¢VÒCÂË•pŠ‘–aŒãœrsŽ?åOŽ|±W|„º¿VÝ PûJV–õ‘³ºÀ|ËØ÷ úqMÆâù_gýö1Év7c Å ]4‚X¼°ä 0by$ö hb‡šM/÷8cVm2î+}‚ê)㘳a ¦åçiü½ûp2~ØÅŠNÇpí'vßNY-¤—‘$‚Q'˜3îðsÇvî?úqSƸ솎4¼ŒÜÙC%öÛ}Ctjë¹¶s£åb;ó¿#×&™ã‚u_ýØ\mðÏIøˆVÚ¸c(ÓŒr1Æ=ǵ[íB_Jå¡ý»\3É䂤w¸ˆÈdHÇ«¤›@,r@ô(e/cÝåã†ØÌç¹Fyžçß½.ÛíÑZáòM å³3!–RŠà1È qøOcžÞéñà[\“çù"K ¤þÚØYAiokw”ä²µËÄHÜúŸZg–œv+ù"Œ#«¡;ë&{¸¼H3mUÔ¹ÇoúUII´ãÂ+šç€æiÖÂ_ÿ†)±¦ÖÂ)üGØdœìjÙ95×èX¥Ãà Á«¬N‘Ëgü@¹’\d dQ÷ÏzeŠãÝØŠ3K°é·^A–IcWYŒ‚F+“ý#ž1úÕrŠ\x@Pur=Ž ¯7t³ÚÃLbCnÃ#%œç#ƒ€sîjͱj4¾IOË %å¼SD’Ì×m$‘K‚,ŒýxíëšžÊe·]³ Iï–U>tK ªU—Û$S-««³;r\ßäNêAc¨,âf’Lì.ÇpaßûÔ©I¸¿ŸØI/'žm›‘˜¾Ò ÿßåU8§r} ¾o Ép$@Ã<á>Í,“QtÆ·ÁcȆiDVñÌÛp î?ÍU r|i:øëh“2[¬³¹n^1ŽG֢ȻJØñœP¨¼·¼˜ÈÖ¨[nDj¸_z_©vWî©x =Ô’#yÐA*rò@ãÐQydøl6ÀŨIeqK\l|£W×ûÓAðÒþâ9I5Åÿ ¹™PJë>Ü ýˆÏ¥V“êÕ Õ[ c©C4qÛÉd‡,ëŽIíoZ9‚ù$2nj4\|u»Ï!.ˆÉå®U=(Æ|·µQ¡Jùªº¸Jd;¤0Ï¥U‘JN¯ù‰)Ó³èõˆLFfŠáþVNÜð;Ÿµhko/È#—rèj+ûc8‰æŒˆ\WÓµR¢ŸævÉ:>Ô.-"å”O!Æà@à•ýPd5gêohÑGP‹´(T\?¿Ú¢ÔeJÐ7ìUà¿–HüÆ1°A½®ÜgÓŽÝûÖøÎ¢·|¦Ø‘ÖôRâñ"$‚"@IÇ4tñº•W=pâ„““Ü;õ!ê 5¢ †s‡Ï¦E>He‹Y`øEY0»Ü€Ìb´·†òÖá°À¿}éXsf‚v¸“*iC ö²Þ bóK¹Á‘²ûûšly6ãnrçõ"°f8$-çL’´¤n*¸ôî)wcš¤ùùòJ^Bǧi2˜RvB|N#ŒRÁáú›•d¤tÝ}>y÷˜ÆæäsÚŠ–‘IËšÈíéÑ$ÐfO(ä`®>ÇëU'&•ü K§Ñ#oe9„È#fTÃ4«ý#ÐO Nn¯¤M°dv¤³6Ì«1P!ÛŽ?ZU…Ê[k€ìôœ[›æx&2ªU”Ÿ”cðœÑ^߸êBðºY¬ØÂìònçÛüS¹âØ£æûmæÂÚ^i0Ü™'¸ µhÓ!OÓ?zlyc =òãáJ³è,íï ŒGmå¹$ù<çþø©X¥.+ïòD“`M†{ÉžXìF!( ݆'–ûý~µ!(Ûëþ~Ex÷>hòþÏOýÚá•eI?)ò²gœÓdËÇlŸ?¢ð3¤¹Ö:dÉ!x#drFì0;R4’y<¨¾tm%BИ£1]Ç-·°Ò–Y¢— ).À§›ñ–×yhIÛÃåûçëG¯$\X¼®ÈÜÛÁ*…íÖVs´g;ÆsϾO¥[‘U.€’Iù!-»[HÒ<–é(QüYØcûQÊÚ•·à+‡À±¾¸CÄSZªð® yúg³Lµ2_RAÝ]‹M"ÜØÇW€4r&Õù™}¾Ô2åS‡ ¡?7L\X€»¿xŒL lT ÐUn”Sk{uÊcQ[Å Ÿ6 óI~ ~ŽÇþýjF¥äd©}NÌU.̾\M‚ 8#±5|¡Ç,HÉ·ÐÎût¸Ø,F6wÍURj‚ÔT“ Ie‘*È£¹]$ú"Iô}%¬òËÉ6€2Ì­E%í ,-ócÂÍb¸FYÉþÔ“¥ËcP½’ξyó6« vªãQå ÒµbÆ!”X‰Œç$zžõ•¶+×‚Æ Ysó#ì+Á4²=F4n À£9+žõgÒ¹®>·›C2颤¸Â>eQVªäéá·¦FÒEº¼Q(%pJŽøõ ç¯±Q戥æÄIOÇ¥,r(ªB¦Á5ü3«’C²I\¦äþÀ”“àõæâ0…!€"¬Ç¹W} OÈÚØÙÌ~&à¬lxеà‹ú¦èj‹äBúÞÝ%o,y­Ž çÓµež5Q•‹8¤Ë ÞÖü>ÐË·"µip,¼Éô¤ËhôØm÷*·š©ÀÉô«²`®™lqÐYÞ%QåBÃ<£¨4S–4¶±¸@ YÇ&è|µF?2Œ}j—9EñÓ´Eôû8ãó¡E‘ÁÀiNhO Rjí}çâ’Ct›˜ò£°>‘¥ËåÁÝϧY!A9åGe8Í[ 8£ÒPMS.¦Hd€Å†8#wqIüÅš+S#Z, ;·“Í/þ¨KkV…I_á´´Di‡rò ·¬Å ?™v5«É,¦HÖÕ"òÜ‘¿–ËaK³0å}ã5\1>S ‡’Ë÷Š=ˆʰÞ¬sMmÓB6òN“mYˆVª+‘vî™pèm^q»4Ò‹nÁ(_1o‘#“iÆ=ê¨ÆÝ!UÛE•œëÒê«¡ x0kËK$„É,ª¡É­tûb÷ \Ûn#·™„nK—ÝöŸp×[Þ Û8ìjMNXå¢*a, ŠØîlÈOúSaŠ„·1RH*ùPܳŽ'µ] F5&ÆÛ]ϸSð×dð*™å”ÝAð¯¢^’«#üÀwíUIä|0´ÐbœbEä÷ÅR÷¦Á%A®¥¹ȩ޵cÔdÛRÓhEd¾k€¦b[ÜRO#ÈÒl­)Y3 û^ 7EõQcR{luåmËjРºe“#ŒÖŸmb)r;‚KËI¡‰7Ìûä<{Õø³(¥|°&—g×’é’΢D°ö©–xŸh2ÚÙé·Ó÷4Œs´p*¿omÈŸObñjŸÂ–r¤:Ô&šB©x>µœ‰ b=3éK§ÛØm‡šX§*‹'ßÞ¤Þæ’C¶#5¥ðºÜ‘|£¶Oz£øl»¾‘[˜Ý4äùDÜ*¥¦Ë7Êo"Ó‰eº #‘Tižšqâ(Ø+¡3̱£KµF1R)¯¥‚Iÿ 6ö²˜ÝÉ •­1ĪÚ)„iòϤD‚&• ã&©ž0ËéM¢HP|ÌÅŸA]—qÜ¥JÜsŒÕøÜRvЧºâ{yc'Á§˜N3šx¹EîhiBãËe¥­Õ–BÉ4’›nqá¸ö:t­ #NXLÐpi²Õ….,~×M‰ÔÆÇ’84ðÁ½–¨&xšÄeÄQ±_VÅ^ô9ácðk5…íjq·Ú¶¹,œ³,¡³ˆ†›Pžxö êõ¤†ÅÝ‘åm8žÇ¨ÞE:O”ñœö ðBIÙ#’Iª,g¿–X— ø=«D†K\E©^IÄ’`Øš.^¹ý†aºvœ©RryúÕ63m²WÈìAqš’» ø@Öï’î@ÓÒª–HôUµ·ú »Þ‚­+}jÏ¡«#mJ› _B ƒ¸zW,levXÛOxYL’ªç’º$%}–ñ¹• ¼üc=é!šS•I–§EsÀírÞ\„ƒõ©.eER‹»C1G ÂKJsJâ«Æ¹&’\oÍã°4»šUaäfo=#þ#Œ;Ј•ؾǴ÷èeWËpM[‚1J첆Vw½™Ï#±e9¯¤7}‚@­ÂɖϽ&ØË¾È«´5ynÃpp\{w«rÅlä’èBÚ ‹½Ïnç¶k\ks㱨Ê,Ü}«^8ÆKsì7ɨ§¹LcaŠ|˜· J-ð!‹ÈÎ Ž:Îã° ;'2ùÃscpÇ>Ô38ÉZö¢Ý‹H3Î0hBœ9ð2!Û¨É#õ§Ã·`Tºi‰¬,xãƒFX÷Éí`mžÙíFà #ÛÒ¬öœ¢9Ê<„U½)¾BFF)ñå[#›G¶òÜ<ÅÝ”gæ¦Ç)]¶ mò8—pÃrÆUVéëZqN*Op×äFïU¶ýàL1€¾õVYÇܵÐ7/N­«íoR)2Ê3â%2‘MÔײ¾ìdöªeR›— ô^‹o#ž==¨ì¯¨}Ï òj6ñ¢ªÂYÎ{ú;mp]UŒ=Ì×6ƒ7z’r”i–I|³¯p#‰)4Ø0Êrú{Nø2Ó:æÏ'å_võ®¢ô¬¹ð-ôgJYÁ{· ÀqŸzïhý+5õB v[¤p³[¤K‚p;×F8a,¥àæ/†–UIã¸Çá·(œç'aí´¹YNÐO§5÷tb«±¦±p…v€~¢©s®Ëjmtçfdú{PyŸì|‡ýØb 02(NOËÛ¾HEeÚxÁö¥»…:,-â\«¨ý'Ø1îÇæ…‹“ô¥Ëo–ÏŒ2ì$ž®*žZ"‘Có2Fh9WwÏ%‘Hň%FqŽÕvè¸vŠéÁ'jä|b¨J»+iò®#}ÈIÓ=©­W PÚìf̲ÍüAŒšxäJVHÆ0—,Ÿ2±ÏúH¦Ë’2é$«€ÈAPßzÏÇ’·¸{ˆFIȾ´®MðÆ\®.Ñ¿+ê*:H›XýªÝ((AVÂ3hez!ž;–bHúö¤XÜ_aQäÓÞ«ÞJZ“›j…mß‚y––‘Ú’)$DÝQoÜ:’r£ëOµ¤Mã­©:¦FæÉïW=E*ÊȵÉh?zJkßÂIX•çÔ¦îÀ¯£à&U?‹>”ô×_Ü †ì¹;}H© Ro„ _ÈTßQ‚q‘[±cpT®O%¸ 0Ü™ç8ö¹$÷_¡&»Ix ïÍIMJ’B'çÁ›“XRy”¹¢FéQ]-Ô²“Ÿ^IC›ò,˜°™ÈXý(÷È©_aÚ×td˜òqÛ­¸‡k«µ´D‰ÁŒäúZh¶ûDоÁ¦—4ò<Ú9Ëz ±aË?ʃ²ù¡‹^—Ô'˜¿Ã:‚xÈ­ÚOÍ5õ*,P}¤l ££ýÜÑ‚O^‹KéKo%±ÅÅ2óNé+;]Íå Àñ‘é]>Ž #!ù,d†6ò‚… Ô±WE”&² i™¤|ý;ÔMG¶¼ƒºÔ—Ëß GÒ„òÇ´ÈßÁÎ_*ü¤;s^Q•c8® ˆ5£Œ0=ª˜·å$'Ö¢ó0Hâ–Xe.P=Ô¸aTQ(`sŠ«Úkî^CK«+¨z;dÓL.B¿›ßµ/´èG5cê>[䑃ê8¡²K¢n±ÆÖ•€?Þ£ÞÂæ¼’Ú,xb"„ɽy<]RìÃ&’x›åÉ_Òjl­±O¯4c€MÕÂ'ñèÈGqAãcJIŽø&ÕÀÀ÷¥x‰$.79*Ðb—kL;“è›\fUó â‡Õ@âè}/lD63O %Út_$$¿NñŽÜR[nÒ¤‘ÖT?äÓûr|²§—Ž `Å!*àdzÔŽõÐTº$úñƒæ=qFQ›ìovù'&¢’Ç´à€8â«i¾Âä€5È1mÈ#ØÓW!Åæn,>•ù#H<× ÆqÅC|ŸA²ù7K¥ü„[ýä~u¡~S+üÈ~Ûù+ÿ fÉÙv.‘#üÑö¡àußïõ ÿ̦ErüÌ3+óª×ceÿæÏþ]7È#Ò"ÿó¨>¿ K_ç~B—'Bâïù Ó8ÿÃI‡—Ÿä>çì)$4ùóHHÿˆ°´þaûU/´]À\þ5ûÿÒ2~dDwµ€ÇüDåþYûPcåü¥xîßsZ _åað%*ìÿ+O¿üéæ ]~þGeûU™; ûÒ.ËÂ@7ó¦} þ"s~¤`—L•¿cö¢û :dæþbý¨Ï¶ÒÝÏýúQ]!!ù¿‘0}Y.ŠWeœ_îõ™šåÐ6þoýýj.Š¥ù—ïÁõ¿ûÚýêØöƒð_/òµãü¦ÇÑéo½ZSà²Ò¿ž>¶è¿3-hÎ4÷S÷¯Q¥è² Üÿ¾/Ú´Ëó.Æ—ð°£.…]¡ˆ?”hÄo%fµü±ÿ Q¨è’èį?”~ßò¬9|•/¿Öÿûל×~dg}¢Ž?Æ~Õ†]_ßîjÂ@ÿÙbygfoot-2.3.2/support_files/mmedia/pics/match10.jpg0000644000175000017500000011150011225071373021171 0ustar eliaseliasÿØÿàJFIFHHÿá'ÛExifII* z€–ž(2¦i‡º` CanonCanon PowerShot A460HH2008:11:27 17:19:08 š‚@‚H'ˆP0220Pd‘‘x’ €’ˆ’ ’˜’ ’ ’ |’b¨†’  0100  Y  * ¢ ¢ ¢¢£¤¤¤¤" ¤} 2008:05:17 18:51:052008:05:17 18:51:05ß _ _ è.Ú6>"FŠ–®.C  Ä Šä &04”œœE¼"ÐF #æ 'î (ú \ÿÿ@ÿÿÿ`Tè_Àÿÿÿÿ ÿÿÿÿÇ•Dóÿ Õ_ßYaÝúIMG:PowerShot A460 JPEGFirmware Version 1.00Khadems›$—Øÿÿÿ&òÿÿÿðÿÿÿ99ZHe$Ä¥ÿÿÿHe ôÿÿôÿÿôÿÿôÿÿôÿÿôÿÿðÿÿÿlÛþÿÿ¤ÔÛþÿÿ¤líhíôÝþÿÿ¥$Å kÅ$û¥ÿÿÿ ÀºEDÀºE¨ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ# 6îV`  òÓÓÓÓÓÓÓÓÓ,,,,,,,,,-þÓ-þÓ-þÓÓÿÓÿÓÿ--- Š €à€ÿÿÿÿà¬ÙRUØà¬ÙRUØDH£"®f.‚D@Âp‘ R980100® ¶ (¾ ´´ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ“Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷m>ú-F¸NRU{{Ušò†ž/[B4«é1 ‡÷NOÝoO¡¯[šhà…¥‘¢Œ–'Š/Ô©G•ØóŸˆúüž`Òm¤!fm§©ì)~xt²^éxˆTާûÕËÝ«ë^#=K\OüÍ{]­´vv±[D¡c‰B¨öCEr§î¥MEPfs¾-Ô/¬lÚÚ¬±L Hä‘·$8õ済ÃÁâo rHû•#ó[æCŽŸzˆÆë;Xÿ¿wÿǫчۼzóus¿åœV‘JÄ6îzDa„Hå€>ôê(¬Ë (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€>O¶º(ÃÔ[ø–öKAo%Ì­þäʸ…$*ì•&²GcÜô;(²ÜAËþµíUä ´x%¸½åÄiå¶!ˆ¶ '½zèt=OÐÖÖ²9ª4Þƒ¨£ ô4CšD*˜AodÄýÛ€ÿ&¹¯Ççk7ŸáŒœû“[þ,´“Q—N±•ZY‚Ý8\ÑáMãDk¿´m;ÈÀõ5¢øH¶§KEVe…ŒÊƒ,À™&ªG©ÛËvÖá†ÿá=šÙ²åMgtŠ1ך“4(¤†‚Àu }hh¨Ìñƒ"gëQ5ýª’ Ë‘@h¬ó«ÁœMDuR¬[/¥+«Ed6ªØsŠ«6­&>÷Ž(¸ìo´ˆƒ,À}MPºÖmmÐÛ›¶+›ºÔxbíòž½ÍaÜÞsµ›h{Rm-NžO6ó·ËÓÑ\5Æ·˜8ùzQJåÙX“ü&´,tÉg½‰a>ñÏ¥SHÐ0ß´}MvZTp%€u}èxe;~™éXB¥ä‘îâ2ØÓ¥)§±¿ äP¬q%¬Œ`…R3úÕŸímŽ(Œ÷ÚÄZÆ‚gR ᣂjS3Þ„9Æ=ë®èð}”[½èõÛÔB«4ˆ®Æò–ÏÄ7ÖîB\¸SÀ2:×4nƒ)oB9>Ôø®ÌªAÎSŒQpöq:üEtu[;†•]¢iùxû¸­#âûÒ1 ž¡q\[\!¾ˆù±Éü*ÂφpNŒ7­9=‰„/s­ÿ„ºéÉqåŒ p¼zañEôŠš£Ü(®LÉÊvãCÛ²M!Ú¾h\Ÿ•‡¦sRËPW:{ŸÝÝ@b–e G8^µŸöù#ÚY±´ðÀÖ0¹H"‘¦°-·äýjͬ&à£^<äœôõ”Þ¦ôâ¬_¹7Ž¥Èܹ¬Á¬\ró̹=Aãµs×öÿÚÃfÖJ•oââ¢kÉU”ùÈäæªèŠIHÕç½f~O1ëN]NI%pîÍ€wu5Ì›è¶d}ùÈÃqïÀúS¤»àƒ° çàUÒ½‘Ñ=ìžfÍùÀÉ?Ξó¸¦ÝÄ€AÝÆ s‚ë +°Ü«ò€9ÿëÿõªH.ÞtTŠ dÚÛF}èlJ&òÜ’ ' õ§­âo1ù„0ÁïÅcÅmyÅ‹f AÜéÉçØàŠ·©J]™QXü ±çô¤)4´/Ív¨¨³‘“íÒª}©[K`Oz– 0JÅesº.>Q€kB=>Ú,aãÍ'™÷¼È¦%g|sòñPÇ¥Ov¹˜€㎕ÐyÅ€YGòj”ÚæŸi6á È'õª±ÌÌ_ [ã,òy¢«ËãÍ.'ضUSåEÔñåXA噵u«%¬Öñ£o# ׫™GÝ©£]›{Ô'Jó“³¹÷®š”\;«$—…Qcš/›,£Ë\ä p3R-ÒË#©‰@îR8Ï¡­{mIÝ&ëç8eS(ÈÉÍ]þÄу¾¡œ†eÅz'Ĺ8ÉÆ]iÓ2[7.Yr@ú~ùÓŒÒof,X; ‚…@9ʺ8ô=$u Œ=iï¤èRdI¨ƒœdyëLJhåžãÊ‘_‰¸èMYIÁŽ@ŠÏ•Ü[:Õèìôfñ Ä7köT…JHó‰çŸÎ´Ö? @ÛëQÆúHÿ$D%kœ¢\ÌŠ¤»Ž0y;Î+Œrøaøõ®ÞøF.>ÕfG´›»ÒkøA·™k¸t"2Oò¥¡n£¾‡2.ÑÔ1‘¤ ‘ާ=ÿZ¿óYh“;0 +P0Z½7‰¼7ÜO)D„„÷ü+ Äz톮AµYLqŒ·mgQ¥›a£:µ1,.V}a¥Ÿb#¯<öü+µB½(«äƒÐ“ócÜt®O‘a¿Y D¨rƒÔWVÿ‹NQ×——ÿ­SI¦±”*Ð’æêh¿‡.Ê©f‰vK·t«6ÞŽè}¢iÝ|Ã’‰€lW-qñþá$V‘¯<òOó¬é|s«¬aRñQ}Öµ¹Â¹NƒÃ¶10$3²Œf=)u(¡²ÓÙ­b‘>a´à·µyž'Õn‹oÔ&é“󕪫¨Í$ÊòÉ!ç;‹S?z-P“§R3ìÏUÒuý>ÒÖW¿»D•¤ÎòE>i1òšY¹þö÷¯5ÕåCsÆ…•þ5WÏ(e‹ N2zVT_¸ŽŒÂ?í3~gxþ:rÏö{m¡ŽrÿZ§qâýNQ€êƒý‘\—qæUROO_CYqØHþnÓƒ?7­M)ÚA4 2w#‘S:¸*²AÀ ž¿Zë¡+ÆÝͰñU”×ÚüÌ_²Ý.Ö\Àž©ÂÂr¨UÎþr3Èü?ÜÈ-•¥—Œ{d‹¹Õ‚…',©úýksÉq] Wòýžćå3œäþUI-f”Ä¢€y=s[î’Mpí°mc»íSœFN#ºóiÏ&®{‘N)£œSsóÈãüiRÆéŸ,ä`Ÿ•›ÍoÝG¹ÎÕ(¨r8Œ bwmózŒþzT#YS²1絚% 3ùy6AÍ\ÓãeIC ûVŒÖìî¾oΆ$°Æ;Rù"(åØÛq¸gùVu5‹;røòâ`üÊ‘—Ç <ФºHó$ À' ¬9 æ¯Ê2̪º~8#¡'ñ¬h=Z=|æ’”#.ÏúüŒ¦Ó €1ùOp=êÏödq4aÔ’Ç¡‡åÁ«Fæ)$•’FxËp£€ÏB?*zM$±C)m óÈHe?‡^ÕÒöÔùؤޅ?²[´ŽcÍL »¸lçü) œs!# Aïžrjô62¼lv«,kón` þ§jËÀñÙ³›Y<‘…AGo¥+‡'R«[ù¾X ’¡1ž½:zÓ »³€CR@Vè ÿU뤎y¢¸€*¦dƒŽ ¨ú|ÂVl?—!9'‚o~µœ®j¾v¤õzà·hf}ˆÍ é‚(A Àg(ãóÇ~Ÿ¥E3±‘¦Ü¥fÝóc×ùö¨®‘Èñù®¿wï÷™æ«B¶ƒ¦$Ü))¨p v=úñÒ˜²£D²0påã;ŒÏ­<ý¦5ûg”ÆÚUm’7=GaœŒÔ0ʳ[D÷M¬„çõÇ|QêUÖÝË}kìÞW€pëESº´·žmÑÈ¡B…`çô¢“k«1|×Ñhc”2åTz“QùàœE?¿AR5´aó·q2iÿwë\ê ©ïUÌäô¦¬^ÑUšõ<×òÆz'øÖÕå±´’)D§&S¸mësϽsÖ²05×™…Ö˜!&3„g§¡†µ‹PwG›ZµJß¹‘rðäËʪñ¸“íŽ8¦G5²~õÔ¾áÔ‡8ëøŠßß\G ±–J¿T#n{÷¨S—Éç²ud,»SçëÈéœv¾«sŽU"´F .u)#„nPHÜ:tUØ!’H‰ e$8 }ãØ}õªðÇt‰rVÎW˜S€Œ1þüilŒÒ]À6ÈÃËÉpG^È5rÝ‘ (ÅùR¬dÚì8fêsŒóKsˆ¼­˜Ù02AÈÎ?˜¨"•&¶š ˜¥†U@É‹äíÔóW…¼¨¶÷A¼ëh÷Œ3‚N@Ï¥NÊìÕ·¥Œë’~ÇA. ™!A$í÷ýEhÙÚ¥ÌÌ’n $ŒñPÛÚO|­s ºªòÊ®0Iì8ǧcE’)¯s•l2¹21ÅCÖ%ÁÊ.éêˆntûxÐâ%Ï©¦fÁ.ž""²±‘žõ«x€*½ƒ|Λ£aó/¨î?,ÖPÐÖ£rZ™[A ‹Ä$|€Xã þ|Õ¨IyÓä ©.Œ9ã‚Gäi/c´¶š$µ˜ípaÁ]„σÏÖkn<Øì|õܱ“Ü„’yïÖ´{jDgo„°#º‚X£V(ûÙxPÊoojrÜÍ+6X4MЯQÜävª"í.o.’ˆcûˆÁ~óº?:ÎŒø‘h‚‘Ï8ëÒ³»µ‹z=MóÉW$c¡Ù¤”ˆí£r꿼õÃ?Τ³»[íŸ*O,:cðªÚ€ž=Ïlv°BÕ{Š\Í\Is4ˆÔ¼1ílcÙ±žÅXŒÇ<‚K‰¥™v@ Ný+ÝÈÛfXç|cp'ß?JÜþϺԭ’hn"‰HÚÄ6îqþ?ΛZl]K)r7®Ì½©ÝBg²M:U{Sj±ü²I$c=k&îYDŠ"¯å¨÷Éâ«D’ªysÀ«-®b‘sƒÏCúS^Ú1LÛ•ÊrAÆ2hwH\RI½;¡—åf+- w^õÔRMs*¹bB€sÔ)Y’ÒNÅ  @Üz·:˜Ù”ðsš¤ÝM$Q,esé]‹:üÖòdÅ(Ûô÷®T6¯Ú\²:ŸCL†vVÚ¦¡jd.d‰­Îß½Á^Ƭk1:GGä³ äãۚǸ•¤Š D ìýÜÃûËïL j.\EæAŒ…Fr89ôïW ½™Í<7;m;ñ Ú}»Ä-ÒD’áÙŽì’+xøƒN¼-Õ ·;™Çø×£ý™´Å{‹°™Ÿ'al‚ÜœãŠØymÍÌiÁ拆ó|¼m‡Ð{Öò–¬åTj$šÕWø^ks1tlNÂW;FqŽ0x¨æð½ž¥˧ÝK)é±›oŒtÏë\ö§dŠ(_t¬q+SÆ9î)4‰uvXo1H|´²É#¡¨nú=að߯b;ì™tÔb]—‹%€à‚})t[ » ô³¹Ošd¡u'=É*šëW–kżhÕ%ÆoFü>œU½s ¬–ßëcy<Ä•¹eãùVi¨ÝÅsþò=Ho25e¯îîý m]!ùdʘæ¡[¡Ó[ÛGw:Ê—E’NH;±ôÜ8úU+ï.È¥ìRÜ›d?ìŽàT:¦«qlÖÅhÛ†Êç§PoÊ–ôËF…OÝ+wûS~dFV½·%²ÝLPKiÇ#“€HþµRú¥w–ÙŠ»àéŽãðéOOû*H†_2V^%qÓÓÕCKÔIûu¶£„xH$ã§8¥m4è9TM%#¤ŠêæûOŠF³ŽJ•„¨ßžüûÒÚ\ËR„Ñ’¥{šÊºÔOØ¡H e€3­Ï'q¬˜üS¶~#T-Án§µN.R¹Q‚Eö©›u‘7Îy'¹¨ü;¯\iúŒq—f‚V éøö÷«:¤ö·–“L­çϳ·UCÃÚMÅÚϪ*o†Å•{œÿAŽkH»«3ž¢÷®žçeâ›U²6òµÛ â><ÄêAõ#üjæ­cn#[˜ ÅÃF® ÈUcb>œžj¾¥k3xv'²šFe%¦e8ûŸa\½´³\DÄ·Í…fî)JWWGF+ÆHï#¹µ½ŒHÄFÃå J*ö‹ ¦¤“Ïp^R\ø AÒŠÎöêdëS¹…©FÀ ç<ƒYNäWGªÛ*;ªä©ù—èkžhŠ“š–uçš³ ò1UXcštnxűÖè÷K$ok. H0A¬›\i—íc 2Ä ‚­‚Aû§éP[\˜äVÎ1éV¼Ubš®ŒºŒ+º{q‡ÇRµQiJìÎ¥íxšZ5µÄšc<{8!™±ƒÉ8äŸaÍkh÷62A5µü©¾ÂáÖÎÍÛŸé\&€'𥏙Ö?àŒž¿ò®‰FH$ö«”í+•N<гОîâ6¶¸ ÇwÎÐÃÜv©´(Ý•¼hæ5*Tc.2G?•Gª[ÏiáéD°ÄžkäHß|c·^:ôë^yw«Ü¤‚8¥!#ÈPZ"®õ2¬Õ´=îX–ÊIÊ•“w—±Îo­G£\:ê ƒï\-߈'¼ÓÒ ~lr89÷«^¾¸}M¡@Ρ ŸLQ(;\ŠsŒt]OT¸ulóÀ¬[§Š–Öf¸À$Õ»ÛO&ÏÎ1“éY's¥µÕâŽâÙ".c”>b}Øç*M6y$Ž6¸—mÄ`‚Ç€qÿÖ¦\;´‡ÍŒmÏCÒ¡i#hü–„ì‘ÖµåmXÏÛSí¯r]?Q]Vù €fIʽ3W¼Q¡XZéÞar/°<Ç Ãz {zÕ]1-4ðÒ’PÙÜÿ|} bxªîYïC“a^ØÐ¢”®g)Þ™ s=»mGà{Ó® W eTÙ'|tj ƒJ³qÓÖµ9‰ »0K•#ž¸®¿ÂÚŠÿhý–Ú(ÕfT|§=È=qïé\D+æN[*œ×Ká&–]~1ndØÜ·Ýw«Tî¹®k œ©Æ×¹Þw[›—‰Dc9À\àgùʸoΖڂ¢w 9PG9?…z@ŠFµ™‚Ø )`NI漛瓬btm‘8R½:šä‚ýã4NV¼t²=*?é¶¶ð¤·, XàŠ+Ìn®¢’v(  áUGQKÚT;–_BÚÉþvú…ºivÓO×>VOAéšÊ½‰06I’¤wª·˜¸ðÕì`üÑm”¡ÿëÕÞO{i4r±e‡7vÎxý*š¼NNkNÃäš SÍÉ"ª‘´æ¡ÑŽk¡ÑoI†a˜Üm`z\Ôm h[˱ ,u¤ÙµõµÄ`"XäŒ&T.1¸zqÆ­iñ«ÜI¼’UelŽ€ôQïÖ¨ÙÝ´–¼'ØÿJët[˜ïb’µ¸ ßg#%BŒsü‡§JÒšM³ŠNTçkèpÿ´óm¡BÒ:$±¸ýÄd “’NO9¯6]å۸Š-ÁG uÆzþµì_­a¶ðtöïtäÉ€@Ë ÙÇ1ý+Òîa·xcŒ¬rv“Ž:ý+Fú#l=(ÔR”ÎvÂÙ ·”ÍÆp1ÍhøWPE»‘ü‘"LUsžqžÕ¡%Ž£i*ÙDŸ¿æNˆ {ŸéN´ðÜ66ћۣ,ÀåR=†Hæ¦qwfبFJ0¦´G§éЕ7d”¨¹?áQê—ædòÇ:T Ôš-2fùŠ Þæ²noÙ˜ŒóéRÚ½ÌãGR+áÆkG)Èü*ÕÄîÜMS“ž«‹0•¯¡\1bÄòOZ”L“Åå΂Dî Vdç<ÓpcõªÐÌÎÔô¡ ‹R^êz­dņ™A8äûWKçÎ^®võˠ±ééB6m£¶½”ZÁ”aªýãžsù×Qk¶6°¤s‡òÍù× ß}ŸVŠ\ö#ó®ªáÄŒf‘©¬êJ[_C¢ŠO[jjϨÜÝÄ%·fÚá5Õ¸“S Ay$#êMiK­¥±hâ$ûе¤Ëo}*É8zÆÇÖ”]Ѝï¢0çÐ/£”«!'ð(­;­[RŠá£d^:QUÌÁBšZ¢ÅÏ˧ßÀ06*«àà?³.›—Á?…RŽÌ'üDX›ïŸ­Wºh¢²G@Ûs÷ªÂž´QLÆæ˜Å¢u'*Tñ^œ³=Ÿ…,šÜˆšH#,T ’TdÑE]-ÙɉÝeãy¤k}<3’àÏsŠÌ¸%®áˆóSòöêh¢¯©Ñ‡þõý ü=,Ÿd¸Mçhlš¹xÍäÂÙ;ƒh¢²êoWa·–ƒqÀ¨XÍE?hÊ_ ^RsU¤$ñž”Q[#••É$žÕc·­UÊ“1ë.üæ3ŸQE"ZÈ‘r¸­iç–O-^F Ž™¢Š&TŒ œ±ÍiØ1Y”ƒŠ(¨f:Õ&Ey3ÔŠ(¢‘¡ÿÙÿÛC  !"$"$ÿÛCÿÀY!ÿÄ ÿÄI!1AQ"aq2‘¡#B±3RbÁÑðSUr‚’áñ$%T“c”¢²ÂÒ£³ÿÄÿÄ;!1A"Q2aq±ð‘¡ÁÑ#3Báñ$Rbr%C²ÿÚ ?ý“ ‰4I,lR<Á¯UJ•qïo=u6ž¯ÓÚdÞŒ¹¹‘O áß_žc”Íyñä’x¡b[æä=êñ¯yú#ØG½¬'¨uv»Œ[+@ójëôÖnß!IÏ|¬•(F Hú›ªô^ø5+­“˜ZXá wHx¶xó5ÝC]šúãJ½ê U÷‹K‰JÜGtÁn·`q’`¯ úÐÝÚl/ÂΟĻ@Ã}sGÉcå. ã6ø?ChRÞi0ÝMÒxÆN(ê Tè!*U•*ø¾¾Ô!*T!*T!*T!*T!*T!*T!*T!*T!*T!*T!*T!ͽƒõbkÝ9î2˺æÔ dòVºMOxL±Û6‰AkÚ„zVw¨É°D_§γ'I³ [£òVê3êÚ½ÅåË––g,ÇëN}ôcuGSÆ’)÷H’wƒËïDÑ¥o·#Zž#õ„G ) J4Pª£°½Õ7nØ¡*U•Ͻ²tµ†©¥I¯O$«scF °ÝØø¶Í:1‘\Z9ýöu¤û'µœjmBRæÏjìVÉø³ŒöAÇÎû5ÒãÔz¶ÂÖT&7“2q•‘ùfšU½ÒètGé«;x­-b¶vÅAè[I7nÆIR¨„©P„>U*•*•*•*•*•*•*•*•*•*•*•*üGì—«îzc^¶½‰E H¹á—ÌWìÝV³Öô˜5+ DL¹<ƒæΪ.ãðÕF‡×?öë¨û§H­¢¶êPû£“úⱓÙ‰\ÑùªáwÎG©¯ÓÃt´~ІãhñïOŠíŽqØóëFÄëû‚êz£{R²,J•JËûS} ~?¬û‡øV¡í#3öYÍ}£Kàû:éküVæVP1üÍQì2×Å똎 …ßóþúk¼¾ð+·Üwš”˜Á*T!*T!•J„%J„%J„%J„%J„%J„%J„%J„%J„%J„%J„%J„?štå6×aö7í2~”»6÷Aî4ù¿¤ˆ6 Ÿëé<Ñܨîð{UéY­¼e’è62ÅÏÓ9År_i_/R^c²ò"Œÿ“m±|8œ]³¥Z›ÍBT~7 ùšýy¤Z%Ž—kgÂàû búãØV™Òý7Ò¢ùî¡‹ñq,¤¿Ù_—κÂÍF² kciÏ|ÓYgºVº¶íž·§õ—‚Z›—vÝÃ>™¡û_•Ô20e=ˆ5}®ií¦$»¿Ðl[$M>ÖùQDÃí£=gÙ^“:'ì¹}Í‘™ŽðdÜ0 'ËË:Úè²ô[M?x0…€À'ε<ªq®äQ¦R‚l•*ó,‰m$Œd“ØR­wUŠ E½Â‰¼0èÀƒ‘‘ýÕM¤n¶¼zk¨áÔ˜A)`1Ÿ&4öi¡…wK" lqUZ²òcq•É{n“CpZS…Ç"ˆ‘ÍhÃT|f ¥˜à’j+2;T(û^CŒ¶p5x{›t]Í<`c<°íU‹û2¥½æ= ã ñUhº`—í„RÏóŠ¢ë¨mÖ<À7¿Éâ«q(]'PNѲ*’yÀíÍ|—Vžwܯϖ8Ï•VãN u7ñ1ñ ‘ßHÒÂK‚†3ÜsY’¢’mpRo¥Ö<`‘ŸQ%ÞíçyÚ£$çµSEªK(!”´lváÎ|ÿ* êåGiœ»“’þgÏò­sÑU܄׺‚ÜÛº0‘D#þAôùdóI.oBÆâvŒãŸcŸÎ–þÛ¼ô‹õ¡ìµhbnQ{_c„¤yõ«Ò®Ô­#Žóöª\þw°ÊçžÆ§¼×©ÏŒ7SëRàA ­Ý¬›€rÑ+.*IÆ;sTi=u©éÒÅÊ#C2´dyaæxç¿­j)Q¶ò'Ê4íØ! `ѱ2dóâ±YÔâû©:fid2ÿÞßjÖ%R²²JUMõþЉºX¯‘û°sôçšùuíFˆ H®Ÿrîü`~t*a7û™eÿ[iqØÊй÷´í ©`Fyï^%ë*NÁ4Òd¥vòr@çò©N'nŠ[¯ì• 6“‚œ2?Ÿåó¡­ý F’(¸µsÆ]G9'>¾B²ýÁaúžµ¼¶dð#°iQÔ†Ü{ŒöÏŠÄ&©$s•ˆ\à)ãó¡ät1§‹i¦Z/Ú+ðör“Ÿ‹#Ž|ûv¯zæ·#ÇãvvÛ½Kg8¡©p|2ø5«‹x¡»ŠGR’†Ë®AÀ$§z÷TêÆâVIÚ=ʨ¨ÀìPG çžþtÄ]¡ §¹Œî:›Sd–;–¬ˆâ¹ãóúK~XÛÏzëàœº’>œ}ÅFšêD«« ›ªõ9"v7q’0¼xªí5 ÛÖtKm.ͼc¿$’~UJ6èÓÛËK€UÕ÷:+:"±Ú›9ùý*Ú²8hüB6ç•<GéZÙJÌîçkA0Îín¦RsÇíçB5Ìh®Þ)ÝËq€{šÅù#P‹kkî\o6ÇáÆËæç°ùgíÞ½Å3Ë#ÇQo¯×µUS]Z²Ñu3€Ø®0_=¸Å]fÆIHÆ:òÇ¿ùôªI¾œ•M V½Þƒc–‘Yƒƒ€¿"ò²;(•Ä<ˆ5;”âä’ìVÓºmFØÙ?ˆ§4&¢’ˆãŸÃ“cø”úw'ó©Ûà’UpbE½ŽÞU–O‡“Aãϸü¨m†ý7¼E0äe#ädOåZŠra$ÖROÓšÚÖ)9eq·àq‚N­þˆê¿êÿaþºÚ’É—tÛCóòF‰ø§AE[%¬’*µäh¤à’;W/øqï¿åæ—9ŽÆ€Í$$ ’"F%•5Ñ4¯w³¶0AÄÛBo[9àŒñåÏ•7¦žõhó¾ÒäÑåõS\üÃM,‚;„ § Ò$JËê@#Ž;çü›¤–æIÊI#¶ÔcÎàyÜ00F8§cès%6ý¢¤™£“hŠPâp;ñ÷'üh”ðÒÖ&wUbø¯ ÷É‚9ó©Ð´©QrJi j¥Ü0¸Èàý¾â½'¾ZÆóI³iÜK8ÀqÛ$s»·–j›mQRä+ö‹û•Ì- IrËñ—„=N|é^·<¯¬iž**º(;;Œœdÿ:.'Ô_S\RêÐÊ ©XâF)' ñct¶¹a±VÚ]Aç»X1œ‘ÁùÕ­ÅÃØ JVïK©r5·‚hºœ£NÄ7EÝÉãêïÖ‹¶IÙ®nc• dœŽ3¸LöíNc|Éã{ï°\·×lÌ •Áwgß“ñ>qŠ‚ï$Å7É!'$vÆÏæ?CQyØVÜê*=ù<5ÒŤ˳t’2FÌ•;¸Ídþ"5PKr žç< Ÿ*ҥȻ”¤ßF¡}·´è±Ïå˜ÉùñçŒ b…‚ö!g,ï(•ƒÉ%›¹? ­7tF¶õêk&‚éÌÁpí·hFÚ;zœƒÏÒ„‘í-aoáÌÇiCæüó“ŽÞU—(¦’"‹’¶{¬-Èr 1VíåþqE+ÊöBh6ä`ÀIæ£-ô>t8'9$J0ÆåÜCÖgk•Ý @ᜌr[¿ÖÓµ5Š3éÜÈçúVæÝRQâØ«Þû”pp<óÉæÒêh ÒÂT°ŒÆÇ–J®‹r«Ø}è²Ñç{wG§_„À?_/ÊšMk¨Þ%¸‘‹xPTXŸ>ß—•kvÃk¨Êžw8tnšdT2#âÚ¿Ë'O*sg¥[DJ¤#pEåþ#ÜùŸ ­wà›—,)-ÔI.Glcò¯¾õ«h¤ÏÅq$XüúÓ6Ö)$Û†JàÛ>ß P“èt~˜Ó$±nln<(,R Ë¡¦—p«F÷–Sä, TjŒwõ'“éÇ—jèh$”[~gû]çÂ1þÕd¶ÔQd® „i?vBò0xíǨÈvÉoqrBŸˆßëMzœEœÈÞG è)UÜn]„½7yÓ.4ë´ÂJÙ‚n„àù“ÙqœúPO¨N,šÞ­';‚©Úä3 þéûcçMáæ<ˆf{f_§^?»Éã©GR^~0Pñ•íÆ§ži±Ñ.m„W7“´Û—0X1 œy3ó£E-õ#[§;ãÒÊ,¯µ’ÒØ ‘¢Éþ!ø” äzœP—WÑ"Ƽ²J~S&@ŽãüñçU“ñ©;pìa}k›{Tb ud9 wy€xó¯e;îFwÚ01Øm9ùò+3tè‘Iò‹l¯ ÷`Vr3.N[v=ûzj‹ËÛi-.®·øÒܬÊg$ ƒý‘üê¢ÂG•/¯y.劶’(6F¶Ñ«)#2¹á˜üƒ+PÕg’Ü^*ÇŠNÔA…\§ŽÃ yÕÍ6ü=Åc=¼K±e­ÝÃC+­¬ò<ãº'n88ÀçV…¥îãÇŒBgt]®ÙÎ aNÕµï#Ê“¥ÐkaÓŒª—2ܾdþà/™õ§6ºœR±\rÌsSàɾ¡"Ù#·$\Œ ·j«Æ1œ¿÷ÒFy_]üÅ|Ynd%€5''æÕ¤P š¥¢Ï8I Ý¿¢Bþ^£÷ ÿnÁþª_ù“ÿê­’(üyûE@j>Õu®©p²ŒAù àm>Úõ|øN›Ðz¼·ÖíipP‚¹‡–îá¡‚FÁI+>ãùÁíçNh]ZG™ûW‰Jxò>ëä2‘VÞd†êØÀ™O~.qÈ=û`UZl×’ï¸E!Q|4$8ãœcóÏnýéú·G‹°å%Ô³Qž/tYá‡ÇVk ù$ãÜsë*_*žâ [ !øFO,Oõ5¥}B÷m~¯§Þ4øïo¼e¼@Uˆ Þƒ¤ žOqçõ¡ô›ycԛøWšR X÷œ¶r[È ’}kRŠM$ ÷/’ì…f·€¸I¼2 #aÇÎ0G×·ÐI¢õ$ï:C2Eý#| 1#ž~f‰ƒûjŸôÓ\Œ¦¾ž8e31#³F°Œ®íÌÈ}êÌÊ–\í+1Úw)¦x9óÉ=Ç÷R®ÛmcPŠ÷¶¾ñ™„ÒF|dÚI=†îØ|ëÔ¯pщç½yL~– ñ Ç`zŠM**Xâ¥kŸ¯Üº{Åš(ÑÖ(fÛ°}¥Õvç"o¥Oì,®!šà#ˆEŽL—¸BË€žœdäžÙïÍmG”ÊN55ß·åþJ^kËÍ âñ!F‚Y0 Ù, 7 y€Tœüènž’î ·:È»Ÿi“oÛó¥óBüI‡Á7 „Õ#a ¢Z¾«q+"”—æGʹ·Yk¬&‘̬I>´ „ñ?pMjò\é÷>1 üˆÏ>_Zy7*ñû¨ˆY$$Œƒë“õÁ4Æá¦+›–ë±D> ’2Ü\#K&ì4ÎI$ƒø³úý>µ]ÄÓ>í¬Ë”8\^{gþ‡>Tu+äVqq{;Û±¶µºÔZÞØ§‡ 9§ËŸúU+©§ƒHã 3BÙaÉî>u†Ô| u †3žéÅô·õøÞñfÑdž)].#Î7*ç>?äQz|Sêpˆ’ïncØ IÉ9óç4Hã‹Û÷ßè-üD¡’Ú±–…Ó’Îe½I}ا,ð6?G—Í<Òô>”´¶V–ææe^J+xy#¶G9¤õ:……ñÜëú7A“Y_Úþè;NÓ´­sâŠÚHRÔøJÂRKƒÏ9§–úŒv®âÚ-Ê FOp¢éò¼R9þ”Ó­>ªxîëöû¤ˆT ÞCä–u"Kø#BT7䎑Îl>"<(ö?ÿ&½‰£Q#;ª¨Ç$àvª,Ys¬YGcñN¼®2?çØ~užÕ:ãK¶q‹¸ÖÎ3¸öþÎGŸ­Fø"M™­WÚe ”¼ u+·ÿä|¾U”Ô}¢êŽ·‚Þ3äòÇݳú §"é#+®õ^½¨‚·Z¥Ë¡þä/ä8¬ï¼Ü¯“þcUf½míc|™Å]Öhà º¸vÙöÚÅŒÙt>­kÒE€¹8æœjm}gqz–Ê4¿†P@,ß‹ù|éªm3Ï}¬†ý>,ìëòÿÔ_øQ¨M½ã[´€’1+ooÄ=Hý~UT:í¼JQ%µ `€?9#×?Ÿ——NR’~iž ñÅxÝ?pÉq} ¢NÆîÒ$ !#â ÛæÖì™WK<æ-¡¸cÜ“Ürr9óô¢bÕ¡šÏæg³1Š[Ãl–Áçÿ‘KxݰòwTÄV×Èë¡ ÉGpT8/ñ/øŒ€H9?J&ÆIf»XdºÃ*”îÜŠAlgÔüš¾¼ FjµõþÃnîtõÛØÁ-Èq±ÞOݨ~û“Ï 21ž{Õ-ÒèïðÎÂ9„‰ýúóÈŸçnQIÊ\>Ñt2[Ú«¼ÒïiHJ"•Âl;@b?ÏCWǸ£x±@ìËm,On@$~•I.[—6I? ¶l:¯PýŸ Úé«)&@bOvîZãE|ÒJç$óHK™ÑÓÃ~¯sîk}ŸþÍ8JìºÅÆ!,vW 0 rOÈzŠÖÙØj3[¬#ĶnÖ‘¾„.ՈɃåùšo1hC&G ¡èZáˆ[ÃiINÿˆãƒ·8É$|_.jÛ¾™Ö_H·¶im¢Š=ÃÄÁrK9l‘Àã }-$-›#ÈÙ-úJæt í@ÜÁ2©!LGz±#9Ï?h­}Ÿé®×ŽYÄnL’Cc9ÏÒ­ËÜJI5c»>™Ò¬åskg,UKLç–Îiµœ T($(Ç;MS·Ô¢å†(`UU<`vG˺ÎÙZÄÐFXFàHŸCåö9Íôœ/ ~Lö?csV²xŸ÷/Í?öiýš\[§N<²:!i‰%›¹Î?œÞuii ¸Ô-£8aËüÍGÆœ/MÛô†oý˜ƒQöÓ6Ò/þ/ÆUbqç±õÅeu¿jÖ2ß,ÖVŒv¦Ðd?^p>¾´Îê9n>biý¢ê÷*¨—„…Uvþ§ŸÖ–ÜõV¹/{·…NûŽj¤» nu)æb×2K#2ù åº‹Ì0ª,k˜³Þƒšx³øª©”èå[nâ¤PœzÕ]–¢,Kf?‰²hˆ­ÔyWÈûD0sÈï@xíîÑŽÌgκ¹w|ºu´šm¢H®A’bÀ€+cýßNriœs*îrþÓâSô\¿ñiþb`m.–ÑîìVâæ4@’–?„– œÈïÍ6µµ´kW3i‹ãr •ÈÎsǾ yšì¥*UÁò]»ò·|[YKvd³†ÒKp 6ÿ AÎ9?AÀïz† øb_v†é¤™q‚Ê?}xzqåY©]´t'’­Æ/§#h‘o/$šóF’±.ÔŠ` |¹VsæI-¥6–ÚMô¯ŸÜÏ-Œ‰°c€{ñóäžõy#ÂpûÊÅ–1”½kéÂüê k ì3LÒi:Œq†‘ Ž w?q´§ðã½ á^ÜëŒV–ÒÍ'»‘ `»—<}@åš$!Q•wB“Ê¥8¹uOòÓúW¨#‘äŠÂUXÉp<ÿl>]¾tòçuµÑ®l_It𥊂€žqŒã;@Ï¡ùf„“H2É/±îË¢õ´–YÆ2‰d‘Hn0sÇ—­}‹ÙΤbUS,gqœ¯ŸÁÇ—oZ­Ší³SÔ'¾¸.¼öw®^)ݪ[NÖß>p~DsÁòó«§öe=À¹3êG,­âÌc‡'ž#ŒžÔG%BÛ¥È&§ÐpXjÐ[¥ä²-ÊÊUpÈÏl“ùw­$=¥Û4O<²Ë S¯äŒ1ÎqëXuÖ‹ŒðÎcíêæMRà"9 ĨB¹õÕ¬ÌKȤ|«”¥ãmžGÀ‘»öah5ܩݬXñäH?ÿ™¯Ð© ^ܪÙ|`íÓøy‰ÄÕ§¬·C&ÅÙª ù ¯žÞ;šR» ñœü&Š-|™{ÝwGƒV–kFÒ5ŒFy€îqÏù⮽öÒ0£ÿçÈÆ@ØPÜŽ>Xò©hŠ-Šný¯täež¹›*Ã~ÿãI®=µAQ%¶3´`½Àã—#kî$Ô}±k—ÖÞÆÚs“¿ãòÇÊ–ÙuN£Ô72. ÊÏf=‹ÙsÈüÏëHëîX$ŽÿÙ™¬^“Çïµø¡'RÞêP\-¼W“æàªäävûRt‰å9–iêjô²¬1ø úqò¿öa o9#?SW¢F¸Â¯åFsg+ibËäUÇ©¨÷vÊ9™OÐæ¢¶J’úÔðwxªV¤1t|ŽÀñšÚÜZ@¤<¥ö# gŒvÿ?ÝT5œÓ´e3µÛàñWº,vS{ïrÂáÙ°¨@ÈU^ímé7æk-×C{WpO2ºo´Ç|X,|ª¹å³eÞ%×sÇE–x¶{es4<.9aéÿZùûCLYöµÝ²£¼ó¨C䎘…ní‰@Oãxó®[ì¿S³ƒ®z‚êòx¡YÆ­#…,OŸÒ‹¤OÚ‰Ò®ºŸ¦âYwëšX!Þ£ÉïóùÐÓõ§I¨ž ÓFSüB÷ççBm¦Q?´Œ‰· ±|/e”ûL訞0u¸ ƒµXã· ª²ö²“íW¢ÑÀý¦Ì»‰%`úÿf‡¸ö¿ÑÈdÙ5䛼ÖÜöÀõÅKE¨™í_ÚÖ‡.¦.mmïØ,[1(ÏÆ͸àb¼^ûj²6ïh7N`“:¯€úU¹&‹Ž7fV×ç»H綈"e™ žÂ³³Iq!ËÊÙ>œWoÄÑõÏEú;=<'\´üG=?¬êzµÆ¥a?ïmÀd.õ¾àö8b>õæOjg6SöÛB½öÇŸ|SÚ7àÇ}«Ä–²4ºÅ|Ø ïZõÇ7=E~riŠçJZu nÀyu ¤ÏõåcýôÓn1E"êfÌÄÜç4=åühË´¤ÀŸ.HªV_(¢KèÈÊ®wHe6&çÞv°8ðþõ¢Ò²ƒspeÜÃåZ>ŒÔÒÓR…fV2\+DÀäc'Ô ¡'ŽT=è©8k1IÿܾeÝm5Ôš­´pĸXHÈãq$Ÿ¦i"\ÝmHç°cAÒSÃ9éìMzG*÷þÇÛ…¹ØC Bp ãžõy¶ÝlÒ Ì6ÎsŒSTq©w*²·’w‚¿Aõ9ÁýéÂX¡†B#‘Œy'àïÁ8ý1÷ªwfÔcµ°á£B-ÁH¥’Q"…DlãÓü÷¯i‘Ã,Ö’7ï1ð°8óǼgíVŸ†Í¬I´zµ±Äf-Ó,¹ñpVO }³C%Œ¶·6Ê÷#³e@‹(ÿ§9òɬÅðØX`O*ŽGµw~âÉ­çŠí}Ñ "J²1ä}1ŸZùáj¿ìí+þJÓ¸:}MäÊr{%áíï÷˜¥Q‡56ÜþUÅ>²Ñî?„Œfµ½~ÐΡ؄? ÷L.´g:ÃL¼Óu{¤W™íÛã€àAòïëÅ%Y. „L»q–-ð×sMøÓ>;é-+Ój²còl±çxÚ2.euã~øÂãé‚s^ãäÉ Ê«!›œãùQ:ˆ$ÙgíJ:¿ÀÅݸ'>]Èâ«k‹ßvR®A99óïš”‘¯W&è&Êþùï­mŸl…™B““ÆiÏU]Í̦4âÜîŸ÷£E/VÅ¥²Å–y µÄ[b#'Ãóãʼ<óI,¾êÒmQ»A PË‹G«ƒ$s,È^@¹\}ù¯V²Ý`‘®à !‡lûñQ®IÚ³ÃjWM†VyÀ{þtL7“›]òJRFm±¯‚0Äc9;²8>•R)[|'¸½[¶†9K丈cïüë͵ÄÒ0y¥Ÿ“‚¨«œyxÇ"²Ò£I3Q¦x²è‘™2X窹TÇ'å\\ª²3쾉“É Å'ä¿.l˧jV£#ĵbû¿÷V-lå—˜‹C‡>œñýÿ•;¢’Iž;í~ëñÉwUùÿ’Ù,HC<ÙŽ2ÇaÎw@?~h…ÓÒ;–ŠFU]ªÊsÁÏl>NÐÓ½Qä6í³å½—Š— ãfUƒ–äp¯?¥º>écŠXψÄ€p3ÜíJ©Z. 2¦t’ÝüQÞ#´¨QøNH$ùÿÚ«§ÙTCp¬²¹ {s»Œž<€ú‘T™¬˜ý[iö.¾Òc²‚ÝLž%ÔÌÛbL2˜ùÉàäÃzÎ ¥Ö"*D±Î$q#wïõéZË‹o…÷EáÈ•N=S_¡ê¨Ýï­BBÛ”³–@õõ¡c´ibg†Ð/8RTÝ,×7Gýóõgoí/:ü›{×ɵ+‹SVkËÈÔÆa »ÿ¦s_$´àH£-,¯¸¨Ú7c²}8¿¥=)[¾ÇqF“O‚=1íZêÑá·àøx<‚3Á<éùÕMia ¶d&Ïq\o OýýkQÚ)Etê ^ÇîcðåD¸xÜ;#ãR£'ïJ:ŽdymãŒlÅʨ”¦Ó2Hî;“Wáø—ñà ä/o?ˆ‘¹(@$*AçíUê<÷rûÔM¹Ýü€ªqÈóü9ÇÛʲ¥±ð3’ *›kµþÿ2ë‹[…3]=í¼®1XЄ,¥v¾î1Ž9%«ÞûÏõößý;ÿüÑ2JW»ÌB;v*³—îÂרì+ŠÏ±Iž•˜a4‘Ê1ÎjìÙÞu›K©¡ñ$µîAþŸåYJÂ{ËfšÅ Š=Ñ”Ë<ÀÇ~Ø®ž‰¹B—cÀýªÓ¨kžF½¥ÇÈ;Ül›J`Ss$káF‹Ùتå‰òÁcŠ=e°º†HR&‰™±´¨bTy|©Î5êí:\p ƒ,ö±²º¢¡øyïœò|ÿ„ѲYÛ­£ZKjñÎ̦ ²#\~ç ôÁ¬NåÑ÷ÿfe)®!Ããôù„éZ}´:•±tXöÞ;y> ŒþgÒ¼êV¯w³Fñ†Šá°[ p<¾|úSI§‰Ê.9b»¡]ÞœMɸM²±ìo‹s‘õ š.ÛOŽÈ¹Hõk—É6Å5ܲßDŽßÞd÷€Ë±[˜Û!³éü$|ù¢?di·s@O3DÈž!ìð›!\¸öÊò;çÈÖº«ÖÉ8”êöQi¢ê;h}ácKrIVóÆ>@ýñK¬#[Ä’EPøeA(p í×üŠÅw°Ö¢ÔRüM&™mqo¢í¹ÆòÀœ`ãá¡¥5ÈÔÿUŸUû:ïѸ¯ßóeú3„Ôbnyl˜=èXlímï$²œ´Rƒ_*6òÑÄû]ŠáŠ~MþŸ°Æk;[›˜-žK†oÊá£ÚâN@yÕwZ\’YÅnŒÎèÛTàUYaÏÅñd~TüSn‘âØ«}ÂúIk™ì£±Ekƒ#I´œŠ…˜’{áAÇlÕ3Exub(X²ÜníŠäÉÈÉòçùVœÛúó3…©©ÚéÏæ.¼TZ4V 3Ü̬ÎË´ŒÜ{ŒŒ“Š'P–Òò_y–Hí#†ɱ9–\‚TóÏ ò=<ªî2á™ñcɹt(²ŽMRÑÂ…¡a³`Ú\㟑ÿ>­!ŠD» &ÕŒD7 m9#±þ¿:Mô7»}  ’ßÄ–MQ¾2-ä³Ü`öòç|~•{-Y§)ì¾ ˪Í“vшã•_÷«1ØããëI¿ÒŸþ|ßûCük;e%À¶gR¦ŒþÂ{×¥_µrYõý¼ž‚ªòÍ•zY”~ªDµWÑ·-p$²2YT®G$|ê¯À¸h#ŠfÙº)mž"ã•àyŽãϷʟк“Vyµpõ‘Å&¼þ¾¼&1rDÓ$ *¬I$Ž2 ÿ‹ô¯®&k†‚ÒE!<ŸÂ €N|Ï–k ù³Ã¹¸´ŸOö†ä ÄøC$„l!‡b#ŽýëÍÏŠtu¶00Î$2¦7mÁòÉÎGqJµJÌNRœ¹ Ð$¹²¸7`@‹p &9@b‡8ÃcÏx¥–Æ2T:‡f¸b¨FAøHϯŸò¦W8Ä¥Ô%îé€ÝZºD¢ mìDÜÆBÊÅŽ@àà‚3WZL±i7PCmÛN±0˜º©FPK.<òÄ}(.)p9\—ŸëÁeúÁÖÖë"o@š0F"b¹#>\íûäsÍgÖ+õ2´f0òŸÃ.Å—³àù÷õÍa(¹;c„Ôcá«çî=øò:—*¬­ƒ|!ä1Ž0h«aqjdK[·î"U—Â`ËŒöÆãŸ¿§:ß¶6˜¼°¹ä¦»"—…¢d—.Ï;|û¼I£†=j²=:E·†Kx®Z&M§dx#9ïž> Pz$—qˆ«Ë¢-„/ìÙ`&añ.1Àã·8íÿLRɉ簮^¥VV§ýž–ïGc›(I R«†Á4ÿX‚›¨® hüIŠHK¶ÜåFFG=Çëò­é8É÷ý§ÆòiR_÷/“,Ðü{Û{•½¹h¯ýÙäŽâVÎ$ï‚IÎH'·å@ÙK3ÜKâÜE¦9È ’w}x>y=ë£M«¾§€¸â üú–Á5¾‘Õ:|º•Ìö±,,¾å)2ñd¨+ÎrØî<¹â½ßO ¬/¶kƒ4£òägâ>GâÏæ{÷<ÞÈÒ G.Ké}_Þ÷Yï\~ð>Z8¼PÅc%¾ÛóÏj¾­dsc,ˆ^oŠ!»!ƒ´vþ¯~qK>¶OŽìk%Ž¿…ª–Á³ÌjOÈqØ‚OüTf™§uUÔ­îÔŸ ן6©U8É Ÿ"N+Q—.__] ÉŠPQóiý|ÀúÏMº‚ú{`¼¬Å0½ˆÏ—Ê„¿Ž[Ý256óÚ[Û‚Ì3(ñdÒ—ŒÊýÃ2É…ƺ×";x¬àÓæÓg–i'‚uqª¾àFw.KùA­u¤§èÐ[Ms-äEiN#l±|±ƒ.;Œ}©¹fQ¯‡"Zm#›¤ùo}€ˆXÍfñUY€ÂnÈ r¹=¹#ïWÃýÆè¶±Iq„³å‹*…P¶Ó»“Ž(QiÍÅtaqÆRë_3å·ìø'°¶ŒEmqwûâñ»8cƒ“ÏlÜwšß[{üö7SI#xåUŽâ[ƒúŒP²)IoÒÏ^Lw~ûþú¦«3u ´RGmq#ˆþîà{ðGò¯†ï-ïn'¸pƒÎÅP¨Uqœœ¶—J$­I&) ž\WO3Þ±¡ÜYÇp5²ÊÇÂ{vÆåE\‚qžïÒ¹ç¹KþÌûµµ âN˜ž¯~ª{ ø(.ð¯ƒÄîIÍq³¶Ùéc,Ij±Us€»R"ˆÿ¦ ½ŽV ŠrN+A«Con›lY$i¦Æ d¦8ù oE=¹«³ƒö«Oë4QÖ×`0éoy¬ZCrd`cI‰¶ð2Ücžäc&Šº·ÓÊ_öæ+‘)Xc„«†‘æ3ÛòäWZ (Ý3rð_¾þ¿Ä7 · læ(c Þ!Æð{qŸ‡¸wǦid¾ºž^,é¸äc¹ÉàvùUsÔa½ÕŒmHåx¥PË–ØÙ;ر†ád÷r›·`¶ÝÇ ùç#ä3X”z¶¨n9¨'¹.‡ÉíbG7³‘%‹xðÉ@ÊÜ7]»_*&ãÝt¹}ÔÙÁ$1£“Ѱõ²®¿þ™L©q ÖSãíM.o´ÉúzÕ¥ß ´Sü$| ‚£Ó¸<üèšh¸dMôèr½1é|:­4£…Ô•5kÉ‹5­MmçhôÈîvJªþÿHT@ôž3çÅšv£ymå‰HÀ$ƒ€KõÜ9Õõ®£j ³Á%,òQîØÆ *ÞM˘Æ7òÃríSÁ'¶ïæ3Ï4jY^[ê’n%¶ˆ%Ä ;e—Ðî?qId•òζ›öErºü ö¯ãËg$“͹ÛÄ€ÅâE‚ ìxŒ÷ŽÔâ×ÿ8·²Ñ4ýmBÁ%‰]ÑQÛ9bXœ0¥FIÎ)ˆÊÛ¥v-8%Š7*§ÓáÜ2ÃGÒ#Kƒw<’O!ÃCäSßn|øâkzÍQnà¹gß RXþõ0ïõÁâj- ³Üå¹õéùQ|¸xKK=Ìí½™å—ñXœ÷ùѶ’Ýj hÓÕ§Sˆ›ò˹ÎHÇËÌñCƒß‘ûÊ”6$š´—ȳXÑítÛ»)`šE’í˜È£àwÉ<þ¼÷¤:®©5½ÄV{ä•í›Å… aÕÆF7ÜŽ#±ÇÔ¹c¶U}ŠÓÉÊ;’韺ªÍwoãiöñÁ<Ø”"ŽwçÏÙíÚ¾am”‹~». ß³iØ ºãŒ ݾ•!…‚”[ÈÓì¯äe/´å‚é¯mî·´äx.#UEÀà/¥nú‡§tôMB¿›Ý¯ïV«›Â Ë•ÉÚ|ðUøô©Ž|·$ Q—±«èwéŒQ+X‹päCr$ø“…ÁîN<êþ£±|ö/¼-°pNìàN?:¼‰FMEðã{¡â\”Þéš‚ZÜ4w¨ä û î’@;¨cÜçW~ÐÖÿôrÿì¿øRÙÒtâÙ¼^Ü‘ÏN2Ú¬XH¤!ιìúæÐyõ (N2°òZjsœ[[×úÌ(Øð9rú]¦ðénæCÞš±Ý#ßNîsøAÀ®‹w¤ZÍuj‹ˆã˜ÈTÈ!OׂM7‹VEêÏ­ô†}KÝ7÷»í9-:‘íæ½{èÒ_‚mþUHpOÛÇ?Æ>´ÂX¡š8á†Î/„‰W-–a¸œ¶@ïÈçŠè)m‡ Î?.jÝ'×ñN€5Ûqc{RGgs+*Q„£k ;x$ñëÇ­Z< Y`”̦'È;Ž …aåœñ´dz(WOkÍø¤¾~h4][ßÚ^Ëj‹hK>Ìm\ ‚yçw­dl.Ê]Á`*ÑÁ%³ƒŸ>ÿ•3OÕr «ø¥\ñúŽnãºâš6+Åâh¾”#žÇÆH§w\Ë|·wNÉ"|p;s¾Xã.˜ùª¸ùÖ|[ÆâÛø íí ·ŒAâg|•ÇÆÄ1Æ>`äçÐåV:pašì´ð©,(J¹9ߞرïC|š†Gíû…ëöàA"ÚïX 4‹º"ç¼€}8lqK#h¤‰„«¼c Ìvˆþ8+·¹ @Ï™ÇÌ^×TÉë"ço–[Ôö7éñ<Ӥܿ(¢-ÊŒ±ñ?6œ¸Ûß+Atª°¸ˆÈ&ß-Ûnå X 1úš«´¨Î8)Ü—N¦§¥ôÛK˜¢–âi#µWØí¿ Ü–ì9íåÇny5użjíˆÀ_¦)=B[ü#¸³dÉ›¶%Ô£ aÀýi…Œ+sÓ’ÛÛÆ­,m¸©Ððß^*GŠ1–û o-!¹½’qû¹cVïÜÄ‚Nàxaùùv«½äÅ´Vª‚vºŒË ¡Br ~¿/Ïšfâùî0“¤ú+øü~ê,´i#ÕV×V‚(å”Û¦ñàíÀ_ž>Ô6“sª[ÝǪ[Ësî¨èP–9Û–Èïß÷$rqšЧÖÇáá–è·N+ó4ÎÖr]žÍË4*ïžqö ÿœR½ ùô¤[Û˜&šíeŽ U‡(ë·spr—$V0ä’•®k‘|«|V7Ý•Ý6«i*x& û ¨Îãᘹ;FAÉó‘Å4‚Þ+¹Lr‘*¸àÀª”·x‰4ª¢/Ÿú†4‡V—Fy!’VˆÊ &x$y,|{³Ó­î¤1N Í 8…‹`®ApNäÕÆ>«7 óMäÄœ|…÷ÓÜÜG¥ÂÅ6YÏîÊpØ …‰£’<‡nõñ´˜­,çÔå ï72‡‰JîÂóÆNN{Œ`ùsÍLÍâÙI'Vøøõü¾g†¼›\÷ˆEg:“$ðÊNs»™«n !¬á¥ÆŠŸ»bËâð>€<úÖVFÕ"fƱ6ä«réò4}!¦tôÜ_ê²Ýj7ò¤fÆ3 `°Èl‘‘ŽÜÙçÏ×¶ëć­¢t†7{kDðƒ€v’ÇŸ4-.IdY•¿Ö…´ñÝ™ñÒ/ôÁ¼Z '!dB¯»°0<|øÅ$Ôæ»šæçi‰e‚V!¥@à’‡nü.7»–bkkà u•{C-Ò4r£x~þgÓ‘Sý/»ÿÒÇÿ3KžKÛiu µÀ[GÈPÉõÛ½™•?¨¦‡NäzŸIú~Y¡³Ô&ÞÊÿ + ½¸Ç¥0Ùåë»ÒæU‘Hlk¨tõÌw¶*3KƤ+ŽJ|¡GUXÛû«êÖ&YÖ4'šÞÿVÕš{-ñ‰0qð†üG[sÏ ¢£Ša¢#ÁnÓ,×Qx.ÑŸ…ü^S>¸o/!LÂ6•eðÊI¾~¿j ÆÑo$ŠL‡FñveB“‚¨8Çr3éåVôÕŒSZ¢Ehn.%F•ƒ¸Qµ ÿOÚ‰“,½J~ð+cžRŸhßìsuiw4ó2*yÑÃFvŒs‚@çÏwÇNÖ!¼¾‚âÑmâ´†`¬Œ˜ÚƒácñmÄsØŸÏt÷>BÂQõ?‹âPöË2î»U;T‡ØpŒòßÃôûâ…iu -Q"ÓQnò:\$G"Â±ïø™KŒ;zV"è$ÝEy_Ò.»Ô­'è˜$–ùšîÊI"&W;å@Äóæ@ÀP>xùÔ›¥îu6ÕÔScÏ#$ršÈ?´Nþø!¹,òqÏ@0…ÍíëÛàùýµÍî§š•À6’2¡VNöÀîÏ›úÑPÁso§·„-ÊÉ)I3¸‡ŽW““Ú±5\¥ÀLx·bظôLŒ²ÝA ËF˜ÊçÉÿ?z:ý0½+›ÛÃUHE¨Å‘>ugMÉ$ÛCa[†Ç΢è^@~¸œr­ÝºÚ›vUV©GÜ;{;“zÒý~ÈÚë;/îxQöÜû©* ¹Âäž{‘ëZ–JËy«ü+÷3‹jƒo—Ï׿_}©]\õ„:KXÍî:}æyŠx‚(Ï9V-ø±ó4vtmîîï4ÔcoH³™Gˆ±4‹Ÿ„>Å@žO—îm«%.ºw’›|&_^‡dñºÈ$‰˜<Œ(,qŽ<¾Ô2_‹M!¬Ö쯎 W’0 6Á¯óò4„fá-Ñê†ö©ªŸr‹kôÓ®¢k©$>÷n¢hTeÈŽ1Á#>T~—5°ÝQ­œ01H¶o`ÜerNy<ùÖbøi…ŠmŽb†Ùæ÷焽ÔhU]N ýGCGwã<ýkÑ‚óBý6KM?]½mE–[o ¥¶ò‰9ò#8úÒŽ¢½3ÚÚ­Ë;Çr̲v)¸¯—ŸáþÔ\M)WŸ ™#ë6¶£Ëû‹®õ ;™å¼Q~ñmÈÊFäã#¸¢¼8t«)%ŒÈRwÞ«'&3ýPïÞ‡ìºaµ>)ñý¼}}uu«ÑÚ¥”óÛ^C*KâÀûXÆÏ9?jsÔúÜv¶òÜê³Ü,²*o!L¬6œ øó ~usñGo‘¬߬š½ËŠÕ/õg]{`²\®ô*yLçŒùö¥²Þ™­ yb2<˜îÀpÇ=‡V³AãJŸUf}“õ5•qt=õ§PZøs¬p½»²"agÀ“äp&ýŸú‡ÿš‚¥kºí/ðùœ{vø f·ýj­®[9&¶¸|‘¾Ã^Aäs[FXU¨ÚÀäs[N‹¿1\¨r6ç:˜4¿þY«C8*!ïRqŽFþê¥û=¼-Piµ¼·BÎÁDpT¬ ‘åö£èm¦…µP©?züP¾/ezÖ›o¨=”bâyâðáoz@Ð@!Fâ;ý;ÐÖ=ÔcH¿µÔ´ÍÌ Ûi0Yƒ3á]ùÆG8ÀÆ; ,­A®üì™/4òÁÕýWæÄ½o£\ÙY4°éÏekáÛî n7*…䔞ç9Éùù"Ðïu­:kYtømK$;_Æ‘3±Ç-‚AàfбnÁÉ‹:^²/«~i”hðÞZ^ÜÃqa4±^(‚GÁ‘DjCq·±ã¿nMÐï4šõÍ«·nââu"Îߺ pÎ3ž8d‘Kõ‰'éíI›TEµ’T]ŠàltÁà gúª|¹úÓMãR7ŽXåšQO¥³GÑ7Fîúô46ðåQÂÛ¡T팀yçýNi¶¢TžüÒùÞéÙ½:¨Òó1ïçi|2ø@ç95˜…ȸ6Qk‘Cascqº°½@óÛl_ÞíSøŸñ ÆÓp|«Ö“ôߺOw¢Û½¦ž¾ ÝpÆGåXg¾R9Ï—­2¶Ëmr¸Œœ&ã}›ùl¬ ¾žÒöûQ1±åG$ìÊISÏbHÁçœW¾—[mwRžÚÖâRâá¡Üª¤2ïÈ$òN?ÞùÖdúËÌ,y¨±o]]Âu­-Õ…¬ "ÇÁÚ¼`|ñGØþÇ=7&‡î°&²c3Àmª¹ØyžFʦÜFsa¬QË|Ý~ÿ¡Š·Ônn5kstNbnb{sWÞMwgÕÆ8Þi-%VqV µW%—×#?*Î%m˜É-´îözñÅᳫwŒŒý©”³C<!]Ì$zV§EuVeµk¾Žâ‹ ·˜Vàóò βOnb¶kbÒã`pè>/#šË½Èïz+%iò©>ù„k1ÛköðZÄc²š%&–]»X‘“ßå[ÍE¹Ö­bŠ}N)o·È\»T‡ù’Iÿ—çNz·&Ÿ‘æ?ˆJ.O–è_«û=ôy#±’VÕí  L¾€zŽãùïÅ ÐVëXÐe²k§7¶Hß>€ä·ïBž7Ÿ¾™ÙÓj”±í}aM| ã=üšµ´°,LÒ7ÂÏü-‚9Ïߊ¾êH¬uCà!? 7sÇ ãµLŠK¯a*„ ¥¯üWêmyŒrYHd6÷ü1ü(߈)õÉÎ?*Mûf_õ?¥H¨÷/Q’Yæ ,Gƒßøªd BE²–þÕô€N3Ú¶e—D„SM2G‚UqÛ5vbŽþÛéÒæÜxŽû½Vš{=êÍF×D’ËÁ†ymX²G,Œ¡“Ï‘ô浃'«ÈÅu0ß¡Ùö›2·ï4c³hå$ìyÏ £´þ»ÐmÒk‰àÔ!yñ4ŽÐ–N@À¶§ê2wäp–GÜÌ{Uêý¨:,C¦Ý‰d¬Ž€Tm> y‘[?gZSt‰i5ÅœŒ¶HÏ2¼r<»ùÑö+Ï“1šslmwÒ½+(¸Ÿ@Òå“iÄ¢Ý`‚Ä{çK®ú@HöbêÁ™B³Etø;ðÄÆ|½(/…AÓ±>£ìúMkH_sê[¤†p$ayk¦L )b» Ç~Ô†çÙ-í¼–ÑÙ5™·E(ÍÏ„N6¸pGn òïS~åmÅ–Xêº.Þe?²ú¥Zêþ-/Q›Á,#PÎÑ…3f,ž#ÇlšæD/Umá™ÎæŒ3(FÏ#ñ{ÜRYñø·ß’ùŽèä½skºišÔ6&zbt½I/‰‘d‹€èʪè‘øO|÷üÐê*ú—]A jï7»Y‰NÌY@ˆ°\žxÎ3ò«Ó&¥µ¾¼þ.òËy¥Þÿ> ·CÞRþûP÷3d· Lp3’ȃ £äý©¾²0š­E<££¦µb+¤%@¤÷+ñ2A¡G¨Ü×2)¯´É!€¸E>ŸããðçÈÔŽ×FŸ]›W‹PX­¥‚Þž;–"à–Ï%@PwNÏà^€I—Ê«»™º{©ä#Si­H 8,‰Xÿhr=yô&‰Ï([¥7ضÓP]9ìÄ‹¿{L (9#ÓYν’)žêâC¼ŠVS—øw‘çü(PJr ò›Çèó©Þ…g©ÞíT(Õ,Vdt=Û¤úæòæhÖ÷L{i%´U“¸*¾kœŸ õ¬¦µÔWòßÈò1Ž2Å@Và ΡÁ7·†ßåHô>ˆÇŸ8ê³T½Ü»ôæ­} ´ž-ÓÄòåUüX'‚§Ì‚O:ÞþÕ웟É?Æ”õ{•Ø-TÿŸ7WlÉÊ1ué½QAÜ1ø†+ òD¸e;Ž3ù×–PI­Ù–ˆÃ=Íûp â­c­.ïlêY±[Æxõ¾—Oƒ ]ðŸ<ÿž(yħÔGÒÓûÅœúMâ·k–‹<¶Ìå€d >µòvµJž/øO&lÉÆ@ã=».å$ƒ`ÝÊ*ö£ôö¦[®©½åÌçhÐÌd·ÌƒøŸ§všÅî’Ó-“ê}”Ae}ŒbEgŽÂº”£Š);êqáŽódõ«oCMJß™ƒV²µŠDš2ò{¼lZ5,à“ê@<|… sw¶öÉamj°Å38ÏïyÉÉ#9ùyþC·ÓG/6žqnqåYn… Þjz}Þ© ö–ÂOi$…ÉÀ#?‡å\ÿ©Äm![y£Û„ IÚ;íçŠuqR¡¯Edq˵¾ è-OS$izmäš{0“ÿ$!HÁ=³Œç88È­öíSÒiºÅ³^r/ˆ|l眒NãùVá&’ÝÐÞºkê+ÔÎë—:wí‰n4§&ÖR$Ue ÆOu?CŸ¶)WY­Î£"k–òîÂGôc¹ÙÂH}xøOÐ|ð£{K¡×ÄÖ\q™Õ%×mu­'L–4„Kḓ=p{ý«;©‚d5¬7hΞ;BkÕ;idñЇW*Ší¥6÷ &TñšªºšëIñ¢M:âäI1ÉF àðAÏÔÑcNJØ®IlO‹<麢êV1jö¬­âÆc”È©´?W8»‚Iín6I:|W$?¡^`úf± Ñsk&6d´­Z½ŠÝµhtÀÌȃs…†ÑÈäy\V“]•ì´/|³·C-šöÚ3áùùy:¼’^±G·îèbs‹äÏôwT-ßP[AqA)eSä ~§­Ô,#¿ú)AV¾Åc46dà.-CÍ_UÀgRê‘É¢i6‰;‹«8BÌÙîGÂË gZÏ[õ¥¬a.çU"Áb÷òþê$ãë2xBdoO9u©v›Õ¶V2¸·Û`àcíóü¨mWßo ežIL.1¹[¤VÖHJŸ•ÿƒ H·>N5.©}oqãEq"°9<ä­6{•½²Šè*©n]G`|ñüè:ˆô‘×ô&¢JrÄß N’Óõ}KWÒlô}ªï!Xqà–cô?—uô>÷ý¶Ÿ‘ÿ ÅÅ%n…5å‹,“Wf;]†8J„`Ì>"Tñô¤’˸ã¼—'B,ˆÎ|«Ã‘ŒUÙM ƒÀýjøKyw­ t0´$0Ï5¸èÛ”YÕãæj3'ޝ‚]^ƒV³ÈIH䘯šŠ„fƒ)ÐH˜<{±È¬AøP\.¥ñ3ÝU<­gm¹1‰K*ùp ýå[Ý;VêCD½Ól®œYEn –v–€ UN)%’}|³]G’QÁ»ÙÏŽŒº¶²5H.Ú@ µŠÍ†@ÁÜÒ6ØÐ=d²»›á}v”!mĕɗëäÑ_MAqaâe§H.Uƒ€AÛÆcŸ¨¤GTµéÛèµsl—öάÀ`|ŽyÿõO*SWÑÉz1©G$PžŽ»ŠêÝî#‚8EÄòL°,jÌ70 G`lóŽÜUú’YË —NÍ´\~Ò¡mRð¶YС§ÓoŒwÂæµËŸÄðw^ÜùñM¬åŠæ´••fñ6©‚NOéCË^šwÝAÒÞÞÞÚîIæ1¤íÚØ+ŸSÆ¡DªŠÊxeaG˜¡e»V1[Z9—Qé/£u¨µ.¶“̲ÀÿÕ†GÕiæ©Ö®u—(Ú(Ú£=ûšyEe©3”äðîŠ å¶ ¹’˜Û9ùàóY®¨µešK‹6÷«C‡v §äzR8¶NûˬõØ#ŽK˜÷3Ð^J³«d€4ÖÛ©/íÉ1NÑ©îÅK¨Š“]5q.· ÉtˆH˜ÞyÅ ì¾Í­´Û»àë´Âs…9;”ûF»heVÉÕÙš77Ê5¾hU]Éõ®\:¢[M6uSàÊÛ‹•`ô«Á)8°s<-42êm_CÖíl%Ðln`X0·&i¼C#“ø‡íOmÑä•V0Ìùã’?*w;PŒK3 o$òN}è)–þÂùf™&‚áXJ¦E!²CsóÓzÃý+ÑîﺗT‚wðš(\ƒ|äÆËÁàíoJÆ™ÊWÌ.¿bƲ®Zèa﮿fëÒØ\êQëvÑâ5¸ %JðP·#gVc­d·6q `áH%·q“Ø00>T,Í8ø½«úìn0q§~ Y/ºI[k©½âÒ#Œ"£{TŽO~sÛ*y¬[[hÑØjAÞî N&ñwÆDjêpÊÌ‚Gû¹©8¹'%ØäÅzL¡>’+Xôèa:­¼¬ñF X¤«ã×±ü«·mq· T,À`qAÉ7“Ÿ!í&éVÛêÇžÎ.f]Aâf9íJè·. TXÔº‹.Á$R;©@s[} EÓ]0f?ZY¬Ec}¢Oa| `cbHÚã·#×¶*ñ¾PXcŽI¨ÉZ0z=½æƒÔpªHɺÇ2±ä#œúŸÒº ¥¤1“'q‘Á©’NI3tÂMÁt|¯€«¨5ÅIE”·JòÛÈ6—î]o%Ź‘…#ƒžA®#ÕšŒ¶ÚÕå³ÛÙ´qÎÞð‚3À;qŸ½@¢÷)+õpx±Ê޵ì:õfèx›ÅDÆ£(”žrPŒçË`j×ÿ¤3þÓ‡þzajž)¸¯®¢2Ç›3Ý·æaïXÞ[w=¤« í‘ëY-VuÙ4_j ¦XûŽ€lôû£“su<&Yfç…^pª8àqšè]=Õt!ŠIÅÂO†S+¥Åä—ËÅ-ÏÇ>É–G$’ÿ$g=³WG4« ¶é#¬3HˆWú?½$óK{’twñàŒq¨>Qv—§Íyy •…¹šâf h9$ÒÏj:¤t[¶ˆÏÑ'†Ä€XÆ~†°âÚ°y²Gr‡~ Z/UéÝ?Ó/¾Õf¼™2ìÇ(¥¼½23“éÇ™¦ËíßXÐOß[Ck†¶ÃqúqôúS˜ø]DTò7ÜûÕZ°éKkX¤Vy'Ÿˆä~˜®wZ]¬QÙÎKX‰E_Æsø‡'ž{Ö1b‹m0™s5>æÿ ïà–æÞêùØ­Û_–l1íI;‹¦t“SJK¹D÷&A´PSÙ».å­§hÓàWui")fÅfµø=óO’Ù%erà†Aœb®(©fÙÊt5¦­v ŠïÃEÄs•LqÁ>zfMî•|%´‰ÚrAGυȉ5½îa¿âx¥§xez~ÿ/…âßLê=k^˜[ióÍs,†GÚ0OrOsç]£ÙNyÒ—[uÏæ‘K[º·‰à·š’xÉùQr¸Mm9hdMäì[í­ ”Ô–Fƒçó®#®kW×lï·ã?‘¢bJ·ÕÍîÚ(i‰Ë?,;ÜW¢XºHpü7×ÖŠ$Z“ l‘r;ñÅ.½ýÜìá*™h®ÀK-Ú¬g 9úS"·Ò‡J7œƒLbÓ,°ra±j²akc?Bû/÷x:>(ËÌ$hò œ ÇÓ;¿Zk§Å‘ÚÎ!{©^ã8åUŽ@ýk—¯[pÅ{ÂâÈÛ›ó¯ÔQÕrxw®€ó\¯§Šã¨®¥OÂÒŸžpZ‡†Ëœwc“ø|ÍJOªé]wûÁ•ÔÞ$K¿'xR„ñÛ†•"ñbÿÕ7ëAÊï$œO_è:Óéc½Ó—?ø£»õTþñ¤Uœ].í£¸wÉüŽ>}묧ˆÙت§²Ú¶•*8×qäJ` ãT p<ë6B—@­yV¶MirQrocßt À`œ »ìSCM*ôE*üoHƒ¨:z}:lèvê·•T׌ÉZ£ó‡PÚ]éšÔ¶#$ÊíuѺGK[8Rîâ;f»+þõ7mPÈÇ3“"p^ñ 6/æ;ìjÊÆ¬và&r¼c#Ë*ôOÀ¥Žêv¬{Ó=;«jR¥ÝŠ<«án7mø½œ–úvóÅbý $³ßûÜ’ÜHäò×-—%xçòíåÚ‹ºKO£b&²e¥Û«ýW­ÝL÷“ˆˆÀò¥ö·Où ÛH<ëÜSöQÆÈümŽn5Û¿t·Tnü-Ü|© ÅÑg9ò8ûUÅ%l“›’Iö:±™¯.åÔ¡ˆæ;x…À{²lŸøk¥Ù^4’ücÕAÆWætôY7B¼žž!ä•9ŽÈ˜‹*nÀçŠÆ0ùra:®{†vŠ0Böøk#'Ã1sÅ9#—’NLúÓ9\ï`~uá/îãã$çÖŠ6Òþ+‡_x…U‡ñ.U¿1M[ÄœM÷¼(ç9'Œ<þ´ Æ—qåp1þÒ¯c½µ·dŠH¦F>"°ì1ëç\òW÷ûQ±q‰o¢´'’¸&¾ebGŽ í[=G??ZQ”3¡ñŠ… Í:†!Æö?!V‹¶£Ê{ƒ]\_ÊÄ—˜7Ë;§³*ýúZ˨m^S=½¬µ³.ë’Ê?ZÞè¶w2ËÃZ´*®¾ÓŒ‘ö'ô®¤$œêÛc±¹+ª®>>ó×Ïsmm{qà¸ÚÁ Œñ_Ÿ5V/nÄ’XäÐô¼1¸Çþ›#ø|Ѩ»êÔ4kC2‡]Pmå(8·ß ÿÓþ´ ã{™ê´º¼^¢­Rü‘߬ö§KˆÈ2<,sèif£¦EÎB?úµå¾þCùü¨ê)Ùæ¥’QáÓÃr>}©}ÎÑÉÒã Ús»Êª'ŸJÚ(¾ wûÑÈóÍB>-d ‚ElúGQðfQ‘Ï‘5¦ŠC[¡ôÎ ê» ^vHò¤|¼_à&±·¶76zϺë)qmˆ®Lg°-ÜzŒgíR1¸Å}}r#,Þ¯+fln:jò D $(ÛJ<` åóÂŒs’xóÅ4¶Ó´­*HÑÔkÚ£àGmnK[£Û™yü—áùšÜ!k|º{»­drEF›ü—Ÿì8–›-ÕåÖ .u¤µ Œ ðZ©‘_‡€À‘ð/nrA¯ÌÝ}©kmÔ7¶ÚŽ¡q+Å+/2dž;S‘mød¿Ç¸åç¥-ÑuÛîóû̽ØÛmÀœ3;2²y®1ƒ÷þê¡_#!ˆ5«°-Q¦é­> ñÍ)OÁ^2œàùŠ[Ôº[Ûj³ ui!ÎU¾Xó¥£–ò¸O£- 5)ñ.¾ã¶ûÓôë.˜ibf’êâ\]³.1ðð£ÔO>¤Ö‹QÒe´¼2B›­‰Îáü<ƒùSš?¬ÀšêŽ^—?«ÊÓîhºbÊkiXGâsÚµ÷ÖÖV&€ä`úšå`]ÙÔÊíÒ9®´c’fbÏn+3¨¢sð©ûS1by!B+’8ãåCø…[9J:Ïw·¢q$ˆ0Hóªã½’7qÚ~}ªQ€ÏyƒP¶h¯#Vµ™×z>VŽK½(™£´Ä(~þŵjŒTé$o±Ô«ãµTîÍøŽh¨ò6¾.~U¡Ðº{ß¡¼»¸q··2EîçÈUªrKÌÒ‹vÏ(Þê«rž[oä+IÓ¾Î/ïí’öþú (Ï"3ñ>=HòþtÞ³W¡ÏcX4òœ¹:Ö‹«i–°Ç§Há7nÆqò«5rk%´y?@æ¸ÉÛ:Ïpfz£¬ßQÒæ¶~sS‘ߊᚳ˜~†Î3Ú‹‹™*39G §Üó╳‰QˆÚÌF;ò«÷™ÿÖ¿åLKeÕÜ:¼Øc¶i¡=ŸÞƒâZÈØÞ¤ ÏÙu0}Zm6ÿl,ŽÉOpqJãW&‡óOc^ðÍkLX¬P[¨|›| ߤzVvå7j_,vʆ0Ët@$‘Í äR&™ê9ÅŸsQš] âÉîiÆ™3Äê®ʮçAе¹´6òg$qÏcFuT_·úfki4âׯx— ¨ðö £É9Æ>Ƕj¤®šªg/ÒPáIúþêÿSŠúâ!(°{eyTmb.ö#¹á}qÇ­3ék}Jú(´~•°xe1(º½é0G#pÿey?>ÔÖX£îè'§ÚŸº•þÆŠmCé.ëö”²Ü1‹‰â ~V5$chÜçÌŽÃò¶ñ¿Ú äÑé«§CÒÙ¬®$ŠA9&@N{/æ2:ýÒK.§ ý±Á7†\ܯ8,žÿJéÇPñÁ¯Àñ±Ãë$^±s 6‹´kiØ/±úÛ9$“ò®}WêÁ.Ÿ,I?­%Ô€<äf¤x3™ëÁ™JŒcåKnÆÓµr ùÓb2@eˆ<“ŸZ†^sœúÖÁ–Ã1È\ý(Ž–ßFÄ>j™zƒL³Öí„ТÅxr\êþ ­.Ы©ÁȬÁ×Iw+µ f†@9#ÖŸ^ë -”°,B"àa–OCZq¶ô$gµ5ækz2yõý>(îm’VŠO l]¹ø­ŒÓ G°¸Æ•sæ¶É¤u0;‚b{Ë¡ÆP÷¦V—2jKŒãŒÔ‹¦µBGG–Þ732¶ìö®Q®ZÉûdƒ⑰>¦›ÁÃg;Tí$n´þ…qÒë,±†¹-’sŒ ý—ý_ëCži.ƒþŽÒá”[Éî6}+7‡¨ÇƒÎx¬/µ($°ëÛã¾ ›lÈ;†O뚬N²/€®±xPÓ¢ú–ïWŠM.ë9‘*[Ä-VthÆHgωôÎãškd8ä’C(ðÂXGj¬^…zk:Ë^|}Ë÷gJ´ö­ÜŸz¾k]2âEŽf!È?„×Ò=ž_oÓæ{–'Ýä( àvªrßð98ñKWÜq¨ê¥ã%¸C5™¼Ô7¹]ج9[Q¤&½Ô .†$÷•ÝÝÊÙ%»y ÒË/1k>ù qš\6I$*,E$èÙô¼ËîÁ´T¡ƒ(Í]¸ò â¡DIÞ7ÛÒ•õ< mâp'AßÔVæËêŒYÌGi?Õâ„g|¨¨:²=DZÛ]A»Ÿp­»rgzC7gWLÿ–€Zt üšûò[¬Û1çšFR¾¯õá#„ñ·}èËž²ÕçµÔWnø\;/®(íµÐK$S/ÖºœiÓÜZº¹Úr¸ì'ÿL“ý]mÇ€ª{zYÎð^#©Á•ûxhnot«¬i­pO¡ ÿZ?j%k?¦ÅÈ`iµùåÝýwÉ$[mV6÷p{ð*õ+”Ìèøˆ™>µK¦rh Žõ(‘Hæ¾ÚÊ7•5¦¸"tÃW‚h¨åçh5H% ,.vÈ0km¢\«Æ¡Žvá‡ÈŠÄøåÉÐh¾ÖÜëP]¦›·wh²"¢© w ÇŸ`|¼üºþÑ‚E7ÝG<ó;ášxm¹þÐ/±ò§ôóÉŽ 1tÏ<“þï#×Qub ¶´,‘ƶÔCêq_—ý®ë×GíYÚæE•¬¡‚<¸Ý³9¬ž?Ðôlwêñ/ü—Ì×J¸M¥¼a˲Œþ£ø¾Æ¬½Ö’æ+k¶¬K…•A €qÇʇã{ž‹&¡O+®‹ö5ZV‹ k¶+u©K$öP8Q¶—휑È»riÆš4]&Mº•i` ctk—?V9?­"VÝŠ8¹Ó’è*Öu9fÔ¢·2LØ.Oá¢:bâ;K+¨•÷bBrF3UjÀæw‘GÈùw¨~üR‹«¶,ËçË4-Þ#S R~,ÐwŸˆ¦—£/ – á‹å];Ëhâñe*ÀŽ9¥5ñ ¸Ð‡TêHâ,‘‘,VJûQžw'Ä` íRà&lµÄJídrà“[~–ÖšÙѸó«``¬iÕúBj¶ãP¶p+!ûOê7åSw”w‰€nšÍ{^btí“’ ¢‚MÖœ u>`ãõª¯ñ&ÿ1+ô`­sÒ(¯-“âl#þböÃýÔúUY>(ÛŽºØÿ€ÁÿØÐ=rŠñ™¾*Z†e:¼äŽ؈þ•ROŠv¿ô¾o #úÐ=Æ’¼_ŠV§þ[ê-ÿÿ쪤¿­xýÝëgŸ™ÇøÐ>…,£©0Íõ•Õ…|èÿ­ÏK9ÖQUdøŽ‡îéÿœ¿ýjçÒ&öÔ˜ïࢾg?å'åÓãÇýt?áE ¹ôL7Ö³ÿª¸‰ýƒŒÕ kÇ–ÚdÿWy:û1 üÁ­OZ°pÐÝE*àpF_éYªÍ]3¾ñ ÿ‰ÉãiÿÇ…j!Ìj}Es—úµ®¡áû’¨›Ëðs‘Ú·íŽm¢>¨?•k{™“ÒÓE( RÒRО|Eð®©wº¶‡sp'Týõ²9ùÀyG®;wúõðYµ½e«ê7yeoñ¯¯kÏ|_ð—Lñ%Ü—Ö—ÂíÇϵFçÔŽ0~” £çíê ÷ïnOýµcýiϨÜ\ZæRz±­ü>ÖôròijÛA'–ÓÂr3´?N `Šå”…9 ÏÒ€-}ª\àÌÍõ©ÊÀØúãŸÖ«$¥s…“ÏoVüé.ª?’û¥\w<Õ`„± >µ™Ž8éúÓØœà`h×”{·ëÿÖ§¤œï›o¦¨ªžncÛ宽“ŸçHd%vá.ij‡EiÍÓ¹ïúÒªDn`qÛüšªä²çŽ:b;ÇúSFf²ydtCºŠÙ øžMVÚŒØÈÀú…@$t<1˜Y·n,r{ÒJÃnå¢"^ ûÿú©ìah²®?ýj¨&p>öG¡æ—í 2 ¢œ ,!ãžP6>†ŠŒ](èŸøñ¢˜Ïn[ˆÏVüÁ©–Tìêò´ø‡ªð$‚ÉÁÿ¦XþF¯¯Ä;•m¯§[¿·üëI{DzZ¶áëZpkšº*GrÅáXúוEñ ;KUìOÏäGõ­+?Xܲ ´ºÈÈEÁút¢ÒAÍzPñ.¢l}T…Euãk‹6$¸]Í—jç¿JãÆº…2`½AýÖˆ7ò5“wªé/ž)—ŒK ‡j—@Ó©éw#»º·ò¾ÐÈ t+psÔVˆ|}{¤ßØ]¥À}µí¿…Ðõ'ž¾•ÁÇwut±.°ÍûÌŽFéôªš¼-rñÆX¿ÖD['ièÜþ¿Ÿz´¥»d¹'¡ô~‡â;ÄlW¶S©Gà¡?27u#ÖµKÔž+åm+[¼ÐïEÍ«õ‘ç‡ãï^³o↾·ŠçíAÀLà6Bú;Ñ:œ›™­MOÂfÐüOã*/>žT`þ™¯šZ6¾nžÕì¾+ña•±.QðFY €ôW–I³Ê|µò׿R2;V‘|Êè37Ú{° ŒqA 2@ǨÇJ·-¿úIqåŒóØûÒ XeMÑH]û©íLV)í$u'=8 ).qÖ¬¼T‘¹Yxe#¥1aóC0pwãÖØƒiáH ã9§8-•Ú½‰ëST”ß(Æ@>´çØr~ò“–dR ~o)ϸþµÞH VŒ‘–ÀÆ6«v·^µ@Ä«…žÏáL–)Xgœg‘À¤TÞÛKr;ö«ÙÑl,Àe<ÅW Y”"á‰çŠx‰<Êçw± fa¸êkMÄ nÈ—'aÎi$Š&Lì@€òS†úÊ»ã**ÛÚÀç1 ûŒÑ@CÒ¯\¡X¢#ø—'ô©[NxÎ×€+•=2kFþÄ & ïd#åç¦Ñþ4®>Vb*dWM Ä³ÞÚ,™•LŽÃi¬èmmÚ ]eá†7˜úÕ˜g’ËOp2‰#•vœ‚:wü©=F•·6µˆu k·µ´{‡‹fìFûG9ê+"K9òdg w¡nj3âKÎiZH‹0“=3þ4öñ=ìh³G,~k“¿¯áÆ=©¥b[,-®¬“¸‚+ˆVEĘÆ:ÿ:{Ûê›V'[–ê|Æ—žãB*„>$ÔÖ"R`’NQI$Ÿ¥5üOª3nHÿ€¯øU±ö ñ( o6Þ€otÚd@¼" F†áCĸVP3““ŽÕÊÛêÚ¥ô›>ÖáSæ'8þU~D–C[‰ K³HHÉ$c˜¨©”9“Liê’®¡%ò(뎕W|ešù“/“ÏùÈ«–Ú}¬ed™‹ 䃷­X1£A2À¸‘2FÅàŽ0xöªŒl¬‹²1§ŠUc„NÅsÛ€?Ƨ[3 ªÛ€Ü@¿¯çVådšY¤F&7 Iû¼ç¦}…2"ܼ«!s´n‡ôæžÛ“f1âSº@²;ðI-ç~µTÀd1+2ívýã0?+~jו#Jέƒœl/Ç­M sglè±#?ÌÓŽ‡"“W)-±’ƒ†Àüˆ÷¢öÑcŽ3&Ò‡ Cú{Ö°(³:yˆÄà è2H8ÀLuª—žxUâbTðsž>”$ÓB¬¶FKU’`FЇ$Ûç­C)æVÕIL§εrP—Íi€ ¨œgëþ«ðÓ6á$j¸*Po;ñþ?Κ°ŠÐ[’ÎÀp¹ffc‚;ùSR6Ž(æ1ǰò¡ËàúþUjlÅ˾A!@%ÆáóuÅ2[(Òð±hÃÈRß˯4‡nÅ{h¤ÚòËòÛ€_’p3ùÒ„†V·;7 ž~µ©sl¶±° &_kcŽ8éJl®ÒÙÑã /˜Ÿ0Žzc!íbi\¬jƒqÀ,h«¢ËSØ¡-”e¢–€tÍᥞчÚP±…^g sÎ}èj9´[Û(G 4–äå™¶íäýÍt)¦%æØ­¡2ÆÑ˜aŒLAg#ÛžÜS–mí$_h“jN`h¶›w|2zpI®u&vÊÙ˜O¢ØM¡‰åŠXäY>tÜ>fÈçœrzö¬ètJ\À¦5¶7 ,Ä S2®zž Wmv-Ø@‘»ÁÊæ¹³„$hRAµ6à¾á×ß=)öö¶‚·6óÇåÇ™ üÌø'Û·å]ËØÚ++}žÞ2¿wˈ.?Jh¶·þ!ú”ªxì/Y?»þ ƒ©-”ø%Wk <Ö8Ë'#§cÒ£…`#¼° ;!óÛÔc3]Ìvvãå‚!ìb“ìÐ]° ÛÐIãð‰­e÷/þHŸkZß ûÿàDIk5ɉÎ~êçüƒúTBÖ"=ÛI±²Q˜ô$ò?•z7œñFp1ß`Éý*±&gýãnúIæ8d÷—Ü¿ù"å9(û©_×þ8»·ÙÝäUl<¯ÏN¸Ï­XÕ¾{XŠFf+n¡¤eä‚N0?vÒ*„;p§ØT(ÅOßltâ”ñøo?¹˜)Ôì¾ÿømk«,Yµ]±1ȯ_ÆŠîšc’¤ÿŸ­__¡çøsê—ßÿÔÓl´ý'ŠÚbI/“ÇÒ¿N†O6I›;·`œ“ÔäÖ^üeéŠQ ìK}ýuŒ³‰/áÓŠù]á9|soæj EbETˆœ ïškêW.ýÑþ5@;z¨ ±<™ ú åžiŠ’·=—–€©A;Ø´nf#™ïþbÇ9ÝôÔcý•Ïàiû\õ;~€×ëT©¬›e$–þcü'ñ4OÀR¹f?øRŒº¬?ÏÒ²¸ÅÁ=Ÿ÷.êU}…(P~ó0úS±õ,@ ‹»ÜÔ‚3ܪý¦™¢ƒúSN,•ìñé–4ì±àd ‹|kÛŸÃüi8<ùúÒm-À˜•^O'ëLiKp  ¨†¸ÿ^Ÿ”N„ŸÆ…w¶ˆƒËDN Ôm/¸¨‹zÒrKH€òÛÞýjÇ”¨ ïŒü§5ùÿ ð3óùUÅ(«±‰)ãµ66 ÿ?J„ï+ˆ˜ÕS…=*FcèOáÿÖ¨%%X§òÿëV•5E öŒsEVÞÞŸ¥ r'è <?ÞðH¹Ç?ý÷JFl›þû§t!á1Ô·ýðÆŸ…ÇÝ'þÿפX¼xÿ¶•"Ä«Ë"ÿÀ¤¢ÌB̼#~ N19(ß÷È¥;1ßf›œÿ ø'n®àH!ÛÕýò)z¿!M ž‹âÔàª:¬'ñ¡]í Ç#¡ý)|³ÜÌPÒ¢»Ò£ióÓÊéCQ[!!Aàþ )…›ßïŠioxéË´sæEô©ærÑЬÝW§…Á÷õó)æP«þ²ûæšÓú4^øZ¤”u`)}£¨öÒ£gÜcÝÍ5¦ø”}&ñÿ=ýóYÊm€‡žëŸ÷=v÷Ÿ÷9]þ[('ýŠ  g÷ÅiÛVIÆäÿ¾BÇ'ï(:š•çÿ_’}¡ž’ÀR©.€GÌ¿­=@ yN¾ôÆ9#æaÿ©•°ƒ7}E*iÜddÓËüA(«ÓÐÕ¹1ÿ”ÕŽñ;¯·Jv/q÷—ô¡G«(fëö5ÿ¾EgÞkPi×qÃuh±$ŠvÌÊ6çÐÓïdž+I^âq[HgήNâêKx›«Èg²f ‘ócñ®š0R6¥'©ÕØë0j+'Ùá]ñ1WRG¿ÐÕòvˆW›è—’i> Tߺ&o-ÎxeÍzŒér`ó“P»€$}*qt$œveW¥ÊIŸõJÒ¤O8Ë5Žäs½A÷¥Ùvy.¿aµ«9É·Oÿ>ëøÓL—íÖ¢)vOߦ?ÚW‚â­ÊÚŒæ'>Zj@òƒ¢£Û6ï¾´…dÝ÷¿×;“b& .î#)’}¸ {UdIË`H3R”ºÆ1ZÓcC‹Üuò×ñ¨åûCFÁPtíHëpxó)'Á`üëmFg'Ï QI43,¬Ίr<ÕŸO¥UGabvžM+± Á=(¢˜ˆ8Ò3ÝMW;…ñ,²/ˆp€Âp z Û“÷Gz(¯B¯ðaèuVþ 77?1ëëMwm¿xþtQ\Ç)Jÿ粜7Ì gƒÏjãbùü'ræ 8 8úQEta¶ù£¢Žß3Mä9ä:î¡ù¼mx[’±®Ò{p:QEwb>èuUøYºd|ýöüêUvÚ>cùÑEyLóH÷¶OÌ:‰ÙŽ2OçE”þÄ€9¦l}ãùÑEb!Ë#î_¿:»ÿy¿:(­©ìP›ÜãæoΚáOZ(­ÊS±óO&Š(©ÿÙÿÛC  !"$"$ÿÛCÿÀY"ÿÄ ÿÄW  !1"AQaq2‘¡±ÁÑ#3BRrá$b‚’ÂÒðSTs¢²4CDUcƒ„“âñd”³%&5Et•£ÿÄÿÄ8 !1AQ2"aq3‘¡±ÁÑðB’áb#4CrñÿÚ ?úœT…0©ZX‡1QQS‹Èü.ÿ%Êß³sÿýuÑ¢ŸP+”ø\\ö ù³²Bsÿz•ÔXöP?íF§ê£¨.¡Å8¤8Ä==0ô¬!MOJÀB¥L)Å+â•*z`8¥J•ŠzaOE€© T… žš•±Å=FžJ•*C*T¨f–iR J•> 5*|J[M5*p´Ä`Ц4ôÆ€˜âž˜Ð¥J•d©PSSž L j`Ð5ðž» ©Œàÿ´ZÝѹÒ,­¼ðŠÈøG»©û5ÿˆVŸg[v§·­´ðŠ—S@ X§â‹ )Å,SÑaBÅ8€§‚„=*|S°¡SŠTàQaCSŠTôXP©R§¢Â†Å=*T¬(T©ñK •=**T©P§â›â€§8¦¥@šTÔ¨óK&š•>i74Ô!ØÔÄSÒ¦"49¦ ¥OKŠV3jkP5ª5©Š‚Ô… 1>îÆjcþÇ?X«•;»5¦ŸþV?øEUíбڮ|­œý‰Ø—Ù=0†Ïòuù©±-Í¡RN !’ôÀÓƒ@§iÅHSÔA§ÍHSÔió@OMHPÒ¥J€©f–héR¥@ •6G­Aæ…>T¨¾ö€°”ª«êz|»ëU÷ʣ·£'ÊÕ¬G¾á(VUý¦ìú|­fÇæ˜²‚ݯìÚõÕ¡?ºý‚€´nÒ®qûqÙ¥l~P'ŒäBçî ¿o»6§âv÷@ßx -M*ãäøDÐW;c½tCï5^O„½!~E…ûEö¨ GqJ¸>,‡ÈÒ®›œx¤QøÐá9SE'ßsìÐÇ¢ÓW™IðŸuŸ÷Üýš ü&j‡;4ë5÷³¼Pz*òI>uâH[}=îØÿj«¿Â/hÛ£Y¯>PŸ¼ÒcسM^-'oûPÝ/bN?VûÅU›·ªoÿwuýØcÙ |ǹÓf¼N×v™þVµu×Ëìò§´ŸõÕ÷þi ,ö‘SRÆÉŠ@42»d3Ù\òRÿÀhl[±ºo²,}f­v°n춬=l¦ÿ€ÖwÁƒnì]‡N¬ÐöVtõ!Q©PŠqL)èêUq@©©èší—i.t)íã†Ò)ÄÊN]ˆÁÙ\ë|!j«cf=åßEøoÑ;O¨h ¨öM¡–þÄ35¤‘î7q‡<8ÇÏ¥|¡¬ü)v²€ŠH"3V·R01ƒÐõÍ+Ö‰gÔÍÛýhçm½ˆþƒíPÛ·šù8É}ПïWÇòü.öØœ~Q…Góm£ûÅü,vÍø:áCÿñ£û–¨›>Á=·íÿ¤[¯º÷ÐÏl»HÃÿÔϤ)øWÇïð“ÛI:k³7±ú¢Yü!ö¡Ä‘M¬Þv€ÊWœ{<ý*[¡¤Ï­Ÿµ}¢nº¬£>ˆƒî ¿hµçÎu{¿™ñöWÇ—¯íD²mnÐê`äŽ.ßìÍP~ÔëňŸV½y“pÇï§b>Ë“YÕß;õ[ãÿˆoƪͪ\ ÷ÚœÿÓ¸?y¯ŽŸ[»”fK¹›ß!4&Ô]ºÈçç (úò}gOL÷úµ°ãõîWï5UûA a˜ë:i 9?C®¾KøÜÓq÷ ±g{0Ya+ YWƒäs÷Rli3êí—dí= ÓrA2Ÿ²'o; ™]µÎ-®•§ÞÚê°j]ÄòImlŽeµ ùÌ€rzÓÝQ,±‹Iõ.8e4Úèvrü3ë„å4í9xÇ!Ïöª´ÿ ]¦hD‡OL0BÇËÚÕ¶‹¨ Avö— †l ƒè:š§$%bxû¹y ሚ’{ã[Ûü.ö©ùZ§º÷Õy~;\ý5(×Ýoá\RYÈG0÷Ê? ³oôh=ó v.Sª—á/µÏÁÖ\~ìh?³Tçí÷j$ùZåçô_ebÛX,Ò”’{+qŒï–F#ÝáÉ¢]i–ðÆY5=.väGßdóíP>¿*Ntè|…™ûeÚ9>V»©üKþ5ò‡´õÞ£ÿÕ?ãY/Ñð{‚öÑwŸæÿV°QGè%ŸÂžä ›+˜IóR®>Ð~ªÙ³í^rB¦¥l|¥?ø±_9.‡umÍ–µ©D?e®;ÅààÑÊö¦Ý5¨[]Çò‹l¥ÇÑ\Ë<‘Úñ'Ðú‚Þh§@ðÊ’!ýd`GÕF¾c±íi4é–FÓºŸÒZ]aôX¶½sà÷“öšY4ûÍ.ê ˜3I"ªå}HÏ?ÑÏQÀ­a™KFcA‚}õ÷WçÀE‡n®Îµ¡Om¥ëú~ñup|™¶ò­íçÌy×̽øøDì¢É=î5Õ¢ç76G¾§o*?x WÜ\½1ƒ!DK™”²¶—\u'†L7€äœPÒ݆1ÔS$Іç¼+ UÎðg·q4ŠìÀòAøP#Ä˰©Àç,9£w®0į´pOÓR2q›†dÌ«žXqWÖ 0Íq;yãxüj¤—‘0 #䃌·NžÏaúj·xù8ž@=ÅF¼ÑC$.ÉpÇ!{Ð}€fi5„pm—NY[<³Ü•æ\V'}âùNÀ14®n;í¸A?dTòÚ¢œµ²ÍÚ‡˜•UPÇ;A$RH óŽ<ûKUgšßº(±I¸þ±|àýUUˆç$àÓD³]EºõX‡§ýôâHÎbéþŒz³¬§¶…˜Ëe Ð=¬ão»k •ÝÄîì¡¶Ê&sŸ~âhë°8¯c‚d–)"VS{¤ãé5fç´sDÐɨKݰÃ(ÚáX‘ݲ AÕ¢R~±AYJÍÞMÙÎ ‚>Ž•.)»h¤ÚZ2êÜ*>ýäaþ3Nò\ç £4>é(*8 ¡GÐ( /°UˆÕMArO«N×Àó±È÷·ãYò^\ÉÄó;F \>jr|Å*£R6žX÷Ei,«Ó!X¶«Í G+,;š²â©wÒ€üzPÝØŒœý+†ºxÁPŠ”$cÏšgºˆêË×*ªxú8¬ÍêE.'Cᑾ~ihêH\}…[6÷»âK‹@ ¼›ŸP­‘óÕ~Ì1<1Ê=X`ý5(šÉƒ¾Ù" ¼®ðsÏ–i4À‰’éåîÌœg¹ühߟý(úè&kþ´OŸ*)ûëغþ¸¦úÉG)Ç*HFpr¨ $ˆí”’6ö¬"¶0# û³^yéŽBn*ÃÓú¨ð±IxY¢•O…£bùÇJ¦¾õãßR >â)ˆìtþÛj–ö²Zj^Ã$e·21ÔuùþšÚø$¾µ‹Mk nbY÷xQ›¹'Œõë^w1/w4à¡ù$!û+Xæ’јË^¨ú X 椶¼+»ë}¬“HÊ£ ‡8õéFW¸Â šhÀCCÐù{ªþ±î»žò*Y¯ S» vÝÝ·g騸}:ô[Ý~ö Y®P¹G½˜ÌÇ;FA89ãüõØŸ%w=ÈÕÄ–²Ý]M0B…ä’F ¨ d’O@xf•Úé/Ñæ´Õï&ŒKòØÉXyṫ†³uui%­ÅÌóÛÊK’3+†`FpAðhúÂì7‚·g³ézŽ©h—šuÔWVÎ2“Dw#óŽ¡ä” oJ¿Ô®ôëK覻³m³Ä§Ä‡ïù«Ç4Ý^}*É,ôë‰lí‘YV(Xª('' çšò^Ðv®÷àÿáu S›3ˆÞæÞD”/– HèpG¯‹èpÎ¥¥<\»3ìúq\ÏÁßm4^ÛèêÚ<Ù ¡cã…½}‡ÎºZÜÄzTÀÓÐÎÓ|vG´lÚ†n·g\ºŽæöîæîVâv|°ë„^3œ`WÈ=¥²:f»yb„í‚y#98W+÷Wß=„µMCC“GrB~YÕÕ½‹¾T?ýÚø_·–÷ßå5ì·°÷r½Ì†]ž%WiŠäyŒôê<èHRv` Ç©"¤`Ÿ1éQˆaÆò¥AñsöQ-ÐÊó“(±„ùyŠT*$ñþ`1ã cé4 ¤6 žš9ŠÆQNâN}:ÔÙDŠ$,Ã'ŽžÊy"(|^žÊ„sP ãfSŒŒyÓĘ;™È\`(˜àÄN2iÛbú‘ï¡Åº°,Û‚–•¬k,ÝÙ|6@CŒ‚r1EÄpTgHºô }tÁ{¶”2åpzõ¦fARSš((žA馛e3¬²/vŠ£»ädààý´IcžmÉ‹(rÈr²€¢Ql+0RN#ÉÈöŠ¬Ì “Á¢X‚rs“nÇëL³t8Ûî tXïÀjeÔ&Aóª~2F=G¶¦݉o =h zý4‰y$Ôa¶š{”†6#vq“ÖP®‘ÊKÖÚpz‘÷PCpÁã¥INá(¢Û<‘I¹O,?gœUµ°°Ž . ï!ÌN6ý”QžòüѲ3ëŠ 1v8ò(·0”÷lŠFT°ëMg~V$uF'9j€îbxèi÷7¨©›Y“s ¶ÃŽÁµî_Ø4¬b´Óå8‡T±”†2H?U4©ÒCÝ÷nM®TóïÅ|„²IÝ—3{Ï5wM¿ºI—dîHeñqå\¿W÷›ýaö>»6’°a?‡ö~0­÷šO±ab—Ï0·ý5òËv£Y‚âIlõ;ë¤rÉ 7N~z{êýŸnû`d-kSÀýc9l|í‘KÈ—qùë±ôÇywÃ*#ÿ:2§í¢ Û…Re¶I=¡ŠŸ°×ÏV¿ ®µ#h€9#¸ØüømiÙü3ö°ÜÜH"²š-å•gˆ¶Ñä2ÉÀú©y2ŸÝþ0Ä$RxÈÁÏÓDøõ³Þ«GŽs´ñôW•hŸ ºÎ©ÿˆh-7 Ü2˜‰8ðœÞGü íEÛ]c¼d¿ìl}06Ý€GÍÅC‹[–¦žÇo5Ò,;í.bÝž’åAùñÅq½·Õ.ç[ =‹¥ÁÞc™Z7R¤uó÷cÌÐdí½¤,ÏsÙÍNÚ%“o*8Àó<Ÿ²¡þq{#y [Ýiúž¶h•àÀðsM'ØNI=ÉèúÝ®ŠòMªêS8œa<;¹ž‚¯Ý|"v~À×÷ €r-Âàã‘É®.ÿPø=»¬µ¹­ 9îäµnï>þ£üqYvV:ž£ ®©Û·xÀ_;Wõ›pI÷UCkRgÞ‡£IÚ½GTÒ¯/t-:D·¶_ÎM0ÏžÕp9<ñ^A®^\ßk3ËqrÒ3ŘsŽ+¼Ô.&µÔ-&Ñgî´Í2Ñ®-\ ‰GGflíá#Ú<«™ín“Û5ý/Ä.ÈE¸m6ìôó¯µÕ-§ÒƒA$WÊJŒ#“׿=*çåH“VŠ$«+a‹œÀõõç>Ï:óß$íš%ŽÓ°Z•¦›{«Msº¼l,ä·ÝmÞË8!Œ[8 S϶é”T—B%¶,„Éb0}ÿã¥<ÁÙ £¸%±œ«sÅzcÉ*gËà‘ìüj62 )‹C(!]ïåÓ?_•2(Šî@³åwm ÊÅU½[‘+˜™Û ‚œb´$x¥A#š>².rß(Ÿêk{Û­:i÷AºY@ã$‚}”7¨rº´€Ù[•ïÄ‘ª“nÃpÏ új—Å‹gpŽ?Q‡_ut—Æ {–k—{ƒjæXYqÝ“åŸ§Ö°â¾ŒÇ •Oy,Aù|ôQ-ÖŒ¦Í›F®rÿ8æ¬a¹Uhãd )lƒÏN*ÕõÌ7»Á$¢¶bÀäàû2@4[ 6·Žk»Ø.¢™Xa¤ˆí!²0GRO4è¤VI§½•!··‚2¹Øwp¼çÌÕå˜m”ó3“Å_ŽÒòX¯.áðÀ¹}½ à€}õO{-¼H’oFÂsò9ç4’6õha€93šÓÓ­ÊÙ±/)\’¤.AKJÖxn¤ŽF!ó´–1äqïú«q.í¥M"Ïì±Áéæ}:g=*zic5ìóÇ© É-‘ëQ¹Ón¬{æOÎ|zUûyíÙ]ö4P;¬FqÔž£Ü|ªÄö“Á wÿµŽB‘Mß'örJÔ¹QTêÎušì‚räyâ…ßÍûm]7åf¸‰­BÜ3:øTçæ÷U\[©ŸêŠ«O¡Ë)8âlH¸羫ìa)Až:ÑàKÁùCí¤#SRCn±Ê 9+’3ŒÓËΨ´²ÈÞ9°8Éé[}¤ˆ%¥¿—çŸÿµ ûë0;Ãî¡”ZÙìé´LŒÈlžz•œŠ9«ÚJª™Ë°#ÔÒ{;c4âúœñÀÒ¶rȤdƒ´ùû륺Öum¢i¾Ðm®2Ê lx|Ó¨à{9ª_­ÜöÎË“‹:ÿ¸§î®áRÅ/ôeîÂ¥ÃÏjþ÷}µ‡«Fm+ŽÇ®öÏ´²CÞ½µ¬03ˆÉÃâ>]sôW+my#AÞü^)c·³6HPp£xè+ =…½œ¯òõƒ†uÉÇÔ FDz@cM½¹YAßž#/ŒžZÖQT‘”­½X+“R‰L “ŽTòpN}Çè¨vk]»µ7ë•«Â10«¹8s´j¬[Ô(u­8û y™‡QE@x]Ã#c9 ÿSG©©:‚"I’1ס9ÎÊÍPšD-;_Ú¦ŠÊ ?LhYKØmvŸ²§¨jÚ¥ºI$Û¥µô&íž%]Hl¸Ï`žG#Út±ó"Z,7–ð÷2Œy œ‚Çw—àÖu·cdµšPuÜ4`ïdîþw^:UP´1¦»»¶¶ïe‚5^˜9ú(–Âör*E¾óàùã>•±7bݦicÕ”îdVÀþ·þÕ.Ê\Å)›ò¶ÖF ë'‚q»§ãHGOmÙ­_KÓ_VÐ{Imt#BÒ$I€H'ƒâÇLk©²Ôf}8\^K™{¾ðʱìÁÁyÛæŒ{ºµbÒ¦¼Õ#X#[EݸÜJJª™çÐ`{<¨r· ¹ksŸÕ®VçÃnŠƒ¼ÞUOLõù¨šm®Ësr;³627q…Ï_SéÐm¸¸‘ÃÎû؇_œt5Ñê±›)†Ÿ4vBxÐ7}(Ã8àõ*síô¡/q7Ìí”´›Ë˜ÀžõDoâ ¯\ç–=j±Ó¯màBWr´HdÈÏ@÷“ZF+‹6–æh-Œ áK€˜ÜaóÐxˆ^µ8á¹w{KÉÖbpÑȼ¹goP\`š›Uì½Æ«F>±löÝÍݼ[¢mí"€IRž§êªsˆc@m\C>ݯ±ˆdcÌcüt­h×MÔEô¼ÛÉUF%YFTsƒçÈÅFæÓ¸ÔcÖfµ[­òƒ$%w¸Års“Ç#=M&Ýê4’Z"±‰áH“|¯ýü uÏÓóŠx­ ¹Ò..R6{œñ‚ß1Ͼ¶oa€ê2ßAZv"¦YHÎv‘ƒÎÒ1Qëi)\F"ª9áñ–ÝŒq’:tújKI­ÌÛÛ[i-¬¡Oä’ºfG˜g u9Ó§´Ö|ZdÓÞY†Íä.ß zg^µÚÜÃf#Yîš1£";d#hÉôç¥rÚkI¹bÏ*$ŠòŒ`g}þßJuHœ_pmiç»ŽÖ kR—p “8L2ÁçY–ÖÎÜHÇpRì€ygœ×oc¢X]3ßZ‹ËwÜ"µ,Cn#;¼ù#Ã\ü†æhç{øæŸyuƒp[#9Çë u[]¶Ìèí^æ™7:‡$`(é’:ôÀçËÖ¬Ë-ö¡slð`Õ‰P•ÛÓ#ýb*æ‰z-uFf´ŠEîcŠ^£ŽªgÇ=<è7|¶¯¥¼l(dvgʇñp@>`dÿNZh™)^´5”ŸˆKsžUÞŒ¬0¿AÏ<}õVÞÒÊ *ðM!YÑTå%ݸƒï|ý:ÖÚÚYYéOÝkã‘n€’7 G‘ƒÉãØj–—g ¥šU¤7×LUNÔE9Ç=~êiXÚ¦BÖ9m4X'²Ä‡s¸ç#¯éj•½¬×û/\˜¶±VBÁÉÏ—»šä2^ÞÂö5±šs '!8'ÙÅ\Ñ´•Ö —\˜OröÈÇxÎyŒç=Ô©±_A¦ÐÕ­¼ŒmË»¹ãÀ÷g§Bm8Éi0K !š@¬ òÎHÏKRI\,v¢Qm4HsÞîbJóåǶ«Å£i¦÷vÿLøI`ÊÏÍçRé:ci¶©nGPÐn,íáœêp?^åŽG®xéÍVøçúéú¿ѸI¥ŠØ.Ò 8URÇ—#ËÓžzzUÞïLÿAwýý¾ò¤éœP¶î;ª3º•äùý~tI­¬VóµÂÈåm p>ºì'Ьï4ù§‚ö>þÝ>OvJíݵŸpàƒ´Ž¿mQŽÒ?Êeµ&îóâ n xLJä~ÕG1KºEþÔi-.•ˆc ×j7¹*ª$'Èæ¹›M*öXîn¡€Í®Ï,ÃéÇ_uzGi¬æ›²0:*²DHÇó®“ôàW %òØ4Úb»íÃKƒ†<õÆhM’ñ­Xé¤ÌºmðÃÅtd …<IÎ<Á8ÔBò©à½G¡5Ð#_h:]ÅÝÅ GÒE‘bÊ•*AÏiràŠæ¦ÔR®VkE™HeaŽHëëíª¦Å.XµGS©j³ö__µ½Ž4„HB“ãˆzzf£«|"êŒP‡°¶EIã—œ•`ÀùqU¾Ô‡Ó\Œ´¶‘¶=ŠY³õWò¾ì˜EQ9³Ñ#øNÔ„ÒôñÿwøRnØ_ˆ_YK[E•åV ¡Ø06Ÿ?0£é¯530>upê2>ž,Ù çwŸŸãZQ–§a®ü"êú•µ’->(Ù՜ň€sŽIó¬œfp.žéaRA ƒÈÏOO*ó¡šÑ°Øl§ˆÃ$’H@BŸ«ŽzS´o„ÎО¶J=ˆÿUo„~Ñ<Å„ÖâB1¸+r9ã“í®1ãe$AD`Š+/qÔçß@×ùÃí8øê.=™¡Xö›[¼¸–Yµ ¶ êÌ©#F¸Ï' zœcÞk’Š)®Ì ¿f7`ŒŒ÷dóŠô++Y¬ì­šVîÝÜóeOúà‘Ærǧ˜\1¹jZŠîëZ½ïîŽd¸b£ÇÓƒŽTƒÉ¬Ë¸¥k5ŠXf­FÓ"ƒµºŽ1óóí®‹NIo'Ò´é¬dâ‹##Í xQ¼,J€K ØÆšáï,md³¶t”Ûˆ2‚|AñïçjùƒÛVÕjZ‚vcXöZFµ‚g™J®Ñ‚Ù<£#Ë×èò9­Ëë +´¸ŽÚ%]N6\Î¥Ú>rxd‚}}<¨‹íci$zŒ©8OåÍ7Ùò0y9#¯Lc§«]ͨIo,7¶Sm‰ ÷‰(‡náÀã¡Ééç濫‘§=$ƒë6’ÙÚ]Ò<0œ.Øÿ7Þ•ÆI<ô àAÔYÚ”ƒVµÙqs9)j·Ç#þ”¯ùÁçÐóšØÓ-þ;¡Ì—W“´i”K PŠUIä63ŒÇ<L i`–ßL›¾i`ø»æ(@ÄJ¤}$€N²žñtO2æW©!¥ {¶°²¿s•m¡J¾7($ç’=ÕFôêwZœ6÷b5 ÁU`’Œ2[w™òçžž•§¯<1êsǦCusgºŽéØ+2ÀéŽ=>z äˆ.šîñfyâËÉ lnôÆ|8©~ËИÆÖ¥Ë‹œZ%k«[kˆ°ñ¼þÎW?º£‘Ó5ÏL“«²Û]\JPç Þsô éìôµ½²’õ-àp²[Ww2`à1Pê¶qŸCì5FÕnm­%·Ž%Ã:—‘Xân8<¯ÒŸ?6û‡—Z­Š“ê^ÛpšpÁÁÂy0v:ùú¢Õ´îâßN¾FK12M¼Ê¨ÜxÀO}\‹HÓuI%ï#‘/#tv“p\r|'Ž3áÇ»­\¾ÒnôÑøOr#Ü:¼ß·ÞüÁÎ+&éèn¢¤—2Ô©qèÒEl!±¶é ¤Y‚øF<¹Ï§5p_eíZÚÊÚu”L¡¤bM¬ è|Gçúa3ê:ÝÇÇÒÏã$I©a$|“ŽU}9äКçQGºÍ»YÛAº8|!ÆåbJ†ó\°>ྵ¢i u¢E Ý0Ol—Ö&ážÊ÷$€"MÄî#’ÛÔsU]œjmm Rîñ3~l)XÀx#Ó:6úUÕœ³ÝÜ\«³†Ý² #R#Œ§ËÏ4=&ú-Fâ¨Amn î’e‹Å"¶çŽwrsÎ}M\Õ%Ògº¼¶Ó’èDò®Ð&IXe01Œruȹ‡ÏìÞš—Q•3KnƒrB@c®ÓßõJ¿ôZ–š-]8Õ^VÁÛ‚71cž=Üõ­~Åh>¿k§ÌWGÖòe{ÅbÁH`ùàÓ\“0_ê–±èÚ¨.ÐË}ظ‡Ž•ƒ~Z§°ô“mî¶øœçäûÃ:Ïm2° Ðdd1Èçg¯—¡ª<¬/õOã]6‘d¯ Y>“¬(¸dävsœ±®:úù×Eþoû?ÿSê_ý`þíZrÙ"uÝ­Ë3öJyô«…åÒÚ[HìÑmL²`áá†àxÁ9ëPí¿c® íƒØ²yao,·Vñ‘g‹.>Q8~q·UÖè×:´Ú6ˆÁe€ï2„‚Vîä ‚CJµ³Ãp@èKmG´ÌÚ}®ª,î3cø¾ uCFB¦?82|Ãmy©ºrocÛŽ8Ã,b—^ÿÏØæ´çÚU½ûÛˆ!0™F–é[ƒ×埪¹>ÉÆËzö:µ­Ü:~æŠb ì!À^Fr6ƒÉÀ稯cìüŸÒ!’iµ{Iôè±Z£-Èx :Ç´ž¸êÁôæªëÖúoh51„Ht‰{‡·$ÈÌY(Ã#v\er·œÖ•§âr®_«_À£Ú.ËöSQГ_Óc¸ü=‰ãk…‘£š4]Å£b dî>}AÁS…à»mÙë9tnô½"[;Iˆžð¯Šâ){¦+Ó8ò ƒ»#ŒãÔ»@ò]iv6À¥íÍÅ”©sº …̃`Èz7òs‘ÀÀÿ&{a-íÒèWǶâHó=Ó•[† §,§œ Î9_sIáN4‘ƒù çS¿ÓeÒ­c¸šL×*'`E¸‘A œä“×ê5[³¿Ö¥Òµo‹ê¯o¬ØZ\êÝ-ƒÅ:ª)XÕûÎâAðñ’<…z¥Í®êzn”.­û.^Éíà{Ð3so"»$ƒ#žzç¦>¾ÒØY_ivck¨X]?x¿ ½ÛÀm$®TàŒñÐâµói#%§ JZR¿¼ðKnÌê÷]ãCn#Bû‹¨Ü àíÉñc‚qÐÔôM{ÍVÒÖò9á·™²î«â ÜGõO»Êú°=“ìïh“q5âKmilÒ_Z®Ûf.î[‰8‘¶®Þ6²ázà€:ÛÆÚê¶ž‹pÑé²YN³Ä†.õ‰PK>Övgp鿃¶¶æ‘Ìøx*×ùú!§vwàîö±ÙêúÕÞŠa.n^éW,HÙ=|Ǿ½L°ø&·µšÎÇ«XI.b’h¯w±÷î =‚«vâ˲úžÝ”¶:f» åÚhÄ2FÀ‚¸zœ…^8Aò^KtìóÛ\ÞÜÙê¹[Á#†(ÜõÙÐàŒŒûTU˜Î1މšó|vnÄšŸm5Ie–BòÇš÷Œ§9`rTñ××¥q½Òt›k-C@¾¾¸‚i7[¸•Je<ðyã®k®}r-fêg[ I9Þâ9ĆAœË Æh3^“m>‹¦é7ú&·q£ëZ4+ñë `îÖP£,UA"A 'ä¶02A1s“.5¹óïbâ[[ø­î[¹øÓÞ² `…9Èýo0|ˆèH®ðF Öï"šË”)3ÀbIÁÀù(}s»¨ÍjëݱÑ!ŸHÓ´Û)l]'g›e°„Ï Ѷ|E—q8ãö±Ö¯Új]”Ô§¼¿Ž%MJâ㵆IS2;…E*¤Bär1Ñqz›C´­þ¯ârÚÍâÃßÏmî rC0ùYgŸ.y§š(cì審j©(H)`, žpYyëÀò­ÿò¦×QÒt-+Èm-njÉ@£èw6ÖÝZkQ;DëuæÛÌŒ…%NÒ>¦ºfÖ»;¦N;&4±y¡ ;Ÿ{ef çx Á ¨ÏMðÁ¬NÖSv#K´Õæ›J¾ïe2•(ÑȹM¯æ@õ ùàÓŽ,¹$¯M;œó\.5r•umÕUYãš|SϪˮ"Þ= x¢€”›Â /B2:ŸmmÚvn+­ X[ Fd×m$Šs² †rÊ zò¼sÉÏJí_PÐWGŠ.Ïi7°$Q~S»¸*Ñ®ÆßÝ+ЧaèóÉïÂÑo%k½‘²66j"¹„Ží„¨NY¼LNOO kI7Ë÷èÞÆ &$ҜҺÖûÿ4D—R×lâ-J*“ϱ.¢¤U1€œ““žkœÒà´²»ï-l®åˆ¢H·2Iݪ¿ž<²O9=@ò®Š÷QÕgÒg¶{ËH®Ê]È®Žñ“a òØ €zb«¾³±s¨%¼PÆTµª`í¯.8*ÙÀ>žb¹ã<³…¸:«ëÞ¾ë=¬Þ‡Jó¹.šÜy—]ôØÇ´¾Ô®Öx,ášÒ;ù#We;|\cÄqžsŒ »¨ØÇ!’Otó´RwWí‚©,Xr#œa±î¬ÔÖ5k^ÎÙöž‰«¼©m4qÄ8Ý·8Á$¾œŒy‚kªìU®£ªêšµ®–ö·ðØbžêÔG(.9ÜÈÃ+8+¯‡ƒœÔnö<<•ïTršܱi7Ú}¼öë}äÊ\Y0R§åN:G¦j¾®}jb½œ¼ÛZòm ’Ãò‰‡^œ{ýJì'i´}~çW3é†ÕÉnçã$ç¼e£8äzp8=³÷i©Íw®Ç§_¬óÀA¸e‰-P`àãÙÎ1]oÃx׆6ýÈÁø‡‰¨ñcú¶ŽSE¾Ðfìí¦’–¢;«yåw‚–e'&ÎsácÚ¿«ÙövÇM2¶¦S™LqÛ:ã’۹냌:–Æsƒ®ŒÔ§±¶XcÓãš&nöAÓ'>Bç¥GZìv¤¡oŸâèø]“’Àc ð=œ·JQðŽ-·'†žÛÿ³ ø¿§ ÊQ¤í']ÚÛ¡a&‡cwÑN×&H»‹ˆÌûY‚¨–È ŒƒÓ:Ð, °ü­em}aÞ[•Ú‡¾$2 ÏL`¯#Ïv|ªúv"öååøÈ³A1Nò+h5;X‚1Œã\õ«7?Úˆ²ƒL“R…íË÷¥âƒ I\r㌑ƒDü#Šjœjýë÷ˆr[óÈÍ ïI‹ãÑØjNÑZÚ€í#Æì&hÆÝ¹È+žp=™ æºÄì–³cÝÙ&¾ÿ,»•"r ‚8'v<²r V¢üG¬¡üº!ØÀÜHîq…†ö@ãõEOôüð޵þQýÃŒp|T”qɶÿã%§Í#˜Ô-¢m.å,žg¸Ž3G…Äm`ûŽv‚Tœœ¼×6ö66²I¨Ddš+§Ù*¼y^ì Ë.9xã$<ëÕ?Ͷ›½½Œ½¯ÝoE$ h˜•²Þ#ã'£ëáÔ%ì†ooui¹Þ‰F2–ê€xnyç9¬çÂåZ®_òŠüÙÚø®o4ÚJú6黎6qdzzEÅš¥¶èÒ(DBæ[• \»8À#c’3¸ôÍfÝ:Ã|úWÅ¥`êˆÎù‘å'å¼p z{«§NÀά ™D¹ïCâ'×9È<šž“ðua§Û4-ªM4DîbÐ Ê|ŠŸÕ ó‘W. [y!_ûÇ÷88Å’<ÑŒ¿ÂKóHÆø?ÒŠö—A•/¥k‹iâÞ’€¤¯xÙ¨뎵G_Ô™fôûG{-ì%¸e>¿’Äç“Ó­vv½Ÿ³·í%¦²ú¥Ü÷\Fï¶ €`Np9óû:qQƒ±ú]ÙKu¨k§Ý!@7»w‡+Ò¸òððO\ØÝÎ=þ'L8üJU8Í'Ú-ëZ_mÉâêÕa¶~òâ9g“QéÐ}‡ù@ÿÛÿæW®é}’ÒtË¥šÜÞO°‚dŒá‰Îï’9ùÎ2j_½ÿTÒþ²?´”0Gÿ<>R'²ÝÂJ»Çò7õ¨žû²¶:½ŒÒë–÷ˆñÈ"M÷+¸!`£ îPgŒ/@(öZLW7wW†ƒ«˜ôùÊ;4¢\oãz @~w,þÏ ÅÇÚpüO)ø×%J]‘•Ú©íµÎÚ‹)u›ÛªÃpL*ë( &® •eÇ;yÀ'#6'ƒ›‹;ĵ°Ö'·ÓÒÕØÄÐ`í¹X”]™ˆ9ðŒqŸB›N³›W“T–ñ©ݘ¹ 3*«`tPp*6–ú%”¹ŠX¨ŠÓÈfµÑ̰nyò$´ÿ}‰Íô‹‡ž8Gë{VúVúQ罉»öŠý"ìôñ¬qH!-n]ŸAH™ (-†çÅà›@Õôëíbó^Òã‚âöHæI>/Hîef‘†ì6¾6’Ûî®êïY²‰·DdŽ ÇSòàiVCjç×ua—„bU“‰í¶ú}ækÅ8ÔÏÜ`?b>3Ú½;]±€h±Y 3mìDž#…Àù#ná½xç5J_‚ßÊWÍ&§¯Ü`8}‹H$‚pÌOË©'κ™5» q[ļòÇžj£êwdÿËyxräñŸÁ/b2|¿c­q³„¢ÚWîÿé‰gð[Ù{WÙ9½¹Eð“4ÁF2OêçWûS¡vrײwiÚm¤—¶ÖŽÕï$ŒáŠmc’f'9£¥”øûɵé˜ ‹tOi<×,þ—âŠqÁï‹×ôýNwÃä“NS#Íû#Ù.ÐZÛk)yr©.¡€ï#wŒàº3œŒó€ÃŸ1íÈÔÒ;–7rß6©t÷ ”LªíP|G©8ÁðŽ v»œ™ö bÝÿ:ÇÚµóyîGa´²í+ŒùpOÛÖ£ ŵ”V–Ég Q*¢ì*’UyϖǼû1sº™úøG±…/‹D§2<„û¡x׈ïçKïh·÷FE†‘ŽqiµŠ™bhU »Ú­Ã§=>lÕ—²{½¾™ ³ã'Œmˆwü1x,KòRSí+RHå“”I6ŸæËúÏž™]®ß£ %8¸ÉZ{˜é—1Aio [z#Ug%›sdœœdy`‚¯ÝYZ6Øí¬áŽ5W`*sÇã5}mp-¿çªe ;ÕI¡ª§âÜt•sµóÍz÷Ð—Ž kÓðØç´ýÙÙ=¤e¶Iˆí'=\““ž|~žCž˜½œmï,î ±·1X2Éonîv’¹ð± pxÏ^ÓZUÎ4QûÆ£´¹ÎGÎõ„¼G<´rrù³e‘§?Ÿs’“CÕÿ!Mܾ’éœÈGæðcRèBm#ÏóméV—×wŒ ¬S•p¦RØs’ýyêkY"‰q¹‡õÅFYcŒ¬r=OßDø¼ò^Ô«ác–YI4ÞäL'«ÍõÔ¹ä¸&¡%ÄŒxfâ*9Ÿ=¹_+¨ÛfT» Èrÿ˜ t·Sò˜f(±Ã·¢üå:ÓÌV?ÔúŸ,ž¹ЄiÀbƒ,€äóúÐäfèèSCXÙ›6ú𬧕ËÙˆÇUÜã ó£‰Ð|Î)Ñ »[ŸMÃî§b@ÀÞ¼þÑ‹"·¸Ñ^i!Á9==•\ÇSž‰;“«{…Caóúë—,ù¤+(ŒœãŸZv#itëR@„·R¿E•7µ:z¯ã]¸“äE#2XQ\€§¯‘¤±Î<š±w QÈö}Æ„‘ƒÆèþýëšr”e¸w iˆëŸðj>õi~¯Æ‰jve_o³¯ãVr?e~¿Æ»1äçWe£¤›U°CâŸ$ysUOh-†(È9䟶¹˜îŽ1Ÿ]‡?ðÑ—g€Œ£ý›WÖgúqâ4‡,~ ÿ6yxü+;³z^ÑÞ0"(¢PFH›>ÕoïSübñ Ä~áûÚ¼œ™¥‘ÜåoïüÍRKDMR|aT(÷G‰.cÈuùapJ£ÓƤ r7&=}õž½€&!SÖGþ·÷iÃ1ý»ŸC³?Ù¨ «ÏvXûBR21>—Ø[»u&몛.˜íس`ãê¦ø±Æelc¯„ Û—;B¨ùѯÝS[9>S´KïsöR»è؉àQú=ß7ñ¤eÇÄ÷þ RË‚KGÇý¸uH‹„Ùé7ð£U¾€0ï˜~•P{eûU!d—Aÿj?½L$”ž$Tÿ½cRX.àJŒ=K¾*[‹z&Æ"-ÓÀç÷óNeÇÉÛôçî¢%“•”V +óŒ`þXí É*~d?Ý©”@v¬‘·®Èûh2±' ýØÛñ¨—$wvÄXÇÁçŒÿv óíð¤y?ìÏ÷j¯u»¨öFŒ¶ÃÕsþÆ…9¿J¡ŽZW8e?2Â’Fä|’þa©ˆ‘H;ÿÃФuQ€ ‘åÜG––²b  9ÜQÁÚ¡Ës´;ä2½UY¾W…}ŠBx ùÿd*eGH  ×,xigÈýUÛ‰Ã7ÎGãO»7%$÷£*´~¸ýÔü*T%7r(± rÙõeÀÿz§ÞB£’=û×ñ¨³²äwRo€PžRO…RË[9CØd湄»‡û¦ª´Ñ‘à úRrzáÿh* œ‡ùä®iäsb´L@9óãð«újØ—d»œ ÚHÚ¹¼;NÌj¼#`ÏŸ§Š"¶|Ó>ÙÍu`‚ǫܥ¡e¶ =Ê[c®Cg?1Z©pó·»lŸÙVbÔe dá=DæªHÙbs>]é"«>jT²ldlj\{÷~ÌH_èjgeaò¢\uñhÊï|xö±®ìEô2*Œ¤£Üñ¦Üùà?³†ühJ¡xx?z†Ò!ÚK[tý‚kÔUTR't[`m¯ÁêA?Úªný1Ÿ£¯×F’HÙ[›~UC$`aèÍrgKšÆÊÛ@= ~4ßæýñ ™—€,gÊ:Œ'íGÿ’k¦ÀXøðÛáŽLûg?uDÏ+/€<Ï|GßBXÊù,yôÝŠq»¯ÅáË&ºŸV&o'Äñ|óu§. cí˜ÐÄRã=ŽM!œÑZ}MÇ¢±Y#íŽÔ‘ÓÆiwËžRÓé&¢-§–´˜¢¤r.FlŽ<ˆæŸ¶öÐ@šuÏÔ{š(`Ê9´Ú†¦ÌØžµÈýP¹¤1ÿ·ÙåRùW©Ø‚É–Ôûg𠏶EâK_rMGrÙkÈ:c `²1ȹ„ õâ’È¿µ ÃA ðgÙ?lj`QìƒøTB°7±{p9øîÐ<öŠõ%»  e$ƒß}a©ƒÇŠiOº™ÛÔê ý\TZdQá¿mÞ»iT#»° …å¦zEN.é.½£`ª¢L‚N øôÅ"cã7²P¤óW¥aîåo;ŸêŠg¹”盯¦†; ¹kéqéÎi'Å“þ“1öœÒåœ÷`Îç%oè©ÆH»Ï¦@Í Ì{ƒîæ„òÚ…žå½ƒñ­! XÛ¾cƒÇ¡èM)Î\3zw¼UMöÏágœ/¦j%ìyUiXûMLóô@Ë ÎB7¦ Ÿ} ĉÂÀçÛ¼š[vo‘!Ç·p-ÆÙ‰óšÉ)dbC+óñfÇOõ£Ç  câ:'4,ÙôMô}ö‡ [LkxbQ^éÔÉŸY*«Çâ0EŽŸ¤¨“i·Åi6}2~ê ˜v•­h53Ì–ˆBf={¨”~õ@»(Î"Ï-Iv…µlÔàYÙÁ5ÍÍoP<•‚Œ¨ê o‰ÿI³JÀœ±ú Ñ“·â<,×^,|¾Ó)!¹T%¾"GÓQ â۾ȟݩàíÿ(Ç©¡eBÆÅyþvkw$†Fv$cuŸ´ªãWÓùÈr} lÄî6ÀsÈÍ8I&ÜepN|ÎÄ iè²Ä3çSv¾á2ƒ¨áv= ”@Ÿ`ÍEþ5ømcük½€#äñÄ÷÷@Õ9AÅÞqé_þRÇ-k=þõZd¹±îcÏoJÏ;Ð «(Ûúr?£Mß§úvúêÊwÉ3À≶óö!úEr¶0H-2ŒQQtи >|ùÅ/fäüQxõ—Ço[¥°Ìèn6š:E6=3üjk6œ8î¦oq¡µÍÖì4 OÁ&_°m¯É?'–OH¡Z’ Äê<òrjM5§ú'÷gøÕ¨ãÔ<àUÿú2 õù6ÑûøüjV)Ëv*)F°H0¶³7™äGŠs†²”ûjê~SÛÈD}>óR3ß¡Æc?GÛWåF;…TÛ†Âé­í<ŸºŒd‰G =ນ®5â1åÔf‚^ý†çuùñRòEzPXqql;<ÿ*f”°æ¨'Æñé>ÊŸw~x¨Ï¨þ›”¤"Ç&ÉG´Ô€gÁ(G©ÒŒÑƒuà÷rs[§Ê€²SPãÛúܪƒ+]€vÜ öã­V …Á”ãØj ªËžñˆÏ¿Í“3zDA1tO7‡ÕO²äd™WçÅc—‰yy¦î­Ëpù>¢¹›`’ã$o>˜«ÚÝ¥Û‘ž(QZÚ”ÞÓ"úp3Dø½‘È[ÅÉþpÍuaÆýRD– Ìd^ùôÇ4éËd°=´´³Cá¸ýâ£%½š’ à“Ô—G‚cáøÞÐ:œU{•“pVº.úäSË ’ÄI¸òÃUYmq„”‘ï®|ÓÒ„ÉH7ü ®~º Îr?Ç­£·8ñd{>úrÐÈï@?7É@EHn7y æ®@ˆÞ6¾U8õÅPV³lbByäÕëKHRF÷-tbÆÜÆ‘!4™ ‚22Õ ¾òÈÿ:ÚZçÅ(Ç£H£ÒÚX¨Ü'„/˜†?Vkº0—b’)¸MÛMÉǼ~4 ˜âÆEË,?¶-ô¢¥¥¼N<†ìý• âÒ D¤òd½|‹þEŸPqïÛÞ:S4š†Ü–™Ï `*Ü£= ãJºêoÈÏ¡8 ½ŒŠÇ7îäzgíÍRÊL->=éQÙ¨Òqž„µa.%tB´[m6gùWRìÇ}t†˜»¸¹“æïU# ~T²ìzš¥øÈÇÚù?msË"}?1hX:cuøËfÁøÔ¡Ò·™¤þ ?Ú ¥ž¢çØö·ñ¢‹]AjϱÿT!ͺ¡‡]wa®ˆÏ?¢ûTí¢§ys.={‘ýêZj$ò[Ù—ÇßI­uÈ%Ôù'ñ®¨Æ1Z!‡]"û¢9êøÓ®Oò†f0 ýõæVݲԴ-vïLíKMÜï&9Wª"1ÔQ‡n…§j–ÎéÃiW½ÔêyèÙû«ÐúŽ_í×K=éÙJ4í_ú=M&Ú2KË#?Sœ }´!c-âséâþ_¹Ÿ`1êyV ÃÔS=´är[wïšñ2ä“tÑç5Nš,¾Ÿ 0;ܧ-×ê¨6Püzq@[9zsíjqi'CȦêÊýÂù6V¡€V“æoáG‹K…•‰i€Ç.¿îÕU°šL•1û·QWN›§„œrwéÃý©!¤Xü—kòCÍÇ‘8û©.l92Ï_?uVü›tÄdý:M¦\ìÆèÉýâqõWW0Ë'K²9›#ùàýÕ¥Z Aí.ÏÑU[K»Ï…“óB—NºTÉ)ŒôÝšNZ[OkdŒ@’V?µ¸c쨽£`–cÎxoáB62ã;e2Z:Ÿ–¤üõÃ,œÎèE¡mla‡µO¹€yªñä‹ýÚ¦-ܶ÷ŸÂ¤ö³ãoÒi,²j8b<,²õó~>ʲ¶6AKJîäð2ÿ³#±”‘ãÜ?…âS€:gßÏÙ]8'&ÛcEƒc`à°õññLÖv9$2¯\€MUøÒB=Ùû©ÛN›fíñ)#œ’+©H¤LØiäî ‡Û¸šŒöÖ"" ¨ y9?}DX±R!9ëž>ÊäÉœ¹#¨¤æTfIý>E^ßëЯleIÝY£ðŸJÅ_ö’±ùmÉ­Ç» {€};jðíèù=r1÷ÕE²„ŇÎÔTÓàsĬ=ƒÉô¡F©ç>•1ªEvIœrp)C¤ÅŒ¼ïîuYM>Ì/-!ô$š„žâÔ zœnG2=ÔdÕ A•³ëÅ0Óa$°‘Àô$~%±· ŒÜsâ¼`—Aju˜ÈÜC-'Ö`Ý€³çCu¹#ín”ÒÛØ#홇¡â›u¸[5h›õ¹û(2kе vo3º†Öq8ʳ(÷ÔÖÆÕy,Íînkžy_A[ë%ü-'Úxû)¿*(w{š‘·µòÜõjǸ×t¢¼Ýyû_—|ýßZœxófuf˜ñdÊê ÍÊØ<Ç´únãì¤u"F{°±¹5[M]7P²†òÊNú9qžG°Ö¥¾›lF_9ô j'ƒ,dâÕ4Lá8IÆJ™Iu=§ou»>­ü*ÐÖ"ˆq'G²¬þM°_Ô÷x0°³äŽƒy­¡—ÞÉÔÖ·sÝ.1äÇð¦ØÎ"}ÍVFŸdFv“è7÷ÔNŸe·…E›Ûš½CR³kD1ËnÏ]Çð¯;íkûMÙîÖ=ÌÌgÓ¤ ¬$xvû‘¯F¸¶Ó ‰Ê©‘ÀÈPÍœâ¼þÇ^Ñ{Jn4MfÄY\–+çëé‚zêá‹r”y¢·îŽ®ÓrqµÔ¹ÚT±íïgÅõˆCpƒÂX55ã·bâÒo‰ÜUŒ•Pߨ}+¥ÔíõŽÄêí%¤¬#'ÂØðJ¾„Vkï ×Jj‘´‘âD^ÇZ÷x,oöeÍ껯qëpÊXýãÐõ/‚~Ñ[Hü3¾³LÅ“úDô÷×JoH~Ìâ¼kà‹RjìÛp"Ršõ^Ûkú'g¯+¶v‘ÎV(Ç8>f¼à%,ÉâZ³—áÜæ§«4Eü„’ÁqåŽiÅûdé[ßšZIÓõX.­cnîToO>U m¬ÁÛÜ£×ý漈ðÓR©t<¹BQm2§åyÝ Ç—#捻¯ÿ4êO<}ukâ–[ˆîG»j_³ …1ó×C‹±S*Iª¾>Buò´Øý\úƒWMŽ3Ý.G°Ò[K.IE|ÔƒR™Õ$Q‘äŸ,¾ƒ.¥+Ÿ!ôê*ÝÜÊ0Fzuâª÷v ’@cžÏžOd'ef¾*ÀüzÑÔŒ8>àÔöÚ·D r¦VÝ|!PF¹_0jV[‡ýeE#&ìÔsÔŽhÂU÷ªr}qÍ£B¿¡R}qN˜jW[ù”«w`‘Ïøæ¬ REÁ0©>ïãG²‚&'¼ˆ5¢›KBÄá@Xé]˜SQÔ­JgT”ˆ(c¯×P“Q•€SíZ·ñ{pÞ׎„.i¤‚ z zbº#CÔÌ}BáŽ]¯Ns×é©®£ ]¥qíþ5eá·XÆôQêvx ·`H…H>{:UR¦©<¬ÆLIçŠÏøÜŸ³þ>šèuh­Œ#1Ž1²³>-oèŸUf£&K²õ·7F|ëVP@Ï•*UX÷(”¼:ÓøÔ%$t$r)R«d±˜‡“Öš@$u¥JœFydù=ãã'ŒÓ#0PC¾´©W6oPˆw’n?œ~¾µd~óÛé¥J¹žâ"îýÛxÛé¯í1×®òÄþq¼ý´©WÐxªz^ê—ÀõÏ‚weìªíf?#]bM0UIJhúÒ¥Xqßo#/ÿ¸—ó g–^÷ô×öA¦›#ó¯çúÆ•*ã[Bi¥Ø:ÿÖ>•\Í1“™dù_´}´©PÀAÜŒ–lŸ<×ü"x5ùÞ_»Ã~Ñü“·óv"ÂI¤|¯‰ÎOJó I *‚@ÏJT«Úð¿±ù¿Ìïà¾Ëï5»áí-žÞ´·¹n]ºzûéR­ÐÆår]_:ƒK œ#¿ 4©UW¿–Näžñú:ËïeÿHÿÖ4©VRÜ–ÿÙbygfoot-2.3.2/support_files/mmedia/pics/match1.jpg0000644000175000017500000007017311225071373021123 0ustar eliaseliasÿØÿàJFIFHHÿápExifII*  ’ž¤ª²(1 º2Äi‡ب NIKONE4100,,E4100v1.02007:04:21 15:41:14#š‚‚‚Š"ˆ'ˆ20220’¦‘‘º’ Â’Ê’’ ’ ’Ò|’)Ú†’} 0100  ð ° Š££¤¤¤¤‚¤#¤¤¤ ¤ ¤ ¤ Þ 8 2007:04:21 15:41:142007:04:21 15:41:14  : NikonII*^d kx† Ž–î(€‹‚ ™…¦†®ˆ¶”•Æ›œËžß¨é¬ ý­ ® COLORNORMALAUTO AUTO AF-S NORMAL èAUTO a1I%{‹ íûvd¿29(àF ?d‹""""ÿñÿñÿðÿíÿÿ""""æªöd$`\R  ¿i½f5ÇèLjˆéÞ SÛéñëSØ!.€Dr²« i ý,wwww%dˆOˆ ¹8à#'c&[$7;2(NORMAL OFF dd OFF ASCII dR980100öþ(b,,ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?îBÓÀ4àµ"­zw<ñª=*UR„ยà(-S#Œ ‘E!¡åxÈ‹O\ŠxP}+Ø{ˆ¤Ôªi›qN“°+¢@ Š]´Š*U5›v+q S€§í㊥p° x¤ž&4(¥€)ÀTܰ–— TÜ`)ÔKJà´QAAE-€â€§@ð+²ç5…žj@´\, "ŠULš”.88©rˆÐ§อ ;D™ cŒzTFŠçËpËê gíUìiìÝ®B9¥ J< nDXI©ÚO-”’dSºÐ< ›!§¥ñI²’-;RÔÜaŠZ)h¸ì´b—\v )qKŠW1E-®3ޤZ`ð+ªç=‡Š`ð)6*E4À)àR¸Ñ¼S…GeÍŒõÍ•E•îUÝ‹ S… §EÅaž)¢ž*[BŠp¤áE˰¢œ)-+…‡`RÓE8TŒZZJZ.4…¥¢Š.; J))Ö4gb¨É'µ+…‡QTWYÓ˜d^B>­Š)]ÇžŸEÏ—m#×,'ü$ó,±è<ÓÿÄ×Ò¸^ãl`6ÜÖׄµ³’ðj—Ê ¨Ê©µ—®qÁéSífúÙDZÜXÜ\Iÿ©»Ä`’Ã>oO¼8­$ÈàÖD†”Þ|ß@^np\pÜr3@k'_²XmÖòÓQd’5E߇2HéŸéVªµ¹.ö;šx&¼Þ×Ä:ŸÇÛDÀv•2:ԃƗi>Æ9ý3“õ£Ú¡{6ŽàŽÄƒcûƒùW'sâÙ.mÀ³‰à|üåðHúUŸëÉ:ÚÊKg…ö§Î˜¹YÖŒS†* k‹ñÿ‡õ­JÔ_hL—q®ߌH=‰è ˆîò£©ëHgzÍú°¯•¯µßé×-m-żÀò®Oòª¿ð“jÍÚ”ãèi\«Xý¶ÑzÝB?í ¤þÔ°^·¶ãþÚ ù1¼A©»œêwXÿ®†£“Z¾`?Óî¯ïM+†§ÖÇZÓ]BÛþþŠa×´¡Öþûî¾H}Zå—þ>îsëæžiŸn™ÁÍÌÇŽ3!¢á©õÉñ½oâü2iâ:ß'ýò¾FûI'/+ŸøsQ4êÌHÈç4\,Ï®[Æz uÔþù5ñ燮¢Ÿ‘¯’¼ågÛ&:ƒƒñæê}d~!xizê ùUY~&ø} pÔ²Ž?:ù\Ì>ZC?_”¥©õü-MHÊd20ÞjsëÆk#]ø‘iy§,oà‚FáœÊ£nkçCqžˆ£è*Ìp½Â‰7"{sHw=q5Í4g:œ'¯ÚÏWŸÙÜÏmlªXœn’6$þ4RäAÌÎYu›Ø¥cåÊ¡àäÒ­Ãâ-]#./¥;HÉc»ùÕ&²Jnû)ÿ=jÜkö ÂÊÀ¦Óƒîh²âøÏUEÍsÎèWú ²ž8Ôvå[£Ÿ”ë\úÛocû²3Ó®Úi…ã¹ ÿ<³Ç?Ä(²¦ä¥ ªö1±îD„<Õ´ø‡8{WýÙþ‚¹C¢LîüÇ:ä~QÅXmâI‘V'ù‘Nvð>QJѼvüA°ŠásèŠöj×±ñ•«ƒ=´ÒÄ@åË^}ÿõÀH£òŸÌW=ÿs=Îcå/2rÛÔðA#µ+.ªÜï¿á?½i %óJ¹Ü­æ° éÁëZ>øŸsÙº¨I™òçÝúßë^e»š4:¼KŒøÓ¬$žViRÞ(NÓÁÎ{ƒÍU´Ð—vt_5‹]WíÎÖ…>{Ù®BÌp9>ž•ºl^]ò¸gbK€gÒ«­±Fp asÉ㚤´Ô,dù'ÐÒ˜r¤†àVÊÚA`¹##‘­³¸„óüGqéùÐ0ü¦x§4îúÖ»ZȫŒùjU³&"M@$¶sÍ;€"#=)æß*9­¡f my`Á síÓ­!µdª.ãŒîOB:ò=(°æÕ•ˆ ŒzÒ­®Fyéœb´Å¾Á^Bœ÷Í3Ê= üÍŽù拘±dã¸íKömÍÏ=«OìÌ»š@pÈïøÿŸJa)UñìÙX,moòþRc>ãÿÕEfÅc{r›ã`1»RÐ9YØM¡höÖï ›MÖÝøW,Åy#o¿QíRØèÖ6êAeýñ]é/ÅÔrZ¿§ÈêiæÀ \Æ¥(cõ⤖T–=’»È@³`ŽœŒV¤V®Kï7u ˆâµ°–íb’Ö2².ñ:0ù§çëÿêŠ+k ÏŽEù[Š ÈëÁõÅIž\{<“±†Fiíw½vaBŽ«‰¤ºþýa.‚EoɸuD‘Û†ùY>Qœ€OЭKgX$ŽEP(ËŒú梲Œ €z㊌z Éã)­¢Èx™t,„Ù(UuK6IÝŒqN?*¯öHIbç8û«·ŽÜœðzzw£s})Ãqè3XË.ˆ‡^l¯saÄ‹!‘Ä€c!Tpz€)OÛ7›ö‰‹cãÊ­à÷ùÓ†áÎÑõ"²xº¯©òîR“MY— $§€2d5ö ›09—Œ,„qœóþ{Vƒ;tÆOÒÞ½>•?Y«}$rjÍ•I²Lr;–'üõ¦I£XÈB˜rq€È¡«…EþTTdÿ*>µYý¦+² Ò­cUFŒ68\’vOçùÐú]š<õ<ÿœÕ’ÿz–\ãïRXš­7Ìþðæec¥Ù ÿtd''<Ðúuœ˜"8ù~SN:Õ„fû¹¦»›Ÿ F@ù³ŽN;UÆ­Yí'÷6ÈcÓ¬ãP©m  +’?:I4ë)kÈqV¼×cóA}·ñT†IWƒd}üióÔþÌz÷*¦—em–Ѩ#Ž¢Ÿö;l`CÇL(­ãÐ:ª û‘ýi%ˆá"ÏnOøÒ÷÷æüÂÌÉ}:ÕÎ|¼öI_äj³èv§î™Óý×?Ö´šf©Ž0G®Oõ¦Ûܤ·FÐ&€ÅsÜg×Þ…)ôŸæ;xn69ûDÿ4WR!€Œ†‡ÔëEií*ÿ8ìedwúçü(s÷¿%?áM1cïG*ý[šr®:Gp æ3 éùçü*@£ÓÒšQ’%_§øÕ‹«qh–òšEž0á†xõ÷¬íp±Xýr~Ÿýjp1ú€=?È«QjQ®5—Ù¥‘Ã} ýå°ÿ=ê)дô5Ø,J1÷Tþ}©Á•ÓŸð¨%“Èv‰ÌèêpU†¨žp»M"ªŒ’z —¦€\ócQÆçþÝêýH‰ÿ ¯°ËÈ·êÃ!€àÔ†aŽ&”ýE'uñhërmÑ€HÇæ©JÚK¥·7¸%:á½pi^E#æ‘뎾–{-]J¹>K TŸâÿëžþµ­ ^Ù¸šR‚›³;Å(£¨ýiŽêN­@—H-ÐÉ<¾fp;Ó>Õ äË/åYM8®Tfô.FË»6˜ž8=GÒ¡a¢›2T\[KÍZËxö,ÉÅ».äýüvìEG<VwHâÆÖã=À=ÅdÁqjöï™f#m<ž€ð=9$𱬖v»6“BeQäC¼•p¨¥'§Q,*•¬*”m+ÛM N{‹ÍZâ`@V|`œ“Ž?¥3Z³”E5µ¼«"<öÈ%A#|ÖeÈ¿¹d‚ÕÙb̳lLlqlxÉÿÉñ± ½£¤1È.åTÚ<Ò|¡ÔñÜö¡áu¿v)ÓMÊQ.x^â1 Í»D¹IÂÇupzàÖÜö—Ð,eü³½ðÝõ÷®3Ã+z.å)!¸[i$·<½T·ãÓõ®ÁíL–ö:…ÝÅÓBÒ%«Cß_— þyíJ¶JW]Bt\—2 ‡QHî 3&æV pp¬/9—XŠæç>ÝÀ­_Ù¶©Éh³´–ò:Ü[³ut8ýGCî+ÄR[<íe’DFóqqÈãÞ¶¥IE+#WCÙÚÝ^æòÞÙ¤„)†ÜŒäéô§ÄgÆÑºžŒ`ÖeÝÒKá›{¥.f$B\¿ÉHï‘ü¨¼™4{‹ ô…†KXÚ9 î=ÈÆk–TÒÚ™Ë ½Ÿ2ÞýÍÀg…THQw6=M[‚ÖöàHPÆ¢5,Řeø†þÎúßN}1j§†˜Ô±á°ÔsVR9&Ða¸E’foš,•ÜAã$CÅh°ÖÐÍQÒãeŠàÁ‘³ýÓšŠ}ÐÛM约ä*¹Ï&±-5G¼†çÌûR´ ±Š¦àO§QÏ’îå’Æ¼šâÝd+ŒDùÎGOJQÃrÊö#Ù³x8 ƒp‡·Ý?áJd\ÇÂôþë…IªévV¾´Õ,µIn‰KƒöxòÔwô>õÏ[=ä÷{ –ImÞ=Ãj&GPê}©*Ã7&Ò5­$¸šîèp Œ.ŸSô©¼ÑœGSH7×K~4ÈÙ1FÌ~eÈÇcÍEâ+=SÃÚpàÔ-æ˜ ³ ¤ã·Æ«ê÷z¨¨5È\¡r¢|“íUã’1{t Íüã¯Zæ4ëù'¶fsqs-¸ÜÃÌ!V1€O޽s]u†‘ً׺î è%ÊìF:öÏÖ¯êϹ“WC¢hŠñ+ŸJ*;˜,嘿žÑ1ûÈ·@>õTdò3”ðÝ›+7šŽ†26žx?Ò»+Kè ¹µ`RCÅÝŠ˜q»Ò¼Æ;Ù-â(®@n TÑjsùF8×{FЪã³7/“PÒ«â[¤¸Òíï‹È±C‚ ¤ž±ãk 5Žêe¸ºDc" ˜Ü¬£}qάÈÖ—šÇ.ZÞPcg%süðj/©«M¦Û¿S»¿ñ}–™ày4Í9ž[› Zöi[-Ž0£±Ð漦3öëÕk‰ £0.þƒ5zú=ñÏ,eLD|¤pHàŽµ³a§ÛÏáI¤H±4¾-Ý‚òGåNMÅûÄÓŒf÷ÐÉ»ÕâY¸†ÞËåù”r»N0c®¯Zï㻎óN³ÓøHÖòÅ!—]vä^A#>µãQÈÂV”ýâsšÔ°Ö¤³œJ¬sèhœoª U[¹ëÚýŒž ´±À‚ bšB’Jçî ä´ þ5Áë:%þ޳%ä(`º“1M†R÷ÿ®¡´ó[‰7¾Ò{5n®¢š‡MŒÁÛtˆÊIä9ÿW²*o™èdh—±A£ê1Ï•"Q&Æ‚Aâº+maµ_ ý£ÈŽââÌÑLìp0qí‚Oà+óOM3I¿—¨hˆ ÷ÍGàíF]:v*̱6æ@s•#§èjiÙ¦ºj'0d»ûI[hÚYš0[ùWE¦jz€ÓÞÂxçKyH'å8Vα¯µ ,ák{W+8\pH÷ªvÚÝÊ4„“Þ­§ÐÊü®Ìé­uMJÝF˜²ì€Ü27dwÏ¿õ«ž.ñeÄvZHÐ+‹‚Œ àƒÇõ¬Ý5íejr¼€¬ÄgïõéXšäË©jÍU!SýÑÅR»Ü¶4n¼Aö%„Ofé {„‰ÎÉGf#=AþuQ5{ïí^9$,ø  “ŸÃëQÚjéq$&ÒY°di6}†k^òçL·†ËWÒ”ÅqbH›•ÔT¸§¥aRQÕ3SE¸Ö¯d–vT‚)ÞGIWi“·ý®éUüI¬I<¶© \KnHÄ™ùŽâI?ž1íïVtíwí³!†`Só°A‚[¹®6Þ{‹Û‰"Ù$û³¸*–ãÖ›L—1é¨Ç§Lf±•eB¬¯ÈÁàq]§‡¯Mþ‘FvÅ çJç¯ü?~KØo#’8_6Fïþ¿•?²Ékƒ ¹wÜ?ÊŽ—›v4¯lHºr“í w`/ÿ^н;4ñŸJ*lt¤¬yœGÒŸmþ°QEjp–¤ý˜žùÿEæâÙ»¤ŸSëEœ©ˆ%‘ŒªÎÅVgÚ àr:VŽš[²°2 Q-×ȸ|æT'÷Ùéø×kàÕ £]†-ø?CEXÑ ™å+Ñ飭UšÐ"\8Ö»o *¼2†ù»ŒÑEfö5ê‹0Qý‰8ÀÆsš@ }x€a~ÍÊ:}ÑE¾YÿÖ£÷Ïû«üª‚õ¢ŠÚ;×þ$½N’Ü‘á¹8ù‡ó²ªéð'$:óEãÔ™ü(ÌÔãá¿ô¨#cä°ÉǦh¢‘/s´Ð?äüúÑðøöÖ ½{ãž(¢ßCŸ¼–O±ê)æ6Ï´·u.T5Ä*ÓŠ´´ˆÔ˜í݇ ML¦‘Kd@´ *L2wS{y¤¦Ÿ@àЕ>T²(K#“P)j´aiÀµ.aB§6=”Ò`ÓÊÇë9M—¯1­æ¥­;œŠ, ÖVÊè!J€ (°I„i@R” X–âÔD¥…¥=)@ —"¨%ZVÚ1ŠVj‡BvâŒ-XP@ :éàùçΜ‘цJ,¶ÕžÅU¢•‘dÛ¸sŒy?ugÞ5ðë†É#Žßçšfâö[®¢¸,{Ò<Ü–iÏØ8§P*G±Aï’IÉ&°Ã±ù–XÜ~b@¥@R…vÙÇA­)E¥RØP`RÅ¥ –ÊAŠX¤ŠX¬´€(P¬R²’¥ŠH¡Hb…¢ *[y£ÍZMM ¦ Ò…&ŒPÑÐb•”GŠb‹*€(EG@ÃPÅ£¤СF)T9££Í+¸RÅ$ X¯NÎ ´±I¥§aBÖ–´)@T¶* -i*)`R°¡B–)"–´¬hZ“KÒ(TÙH‡nßò‚ñ|þ‰ÿŽj²SlåEàÿøVÿýóU¨©ˆR…+)b’´±Þ“c Å,Q P-”¢¥ R€©ÜZˆ(P•E”( b•…” ¢4t¬(XcJ Å6)B§¦Åh !F(tcTcµ+AÑÑR€â‹Ž‹`Qc  U ¬( •Žƒ¡C4) æ–+&Ýs¥(Ú-ï]»ŒaP=}æý™òõ¨²{A„à[h×NIÇçdT†êëüF?S—ÀŸ¡ºSKá\üõõïuРö/|GááÓ¿ÝfIV8t« Äàœ“÷ _ŠÅêWáòz(€¥­Vè ¬:ï×ä°±s L-‘Ȩ1—îÂ(Èî3Ï—5fèñ»#©V¨äŒú"XÜ{¸¥¨´Ø¥Šm’:ª=iAi±šX&•$8ÒšlN)¤Û)$W@„u]ß¡±ƒÿZµ Up·ü«¸ÿ˜Åÿ‰%[Q¹j°( X¥¼–ŠP¥¸j”£–â¶€R…(À¥cÚÉ¥€i"”(ÜU ñ¥øŠH£•±ÒµC4M t@Š<Ò° Å¦Ì‘¯Öu_™¦ÞöÍ>½Ü ó I¥TÕ´µúÚ•šüç_ÛM¶½¡¯ÖÖ´åùÝ ýt‡Áiš<Õ9ê^õí,Úãý´ƒÕ2­´ëúf{ÿ¬§í v‹ÁB¨Xtº÷×ôãòMW^ûEé[bBßý ŽÞç?m!Ú5ù¡Xki;ô©V{°!Ün±±=¹ÈÅDƒÚ×O½ôнµÜp ÊLW!þÁÈ¥¸-›žXà…¥–Dd³\úóÚv,vïkta>!#ÄÄ…õn;}ÄùÖ3ÚY¦»aq§éaæ‚WçvW!yQƒÆÒ{Òn¼†¨²Õ}£^YÞLÖú¬ ݆4Ã!Rý¾dTý$êŸílÿ¶¿²¹.—Å­„`Y!»âoÛ³ Îã‘ÅX~MÒÿÜcÿ½—ûÕ‡¾Ùkiœ{‡ueIc;ãr3ƒúÁìG¡§^ÓW››Û;9»Iòªí? ‘‘è{UPºÂåâ}¾EH?²£ÞǦêPøWÐ,Ê>©hÎTüäTRf¶Ñ´égÕzÊiÚ^­¥Ë)V‘±p§j/ÖfÁì+¨èi\÷v:7:Ĥ¦îXþº¶ðÂäFÂyäŒâ¸‡²†ÒzS¬aÔç¹™mD3DÍX÷ÆT2ž3‚kµÅ×];s'k¬XGp¸Ú÷6¤±ÆpI HÁ=ûkHíDKt•¡[Ük:·­6ûÉt™í\ÈÞô³2&ÎOrG¹Rj}æ«u%þ›£EÅæœþÁ"ä,j̤ä`ä§¶ÔI²Ö:udeÒõ- G"¸ÈiØ;Y—9Ç~ÿq[é:m÷Mj–°I-½Æ ¾%ÃBâ@Ãj&€}Þ3·9㟆›½qm$Ì ×ímåh5æÊHج›·&Ò8# ~5¦Ñ}¢ô®¨ƒzÈO“¦ȬÿµÛ+H%²»Œ™.dya’fM†P‹RFy>ùó|ëIea<»çµ‰Ÿ<3 $|%žh^ Yè«=SM» [_[ÊOñV@OÝÞ§ WšÖÕ£?™¼»‹â³sä~ai«uŸþ¥­JTÔÿå*?Vµ>¨ŸÐô84›‰á¶¦¸•"‰Y˜à â¶>Ðúº×h­nÔy’2~ÌÓNëÝOÔVöþ<_EL*x-êy>_µ™>‰xš7ðõ”ÝG%Üw ñ5²B0¿Æ Ç<ùsZ«[ˆ®"Bá”ׂF‰×Aö{¬M=ÒY1, Ÿ°hŽFß!,i# ƒJš” Y™‹ö£×«Ñ/h÷íî±,ѹ]úåxÎ9Çzç¯û£4€pº†—ŸýÚsú+²uNƒ¥u>…s¢ë6«sgp¸e=Ôù2Ÿ&F¼]í_ØWXô­õÝΛ§Ï¬hÈKÇun¡S¿¾ƒÞyœcãRÝ FÎÎߺ7O*Å5 ? ßm”ÙüMC“÷HÚvj1ÿVÉ¿]y+ý"LrR§ ­øŠuY²ÌäÔîß™êi¿tŠ«p¡dŸ®¢\þé7±ôíLç±[81^hYáàx`sëGqs‡z¢ í±Iûù£s Ÿ3Ñrþé+†íwªŸþ+ú*4Ÿº.ùƒl›V$ ãÄQŸº¼ú³EáÊÔ$’ ~4¶¼?xO;„~ðûqšNL6ÍÿtN¨Ü©ÕÏý´¯èÝ­vðµsóÕå®·*†?›šyµ9%Ï#7¸$n8Q€9=€•LØeöû­3ô[óÏž¤çÿ-F—Û®´Ý¬çþµãŸÕ\‚+¤psß©0ÝHbx…ÉT<íNÇç’?]L6#¦Ëí·\aŸ ©Éǽ;šb?k½Cyì‘øTYº»©Q¶6µ¨/S±ýušŒÈäeÊ<jò=*Oõ¹Á$0QÊT}ÜÕ¯µM\ á_=ภøýuÊth~‘+ÆIÆÞÃæ먞4›J ¾€b—‡îgt‹ÚWIHu+vÎ0üø#aaí ¦$fðõ‹¤¥Ž`|òí^~¹ŸÅ ¬I«…Ègæ{šKLYÃlEÀÆÀ¤ñ!ï‘éëí åêxåUú¢`À/ØWŠŸ§kºMàÙ»¤;q¶3p¡‰ôäŽkÌòŒéÿJ(¼É³ÏÐÓ w,c<˜Î ”¼/F #=[ÂJGƒ5¬¿Ñ¸SûjJ›ÖÒüp¹¯$Ûܘ›ÄBâ@r¼ð=r<êaÕ5+)Œv÷×0‚6ÊG•õˆz©®‘%Ÿ5©6·ÐF»7)\çÓù×—-zϪ ¨µ@`nœ¸š·к¾ƒòÌ»A ñ¬™øûÀÒð互7Q1üÛ©ødU¯OuÞ†òIm î0^E-éÜcü+Ízo´¾©–M†K9p3‰-“Þä { VÅ:Æâ;TšðÙÛ3 tQm)$ž ¶Ú ÍqguÿÒåÚj1X˜ìÞW]ãlmŒsç»Ï×µFêj𥖛¨\5Ý­«4$BÆ D,åA>ñ>„žÕç+Þ¯ƒT&)2Apñ–÷ ©Ï馭oô¶°ú;N^K¤Ý*mffŠàçæÇœŠ¥½öÈn5Â=wì‹Ú®‡ÖÚ"4×0ÙjÑanm]€ÉòtõSø–vA4/¢êþ*ÎR<‘´×Ïk-Jm/PŽçL½uš>ªŒ»†}1Øúí¶}ws%«É>÷¹“)²8bY²žösÛ8ù}ôQ†íæœ …ÉÜG­J¸Ž#¹cˆÃ“õ <=Oùæí‚ì /übs‚áþ4ˆÒÄélŒxÜOê¦Õ¶'À9«XátŒÛÈTŸq‘ÏáNÇgpòî¸Qì!f#*ã·ò¡+Nco3LšŒ9ÁÛä|ªÍ­–)=ùbaÙÏaÏù9£Š·HcxÞ%ÀÎxç¾3@è«ðŸ~ÃÜý^{æc9<çŽØíWV±°üâF0ŠwÙ ß9îj¾x%ŒàÛ¹ 3—ÏÏí (<0ïIuÆà„ïSÍXÇȪ" »pfv>ê÷ÏãåCÀß>Å@8Ûüb|¸í@QV«6ÍÛßR)¹ †l]´lðºÃŒ. ) ? üßQ'·iRfðÂøDrsŸˆ§B¡6Ë–wî+XB,œÌŸ}{ãåëñ¬½½”ˆÁHÆ{Œž©ÅhìVª­–U÷N8pGáJ¬:,- G,gƒÜÑñ©-Ýäûÿ™›òkA4PÁ‰›³ƒéçIü¥§¹ÚÿfOÛE 7äs¯É—7€–Åæ`®Xµ†GéBÙ~š¶Ød~Ä8Á¯5Ö(X nNù¶0 8ÆÜžØòøÒÒÊv•íoíIh†H''ϱòì{Tš4ÄôFœ÷ Ž0\¿ÆU@ çð?qª‰­­áB\ø€¢²²v Š~ÌýÕ³öifƒ¬![C,Ñ=¼ŒÄŒíl7pÍA¤µ‹Óu%µ´l–Ž°È»Ôlf=›ž1»¿—&ÁE¾Q—Š×y%0WyÇ¥'è¸ `ãµôž p –7ˆ XÉØÒîÚp¹àà0'ï©Ë ]Å*Ä-õ˜²,áOÈžÝûÒÜ‹X¥èQǦÍ7I³,`²ÝïÂç?wéªXìe2l0>òv…#ÞŸ:êºgMß\tµÝ¤QGN¬UŸvÌ€ dr)»þ˜m&Ñe¸·Š mYEž^i¸( áNåülKzNŠX$ÕÑÊÞÑã”Æcu`H!‡§qó«-gLtÔJsáDßcF§5½ÕzR{h"ü­µ'tBQ°e|å‰'!ˆ>}ùô«ëΗT¸µ– »oå ‰ É € ‰l.rrÞ_’+Ì ·ÑÆF›)tUC¹¸^1»ãVZ¶›$vÚl¼öüçŒm'5Ö­ú;K-”úº@ˆs?È7($ã*3å»ïDýuq¢Û³[C8·r¸„.¬{{ç9Î1åš••2奒9~—§Mõ®å?Ÿ PpA`3÷‚>b´ÝO _Úiöš…ã‹8<&*Ë£xqÁ­^­Ñ–Zý«ZÌßšh]²ù=t¶OÎ;ã/®{:¸ðâm:gšV¤Š ÄøúÛÜ#Ê©N-™Ë× ŸQé[xÁürÌÃt^þ0»r?¦„š¿H¤ é— qïãŽãøß*³²ö[«ØXËÔÚf£ø’u·’0Ñ÷%½ìó–QÛã¾M— ô=Znô©uh-¤e¶F–8Üx˜$orãœʸãÊ´´bá$f†£ÓÓÊ¢×GºysÀ3ÇÞjÎ]Ns¥]XC§,lQBÈgi iÉ`1Ç9ç<|éÍ¢µ]ÀÔí£ŽyŸbêìÄ1·ºö>x­t–£,h+HPÈÜÏrª®YAÄ}ÉãÓÊ¢ÜØ’ѲBì‘H²0ÀfÚ0û}<Åm¤Ñ †#uw$!€ß,À+{ØÎ“ÜãìÏ4ú”O#Ç ¨$Í4‘øÀî#!•q€O—Ç+çU¾ Ò°Î*Ú¤ÊDdo¤»+ÄÈåcžA<ãŠKÅ·úTR¡•vÈ»HfÚy9¶xÇÖ«µ›èòBξ*H»²¼ýMØ#iühŽŸb±\ÉrYe•×Ü‘ ³e¸öãÏšž¸-ŵk¢–e‰o”[²´†ØHÜF9ÛòàóBH–Ü´rFé¼RX‡%N1Û¶>«K…±’ð€.Ћ‘žàyóÛÏ>C7Q±ú%äÑÜ•Šh‘8c8DÜ6¶ ÚÄàósŽq]“FvÞɯe ôQ«ŒÁØÏ?[ÞÉø}ÜSÒC7ƒ'€’'!ñÂŒò}}sVvöëm'‡ô錓óy,[v@ Ç#Žõ5^[mã#†a4ŠBH20«œœžAòãì¤úàn.ê¹2Ï#UMv$¬Ï¬)âHBÛJÛ1ö%[(Ç?|ñéEs ½-®#d·Þt{Ô±ç¾{öÍi5Ëk¹–ÇS¿Šyâ y;DãÁbì ³Æ2 󪻥Ólm!h¦ŽñˆÃ+¿qî îd³IW”[+£ÜXs+¢!Fàî`ØQŽùàý¸¥I Á1„<›80ŽÞgžF;f­£³’m:ÌXXÏ,ŠÍkPµ³õ{€ÀNÙFt›ÕÜÝi—R4*û¤ øÊùbqÈ·¡ãVŠ”_%Eºwá‰<<©“Áã¹àÓWJ‚!¤‰*·ºØ8Ï–AøµºÓï4Ém­.-ü@$/Bð><‚û<©væÅf–Þü\E‡d‡p™‡ñ}Ûžù šj6Õ ’J[o’´Ä‰Ua²W8\7ñœùŽ~?*T1}uÃȪ í|0ã¸óôòó«vÓ55Ó㺷‚Kx˜ªÊnÜŸx¨óPtÊèzËÚ,vúL’ºË*®3ÛwÃñÅJÉ Õ|Šê6VÜ›±*ç™%B÷<÷ïš‹5ªÍf»b˜ãqgëw#·aV_½¾¢’Á­Žž¡Cä;N«îŒåH-ÈÉÏÙQ‘¬¤~7ÒK‘##Ì?ªy<žùÇŸz7ÃÔ¾†&kcg³“·o Ãà>4JöQÀŠò±V TŽçŸ1é¥®q1Þ=„²É¸¬ŸJR«ë§Š+­ÎI|H&‚8×&DñÆ{'Ÿ3÷Ô¼‘Ay!5öé7®²x[U‘ïÙãž çÏÓ.¿Þ¥«í7Oú£bæâÜ¢³é.ö^üÜÇ>µ;é]7ÿF·ÿ*Ÿ¶šoÈ^o“©t·Ii+wq¡¡Èy^[hR"ÿJ` @8÷—rN=ÜÕRè¯qi-øX..˜ÛÁ=¼&8†1â+)@ÃN“™Æ ¶ÖXÔuË•Kÿɺ¶‹!»³ÈŠ’}ÿv<úcŽ;ÔH´ ;¢4=w©µ1Ú+Y4-(ðÙ‹;÷¹ñè3ç\r””Wg­RÙ»ÈGKôµŠÜi3iºÄÛ3·ò¢kn‘£\ËïðNy_#Ŧ‘m+iv÷­£X½y%’x?=â\£(ÚÈ}áµÝÝ… ØäO]ÛÂó)Ñõñq6©k#ÆH\‘¬Êwg‚8 ÅQ5ö©•ºEqªF-÷#Z¶P‡rÛ˜’ÀŸw±Ž1ß5k†×òÉÉî¥'Åõó]N«e­_·KϤx“ ¡ÞU”,eÆÍ„È\ ý\cœÃêm2Ã\¾Ôí]§°‘BE²6CU,Àç!½Â¸Æ *tÖö÷º„šýÁÕå@7Nx"5;N‘s’ÊIÉ<’FMµ¤ú™švÔ£²ðÖ6ŠÖ刳.Y˜x€¤cçÏ4Ö É­±²–éwüä¨Ñ¬úq&Ôe´×,î4á!C–<îç HÆÁœ“€£c«]ê‘<ï —i<*‘< ªTJòœe—ëp„œÅGÔôˆÃÜL²JõÌ2ÆåFÐùðøoªFŒŒyŇF´7ÆåĥЅÜ%,TÛ‡‘=þ’LñÆû­GêÑ”µ˜àý×dýqb–£}h·rÊ-¬¯_̬Ac0¸ÚO'€I u,êDÜÜÉ4ví"I åY­ü\#)SŒ¸`óƒÀÆ*úâîÝ‘b6í4ƒ4R¾C0 HsßP >)DQ´‚0=>Ï“Q£ÇñeMü“fRö¿u~eœ¶ÖrMâ$ŒŠn·3CïÌNíïà³'™ÆÝ¡»“PÑ_K¨´V¶ñÙÁ7æä)–kp[ عåûø©²^ÞI–%†|ð«åŠŠdì?s\óö¦’/ÝR’ÿfO_‘Æ©!ZÝ¥Ø{’—(¯<¥‘±õ1&ñîŽØ@ÁÁÇ|Ók¤iÐ¥Üë,u?„ë$ZE Y{1äçÖ”IïáÊ~d ,ñ’˜ÿˆ×½®•ìÆ¾íÿð‰ë³K›ý.´»Çyo&Ô'•ËŸJuIôU#á÷UTý-c%ÕÜÏ$‘ÇpW) ·Ï'œœžF88íW»]»C!ùœ =…{ª!økž~ÖÔÉRuôG<²ÊNÛ3ïÒ:D—-r~“â3%ea–;¾yøÔµÐôôhˆW/Lϸ§$Œg8å˜ýµl£wçsÂ`9’4ƒŠÁkµ>Sbñ%êS6…§âlY«2…pcP¸Æ8Yîp9<÷¡m X$°J–û¤‚C$o°d1ÇsçØjß1¯ †oRhËnúóªLÔþ;PÝ©»úæÈÕ7ÁF#ÓÑÈ]´Øw’IÉ$œ÷ó©v}?£Ú ¶›oÈ0ûÔ~úœf8B¤úšF^C–uê›ã$¯êÌìGÑìÒc*AJÇ$ì¦åÓle‚(®m¢’(‰ð£eʦy8Y©; )Ri“$²62)KÚ›ç$›ú±Ûjˆ2èúTÜG¥Xduš8?uH´´6G d÷‰ Fœqǧ`<€Tø¤1BWbžs¸÷Iw’Ilüü©OWž1·6Ûù°N•!PÛÆaEh•–< È\ g·Ù·LK1sÀ9'¹5:& º˜¸q¸6XèÒ–£*Æžçùƒm†Ö6øQ+c¾Í"!m“Ä£È7<}Ôä‚v—#=²´seω†þ6I-ÉòVçB^Ûh÷dOCÍ6±Åœ* RRS>FŸ ‡ðƒwÌQ½Ï§Ï£„RTØŒ¿Íâˆ6O%~N)'tdí”ý!GãBÜIoˆj[¼ŸF{УæóøSf rÀø^Å¢Áï„§Þ‡xù6hÀœpÖÏ Ç¦h¶»±ÞR$þªƒFK‚BüûiÏY/v¸ì| X°Ô1î[]H?ö&Ÿ/®FE1“؃ò¦e·ŠLøËç¯í¬™¨7}*ôü­ÛöR—GÕ)¦ê#àm\þªI? (¦Ñ´¹~µ³gÍc« ~—ФõžÂ|ÁaúëVtMkþF¼£ƒú)'GÖT`èwëñò~ÊÕK:êÿQш›¢t‰ 1É:üœøŠg÷‹cþõ?öEo•©ànÓfûH~$Pü•ÿGGøÖË&¯æ55%´Z†«&­5„)+m1²_,“ŽücòÅm?(i¶–Mec+ÇÜcD8D$±ÎÒ}[Ò³Æ;œñ™þtˆOè¡‹ 1ùÁò)û+Óþ·’)í‚çןôSÏ6¨´’õ‘–ÜÄe°ÀŒò=1ŒùÔKù"žäÊAA€91àc“çP˜1>òÎÜù¥œrÚlz¿²¹r{cU‘mÝKä‘–öÝ’"•#`ñHÈã³(ä}»©MpÌ0Y›âÅGë¨Ë ÙË2Ê£ä´<‘¸\’=šâž§4×½'ù“¹±ö”Žíþ ?¤Ñ™£Ç.Ì~ ý4ÊÄõv÷üBÓ‚+¢”Q+žìA¤œqcâí£21$xƒ€ÛD¶Ò3mÙrÌ{Šião,``~!2?e! À ~$zœ qÉU1ýêq"ºaÄsëµ)IepNæŽR>?MJ·Ò Pƒ’w}ƒûÔ¤ìv€=G÷©ÿ¡þ CŒf”Líî¬Rµ?e.»Ÿ ×|·ïQ O~G£ïS‰Ë˜Üó‚w%,ÛΣw…'¬”ÔdúC Ì8`ôÇ÷¨ÀË9?×¶œfºÆ91ë½E3²îGÁIIþšÔÉÅ|ØåÆBž?¤?m7ùÇ<9ûXSéksüh$9ô‘iÆ[µO©(ÇýrñBŒ¥ñp‚ˆêŠ2IÉþ˜£y°<üÇ죑®›°~|Œ‚›XçfÆÖÉÿ¬¨–O( Ác€yùÿ…<ˆ 6Ÿ^ßݧ£†uð›‘ÉñÀ¡"΋’·Ïý"¶Ç ªßcH‹/ ÛÏ'#ÿóHðùÝÉí‘þ¢®ìIÇ>²“KX¤Ý?'®y·9_„8÷@ãÐÿv™¸ÜhþÉý•?ÃQ•(§ãô‚*<è‹ ´ÃÚ1–þ”ÀŸÛð5K.¢à×G<ƒÇj#«@¸v=Á4=\ú“kî=ãú†˜ .Šdü½*¥­í˜âHc_.]Oê«¿…ŽP¹î gŸˆ¨àbÄJÀî<øcÔü)K6j¸É¿¸9z >eµˆKPçÞçþg¥æŠïN´Ô…… I×q‹Üc1Û>U&R$r1ÝSUQÐ×zOO]Î@B;8Ô~"^”›N×›ù†æt ;-:éA†Úb2U+°P>ï ü‰oþákøÖvÚx¤—ã©Ïáûjf`ÿeuý“ûi­Fåwú–¥eY‹ùvn?¯E‹UàØH~Nh¾ƒ6 :‡?ë¢ú‹ÿ?Î~u͵ú´8$‡²i²gúf–nE„£äH¥%† "ãÃCÙ¤;2=FNOÙJΘݨ<Íü”R£ï<þ8ú°¦62YN1èÆŠ(K&›pÊ;¾NÌö¥¤™Ý ?œãq?~GÝŠ6³Ô¤mò^ÀîNp*v¯$-ׇ‚EÇp„±ýŸ)^æ™tÿb~ÐëÍ‚ñ8H?O譳حåêh—Z¸„ڪ턑‡`Owóò«ÇÄš…ö8ÆÝ&L©Skv¨{ª £îHöËÿ3»ÏÚkKíEôÙz©ÿ{/Fñ#C”ó»içŽßnk2 ÔJñ0ûN?UFUáÍÁ+h§BŒðîlî>Ö9¢ %'ýäý¦Œ[j É–2}?È¥1Ô•ç@ù~ÊŸRø˜‚ŒAÝ­nOÈšw}²-®õ9Ç鍯mDýYüN1M<ÚŽC;ƒñ©rŒ:B%ˆ m>?•šm¥€¶ ¼ÙùÓh59FF úð)ÈáÔ”û¥3ß$Ž+?'`~âZÖà|@4ï‰h£ýRãñ [UóØqéŠiî5q¹xôÅZŒ`¬c¢[R?Õf6#Y©j6ÐʶKˆo'Fú0pv³óÛ½Jv»nìÛY¸K˜ŽûâdÓܨWAïÚÉäàú:x#ãäÚÿŸÏCL1S•2Nu,ZŽ«.•y§5½äiõCgs¬é Ö9³˜·È×´ÕîOUØßÝJ ÖòªË2žk}lŽüyù×]Ð5+Ý[NKøWÊFo 9*ûq^–³A5’*¿ÙתÀ¢”⨜d·ÎŒ§>|Ó3=¿d´ß½9)Ô“$ºØŠ`­ëœƒœúW•šM*G dãî2|óOBT¾Mœ‡ÈŠü œäö¤ÛA©’Å09À²°Ç䄇A‹’,díæM °tt6‘Þ–bÔÃaäÇb?ÂŽ+MQŽAïÇnÿ…z Z(Ï3r¿EìqI.ÞVëR/í/’åƒn>”ÒÚÝÿž{pk&¨ŠµÏ¹ôEÈùSRnMrJÛ´ÛsƒŒ -$[Þ#òÌø;ˆf~©!éPçþ¾jõ´Ro Óùæ.â9\ôTRAQÇGÚÖè§>Ÿ±úÖÓ‰J“åƒÏÔÚmÑùï'œük›&-Ü®Éh„’ÎŒ§b†LŠæFmESœóQPÍÂHUäç¶7cõÒÞXÇ2ä‘äsåXÂrƒ´hd}ˆŒ™ô¨“Ú]Åvò{sI†9 #`ŒçéSÏf_ƒ8Àù~Úëã"4«+¥K”}¥”}À÷¨ÑO|Ĺö'>uq-’–Ûã=7yøU\ÚrJ΋‚xg_ZÂX¥b&˜ìW“·ºò¢ˆª¾…ñJY~u€àzýsOuR“'½ª££cQÓ–¬%î|Œÿ<Õ)§Š[ךý˜­šëd“ÆÜgLmó#áRvÏþÞø*¦ÏÁ&éNqŽ3‘÷…X¢½Ëý¦þícø|rå3D3 LŽñ[]½Ô‘œ2îЀIüE>¶SêdKu=¼5Áûûþ5'ÙÿE¿SiÛ­o wkpæÚدºVB äçŽTÔ÷Mèš]ôwï©ë¦ÄÛØ©lÒxŒÕÎF9ãÏŸ•vÏE8µKµÆtfÐäÇ'®»ùWwô 6Y®I>{‡øÑþMHÇðëžÝ±ú鯠Oâ…–íQK`ˆÃg *Øt¬’õ=¦™üŸDŸi7,›Œ`÷ʃ‚GÌV K•­ÑŠ ôŠÖ·p?51o³µ>Î/Οu{aw6:„ËÈ  ·sÁn|ˆž×ºg]ÒúšûDe¾6Ò²¤‘œxŠ9Ý·TG‚ðsã¨çŒ¹¨ò~ø¦•,oŸÅl+4LrOÄ÷ûM'TÓú“N¾{+í:ú+…Á#ÂÜ;Gr;Âkk{S£ŽKž:4]9Òú–½gªOo|‘5…±œ+“ùÒ%G¡À'ìøÖpÃ}¿&GoëqZogúÁ±Ó5s¨ÚË2fÙÁ;ا˜òÎk!jlIÙ8Ò23øSÍøp’íßîo—NáŠ<¥¡*o¥locËSézv=세†2äô«ýHº¼é]_TO ÍöðrÓm§žãÏØk/Ô”nt{»W†o~1åò©Ž“l¢çÓ1P¦·tB讦¸ê’e†î.v+œ2úŒÖ®¤ªXÉë äÞËOß¼10Y%VsÛ$q]o­lµ>žêt›™âãTu–$÷YC3óü+¯ÚZu†{ ¸:5xÔd¥I‘Ù¯IæSMÂ’MÎï®AÇ™âkè"®!d2.ô,„_QÇ#ãL‹ÉϽ´|N xÎ6í¶r™nŠúúûÙ¦5=#RÔ´=SóJ ‚ÒIegqµBŒóñ$qñ§4ý^Í!ßsöÎ$À©Úþ°eÒ¿"ÚªCg(Ý>21>€vìé}œñ(æ›úÃOÈàПÛ~Ð]ÉÎ<³]ƒ¦“R²Ð¬ ¶–TaS€ûNO'ñ5ÌÑ›ZŽÉHѾ°½ë©^Þ5¢D¶²¤‘4PãËh¯SÚ6 ™×¬~ç~b®nµv~neÀ<~r›ê`{ÓË“ÿYY-s¨µKn ²³‰bJ…¤àéŸ,cñ«Óy69ükÀÍ‚j*rÿ‘ç85/&N2j'\zx†¥Û® a'Æ““þÒ©–îpN}¢¬-n® J`=*pÃÞ!vNEÔ1ü;þ! "¿Éa;ý2j ¼™_ß*—¨ÅÅÛe°HQ’Böµ×´°¯!ºÓnÏrXÓ&)[}ô/&»eÝ—Ûý Œ&ºÀ+¿žØZãËî%¢O†ýŒŠ>ÚV¦¤uTJÜé“ÿ]-1 Wó–ð Ï팜gåOkV×rõ]º[Ç+¹Ðál"’Ö%ãã]Ú8âÉö.1ãÛâØî9ò£Hœœ<©ÇÙéëF–ZÀ„É-â¨_x˜Ø `ý”ËTbd[KÒ„Ÿ °8¦ ß#¦"[3 þ/ó¶ŸSÏz‡5³ÆâO`ŒñV_“õBøK;q“„=³ò¬çYjz“%ÁPÓoTHæ`2IçŽçŒÒü<²I$¹)FßF„Ä ñüÀVÏzBE±·^Øãhò¨úS_]éÖ³²á¦ˆHÅüsJÄÊJªJŽˎݸ¬ü'E¤“ä–±¯%eÏ>övò>ʈñì¥òw`‘œG§4¶·»’5$/=·:þ¶¦L7),¥¤…€nTL§¡­’‹\³m˜ÚìYµíß½³ÂöãšÏôm©nœ¶pÇëHÆ$?Ð}çc-¸N8’ê FOŪ—£-d“¦"œKl^\æâ0ßÂ7–sO¼m|×ý˜Ê p‘:(M[l{À|}jo€ŸÉ?Ø?Þ¦… ñVO¥ÛxU“$ç#È|iï£GðþÉþír¼,•WB\^Ão V÷s!dܤ£!Sœ=l}™ê~G’ê E’ú=Y-žÞ@£À8éÝÇûßç5uÓÚŒZVZÙéV‘4©Ç“+1þÇpÏ~uõ7/CêÞ]Dö׿åõùš/i÷:|Ý[¨.˜°BU¦b°ýUüà\qÀåXU=9w¦kºdz̤Aq‰ Í#¸l–P2@?XŽÕOªÝÏqªêZêí1jwS«¼ ñ7/È’çƒWÚÞ±k?Eô݇pníu4Bð Š]ƒŒóµ£R¿Ò4GèW£9Þƒn\xß~¤ž©Ö&·öÊ4èe`¦ú|Œï«‘ÛùÕžÔ:‚!"Øo!HÖN$@N0ÃÔv5oí/Më»î¼êgGŠþ}EkYnñuˆÓl1I‘>ðàwªlºž®ú5íîŽÑŦå’[¥œo¸6øÐ†!U±Ž@ +–XVä›ìáXñ;òn¾õþ™qo©3¡tã{}q<¯4¡]!ñ 8àx œýžUMêd]KP¾-Ä÷Vö–#ÃPÛÏ ©Ç­dt}s^¹Ñ¥‚+¨BÚIF<ä8`@Á$ã¿¡«û=OKWú,’‹6±´Vž)ÊocŽ3ŸwìÕ('–ÿœ«X9©+´—7ÏÈÒ]õOÕ¶Öv±Ê$c²[¡Ü_Ï¢‡´§Š.ª¹µ‘ï3EÆDƒ¨÷Áà@¨Z~»€¶ÚÞø%Ô2Ç$v‘ÂÇ#Ïjƒ7¯ëZ†¹«õS­‹ÚF#ß!²]ì̉±wž/ÑXäÒÊv“JÝžlô™#†ÿöÿ®‚Óuy.´Íb-¦š7‚'F’êäíÇsåOj¬ö:Õ¹³–E¶A,Œ‘ð±° ˆ ¤šËµÝì7zŽ…§C,v‘¤z}Ú¡Wœ±LÉž2¡|CŒn OY­Þ¥qƒ§Ëu4ÀÄÑ ËÁ‘üfd<’}ўؽ ”b›èß,¡“M]mýn¯ö7ZgSµ‡OÞÛÚ[Ƨoµeز.¯ïd ·»“ÛÓ>z§M†ØËqi•fŒÏÛçQ:W\ŠïO“K]&ÎÚ ¡dÛ$¥œ “po{‚Ä ñߊÆ{WëV½Ð¬ºgK¶†ÓNµ›éEnîQç åýæ$àOlÔËIºJ ðŒóé×áñÍ?TþͲ‚=HØuÔôðSßʼnIì3+£tçZêºÍÕÞ¥Ônnb}«øAÁÅ Gß\›J–ÝYÈpÊ9 `}õÚzý"¸öUÓWö¶Ë ¾‘«ÜZË ¹!VTW Oà¦3[æÅºiRÉŠJ/Óý®ºê‹"Òl¥•fð-B„@?5ï”ýðX9AØû?ó²®àé .¡Óú‹Wž)%ŸJC,Q‹Ÿ ÄT (÷ ‘ò¬}CнkÓWúhP麔öͦ òø’†V;[ ÞéÂŒŽ9®)ig99.‰Ï¢qÕì ý)YÊllÕz1õOÊK*Þ=°€ÈZ]‘•"Bàä`ÿ'ÏÊî×W´h—NC¸à÷òãΨµ ÒÚûI»R—6ÆHå„ :–Ýž=jë¥ozttÅý¾³§É<Îá–'U•v•V`vç<ðr<²®²Ë†×vz>ÑÑT–<<¾Ôç½aVf*8ó9®Ó:„'£í§›c4˜rFp#ìï\÷¯Š°‚âQ\»8àÖ§ØÝÝ¥à“K¾ˆKo? Œq’<³ó§«ƒq8åMKì­ê‹Ëinޱ…ÛbÛ àç8õ_ÑéZŸÖ.ŸC±¾Ö¦[‹ëÈŒûæ-‚Ç qŸ¶³>Ðndê>§“N–Ú×D³³+C *›•x˜‰ I ñÅ[{TÕt=4)ª-#K†ŽPÈFç8ÆNkÏȪqÀ¹“¾}׿vêt¹2hVHRŠ¥åËó~¦Ó¦îdÖõTÓ´¸cšîBJ/ºžY<“ÅUõΩ>…ys£_Ù®ªG"G#Kð@‘–'±9ÈïT)ÔÖ1IùR9.DÈ6¢Ì°à0þr}8ÅtÝÔ:¡ÒZ]®§gr:´Á·ð™\KòB3–ãµ¾-4»}ÙãGNâîî¿b†=tC¤¡;S˜±qŸ,ØH­X–ÑŠ^)ï-BΨxÈàãŸNæ¹'³+½Z粌}ü? tuå0AÎÓüÒÑ[¤–ßP¼³¶¹±¿»¹µ½âD›³‚hØäwÈ=ζŽ›®üò`¤ò¡iÕ2¶e:½Ègçï>uïW°y–iãšy¾¹l2ò~#×;ÖúЬntólÏcàÅ»ivB<Ûh<ävÇÊ­µ}G§S@{Èô½hÈ` ‡òŒ{0à•𳌜ã?og-&Tèá–9Ri›Ô4«¨ÞWµ`X»*äÿ(žy¬Üwï>½2ÝêFai¦Å¯Šà¾ÏÎÜã°$÷ ®ªØ8È …eåiŠ8ܤ’/Ë@!_۳đ—'œd)@ÔŽɎ$[ˆŒ{†2WÞÎ>ž^F³½%¥j0j:ŒbÖâçN‚Ý®/m !26°ààûÊsŽÕaq{¡y¤Øôí”j²‚ßÇÇÞÉ÷Î1òøÕÇM[OŸ/ßö=¿fᎠFùÆâ“¿¿s£ÂÝô,:ÅÝÝ­¬‹v-bi¹‰S€vŽà©çˆçµP=ö–d(z—GVìAI˜ü¾¨¨ÝaeªKÒúM®“jíºIp‘) îSqŒýŸj˦ït»?¬:A.5S+µâÜG LdeUÔvç½/Ãâ’¸ôeí=>GÊUož+‹úztF×:›HÓ$¶‹òœs™X«4ìŽ2}â)G¨4ûyÌvÚ‡Ò%{Ãð¨_]Ù9ãáXî¹ÔúrõVÃIéû+9’_zkyf9Ç‘ñ¸ùcçNt~£¦&—qgq¦XÜj9Ù<æO0ª€0^<²'îÝ{?Û®O5cQ’7M¥K»ï§Y¡$¾ÈÊÄûÃÌ‘ž|¾IÒú¾—RÝÜ '¸ V»ÝÇœéësªRÆ…k‹]>õÒ jÍ N¬2HåNÑÁ?¦º•æ…ÓãK´¿Ñt6Ýà”¥ì?FRÊ1”’6##ž~px¡è¢Õ"õr˜ÍL6›im©j0j–Ö“ŸÍÉô%PN3¬yø,Ó¾mýæûþámkígæ6—)ÖòœxsF² >D«§žEf¶jßî=;ÿЭþº³âþ<äÎ%cpiWVé£ï$¬“‹Ù×—êzË¢¯´kM ûY’Þbíá^½©Éñí§‡Ä Á#iŒtqÍd½‡Åu=A¤7ëmô&ß…R#ÇæÂ‘Æwsç¸!PŸ¬ôÛíI>‰m1Gcžª•1!%F=yÇÈ mk §MjQè@C{tñÊ’™Nü¡ÎÀç’§ù$<±“ž,*QH÷cšP“|ñmõ]z~ém]^tç´],¨´ÔOÑ5¼9Ou±üôð’{×ê%·Ñàš)Z#˜ÈqŒƒöcŠô/[èVº¾˜4VäǧK~š¶Ÿ, †q10#ºï —ç7¯û$Ðu5 Ðú’h%S»dÀ2³sÜŒcñ®¨ÔUvi¸nжø¯çÈãÝEÒ:VÊàûÛr~ÌÑQúí´ýZ²wƒŽ{Õ‡Uè:×Hj²tÞ·´¬Ñæ PîŽU=™}~ÚÎ#½ž¥ ‘œTæ[£Fx§º{έÖý%a­uŽ´÷NΛ¯!Ùî¸ îÏrsÆ=OÀïïm:kÚ/LZèZÌPÛ[Ã2îÚ-­°÷KmúËØ`çµr?j:ÝÜ= ¦}_écƒÎÐ3Š·öU®ÉwÓKà²5ø…Ôï Ÿ r01Þ§8Ó ûw8$Që==oÐ]j÷w¦MVòáÙ`Õ”¢3FÁ—ë!œaã¬ež¡w³µyvRê6YaryŒŽTŒyŒ zVÛÛ†š[­­õK¹LVšŒ>,O·*Π_í÷×(º‚î÷T–X%¸}ç 8Ï¥i%f–Öœ~GCN®¸Õº¹º’k˜ST–RÒ¿†¨²yÊŒ|þ5Öºë®cêgZ^ËXmn4«´’I-¢ÚaH*@þ#±RHÆp3Î3çK~žêH2úU >¯ˆ»Mk4ÔzDñÜ}ÅVÊOë,Dr ‚sži7±Ú+·ñ!Õ·Ðu~ª²Ôº‹|ÚrJ±M›„•Áflœä3\` Þõ¦»Ñzß] ~šÑÌ‹1Úêžä(À“¹9Â÷ì8íœ×9Öl`Òº†ØøíŸz¾5»LøØ§#kgœ©ÈϦ 9ÑVòØu î¡§½³C3ˆ¶â y¶{óŽ{àÖÞ$-mF['Ë|³Ð=§û<‹Aºƒªìžk-ÊVmíù–ä sØzWŸ4ÍKŸZÖŸOÕÖÒa)];smP¥ùf#8|†O? ½öŸ¬µŸE½¨w^ʪn0¼“\‚ÛQ¸ó•ÃnzÖk® yZí[=#sÔ=IìÇ£/4þ«ÓâÕmnnTE-œëáøë—FyÉ ‚223Œ×-Ñõ-kQs-žûˆ¥yŸd® ÆGºƒÐgÏ¿é¨WQjºçMKÒ×2‰¢¸uxD²*ˆä^ij‚|üóY$ÍÔÖŒØ$2œØÅG‚¢šl¼SŠË’ŠÏ3{ u¤pk¿O6q%È>äË+–@1–$°ïÚ´ßOëþÖúSPÔ’(mD>%û[b30BåAͶí>x8Èï\m™á»*IWÅiµ›m^Íl­¯4Éâs…ŒIËc?Æ>ƱäOÔîÏš:Œ-í§ÚUÇØï%íÛGÕçÔºRhEœwO3ÙHÂFTw-Ánx÷Æ+_×þ×5]¢µ;›;‹{k?¥‹{_<˼Å!hŽGr'ŒvÁ5ɺ{Ù¥®ŸͦÝÍ.®-Ï‹dð›#ÞQ»¶2}âpqåž(uØoô{·¶žÖR-å#̱JP…eÁÁ8ÈÎCdgŠ·’®,çU?îW>f5:Y}2{ö·0K{s*‰$98'ÈÇÆ¢td—zOVZ_:´é—"c½~£¡Ê‚󀦮µëø/$Ù#(‘4g°ƒ¼Qu¯y¨¼wS‘âIWw3êqö µ¿§æsn‚’iuúê]&oh-Ô:D¦(îäGžãTHÜðà*ñ‚I? žõ»œ–pL/Å]›3ŒçÏ€O*óMž§wi2I¤mدBÙÏíœ NÉãWR 0Ïë§M>AJ2wE[KzŠ­ow-²!ÜÆ7ØXñ»Œçc±Éª/ËQ¾GÿÔ$þõlõëi ki`ŽáP~oé(Gšæ½%Òý=_þAê;¹•ÈÔ²y¯ßžÜzUÖ…­-¬Fª…†>¾cà3úk/í9nn,µ8÷ºb£± q“ëN<>IvùCA¤Ç£õ=Æ›gyô‰­Ô;K‚«Œóóç÷ÔÞ »°Ö4ý:Âh-œmâ:É…ˆÎ; 9ªc-ýõÒÍ>e¾7aݰ0à3Z›Ó^íotYt»³- ςJ¤¨7`œq¤èNk9¤ßGT$Ô=ñ0tµß䨮ô+;ËØ¤–8âÙ.ΟÈÊí=ñÑ-ª:am®”²I A;€‘‡(àÜýõ‰·Ô&]-ä¶×6Ž%…’B§¿‘ŸÙV} ¨_YT›hn{÷ÏzçÕß't~¸h¥éM&X4íNWlj2•nÀþš-êZIà!kR&ä†ü0@©Òj“[ëW꩎Yd†TÀ`x?ÿm-­´±cy-µ¼Öîñ’ÄÞƒŽÙ<⽦rŠœY䬩Kcò):OKެ‘Îû!ϼ|ë}í¥`ÓãÑ$ÓÓýv1HÃpyùŽß#X¾”Ìz’€Hæ»v¡i>£ìÿP†1¾d¶y!õãˆûkÏ”Úȯ£ÖÒJ8¢§\£Ì]At.õ«©Ó; „ ?ÉÂ¥iWMjÊÀÛøÕRDÌã‘ߟ¿ü­ÈÆ@Ü×xîmË{4Öš¤ñLHFk [uZ¾—håfÚ7ߪ¸Ò\H£ ÔÍ>öA2‚Iæ°žä쎱¥µjn¢¼x•ä‡jìÉo/!øÕ‡Ikº„w…¤¶c‚Íž3XHž'°P³ èÀ:ùäŒÑNi3J·è¦\.HÔmr‰K/†ßÌë~Ú­†¿ÐÚ,ñˆäÔí/T ¶wséÀ?erës|²È§äcšÖî.áµ¶ü$ÃóÎ=Ïz½ŠÀ}XŠçÍ’Q÷Q¾›_¼üÌ´xbnŽÓ ¹Ç²àí dò¿£µ5ìj9b¹Ô-žä#TH·wÀÇo#ÛÂ$}ªŒ>Kü¼ª—ÙÜöOo±È‚xÊH[¶CG÷ãté—ö‘˨ßiOÚ–žúç³ë9¡§Ó¯S$7÷Xýûk½Io§Xµ¶ÛÅØÈ”ÇÌÿ‘W}_yy¥Ks(µ™LAÈRÃÌ´}Õ̵9‘­¤ Àáòçü+Jܨyp<1ŽN÷_èX?Xß<ï$Œdw>g°ô•kcÔò n\ï>­ÍsÒy§"•‡Ÿ…9b‹9£žHèDÍÔš,p¦$¼ó¾ÖÀ`sÇ9øV—AÑ Ò¬,£Ã},D¤JÅI''ŒãιïIÜIs«ÛZ(ܲJÏæ·]O®I¦ªÏŒÊÏ…20;ѵQp‹.;(}®OôF 6<¢A¸ãùMÉv+œƒZ;­FM_Y–ðÛHóHåÛÃÉ~Ê ¥î¼›9]QÃí<ùü+iEBŒ/y é?§ô‹›\-sq*çÂݶ8óåÇ$þ¦µ:'Gô×SÜGù%>>àÈ#²±ô*yÇËɵ™¥ké ¹l{TΙ׮4ÛÔt•ÔœƒŒVŒª×fðœÚדXÐ.º7­=zc "!w$ƒÉ†Et»ÝK£uÅ^£¾¸ž Ûa§¾ ;”ŽêFAùþUκÿ©|:´“Ló\@ß]Î[¨z>k鯚ÞÕ%”ˆËmG FädZcq”nQäR”¡7ËÝ}£I×­o'{» ¨®#•™ qÈãàk‰¾¿wq;ÈóHÌÍÎ^º?O¼Ñh×RÜÃ$2Åm)a ŽÔ''ŸLù⸴bI& fw`@É'ÈRI4Lå·£C¬@u8"¹·…šïpVU—àcÔç¥êšdÉÑÖ.Ö“ Ši#’CÛâpvîí¥xùÖŠÏ£:›¥¬b×®VÕ¼VÆâGÉK¯àúÍt~™×tž¥Ðµ;]I-Åíõ»­Ô«¢Èø÷ddnSÈaÏ|““œöÍ´—Eãp|ËÌócÂáÊm9×=žkfçFƒM’6Y­añ?X cä1\¯R¿i.b ¨“];KHí@¹LÐyÛ` X¨e䓜÷«•¦Œ\Úùûù·Ç÷ Ï>cÐTxüjc>û8Ìr}¸#ü*½ü¶ü*FŽ)7ð)òýuP¡[ž¸»Õº"R ÈÕB…&ŽÜ“§¾N}ïÙQ왎§ª©bGÑÛŒüV… ÊgV›·ô#éÄDH ñQõ‹«›~¶¸x.&‰Œ£%©9QžÔ(UiÿÍö/Qþ/¹"?õ¿¡Wý%ÍÖ۞ƺ‡Õ'!9Þkâ2¢P†ÚC‹á6ëmí¹§0õa" BqÞuõ:ÒÒ-¶ l‹qq{óŒåŸjsÆ&3eŠ„Ê²ÛK1)넎†³d! $m¹Ô ùá”&›F¥/¨Iž‚EÕv‚Jµw¾“ksa‘§ÐOPc4ûémÄ –õ\ð¾ÇUö¶Ô(Ó`"§ ËŽë&QÊ­D”ClmV`äÊn§Èpžâì›Yû>¡.JÛê©ltÚSgÌÙîMȵýq”ê7©Âºôä¶ì‡”0m±’é¶÷Á;Ë´…©Ø :M£û6ð}ISˆvÈØú`ö'&¯›ž¨²Ú$©P˜Eµ$$X¦ûcÀ !|º„K†ÏÛ,šY§¢KÞ^²MÂwµöÚöÀ•ʜǩÇ*ÔßÙ)Qp«Nî-$?3o¦IÏsYT¨ÇphiŠÚ帨‰!¤§£rA»ü¿\OTßKóÞvSjJʼ¨H$}ý1€ĘÇ*TáìÔI§9 ÊhKF¢Q²ˆ¹H Ûm‡øÊ°ÍR¢úë‘"¸–ÚJÏû°@à9<á dæNÌÛv/P̦™LU”VàyÖ”gWŸ`­öø¼ioæÉîLÌÑžjÒÊ£¶B €‚Aüð€2ù•¢^àz‰³Ã¥õ±$Ä’êKOØlá*º ýÒËeÞ¶]mêF˜ÝN<†ü;Y ößú‡ ÷&jX: 5,« Td2PãêKaE \¦Ãç˜ýE ñM­¾™! RI7¹¿ñT<&ÁŽcéÜ~&}o-¾õ9èpœe.<Úå¶ô¥E!°}v8Á9*¶Ä_·`?Ö@i·D”¸=xïlyYqòžuùaLöþq©3C“Mv>­ +»À•ip¬oÅî&šKÎ,Ïú“Öþ5 ý¬-p@…Iþ\Ma!1æ6Cª éÝå%@éH;冔ØÓ&HL…ºÛºN4¥‹«{ñÆöò!\Y¹Ç²¡RãýÛˆ¨Ý! µýñ+êpÞ‹ÒmÆÝ|8HßvŽÞl¶bÚ³Þ&:cÕ:„«mÄTÙl>ÚìI$…鲿L U§7D[Á.9×eå´ü„\§oÃoQ|?#Âcÿˆ:ÃÖ‡ââäÆuÇ妠áUŠO;ùmßP(of¹Ò]zN—X:ZK‰'¨?w|9Ê w9ë½°¨ù·iŒF§Ëh©° ÊTH·P‹Ø_½ÍþXQ@r—I© Jñ}<8Y l¤[IºoŰï2æUà;ÕRi4úJb˜®<%:ê7ÜêM”7Û ]ÌÕW©¬e(M8¿âÝÖo©WH*wŸqEùs ÈBñØž¥Â…ÒL¨ï¾Ýúƒð¥G€n>[{ŒTEÈ5*]-š„•3.­!õ²çãëæ`!ø“àŒg“$³p™Ë‘\ qê£rœ[íÛfÛI°ôÃO‡Tv*I™˜5Šz"X€•\)67íq{c„ÀîaæÌ<çz„ÌÇ1&¶Ó­%£¥%C®Iü¬/é|m@¹ZëoìÆÁSn‹‡V–às‚­r@…f⥽ …qSó~o}è(¼×¶›F€„‚,’ ·;÷ÀYºšÞY€¤½†¥­-¯^ÿÅr{à2Y°#|©Ps¹ ›%c¨¥’µk>£Ó鎽–jPøZš ¤4š„™ÊK 'Ìà6)%{ñÆF0$JÅ0JEC•5&KRôfqÇS÷j)µ’¡·Ë®JÍ•Z]‹LŠÄ•¸Ò2p$¥HQ6)ß›Üã+BZRϱä^d™6§_qèÅÍkPQUìPž ¾BÛöÆuçå!ôÑIODBö[C`l Ç®øu„Äž–eá¥@fÚR|[/ˈRÒn«ëæÞû࿈’SÕbT2¢°Ú‚Ã…I?½úaIïˆî7 Èà†¥Ê‡Äýe¤-Gm'P8?1i¤ÌE%R“!.6—Rù¹õ¾!{ȰU‰Ó*šwòcŒDn?%Ù*Ch FRÔ€•r/ÿ|Q|Gk-7*–ª œéë”°°m¦þœbÑ´NKåÇ2qÇ™ øòàO”¤$ZÖñß|XÀÌuÓT$¢#6M#AÜØŽ×±öÃS(¤bT«0'ÔŽ§0©µöYÒZeJ.™¬iÔd<Ëlâœ.÷„\M°§äs[`z‚U+Òª¯±*¹ !l2h$\éþ#l)ûeøŸÿ a癹‰k+4}¬û3kL8¸î)„¼¦R¸ÜlOýñA]§.·Y”ÖXj)I$4‚zn žA gŽxšXŸÒy̨b2*_~cu¹$¢CdÙ hÜö¶þç >U…£%×–ñŒ†’íˆ)'Hß{7#_ ¨‡áÛ‹ ŒÍï»&©/ȳë)vê—7 J¾V Û´Ub¦Di ¡*Öò§Ê,»½CóÀ‘„[+<Ö„¨3:F·¢=gtÀÜ[½öôýN;yEˆiÈ8?y¶ÿŨ^ÞÇôÃ>HјV¨/àÆ9vµzsЖ霆Te)ÍöP6NÿÏß™ÒTªxÕ'–Ë¢:,‘¥<‹zàa²;‰¸nP &Š¥†^Ï‘j+‡WÌN¥rlYu°€6ÚÝÁ<|/Ì9ééîxhQšŽÄ’ ÈJlµ'Q@òöŘ$£i|æ#­õcB‹®#šl³1Kˆë]4 ©Å§U’¨ôߦ¶òP"”<Ô«4ì/¹Ž Y”Åx¼ù=b)E.±Å>úV€P®›jüKHØzŒY“%—BÊš@PÜ~ެhù7Q ¥>&~¦Ì ¶›ë>4•[·ôÇ äÿHÿ\y—ñ6³¸Jx2‹Eú\µ;¬¸¦Øy»¨§A:JEø&ÿž,24ŠŒv*+§NT>¨ŠZ,½³Ž ï°÷Ûß ñ•\Çy¾#ˆçKÌPM1ó*{-&+ZVPNÄ ¸ÜývÇŒÃ-èõª[ÒÚšÛ͇XR@Ò6J–k(“~G¯¦Ü?ÂÞJ¿l*L¹µ¹m´¿ûÄ»÷ºKcNëÿP羬țY1bEŽÛo4ÊÀ}° o„]WóåIÆÌL¯Rk\Äy6"ë4É2[î!Ä2’°­í·­½0¿*Èr©˜ %é­#S ê<î岋”þvqÙWaÊ䯕%ÇrkRžuùNIx º ŠRM·Ooby¶6¬e¹”9êné•©*SŠM´ß±úŸÓ[ @Ü~¥Y®;"é”Éñéë[)[Vpl|¡ÜzXsÁ¸ŒÐbIŠ¥¡ÇœR_Þúm¸?"¥ËËø€ÄŒܦ‡à¦Q¢2¤¤<–›u¥>u~-Wôµ‡6ÂŽ"±?ZZ!Ž¥ƒK=EìÕùÏ£c$Ê”± <Ê fSlÆ”Ê{¯ÒJµ[¤‚.6›’¡ÎÛb…LS#\Ì_C‘qÖ\*%CR‚¶úß§o˹¶±/³®g2Îzý(Yiæõ„²é{’.>[à*{ÒÑÆ&¡Àd*Úlw·äpêv„ùIµ¼Ø^§G̹*ˆ†—*B4BL‚¢A &êö$âeÊÛRd±’_M–P§‘s©#ùÜà]>\ ê›+‚aUtÔ³5-гŒ¡Ù ßJ’Bwö$œ.j¬ÉmæêM’·Ò#RÚüý/Œ`1È®¡‘Ïp™ÑJ&Êœ©!ã!juÄ……¡s©¶ÛãɃ›>'!ˆñz0(òù{¨Ûéƒ@[‘V6mS$YžcΜPû¶…tÚRwá`'œnûÓ*³Ò“×i­O-Ä êåG×|1°¿¼•[qŒh¯½*Ûeà–$„¤¸,wÔ“mûÞØ_Li Éh8´¬uÛ*Eö7&ûwÂFs#@;”yÑ4¿Ûñé¾LêRÙÊwÿO×|<ËOf9¢|D—íhRœbN ’>`ús†eÉæfq?fØò!IíJ;kž’„©hV£ÁØ‘·áÓ‰°—W6T—c)kq h$‹{€m±âveCkaf”šІ\Ÿ]‘q+¡—[ÕçcÇ~L~£Ñ…uäã­·<92CŠ”$n=¸ÁÝÎd•ÚªJâ5ϵvæðâÂC:ÖT§J@:È·c¿é„*‚ݪÅSMëqD¡J$ê p=¬0 >`BNS8êgPK­©§Ô—$¼T´A¸·}°…֤Ѐ••<”ž¢‰Üoê}/†¯\Ä9%€ƒ°)¥¶d>™Kh,¡(<+sô¶‡$ÇŸâÒúã¸[:B"âÞ·½ÎúÊI Çæ[T(ùŽeMe…ÉPa! #÷-d…o±·8•ž™1å&" Kˆè·Â•koïƒEÞ7—|'Pƒ‘¨°•Þ£=' ©n©kÓ÷û'H¿"䟦~ÊüÁýl8*b,1üêE*#&¶]p>ó®´Ë©¸$¸Û¶E³O§·%ò¦¯Ñ[/$^ä…€=ŽÇµ»ãšmbvž§]i­~KÙš3.½Gé×ÙJT¶¤6. {ŽÞ¿1kÙ•ÜÁKL4°©i´WÔnB@$Šÿ÷Ãm c5ïÿwB#k1Kj2Ûm]vSÒùSaâ¬êBóî6ÁYÅ ~ËÑM: h-â†îê ¾þ¤’-…ãäŠcÁ‹#ÒÒîNLVV–œ\e9%&ã¦:€%Dß͵öǼ·B¦E˜QW}ÆZ,)¶$%²:„© (ì9äzzâÊ0 BÕìGy~­E¯·)”Ìq¦]KHé×Ù:Iî,Bˆß h•ÉªŠ—Q„žœ”¼¤¢R,ÙÒ÷RÚÜà@„1æ˜gÄvräÉPJ¥M6êHº’R-oB ±C˜2­T˜L¥Ç›!ëêH!­›ß×a‰÷€Ù®)-Z‡™õ*E§2žÒâÉKc©¨«H¹¿s~ØUË¥0åF/R;«BdéRl«}{áêT®'5ÕëlƒÑ•ùmb‰W[ª’üÚr‰ FÈÔ€­@[r=v¹ù¶<ãQ1\}e-6¦ÿñwÞãm¬>§ U=§¬|¶ãÜž¥Jˆòžœ¶×ÔŽÈ,Ûÿ ÍcŸ^1ê¯T‘2+ò¢t´8è°Ÿ0Úä鯮{èMGÂ7²e»ôg)™+ö¹ÉÄÇn#±”áV”.éß~n×Äd*mIÞ²e!²MùT¥^ãŸ\zðíƒ\ + ÎÿQC;©ì2‡OŠKN´,'M‚ްþb£{úzaUzmFtZdIkq"¥L©Á±Ø]$úí¶ òŠBÓVÚ‚Jº›É«»LˆäÈÄRQ{”AøómïòÂ|„ܶk2\SEª*™º•¤£Uçlð‚Ob<Ìݺ{RÛ­:´”•%Hü*½ôÞû§Q¤¥ÅÉu€ëmªÈhßäû_rÃ0T…8„MY}¸lECQÁ:‚J´›‚ ÉÛ}°d÷§æ•»Kir”ÚÒ¸â× ràñÜ\o+4œ™k]¬®?N·V‹RúJC‘úv 6ÚÃç¾ øÄå•×iÕw)ïGJÝ|iòé$ù-ߨ›âsk1X yO6Ìx­Qž([Î()JI±]Å…í·ÂY3f.BŒúƒÌ $%{G册W¨QA9¨NO’ä:|™%ˆÏº•J ÇÎç*+‹A¬LM)dt\Rm¥D<{aìò„^¢R ô—#˜»3UÝ©¦'°Â6CÌ·¥E;X“~yüðÕA¤æ7N)H^­hMÔ­V·ÏsŠk·k‚b®¨¸!=Ls u̪8¹ -ŽšVQ«ÈbR@üŽ@”Ûj¡0*éT–Ù`q«JI*·sÀúâ»,ó[ž„”Ô(¨`䘋­P™Kå°‘¢ÄK± ö (Жiðd9ä%×, IP°$BN'±—¡ šÞÆËø f­iµ­ØÅ%–ͺm«‹êãµwu‰Û2¥†ÜC!Û%yIã}±ªp BjðÄOÕÔ*3Q¤ã½$2HJ¯t’,-s†¾0ÿCý4LtŠ!óŒJêÄX…*¥Í„´Ë’â^óKA)]ÐØÜzq¾ ¦Wk RTª—Ši)KrJ…ö¶Öõäc»ws²šse¡Gó<Ën)ìCx -¸µI‘%WÕeY$öôÂìÏt×M~“®”j~Ôvâ–,±óº±žA»™ž¢.Q\€Õ9Q]Ô‹0ÊEÜp“sªü}p—1Én45Q§ ¿áÂJU± ºŠT=üÀý0Ô`y‰¶¦¯#ÔÚ^«7\Çž”$„!Mi³i°µì-dØßèpÖ¨ìhuyQ˜yñ&œ l‡Cfè +à‚›ßŸAƒb æ&¾8å–V¨åÊ# Ÿ©‰óQO»ˆ°%K±<=\r³R¡˜Øf0HuþªR÷Rvào–9A Í`^¦ò`É}ØqŠtõ n;Ô¾×õ8é9ŽºÞXðt)sQPeHAqåâQ}¶#‹rG¾È2‘yR7t$‡Äºé1Í×(‹12w²’y²E¾·ôǼ‚¨Ç¢PÞ6D¢“1v:‚ƒŠ²A< <åe}N}Z‚ÎÄõ˜eX‡[z+®-Ÿ HêÔÞ¥%%'¶Àcís%T¨ò$ÅuÑ%˜éiåؾ=îl0A¶œn]Ãø‰ Òjœv3ì»Mm_ïݨsqŒWGJÃq‘¥K@ÔâTS«Ësªç ¿]Dbµ>åöTËl·2$W* VŠHÒé Z8ÔÛ\vÆ3²•G4­Y†¢†¡Bžï‘!Iò›]:¾~ÜcÇí㈾€fœ½JOÚ´¶ãõÕÀë®%Ë&:HRMÏqp6÷Äs5'dΕOš\ZôÖ›hJ’v?ûã ¹1‰”°-=™AO¥;žœ˜IE:-=M•…’zŽ’Asq¯¶3)©ÒRÛL÷Qþý:Jú@ðx²µ$ßÐzãÇm½D:µ,U»œ¾³=·æ¾†Òžš¼»'ÓhÙJ¤ìL„êl›ù¾XÓñÀ€yg&™9/¡0ë*I$ ¨{îpzÒmi7D€­ˆ>d”€}¯¾ Žé‰Ìe•œ—R~s’¢¿T’ }-zOcÛžÞ©‰mŸëN'\2Të`Ø?¼[â5©ü…½KK&Ç1…z`ERIRÜ) "àXqôÿßMa· Hå!@»b’-¶ûúaä îFcˆÞ‰qéÁú²$:µ6¦“¡bÀXhOçŒà± “k©Pq*-¥Ï!° Øù¦'ˆÕÇ bz…%ÔTÂ5)äéê$J­íõÅ”Z‚L:Šš”Knɳd”!6¾Ý·2€°3ÔM‡£'¾!×cTÝL:bßvžÑÝçejQ$êú_’f2ËIˆÃŠ-‡5©6 #òÇr\·ÈGôéJií-·ó!´ƒp}s€—1Ö%kCIJ\HHm‡ôç”Úg^‹¢r%ŽU~ªÕ2¢È†N¶žJÐ’½$aßVøC>“+Ç¡õÇ}Èi^á´’¥XáTê–ÂSñn™·³úî7ÓLµ4㯢B¶«k'›zï~Øó×À¯Èⲃ»FáãüNÛZ¡S«HµÈ˜qa!i*äì=Ç›ò6ÄÒ((›Q”Ã!¶hyeH:Ðp>}†ÞžØåµÁxÄë*ªÐn'‘>SŸ‡~n¥!= @L„ÖwmÜ|ðê·|6®Â‘w£¦ŸsýÙ!büÚÊ¿ï~˜ó>Ñ™=ªI#ÏQ©ùyŸ­J«¡Ô–Õ¸Kf×Ûc¿©ÂŒËJz«@‰&S¿%a%*[d ô¹ÆÐYÔ1›mÁªjG¹G—òä8f“º¡vDévm´$”¶H QYì9üÎ'³B)ñ2û•DEr[­H-<êF¦[^É_;1]_3œHl°-a?"fš[/©Ö‡]WZ;Aw)Y*÷ìy¾ §5 Pœ‘à[[î3÷……§¸ Ä~XË VO:-Ì«œb6£SªD·$(òœ’ÚÔÚ%¤³aªÀžO<_ŒK–‰&KÕ¶Ûy+„ävÃbʤyTçÏ{cØøïÏñÀ«l‚åÚœåfVäV ‘ARΆQpÖµ 7Hìäúƒ3ƒ1ã×Ú©R쨅@]ÉBÒwÚÖÞØ/Š©#¹=T±l·<ÄÕw>Ö©yÓWPn¢5ìq{žª,f ²©ì)ÈÓCqƒmºԆɸIþðôýpšØñºuµõUçÛQý£L‰k'e×g8Ú¤Aq^%.¹o"–l,¼”‹zbo5Sž4¦;[¥LqÞ‘m±d‹¤„›ÛóÆ›Y:ê;K¥]VQþ刪2&Ñiéb2‹زEÒµ¥wÔ ¿á;~X[—3 ]¹TŠK®¾Ý>Ýd´¤ù677'‘é‡Öw'3•ª ÓnÑÌ{K¬ÓümY3Z‘ÒÊ:!’K„…¯Q{í‰Z“(a”OK¨êõƒ{ì?OllUm ˆ*åBŸâKÌ!ä>¢­ÁÛ¿¾7¥°ó³S) ¥j êÓ±Ô<×õ¿|®c³jX¹î5¥eÖºÏ \ºlíkßãµKa)iÕ%[~l)Îæâ/D~cœÍIÑFv[ƒu!i;Hýqæ¬Ä)³6–¸o<€Tž IIQ$÷µ÷°Â¬£ ND}“ª䵦2™*kJüRV´¨\i±ØíÛù²¡R¬æµeS:}f–ÓhlýÛVÚê÷¸‹qƒRz1ª2 Ä’—:D"¦¦Å!æžb@Öµ½?÷Ç•¸ìÊkîÄŽPÀrÖ*¹ÇóƤʵ®ŸÆ/Fœ‡)Œ•”¸–Kî$.âÀ›c4T+µ<§ÓÎ\\µ‹ \cˆwBsÕ™•ë¡j–Ë’¼2KA;†õ$XûJ~o€4ò•¥úª TëÀ¤qqëõ¶ ÆÞDJXJlŠóÍU˜lMaô.ï%Ä›“ì~€`,›–טó1#¥Í)Cª #e¸¿¡ßl)¯TMäÆ ¼¹'€'ІR›N©%ÆeÄkQh¥zJÔ›lÜ[jn"%)”ødºó€6­Cvȸ Ÿ[ŸÓØl¥t¬12ÙYvM„„½5 6v=…Ê€›ò>x+)Õä3IªÏy§¯µ4€ÛbÃPÙDßñ`Rµ$GylZßo#©ËâÏ©ô\a‰¥¤<ðRY²•sb®ýðwŠwþ¢?Ó×*dN7•‡ÌíùV]u¨¬°äˆñúPúÊëHRScåUÇQˆœÿ™ªõÚ¨•GÕURŽ»L¨•'§¨&çn×âØâ­J@Ï<Î¥Çx(}CœbŠßBl ò&:ý4Fž”°BR­I“n9'ŸgR–Ý¡+uJ}ÅkB-{~û¿S\JŽ#*fây=ÁÓC¦WâVÛ¨0ö¶Þ[Ñ\/šå´ƒï|R¸%FÉï­êdKªeZÔ¥+çI'uÜ[Ú÷¾<¥°ЙÆp{õ9K(ª1˜#Cz|Èë’ã‹+)-©žu úöÃtŠ”¼’Š0‰tÏ©NlâÔ@Ô)Ùö×¹pR ìCޤVlTiE~“ªQh!CgýÒo±ãl4ÎÔ¥Ñ*ÍJ§ÓŸanÃAJ:÷,8£¸·øo·l5 2óÌ +üFEªÓ2•075&ŠqÆ  ÊHXÕ{ìmq¶Ê®Â}ˆðåu¦2Ëd+öÀ„ê ;ú`)vpxÄ+U.’z*µú ¯† SiðžŽÛRS¨Z.²²¥höÛÔ[ò¦L®2ËŒ±e„„ 'Èã„Ø•{Øý°à 6Z Ø­‹ÙšÑaUi Ïyt×QMè‚?>öLjoLCÔÃn¯­g~é;$‘Ûab=bÄÚ,;¾r£-fYIêRNñÈJKŠ` )I^k¸¶ÝðuaŠœ¹Ô· ›22¦2óÒ ¡µ ,•n­µ° P'Ƭ³NÛª=ɘTŠöv¥ÔªÌ:WöZoJÍ´‹ÞÞ§kS*ÐêÀ˜…Ài¤\ ¶ý0틈Ÿ;› Ç©¤ò¬<Âü»I›Å¥‚‹$i'r{mkm€bOÙ-õá8䖂㨂 ‚E‡{}­| .VõÌYMC(}qYÐ’ö¶ÖñHK`\Û¶(éÒé°™a&.Ce¼ãƒo8·òÂÁ$|¢}€£¸Ê3óS!Eö:1ŸHTU§•#PBˆõ ž;àifCU×)A÷&8…¶–×knmp;[^wˆ9_·ó ¯×Xk:3%´L¨N‡BøP,E¯kŒLçJškQ2+®-°ùtGtn›Øî;‚+kC?"VV¼O¢¥ ¥–Ÿ(ŒÛÝT,yJaç°÷ÛœRPséÓ#Gaè’›yËÈ._@@Q{o~ÇŒ-d±—³Óø@äûgg(ïÕ£9 w]”¶ ´ k pIc`M·Ä­ZbËì³ Øí8.× UÆ«Û×ôÀ‡,ù“í_ü›n3ïÓÀ”÷WdÉR¾ìnlo¾Ø72ÉÓ›çø³"c¸ù1»G1½S£Qà$¾€€æ‡ÈZµ$(‚xùãñƒî0®ã¹{UJ“K—ñ ªú(aP¡]÷Xµÿp7¾×7&üñˆ¼Å1*oF’‡\ñn¸ƒ®éP ºOéo×l(z”{C±õ&٪Ɖ‘)Ñ—=!O?!Åu!Í[ÿóŒx¥.d¬­.D²ë“!6»•)µjûðð5Ôʧy÷Ä+õ °zækâLC‘õJy¥4è!µ dž÷·®ÞøÎ ÑÑš—‚˜§¯K’‡4’kƒë{vß|ZX.gP$é·|v$øB’†Úy—KËò7[¹#Œg$Šc™„hs¬óô¶ãg@!i ]È>âçôņD„̹ÎSkï²ãŠúÍ«_Uzl¿øHÁ² ó¶1L/sÞsÊñiS&-A-™t®2Iû”€.’G}?3€rbâe÷j2Òû’Ae'f·¾ÿ<¬ `Cª‹n;‡S×ö “í´Äp§™A[ªmvýûß|)i¾‚ž[ˆB¯¤¨”IÞßü½ðËà,õtî,Xõ+òÎef‹J¨G4¹N%M» ) BS§ŸSuo·ËÓ~%Ó[éÓåÓ\´ÂZfKj•½üǵ¸Ûa©S-y“Ûpk6@¨ôI9…ÁYeDÉ}Õ:ã-¨no•±Yñ6„ëØ5K­¦’ÚD„Ù@ØX[~œq˜Z]R‚ õ8½mQÝ›âQXQó¥IÙJ½×x™À¿ôÕ€ÂÆ]so%xÌþÅg-Ϥ!NFûÕ>ÏIVé}*ùnqÎs%)ø“¡Ìm†Ú}k’ wº‚¬Ÿ)Ü+ß|p %NLú=õ½€¯çþ“Ì©´¶ê°êÃ3%¶]jl„Q}íoC¾äÚøÂ˜ ŠÓrR‹Ì'ª5 Uú~[ŸÂ.¿c†­ªÕ€}BÔÐWPÌ=˹U:V`…„Ó’Ìx-%çºR–H&ÖØùIM¾¸æÓ³lú&`«É§DÔâefÊ+$y×ít«°y1Î$¨øªø–þ^ªR"½–Ìx®GcëB´ýÚsPF(F-ÃI5HFÏs•5*C*ö„Yd´áSm›¥ mÀui6¸6Ü}°Ö§HdV¿gõJ}å²¥ ‚«©wµÕ–YU·*–a´peŒ ®ªUçªTç*‹QZ.ÛH"ÚO{ñùû`Ü£O Ê£Ì©E©ÔYz;kÛ t'qmhă` ±‰¨fXÆ£äX÷9ÖiÌ5 ÍR¨ÏjŽe,Ú×>Bm}µ±åº²ê™YMÏB\šASksJÈP*÷äbÀ£`³Ÿ!$CGÃI•FÛeª³l¼ˆI’–ºt’­»Ù[a72ËaPÒP¦¤S–¢‚ž\~‡ ?nÔV-»gæ2Ìõ ¹•Q&fJŒ©PŒ*@[Y`?!ùsŽw.[­)i*ÒÞÜïÿã HÉžb´îOg‰yA‘QƒAf2d-4õÊÐ€á ¸Óæž,«Ž{ß *¶ÕJ‰¢+®¥Ke¹e¹¹ƒÍí|(Ùƒ<ɰlñ£æéÙ}™ŶØ[¨é)jH*hei>ãnxÆñc.¯;Â2Ã%Ô„†½¯¸V¥žãal‚gSA±ô샱ÿìW&<¨i[Á8›% ›¹ªÛXq`qCAÄ?N¶Ñ@Cˆp¤•¡@íkzàÜGâO¥*šgO÷d@)T™5(u9 BX-´T¥¡DXëƒþk`ЬJýb „jöp”¶nMíÊ·ÃûœÓ—ÈüL^j¯•¢9RLÌ}t­i‹*ܤ0†ZB—âSw]RÊÿ– oXšl*HDêpq–)¥¬¤õ´‘½·#mñCðêšëè}D¢¸IS—ë¤ý6P·µ©Ò TšÑ.:~mǸ<âLdsý¶ÊÈ<ÝðýÇÔì˜jñ*SeVÊ—+Þ¹—“L–à‹SHttœijò‘£Ób¯NÛb]†¾ïiµ+ªeÏ`@)OÈ Ò*ÔçÞS‰œÌvÛYP(+JÁç·'›qTü·S[Ó³jbnR<9CgI,d®üi°8ÐùìEš6¶àe³kb¡•‹¤Â¦¶ÛoÈxéZ@½øýG'PãNÃÌ™­Sb*4¶ÝeÝZîÚ‰ßÊIÛŸÌ`êPç sÖ/ ŸpOˆ¹5ju:x¶eVv¿:’”–ÀµÎ’æÜ¶Øy—2Ôz^L«7!†ÝŒe(´$¼a.¤$éõPW?,yц=À½U¡òòRPU ê[°ÖÞ¹M ¥¶S`IîFâׯÊ~dHq+ 9bYqHfS)qÍhòêG Vöƺî`¡;‡ʼəååL¦¸#EMðRà Rp«°ÜÿÛY[ÆÍË[-¹çŸ-¥ä‚”¶ÚÔ° ÿyGkzàë*©c· ðdþcdCzE&Ÿ!É„-`±p½?K~XKœ$ƨåÚ+0išTÝ5 =À»ÅCeJm†Ô則õ‹±sî?6WŸv;o>¤Ô"¸Û)a"Á$[—¾T&­ªsMËEÝYZ^J R®/«kw<S³¹Ï.ËgÆhï=­é*ŽÚÂdªöA onwÚרá¼<´ŠMÔdAêÔq j´ëBT.µ,vi½¾˜%±]r ²º¸Ï":ø{“S]|¦s“£ÄSj’À[{ê*:ìNãnøUš²TÊÔǘË%É1£·¨”‘¡IP½íé€}‰C×….§™3+­‰­F¨G™BÐB›*+VÛ[×~×ÁP«‘iÓ ‘bCN!-‡…‚®n?ˆãnˆÑ‚,ìÍó]yºµB,7b¡¸l¸²ò˜h«­D\ü$ Qeªœ²”‡DU)Ö$-ä‹»`.?¦¥*í´Ì×éÞ”òÑ.\­ÎE6©-!¯µR†ÊwQJ‚’ýÎ; á–“A—CSˆƒ.:Ò·l•>â²ÙÞ ·ít‡±M‡¯Ìáù®¶ÃÙ®d†Ùih(-¹r›„é ±ÛåZT ÃR…KjA‹R}CFÞE$ß{öãŒb’¼Ç†üqþËWÚnLølHu¨î¯Rúd’v*Â8ÃÏ©²ò­)>skpÐNs`v÷ ¥T:êä©e,0<º\¹Qí{ jô˜ÕzÔ¹mÊq*R‚“ͽmÉk37hZ€–¿ ²lZü”V§I.CnBÙ[!e.„¶b½»Üb•èåÔ*™vš‰4éj ­,¤´ <·<ŸÅÆsil¤åsrfaD#W˜Ê™eçËhÔ6P7&Éäù†&ÓOŸ°¨Òšv9ˆØC¡έv‹— ó¡ºíV›œç…Rmõ*É*MµñkoÂvãòm§PøzåLMqn4êš-8Bl@~åÅ[ޏæKõ F¨a¸EDz§7A¨:YDz{€ÇB’ ’ÑYºˆ¸6QõãŒuZ}@͘%IJ^u !Ö™$tÒT£ÓYÿ Ó»òmcÄSC¯f u.«—Z«¡Ç©)q}5µpœìy·<ƒ$7¡—3 ”Óâ¸ZrÐ_I k'ïçkÚü -Ó¢}J7ª·³ç¡Xz]*rk)Qm!¹ ¸RÐR NÛ¤éãÜï‡T¸ò<nRbCiÀŽ”½Â_%p’@Û{_R2&6Ö"±ÙÀÿ2s$=&l5÷éáØPҸϣXp©{¤¤‡mþ~ØSU*r£ÌðOGT¹h1ÃOUM?ý¥6ˆ«¯$£z|¨ È2œp)S.ÂRT/²‡#}ý±ñi5ÚƒŽK«3pá%ÝŠT¤¨ ì«cÜÙ†R†¯2c5:®>¨í Ç4¥&á@€wõçdŠû´\á´óZÚuµi&ÆÀYCaèHÁ7< :ügpÍ¿éuÌ·\Œ¦) S*kîÓ§`S¨ÛÌ{úÛf™isb²[ J$%G¹µÆ5›úc•e[n;›Émª­TSc¢ß§béOó¿lg!©tÈá´BBµÜ€8)ùáu¾>í(²Gô¼É.Z~47ü0¸ë̓ԹÏ 1o9ONMØUUƒ9Î’êe¶‡aêe´/ÈßÔñë…;îP#4µø\ØÃ H\ÁIŸB~ckˆ™D)ÀÖöH=Ç®6ÈUß³ò¼æ#¥ èšW¤+‚﵆·Nž¡Ué =Ã3õv•˜eR)Ñd£ÂT”¸¶£ÝipQbÛÞø’Bn^«I‡9´>¦@\'VK©oY6Qþ+„Ÿ¦¬Á±"JT×Çrv“šêæ=Rl˜m3¢ƒºÃZ•„ÂØØ‹ú›±ê‹—*.S(oªI¨E}æc½b~å°îÆÖ$î0û?™!rHìJ´ê^_¬Cˆ©¯³Zz”¥ j°)NÂüí‰ÿ‡ëؤeÚà‘ Kž$uRP§U”•{yA¶çŒhSh`°üÂ3$&™Ìuz{œ§;)à`»m „…%\YG׋Œ'ËÎ6ŒË—©åƆ…*ï¹e% R”½ø½‡·8Úl ¹Xw*ÕæÄGSÈïõ‡üM¢ ™ì·GLÍaÖÐ:KÔ—](H=‰çÓþ­„WŸƒ)Hn{ÑßD‡Ô¯0ÞÍ„[k€O ßÎÔÈõ!}ÎHüÅÙ³(K«gs—©î®D–ìâœ ó¡ ©Füy¿L/ø©´¦ØL¦šiô¶ˆÍ½ O”¸7µ·½ý°¶+º<ØöXä‰"Ó±j ‡OœÚUüá·?Þº¥G¶Á#3DCB§Ó]ІãÅS,i 7:÷æú»ú ªàIÐ’¹oR}øÕˆyˆA«Hé"`JËš…*ßDîqkñ:—E ÔSH¤J ÛJܵ^“snÞ÷7çb6‚"w3ZI“ñ*"Ÿ•$Âjqeé«m}rO—H Û·¦›5º}=>OS²Ð RÈ W°;àþõC(ǘ–+“f&§âtÃ-­ÝI!J*Q¸ž+¾S)OVšEEI·Eo­+p¤:“q¹Ý=ð¢HÁ•P+væMH¤·˜êrا(!H”¦£¶„• 6äŽÂØ´Ì“”×D©½Ð~RRŸ ûn ÍïC¾Í¢.ÅÚ LмXù­˜Í¢T‰M%m¡hJ@Þ€ß1#Ì„¸3µ¥×е4W)°þxÞ•3Õ‚Ä8õ ÊïK¦æi²Â’¶l¥HAP Q*Þ¾ž˜ýU.u(-1!e"ú‚•}¯í°ü°/YÈ2êo¦¿Ãȳ‚%²úÓ[ήþB@O×NÌrf^qÄémæH(ºWu$$Ÿ6‘ÀÛ¯ƒˆ†¨ZQÉ‘Æ}ô•6ÀZüiV×±˜&9ê$K€ã‘4‘=ÓKKL†Ü)6Ü”·ÀÎÏLÆ+aÇZ B>Uÿ_Ó )Æ'SUníή%d™(UgÛŽ´Ml{%?nûŸÓô¿‰4ˆ‘£P•Êy¦5¶ÞŠzl”¢Êe][öÄò©¶ï+^óêrl´ì¹å·%¤ºji ½ž ì9;nùb§öß8ÿÀ‘þ‚ÿ8µ‡ Oô»5@º™û'N-¥UhÐeÈS,©µ­×TTâ· [M¸6Â\ЉFN™"­!Ų癒­iŒ°² ,ÆàzóŽ–8&qrxSWnŒŽÛ·z$·›ê(J]Mî}¿{爺XìÄ?ÐCŠHq!V “ùâD9È2ÇÊe2ðÈ©-3˜©z3PЊ´·äZZ#Q†Öâ‹á…E×*ýå6ÛQš/'û@mÂÖÆÀŸÄ|ØMµ |gCC¬z³¸w:¶R¬D¬Ô*/Æasb8:Ž()Ģ߄C…ìehõ‰5é.7¤>PÓJˆ§÷­ÛÍóÀ)b+%‰ÈÀ’ÓaV2¦¦žŽâIRUÖh\(^ý‡~ýð¾¿[Kynª–ÛFŠRTÞ¥6TµÚÝÿ{ß¼¶ ]ƒÇò^Œ‹MyÊ3IœÛÆB:»6âÍ®°=lÃo‡i©æLÔܪiôÈE.¥ÆnPt¨ÝDØß×|ho™ÔCÖÊ“ÜãUF]z{fº‰4êÚbV‘­H ü*ìT Çû•E^L#&2‘©M­…„i ±÷±½Î5jIÞ‚\qÿ÷ýãšÄ ¬fF«ÇáOiÖ#8±¤JS “s`u[oa¸ÇÚZw-eèU:ꢸĪd”4Êuul/ênyØ\e„—¸U«3xìÄ0dɦçü_Cðu’{l<úTEÎû ¹Ç¼á–ë™QåU×1^:#È[¶¸I*#`G÷…÷¶×ôÁ%½ê{QA\Œò&Jø‰V£æ$ÕÅMÇ-«©D l4q}#}»ÛušýJ¯_jK̪U:…ƒ­êIP²´¨Œy—.b­i¦m£ä ‘" ¦È fB$!¯1Ü‹zØ}0êTÞ]"jåÈ2\_UM8HANå>D\ÚÛ\sŠHr'8çüÇíø(¢CÌO¸âªÎ©Lˆª$ GðÚÛúâö†TÊ[Ò$Èm ¸eJp•yNɽû‡ªƒæ%™‰È²ýÜÁ5­Nô)…¢¤)7ÒÍÍŽ÷ۃϡÁñŠMV*•)U[h‡žP<•*ÀûZÇ{s€ÜÀª’øÈîQP>Q«™uåÖ• HQJÔ¶nVâA6÷¶þøŒ‘& Ô…Óý±ÇÕInúY@±J‡¥É?–7îA˜'†Ò°†¡Õr¤†'AuÈê ÍøuqªÝŽ×s-RºëMD‚‡&7Îê.®©I<ßmÀ6ÆRÊà9™b7 #éñæL_Œâœ}([VÙÇN=.8Ø&M ¤ÕU.UóL©}VÖd¨€ ·ù†¸+ŸÖeU›b7¤Šbjpß©Té”ï°ÄFünØ‹¯õTq–¦VçݯUÛøÄL Çë ­vÒU|5yxÏ?)²òÔiA‘r.¿°÷¥Ïñ£Ô¨?m@©¡ÆÛS­§J‹ˆºÍ¹¶ýï„*r#i¸SŒÉL¹CËQkIyhyn­µ€[Ó¸ü {›D©¹Nˆòƒ­õœÐYXN•otØöòöÆŽ³Ön8'ˆ²F´••FQG‡WM#Ô÷Ñ +´¸åSZpødéF±sþ!†ây•©}.2[0˜Èµ P ¼ÚÜûµ*úжÄíÜoŽoLŒ¹òcÁꈲW*Åí'PIQúZÜpèµ–Û §kYW‘+Ç\JƨŸ±ÇjF4é,0úuLBsA`/Íûâ¯ýªd_ù¿úl¨5xŒMKý?5¬Q2嬘§£QYÑRhEq*KK Ó®Ý÷±Ä®B£Ó^—%ìÆáû=ç] Ò¢VR4Û›¨[餸~'ÊiÃÚOé)ó‹õØ4êX­PÜYqW#h $°QÞö·çŽs>3ñë-¹KCŒ4—âRã`+¹ÓmùaˆÐc“.g í©Ô¤ÍRK¥¶ŠXeç KJY*&ß$ó6Âg —¦ Æai£¢R[U¹n÷Fÿ¦Wägœ³ Ä£Ë5Jå>§.¥¤Äoæ§™azKÍBBÎÜ{ã 9Ÿ—b¾…´Ë‹)´Ô¬B•«×‘‰íNDé}:êÉ |*wÅ92ðˆ¨LLuë¥/j U¯ºˆ±Ž=Ñòü„yNTÓ*<¨ìM6 ÐÞ×W±'ht¦ýÖ°~µ©ÿ†…¦®Uù¤ŸÌÔYt–Zˆ¥­À mĤ…מe:­[*I‘!¶ÛA[j³ÈÁ Iú`.EÜqS–U/ÑŒVüµ 5D=$õh´ Kœ•ÛmïÜÛåsêo³SCõxe(Ý´·m…ÎÇž=q5Aó:P¹8Ÿˆæê´l¿]˾=1°¥"A¶ 4¤¤ˆ¹8šÌY²ŠË –Û©uÐâÕˆ+h]IVa¦æÜcY]šr“j3çÂÇrÚ§§5Uæ…N[Ê2U³d‚¥‘mÅ­o|0£W#×>&A‡XDn<]>$‚•› 4Û±¿'b–!DéW^ÚÚÆè ijŒ U?ˆ54¶z‹Ÿ †ÆÖ Q6ö°8.™²ƒ.Ú,¥¦Õ-iwRC;Ƕ-Úƒ8ÛÈf#¢f"«e¢ìeÄ’Ó„êAüiälO®.¨)ñ˜´÷寪JRÂÖ Éq:ŠÎÀ_°a€Œ`Å19ÈŸ•ωÒè*Ck…‡][ªV®°é’OÕVÛÛz$UÖ¤¦$Uŵ8†HÒv²®{j¾<¤ вn÷Ðj’r+jCÕGlX5«ÍaÈß“y±’é¯; ;U›ÕrJ:‰»HÉ q·®5”q‰u–•ÒŒbè⢬¾2؊߇qIJ§ì«´A¿6¿l)ŸE9JÅxbæÒm³ºFÞ»óŠ ¯©Ëkß-î0¤Éû]eS_¥}Ó€pR)÷â¶PË´h•ð_4—ÔHlÛsÈ$îvïˆÕûgMo\é/“ªµZ¥}ªuµ»3ª·ÐØI-¶t¬|@÷Á¹µRc¦*]‰%¹Iws©_½Åµ^ûÛÞ3ò<Ɉg%Ó©+˜S¨CL¥ÅŽ™N›¦ÉÜí|P§½Jb$I!m5-)[HR†¤¹ö'Öà˜.É-äv±Ä7ÝñJYY+H ½}÷¿l:˲—[ÍR2R^\QûÝ’•'²­ÚûmßÎr"äõ ÍÍ1O§ÎÊÎÇ@û9hYS¡ÁmÈÿ0ÂÚ¨T+Ô6Ÿ¬—›nÉ -:J4¤ýU¶vì+î<££~ÓM¥UhTzy”ÒÃ’ 0¶ÁÒR Ìͽ°mG,×§U\[l@*(Z”˜ëJA @ØØñ‰Åž5ÜeÊ«m§<“¤I©B£¼[È6*ú¥~'l°¡Øóla•Y§·Y§!N¸ôv‚’¯¼º—°ùXâZ¦e™}bÊYT™ý˜TÔ¨Š¤®7}²u¸‘Ó°¼þ˜ç°9{þrGù1ó4ߨ¨•Ħ§©sîq,¨Y”¢¾Ì}]EܦÔmôÔ›ZE•YÕùt(ñÙSîÔ´Ù »Ø_mÉ·¥ûãô ²Ï’Ó°ƒÁƒg ÎmÌ/7&kpú´ô!:.9IÔ›\Ø^ÃŽÞ`EIéje¶É#¨ õ(›{11À•*ž2xžÙSÎfª 鈓å.+¤Ø’¢mØð}ði’ÔBå•-Ù4ôJqÖÖA¹Õ`±î.±äÎf[‚»s1¬Ójq#™1ƒ¨Žûº›îÑ Óe}{ã¡åueϱëTÌÛ5”5„®­=}X·ï$‚,3‰ï<ú1_V ÙZÝKQÛEØù®l}‡×´Oˆk£Pü)f?äRœ]ƒŒOp|À÷Ã(½©|´ÀÔT55ƒìu:§Âêª+”Éu©δE¯ÃõnRR‡·?¦V¾Ó«Qä?Bq)[–$¸«[nøF¡Ã\XteÕ¹ñ/= ã•Ê"Ëy  ­öR´ki[o‘ú“rd¬eÄNu´Óídì”7 ö?Èa*ÁÎ%ºšp ƒ±‘1Ïu¨µ&ÌèëvcŽ7Ö˜BÈûÍïmØ›£F–¦®‡âÉh4«'v–Ÿòñ‚TenO¹^±Ç"|[ðšÄXí­«<«ºÚn»[̯}¿¦5©çÚ•k6©¥d4È`h@I¿b¾<ÉòÈê2½QZ™Ogþ‘×Á7é±ë?´“ª,Å}z3l-+QRþ~n97Æ\Å\ËÌÖ ªUN[èJeºÀÙ‚Uªé; í¶Yó#d% {‘9ÎÔjH-°˜íºÒ_x jJG”ØlT|XÍ2kõLÓ`˜Í0ÂZŽ–C‡VávOXwÁ ‰]ÛwÄMtc_Žä×d’,ÃÊ¿âAÕ{n1CC‰æ T¡6;ÔFŠ’êp•’TWou n05¡IhjÀ+“2m#9:ªMI§WÒXD€.’‚¡`/kñƒé¬ Ùf¥U›Ð}P] }¿Âµ¥E7ÜraÍù8×9àO i9Æ* ²—^¦*@uð„'kïÆöôÅ^`‘7ÃÈ+‚T…»RyM ò–Òž¥»aõ¾1IÝÌ Àˆií;>BÄø…¥¦ÛM´•ñécŠ|Ñðë6øÖäͤÑ#-)’„ìÚ‘qü@ûqsŒVÚxšIb7 ª2œzq™)•fà:ÒÔAewQ N®šG¡þX™ÌõŠžcq„ÇûÅ4¢¥£U–µ÷Vø]©– L¶§ñRÊpz6|J«.&I›Pq-<Ò+QŽv±#sZªMn³Rqô*9TeÄ[`ÔÒHôàÛŸ1¸‰%ŠQ°z3Ìy³ ¸ñS­”GC ”,jl\ïµüÄ›{`8'Rªr?ý9 uÆÒÊ’~õ!W<9Þ÷8ÝÊ;1‚¶a…GSªf<؇ Ëzæ¼è³Žƒb#k¾æÊ¼G¦³6 Im¦Ÿ-õHYQ&æÿ[cOɰÛ°>Rª‘˜X\fê—1Q èZä„lu(Û{•‡ÊBÜ]QtÊ’"ºTä­*Òd€“~múí„Zà XÚ‘™²¼E”6VE¥S|qÙ³S¥ËòT½íóG뇹—á³´å?.#m)ä›)¸îƒa¤N­Ål'[é¯[ÔVÑóÏÄtîlŽ(ÐåÂY}ÖËjiÑt•CÖ×Û ¿Ú¿ùj‘þw?®'+ ÀIìá‡3“WF°ÛõU­™m·!J™cÜ­®P@m¶¡žKN—.'t(÷ö7ÇdÔá\»²}Æù¦°Å>¿Ô\`Ü9ñZZ›à*í9þðÿàÂh&VÕ!êSjy¦BH)ÿx“¨öïΫ°|£±M¾Ä»¥P$Éʲ—ã£Å4®¢œvHÒ¥©NX*ÝßÜadLfê†ER e2êÛC.6Ø)vÄܤÛmÁÚׯ›ó(ÓiÚÆÁžâÅ©æ ~i“7r4Ô-–IÔ¢ ” Øè~˜Ê}B ªM ÐÖÃHQUIKl¨—JŠn¯îØmßÛÈ83SwÈvpìË26Cnl8í!õÔz.¡Ð›xu žÞàŽãÿg¥éM©ik¦¸y«d¡Í!E;pm}±ëYv`ÍÓÕh·hã<ÿãàþjû"±%(¨é}!(d¤)•*Ö)X÷ oŽÏ“þ"Sƒê· ™ %jBõ§k‹`lmŰí&…õd¢I5ú´Ó¯‘¿8…M3%S ÛÍ"R¥—# r«í|ELÉtºz2bUV)/:¶€Óu+Bw:¿õßÛÛ¢¶–;† íé¿õ š­8Ó’>ä^`ɵ:©Ôél¾ì(®hqi¹OSÏnßq§¢Uœb¡÷)ÒmÆp iP;¥@{Üa¡†þ`‹,ñäeQªJJÊÅÝðá ª¹$÷Æ/³Ë‘¾Ó,°º¼Õ%O>µ)nv° [“n1I_”FÔ§ù’leùU<¬åaÖãYÁ§Ì n*@!()æÿ½qßÛä:$_z+u¨ñÞ”¤0ø“t†T*„î/‚$×÷{Še2Ÿ˜_ÄH™ušË暈‰¦D{ ‡Zt©niê7ís¦&©h”¼Q¯©ijS¤ßÌ7JGÌ^þ¸œ’q:KZÙ²¼ÿ3Ý-F™-q£<45çe§néî-Ûn/Î)&êôŠEƒï½†\!6¶„•«ÛuŸ×C2îÑ™$ù¦´6ê’H²Áß}úaÞM©Bv·=y®B¦<ü†Im- zÅÔHïl7![ž¤{ws5ÍÐiÓkÍU)m½,¥—RGM=1ίEÆr¢Í!…A[3fjK/¬ß¤•µ¿ŠÉýqWü8µ~_S½+o0,±Y‹™^5_›%”Ü PR„‘b4Û÷‰¹ßÓ)tVœ„ÇAEÆÊÔ¦ÆÅgWõç…g?2›á¼hð³q®Ô_j>+JJ˜}Ë)ÐÂÜ[V:¯ÃÚ5 Á©f Ñ3±ç´ág­å ’R‘î,G©j ß‘/¨˜÷6Ît¨Ðòe'5B-ÄLIL>Ìt–5B»ví„rs—%Ër2eçVòYSÀ$Oðî0¦kùže&â0ÕŒ¦¹›+¢$˜+ˆVU=!,BGá °:“õ¿8WþʳüÄ_õÆ'®ÖÇs¦çKb‚ßrV‰€å.]-Ér¢)(r_]‘ªè 6×q¸kíÎ%"!úzŒÔµ·têÿÃZH‹óqÎ>ŽÝ˜|M{ó¸z‹~|ĸÝAµÊŽ×û†T¯3k"ÉÓµû~¸¹ø]™)¹Z¨û4äÆq ¬ Y-\_{Žoql V Fnld÷(þ)×rõYªcˆh›P:rŠuèŽUm ¿ï¶$«Tù4÷ ‰6[mÃ^•ÞéUÁÖ>¤\oŒz¸=ò†ÁÔvÅlS~ ʬS:-¦5œ‹vÛÁ´›©]Š€¶þ˜¦øzô}^«E¯´Ãó*‘ÒüU(_V’ICfÝùîqæ8CäÆBžûœÏâDgš”Q5l)#®ÛaeKaD$n}錣ǎü]j.4Ê#§XlùB6W¦âþ¾kcÞ2Ò‘ªOXüºþ$º*(]ñ4¶œ¥iq-ê¸Ô›FßÏñ3L'ÅK^„GHqI܉P°ß¹>œúbŠ®³LþD83uUܦ¶O9¿1IU82ÏÝ6êTJÒé×pvZß,[|>ø‡û=—[§Ë’‰/¿JŠë‚êiDù·ï}ýðϨëìÖçñ é: tϰ™ß©•ª|¨ñ:Ž2Ã’™PÈSZÛ(v¸IŸrµ:m2Ufl2µÇmO4ü.@ºu[ŽÛ‹ŒsSÐ,øÉ‘8WìÌæ)ƺaHa•;d¸AAJ»\q¾0êþØ–©¬D¤¨5Ø¥~·Úß,VÕp …n‰wêm„ÀiØbI-¶^p¨ë ò@öMϾ?BmQ³O©šÖâYŽ„¼’¢ê” ”•s„ÛÎeº:ÑË= Ãë‘“K˜yæf8‡ÐZJ û…Zä'ÛUÿ!‰ø¹ñj®4âÜK2³¤,(^ׯ×ßTÔÄ{ÄÀ•ÚŠëÆL¸MYõR <¨El%Ö]*G•!@êI7 mϽðoÃÚedI-V)Ž4†V§Vä‘`¤¨”©G{mv6¨ü‰2§‚æö$$ø šŠ‹qÂio8¥¶.”6>ž¿,%_-G4j|d³JL‡ÞáKHÒüöÀŽ&ïÚûˆŽkõu©/½ØÚd¨¸’n]kÔíí{_Œ Ô×£1–Û+i¶4ÈXÔOT-;üý0 S5ìf¸ØaylJ‰U‹XŒÁ© ­Ä»zŠJ4l{&ø 9fI5JƒqXŠàK­”¥:B/ß`?_\%JœŸs2´Åõ0ØðKfSI[D¸ã^b¥ÿûo|LfëPØi‡ FBÖ ¤›X“`}n-Œ*\FTȉQO[’é‘ÓzËQ+[¡³÷njüH\‹‘½ù¾euI¢Mqú‡I´MHu+váBÁV:Gö6¡®#©N oå6›ciÔº>Ò~17éÔ©ö24†«1 Sr¤W¤ ¯Ëá’/Þ䫪±M¨¹­t\?§Ó»ÖPm<•;“aŠ, · Pl‚þ¦yØU&Î…Li½p‘álÚ’•%Dy‰ïÏ8þ‹Ì_ C&‚ĵJ•0n*|‰äx¶×ùã‘gËgHXÍÄq ˜j¹')fhæ ÑbÞ§p–Òìy¾Ý·Ä¦a‘&LF©Ä’éB’„$Ø(s¦çžÛbkÉ®Ð=ô¿GÓU¨ÑZär:•Y3âw…-VÏt‚ÚyM€V\ØŽàvÇQð4úDïòœÒ¢Žg˜Ø ±#¾‰æMf–±"Ñq)$Ù ¶ÇÐ_ª4¤Ê€Ó}çdÄh¢î_¤Pæ•mm‰µ…íŽé×3çØ2±QîQŽÜáL)e©ÉSŒ…<TG–ä5lw©ǂü¤-Ç)딂ÿñ)@^ýþ\ VfW¬ÑµLx"YPòëôÙ0+‘桉š‘!ˆòÀ-¾“pìØ Œ!Í’j9³635Ô!­ iÞÈïÍÎÛŸ¦ÙÉRbüïM£ ‡G¨Î5 ¤42YKΨ…'È/¸ísnܦ-áÓòîl…D£}žë1”œ s«ûª·:ãkn{ã4“ÂBçñ¦½ƳS0€§UÅÿtÜö½ÿ<˜Íå–Ø~5U™ÐÚ ™’“«Ìø‰ùvÆ1láf _»:Eç«sj ŠÓÞ%kË{•i<m±Ð²½nD@†áGŽûNDëIë²E*AAÛùNão_\.Õm¹žF$`Ìðíúåwì(•˜‚#ø¢è_áÔ@9Ü„ßmÎ#qêEEÊuE•$³© E‰ÛµðůjŒ™æ´îøÇ™ ·šrä†åÁqL´¤(„½º îÛƒ{c¢Ëø¥2nZø@S¥>ÜÎÃjmBÄ„öW¸7Â2¡å•ÚmM‡¹{6PkÙ& ênCŠi‡špwµÔ ù`oŠ ‰ ·"‹ÄËVØ?‡Hk'¯Æ]Û‰mVŠÍ"«¿¹Ì+ÿó8QkNAR[[‡ï#¨“p|מ^öø“y@”̶’¶ÖÜ‚Bš$¦Ä~·Ç² ϹF¬í9ÓòüSâCÍYhR‚awJIÇrx&ûáiŒý-irf±`ºØûy¬ ÄžâYI­Bž¥õ/0R$8ü9¬Æ4÷Cђꎗ…‚4¨ð·§|vFåeÑ“¦¦dxðÈeÕ”iSIýÔë6…þGAÜK÷ü×™*¬œÅ2,-B–ÒÃJH·TßñŸKÿ-°oÃÊc‘ä® õ5k¦’Þ§”Þ¡½ÊE†ä›c.]¨G¹êßsgÔ2ÓæRå!÷`©˜K’^ Ñemå6í°Û edÊkªBÑdÛÊYM·ÛqÆÞø+k/ãµ³2²§¸ ‰f=‹LŽûìÊB\vA ZT­jò›› h Þøß eš¦b¨I«µ·Ú„­n)ó¥ Ø’wä€0d"®G¸’[pQØ•ÿ š¤Vëu6«‹Œ¥„%He̓V è./µ»b;Ñ!µM¢0š{Q*3æ¶ÛjLuk‹m`>–ÆÖ œ MÖ>âüºT:+0åÓa-ԣŦÛ]&ü0›ã z•S«'Á¼ÜçI –‚R…ì v l/Îj©Ä%»w-'²ºç5Êôd¼ÕÂXµÔ¤WÎýí‹L©O5ÊTéîÊŠË«ltXmAn •VQ}W<lMe{›‰ ².L u¹9'5fÓaõ¡¶¢Î¶ÇM)yIÐ î¯õÀ’éPª´'%½"1™9•‚¥m¸#“óÆêÀ»{Ó:üÕýõ]¨D}4™RÖˆèR°’¤Ý6EÈ;LuŒ‹ñFJ~R«²ßŽ ×M†V• MöØ|ñL0`9”¶â…OF}§Qàç¹µ‰•™*k©!·Ã·¤¤X7;â/ã_§Ã•WÂJ‚jQê[ñéÎøò×¹þ]Ë+×Û§¤Ôœ)æNSjpãÖ©ði-hª¡Õ¼íŽ  ν¾—ÇWÿk¹ŸþB'þ¡¼%ÕÐã1]ZŒ0œæ½Š: r« ¢ž‰r!é’J¸ãqslKeœÒÕsÑ”§›gv’õÔo{úã´2«¶p²¦Ìžã\¿–_Ÿ^]z©1¶à-•¼´è¤ídén|¾Ö81ɦŠsÌSï…º­4êe|6ö®%b|™YÓÓ0±JXß´sK¥W3>I“\…*NéC kó--¨-:¹õİ>5ЇSl>”•¾¤.êR‚Í®žvÕlW½CnÄÔ°/<Æù[6?Eb§H«Çq"C*l=q²¯Ê¶ù¸¾ÔkKu4Ó¤¥ÆÔ¥™)Ø;æ:BMîBnŸ¨½°ÔÚÊÍùˆ!ëp˜ëþ±$Ju!5o³ê3¤¥)п*£ªÁJýÞAãÒ²%SûsõÓ ˆ ÖX)}IR‰°âÖÛlJ¤¤ÒŽ„“ûLªùbVTÈG3ué‹n¦µ°¶JȽ¬‘nsÞ×¶'*9ÑJTz|f™,ýèSi*mi;%*µíí‡Iˆ7ó5j“&Õ© ˜B\C$i$ŸðÜ_ 3”ôfšñœúÙ@ ÓóØÿ\M¨RÎ8z¤ÿ0ÚT×â¡¶ÂL¸nÝ÷IõÜÛÓhÔØÑ*”ô#Ì) óm{[üºneJž;–5,†ãi\š#¶I!AŸÞJ‡ðû`Ì£Ÿ@¨¥UÙ2$0Ú:5 KcÍu+Ý;¤_Û «†Ì½µ>Z i•*"U1UHO„Æun­XPuê;<ƒ¸<ïúâK<åê^`”ÔJ-2Õ×/¹ážOEMbŸÛ݆€+ÞØè{œ¾fWÄ·c&è,§Øò”‘p¢9#%QVüR¤¾´4|è(;§§×û˜›éj?h2šå>­Oñ‘üm,¨0µ”éF”¨’wõ#Œ8ÌU´â¤ÀKAAèìlÞƒ{ ö*Æ•e³"%ŠºcN’ÓU6ÃŽ…µ ²”\¨jߎ ï톢¡6 hÔ· iJ‰l«$%&Ã𨋛Éaƒ¿1|iÖ#zä` WF\ïˆÙ•zyAµ®SM4T vU€ îFøL³à³4ÈÒ]9ä¸B$ nä–”×´®3VâU:ÍLi+q/X‡‚®V}Iì}¶ÃÈ+ˆí1ñT zCÈ*w Ãnãç‰înÁÌë}+D,6›O 3(âüFIÈæŸNšü¬U¶–šnêêØ¥\‹a…¹FMF²ÄÙuéAoÙ)ާu;ñù~¸']ª9æ@–|¢øf™‰z¤º*ÑÒ ¹I#{ß ?hœÿ‡7óÅ¥·äd†ë*8ĵÊTæ³[ˆPœ˜ò`¼Ã—ÝdtöÛcÆÌ$fÀý"ÄfTê)6U½lvùá§;H2tPX1«4ªJ¡%m¶JÜZgIHBmm…Ïño^ø#í*;¿Ú¦²¤. ©£Ì†ÊAzˆ$Ø\\Üa%6&ðygV}€CSœ¤PâÌ¢F]áI}ÇlÎËÖ@ßélO²DY+y~Km¶Óž›Í ¨‘ç¹;€ Ͼ çtßí>G©ú^:Û‘6d7W© CeË$'^Ö¹à‘óÆ îG’äŠ+fSm¨6ÚÜ D›€M‚¾ø¨eüEyYœ²žc:$Ú}Fnª‚še…¡ßtÜßJn.BMìmÆØ_"ºìy Äy‡‹&:À qD’[*¹Üv8#Zã"(XÌûO.Î5fEE‹9÷`4 ó1ÎÚ\X󀦕E–ÒÚ§!•8ûÉJúœ‘±6ùã-}ƒ-V™îVuèJWrÄZDveÔªá -Hõ?…C¶0’ĪoQ 0·™ZÂVëiÖ—R,Uèq7àôcMe8›1¨²êÒßEà.y|·°µýðÛ,ÏmUˆjרuSs{ìoM™}VÏn3–*Ò鮦,˜n´:Ap‚vqäç¶8íj²âè^5,žƒº†Ð¥r‹‚Hú«Ÿ¦Ux‰ll‡ü'¨Vã?6e¬Ý.sm…¡·Ô­B¥)ZÜw·¶-2wŃ;;PªSʤC)y”„¤¶þ` ½ñëýË,Ó:7ôÛŒñ:*¿”3“.C’œCjaË!û%$i ýáßkâr­ðþ«Èÿd :ÚG].+Ì» w·®1NGêÞ?é_ïü Ïë4jƒÕGÙžä¶[†ê†’t†Í…ÀO6<.Žß\Omâ—.²´,+~0ÒC÷%»OfƒŽ½D³e»3mÆ.$Û¨„ÜiÜ›û\qlœ3#õšNjZ¢6RKñê7QUÉÞýÇ·Êè*Ùµšå¾µuSþ#CB‹D~ i JA 8¡¥Ë•¤À>ûßóÆk§æŒ,R)òPŒS :Ân„(‘«I7P½þxevmnd&¼®¹#M©SZ H†ÔR¥¥ Rõ)#U¸ÝGŸÁE2#P›¥Ãe%®š”CŠMÖ¥$?Ä-…1»œí>¡4?)I¤Ô)ê€äd!çe]W”—ˆO`¢þûa33F Ô©°ÐòœÍÔ:cîÒêÜmŠÆÈÏP­¤¸”¹/Ȩeºîiq•ÄšZ£(ªåNY;ÄsØ`ˆõ:š%Cj²¨¬Mº  ¢’<½ù|°ºª[ ª;È ñN§•)ÕêlŠ,„ÔPÃÝI„.í»}Êv·oL›jÐsaæÑÂ)l”?!I¶…)HÞÉ·;¤s…Ü|U’;– EA‚Üc! ©¶õ »ºxÜ {ye&)”)s|æä9±áMr£‰mº”¡–t¶’7*?Ũqï€j'츭E“ õÔ¥-GI)&ÿˆväXúàP’  *Œ¿¹MMȵ)9^6l®œ ¨…)A+Î5%;•méÎ'²ìjô&­o4óš­› þŸÓ@­IY6³ìÆ< ·_‹Øí;!M²µ¨¥)î@$pFB§2ÖUvJK±b»=M¦3%!KPJIYÕÎV¶×¿#±äÍ*+<š±$STô'šiÑÑ Š^XºHM¶¾çlj¶‘NvSÑ!ªRR”un·’ž÷½€;}F2T=–¶øœÌ~|xŒÕVî§%¥Jiù”ÚN·aí· Ò«%º™h;‚˜¢‰\~:¤ 2–Ûhnè@6º’@O¿ëŽ·’þ0Õ!–˜˜á~›¾‡nT’Há|×)ƒ¸K´úb mÿ3¥äú®ZÎPêŒÎДMØež }IJ@¸Wï‰ÚøË3ü2bCÀP¥!,¥µ©L¸+°l®oÛl`99‚þ7ñÛÈàVòÜ”¥É j[:@AR J¿šÇ{b^¥qØ !A}@”<ÚnÅî;s‡­²-F›fz2‹&åø5 Öå¯%—š$–ÈB•¤¦å$þöøÙ”LÆü:)KKYCÊØèIÜ“ÅÒ6Æìs%ÞŲ ™Fkç1¥™ê_IjHûÅY7Ô7÷þx}ñ ©ÏˆÔ%ć”ã‹ïr‰Ç¸ËgЕյoìÂ×/©öv©1ýl"èè+wtƒ¥D’u~6ÀÙI/¥h”¶÷IA,>²m»*‡{ßlØvàOQX6`õ)DPÊ »VuÈr— ÄKºN«[Q¶Ö>äãZ÷NLƒS2zÍ¥¤ÇK%!(\«ÖÇœ1Á‚ë^=H ÄIY~zü3¯’HÂ.Ûq}±K …'¤Ü·ÞiöGHë $î-¾Ø]®GhPFGˆ‚§\as›eÞ›ËeiåRÒ“ÝGÔß|QL4H4I“[’'Íq/Y)ÓÒ yRäòǘ»)³ ×ÝiR¡» ‰QPÒ]JŠt¨â&ÝñEâg*$ÄIJ)ËÐFÁOÝDÝ~ÞkXzc,—ˆâè‹"sÄÅTåõ>–"5 ÝIµôoaoo|I¢KñÛé.$¬ G×ÉÀ“¦æG1ß\è¦1+ ¤MZH²S{Ÿ¥ñÒÙfSÿªÊÿXL >&¥D¬Qš£I‚ì[N(‡VØL†ÚRRN¡æ¿øNüSÊS¨Q𩦬$Ã}Í)Ëï¾{\à‚Íh$n™dz"±•çM’ò’ˆ—ó%:Ê6Ü[ÓוºÎI®Q©ùZ­ ÌeÒme«òIWl{N m¦¥@âB®vl—•!Ršqˆ”•<ÚÕºÊnR;$-ks…tÕÖi´¶«Æ“!Æ´õ„­n(ƒ°µùööÛI#"¾ß]ÇUZbX©Ô©£ÎúJ¢©~vÇ­‡mþ¸óUÊuø¹ƒ[Dä%•$Äp]hpÝ|l,þ˜Êë‘ÐôXQÆ ‘2KÏMe-°£­•¸6¹Ý'ƒôôÇK–šžQɲ³;4xFl6˜Žº¾¢ØU•°¼’-r{€pÏfJP…cÜKA˜š4–)Á CRjRI¹B”‘rüí„Ôpõ3>¨ÇOÞAynÙ#ʵ¤›¤ïkGRª»2žåZŽõ¬õ‘>Ð(.çlÇ.+H[’Ò—%+JÂR4{ŸM°&m3*îF+w®óIé©J°P6þx¦–m¼Éþ£EuÝ„êa#Se¸ü7]Œ˜Š-,¥<ùl•{cO|“*‹¤Î/ ¸*QBaäÝ € Áºwýq¼±Àî ‘_&oWT˜ºÈKÖî‚Ô·›N–É7$'ÒéWç‡l6hU&* GSMרVú”&É7þò‚’@¾ß<)ÐÚ»^y+$³ª›&¥"¨µ^=î‚¥ c°m¿ãõZ¨ˆÌ5!] ÒZH]µ¡w$Ÿ{›ýN_Ä:‡xå½Éèç&ýóéY`¢”á7çùbª Ô@ûi+J"¡ÐË R|¥Ä‹î;‚-±‰8E*O—s:]FLº‹“]æOI²•oaëíï‹Ìñ–\WETFš<"›i/&ÊMíåÕk¨_÷MÆ3iËRä²±]‡ùý'Q§ÕhꜶž¨-Ðö¥5]´,¤„¶Ù‰)QÛ~ØžÏ_ ßC©v‚iñÛÖ$“a·~çÈ<ÆV0EOÑð'=L4ÃqêŒÝjDbB4’”’›XžãŒO¥‘K‘öƒh/¦C?}óªáFÄ[{a€–Y-µx]F?˜-UØŽ¸¥ÀŒòZÒáÓas×e?°Ú¨u*:¦]µ…ÊtÛ’mÈöÀT~ajC\ã= GXø{Sf«±æY¤Í} %ô8#7 Mõ ·ÀÕ)Ù~mv%&Còa&2·šâÒ.¤‹_`=Às$­Ê¶$ÕN B]k¥OukB–—XVYIáVõ|QÌ¡; ‡çG ’”Êl;Ó)UÆ ‘¸o6‡°Ü!K"13 ¼Š-G®äz3ñ¢²…©âT²‚Uaµ÷ÂxµÙL8Q'9%O‘ä "öÒ‹ú’p%JŸœÝÊkܧ˜-ZmFm]knÝÅ%l¾þüÜàÇ#ÇSÇ”d¸ÏCRÐ ô¨ ÔGý°[‚œ¯SY¹nà3ê¯Á„ÊJaÁ¤ í¶À|†‡TCÕD³á‘ÓqÍ-¥#`¢¡ý1Š;¢írëƒ.>-…=6*P…uÁІ…‰Çp;sùc˜ÁTÇ”ìt¶¥R¥‘n®4p"P6ÉÙ"åÖ)¿£>÷‚§Â–ÒBŸR<î¨'Q'¾ÿ,)ûS&×+Ÿê#I•³„Àã:ºÌ¶iÉjZV´®:ÒJ ¹·"Æøañ Rçeú0“!+„†–¸únVã…À—5rIòÜmkáÊ00²w+»ž ´jÜö¢»i†cG(JnRÚ¯½‡âï|E²â×9Ê´×Ð\Ô «ÙgÒã|*²Ã&>ÄF ª¿!PŸ‹¦K-Gm”âÒ@é$K¸8¬ŸVE>Xr¥0M™)xÆ ²@&ÇUíæŸ˜Å)^Ô81^BlDÑŠŸ2®ºFSQ’ïUÙŸ÷û‚Ú·•;ssÏ;4Te*,:„y#­Im¢ÐJ\iÅyÀQík€{ÞàamuñÙ—ßæÔÞÛ½DÞ¤œÉ53}£¶†ÜÔ“{’ mdøöÁùÆ´š¿Áœ¯BŠÈeöUÔu)>Th+$s¹ ó¶1˜"ó'ª¦kgGÑÔôgYšâTô€½I@MÊÂôýSùb†—N‡ <ìõ¶üææ+­/hqA*BÅÇŸ•\ .º×~sÜ~¯WmŸpådöX¯TrÚªµê: [*‚ñp\YÓ{ÿÛŠÊã˜R‹UirÜéõT8 ͽ¾x¥8ÀœûKž[ß2{0ÕäµE}øÉЩ.ºÛ¬„"5Xy»üíˆø8ÒÂÖ”ùÕ¨ØU¾àŸM¸÷ÃH r"Ák} Ù²uj”ÏÂ*³Ï=TPû³Ò R4é½Éâ÷8櫪½TÈqõC‚òÔË#'scÛ|%Øco¸ÔÝÁÙÍta’äÒ§Ã’ü–à‘ —#º§€í„™ž)TzcÐ#-¹¡lY;< @* ¿šÅV>˜b2-X÷êïvsÄVĉ0h­‡›OAäŽêP¿ðtŠ”áOo)¶Â ñZNú‹…[}8À)B¹bÌØtf߸ÈCþ0¼å›°Óca½ûáe@½aÔU¦×ôùcÅÄ͸8j·S¤Óa£AB¡HIJ67Ô`oÈ·ëŸ>+I®,Rj õV·CN:«)¤ëÿÅóÂ-P9£Mû×eú?§âu:¾W¦V«¯¡,£Óq’BÔEµÚɾ9ŽkÉét§°‡¢¤ž‹­î“¨Ü|‡åÉJê ®QYàŽ¿YÏ£ÁpHrEºo´çM*I^7sÍþx3O7?CM­.<®šÍR5G®À\Îj¡Cv'V[‘a°í!—tR—RAY)¸s~O|sG†eçà:ô†ÂœC "ÖÚÛ•Ž1pÇ(ïìõ:OÿLtú,Ø:F7Vl4”%ÇUø€€Eÿ{còÂÌÁ2+±PZñŒ¥ÔFi–P¿™Kõ6Úø@Ÿ,|¦øõ ø‘N€Õ)"›Qž„¾„²—n„X §ŸÃÏåŽkO„´Õ¡F…÷T]H%ãt•\~à‘ly-byEÔªWù—H0©±Äº¬ÆŸm%I-²Ø\íg¿éŽq™*KŠúÜ€W¤¤%:•¨Úýð•Üçô‹6òH“N}å)Kp^ö±à|‡l7Hvt0üwt­Ÿ1¹µí¹±õÃÝ‚'­KdBrýN{ËiöÓ-F×ÖáÔ$ZÊì9ÚÝñKVJz]>WÚM7%Ð[”„¤„¦ûo.ùcñ”iðÔèYΤšõJP„í4ÓÒÈqJ«¶È IÔï¿ ?Øãßù¿-˜L0!QÈŠk2p$nX]c2æ:|n±Ò^qzÜZ.›*Ú»Züá¾k¥Ôœø‹›.Yq1› 4òZ HMÁ m¨\÷Ûæ(ûxR^²ç¡æY}DKbžé´ —ßQéõU®”ƒôçr¥ -K K&d °ÏV:±k¬6ãc·ëŒf8îxØ‹ò»µ ìDÒÑ2ç(úJ[_L «ßÓ×Ûg* R™2;ïÈKí>êÙŽÚ»¬Eõ½ö=ðõ ­ûÅù¿æh£I¨µ6\jcÌ!"Kà…6’|ºIõ;1•6°Ò©¬È–éÂqöÔ› '×a½ö¶ØK ÈÔjXrXáÔ(±'Æ­àüš{ ”íÂï%DëÕéÏÒØì¿ â劦Mð2Ùn<ñ×¹­ ZÛÔ.nFÀ_×Õï|A[ ¦áØœ}œÁönq’¸p£uP‡wF¤n¤§|¶¿{â¦=S*?Tv óhÐc ”9u~¦âÛߌ1*Pç™–Zá7‘9¾T’¦.™l_S.¼Ú^°C„$‹ïÎäÛÕâKE!3Ñ ]ʺŠ#JBM“§sÎǶ©Ï­´± ÃÔÅ¥¬Súd-m¹øuM­{|°ÒDF£åéM9n¼–›u§SÍͼ=ü·7¿µ°Û}¸õ¦´RXwË+u˜¤L\v$ýúˆyFüû€1ò¬Ôi”öèí-°òR…©m{†õ«}¹6=°¥*íŒN¢Ö4ÈZΈâ}ÈyFUbKԘ͉ž)V½z:a7Qó†Ã~qŒŠD¨5©ÔéRPÛ´Wt«RTÞ×Ò/kþGs¾ •,$a ®y]ØŒÆq ZUÔ¾ IÕÇز f8ŒÙL‘S‰"¡D{ïN†ËÊÜ·­†ø]¶9¥‘;Ä*QVÀÎxE]U ŠdÉl²ò5P,…_ÐÌølrV¦£7Ë4ø2#­QN:×b@·?½kúŒ+O[¶ÒÝâ?Sz Èýs|`¦À¦WáÐØ[’“m•k¹;\ð}ý{bM¶Á%©-7ÓºÒP|×$X_Ól9”ã™:0)“:>\ÍŸ)H§Ï™-R1 ë%ED·¤”êIílwl—šiyªœGM¥—[Ò¶Iº\N‘ªÞþ[àHÇiv­ƒR>µðÙÙîTÞ£­¡¥m¶¤§ HA?Ä·¶9Å&+Q«QÑWl2œÒ.,O÷»ßŸ.%šëÅ–oÆy¶¡OÌ•é n¢Y ;tË^¥u{%ÀÛÚ©<Æ­ªyÍBIM‰ùߥñæÁn8‘üÍxï2®LCJ’í>=R\x,!õNû(ØÚüwÁ”òü(SRÒ溆­^ǃŒk!±À˜(tf*­Ï–ä© MJmÚi$ ›’>¿®;˜f2ËKaݶAJÒ‘}ÆÃpèʪùîІM̪™`²àß%V«ùA½øÂ|Á:<ÙÎtJGOHó(ƒaø¼ÇRÄŠÂãñThì©ÖY„‡Tú ‡Ì\oÇ뎉ðµ4XÐÕãiÇÂ5¹¨tþØÿ÷/낵sñŒ¤m;ŒC˜2ùc0¥4õ³4°JKª"Æß†þ¼[× §;´†§%R#)°êšm|&ÛyÇ—ìÌk׋qê=ÊèQ¢É~ R’êZvBx-‚Nþ‡·¦6ñÄWæ?®[h‘Ý[!%îwû•Ó2…=¾¤ÙeÇXìÚSct…Åsm€ïˆ:ÇÚ yª‚Pô7Ö½oN¥K €Xzl7•»,eIk9@8&>¢Q(‘j1“T˜„•¶µHû·”y_{ ~xû9õ8ܸf»!/Da›žEΤÛÖûð¬î$ƪà zŠ)ñ˜£!êÄ©ñ^”¥ˆÍ«ýÝ®±nF‹–X¯RæNiUr¶ Z䩯É6RQªÄÜ àÖæí£5:Z™U”ò{‰eP³©f\2ÚLw·ÑªÈç#UŽB8¿{`:Í(¢‡K)’Û¶ahVë°ßab7õ¶røÌ„¶Þbæ!%R%8‡ Ò ­W¸p‘r-½¬}1ê)©ÑópaÎq©+y§ RR­ÉöM¿OϤòÂ($,}dY‘eƒ€-  SDw^ö±±Þׯ³ÕNƒIqn¼Ê]­šZŠBIÔx#~GÏ5Œ¯‘;TKy:š­G¨ÍM.¯˜’˜tEÂK±œ ¶R´„¥¡Â´\~x HqäÉ5 ©cùДÝW°QIØŽvýqCîBó'ӢܦÓÐ8Ì*ªœ¶ò€Äûz–Ú.+§d€9^ä[n7Ä"ê‹“Szƒe¥àñCo0½ÒG~yÁ%«œf"ý9QäÄ9Ô*4BÓi ÆJiP7QoÌ‚m‚2~[ªªSSæ¶ôhï¶zK„o`O¦äà3°0õz“¨pí¬y¯S*ï³ ×£ÔÒ·JÐུ6ô ‹íÆø•~]V¡X’ì×VêÖ‚  OïÛü<↼*€=ÉëÒØéå<€q.!Pý‹™n ¨K,6Ûî0A ÚÜÞûà<é „Ò`Òu/Õ¯¥âƒm®tð’O®NkUfÄÛCÚš½˜4 ]vb§¸§ÓÒ—YcÌãˆÕc¤ÄGŒRüO¬ÃÌî5'ÃOmè ´…6—u‹iß¸Ü ýNS zþ‹)°#ÎqQB¢Ã2›qHK© •u“r ÀÒ„ºkQØ yAË ÷¹Þø9¹®e@%MZ±)T¦bÍ–Ùu-ƺti·•WÞÄp/¾(£Ô—•©Àr\mCK‰*±µ¯¶øK>pDp¥·n'h¤O—™òå|y¡"Oö§YJÒAJR“é²N'>1P‘<×TÈð¯( …”‚.¯sÍý0(Çq2½-hÇkw91D¸ï°ôG–Ú”¢‡d“·ÌጠšÆaŠõYüà ª„ §VÝŠ’².MÿüñA]àâFKWðÇ Ç¦ˆª¿ &:›e’à%´î 8¹ò×"©QS°Šéii©w(S&éGîž-¾>Xý1ü.åϾ3.²Ô»‘yª\Xóê/:‡Ö§ÝТNÖ¿on7‡’Û³¥-¶Ú“¯R–·õöÇÐ}=åBs®¹©µ¶û‚Ë¡U 6ª ÆqpßU›t ¥'Ðûâ‚“”æ?BEM %•‹2»y­{Þüc‡ØJsX6˜BÃë”1lJu!¢6°Ûm†ªL6̆RÔÞ KO,”¤ @ço\-X‡É_ùpWÜý™Ÿ¢Í¨Ã¡IjcM2ÑS®•¥+‘oDð¦dü·ãŸ-Ê‹ ÅŒÙ(H²ŠRvHº|ßž°ç½ Žy…V«ˆqÉÐ"Έ˜1ßêjb:Y{ií¾}§Lõ?äN ˆ<Q2>H{Y‹ömnOˆZ¤Ba)ukÔ‘p@I<¤GlUÓ*”yÕ\ËQ«H¶á©ÈðÞÔRëÄ‹/};^ÀÚØÌƒŒ÷ ÀP¦BUs©Ea„©€ÊT[›.l 7 ZÃéŠ<Ë "(É‚„¡×‰Âm#oÄ}t“n0;FLprË…“¹:Z«™S¨Èq1•(´1¹í·ÎØiEβţöxl36CÑ%ÂJ…Ô‚ÙXXôí{qpˆ‚äc?´Æ†ÝV·Bv4…Éû=ÄÝq¥Ü6´ÿô<\öØ"K[n:ãÒšIoM0ùKaefêWï ´ì}qåÜH'¨ûª)_p|§UËt 5aY£±=-!·VnWm&݈ Q7¸¶¥Áa×%Ô›j¤…%¶·JVÒH)Ò=·æöÁ ¨Éˆ­CGpJ +v£2=M-7NÖ†K‹YK¬$i-ÚÀRüâÖ¿—hŒ…IY®MŸ[qn¯R’J€æÛséÎ º…‡ãæm9Úã$Ï:Åf‡†ÚVÚ£! ZÖBµ­¿-°Óboü¸Ã/‡´‚2¤Sµ;R`¥ã4ô›Bu¤6¢|×· ·¾ëNþG"/N™]€ðNbLÝ!Ü©5¨«C-»á½+JŽ’oer’oß”Õ2Š‹õ%½Òx¦‘¤êRˆØÐb}™ËãÞЫÐr^T«çGDHèC•>o«äÒÚA$¨‘°çˆ>d9È\d¬B{¨¸ÊsH:v:møìvÁ¨þ sÔ™«88I&%Hûuæ×°ì”)6RGÝ$&þSÍøñƒ²tíÓ3F¨Û1â¡Pv.-Õé${ ~x —?9e:€hZGægT×(E“Ux)¥•7h»`msØî9¶/*ñr¶º)ÓX5çÛ`ÎSO…%N›‚Oa}‚xÃ+¯ÉY.ËÍVqÁ`ŒôçÃü—"DTÅH+K…çˆ+H*¸Hµ‚nA¿¶)©ôÚo…• ³B?Ú•6¿´¸§ä&ê ap}Î)TDM£‰–µ– äÏçI-™âK)! ’¥D\¶ÞøÑ¤5„Éq l£¤¡q¨…n-ÜœOpÝÄu6xðÞħmÊKôäT來:ÉQ1T.Ä6«×öÂéµ1*KEÙbC‰V§u¥I "ãmŽ+œÊ}¼eþKβr¼Ä¹Á*#‰ØÜ ‘ÏÌlo펿:eÚå¨ÏÔà!.7Ò“×oï¿¡ÒG¸;á(ë.:]vyvq9&o¥3O¯˜ìÏj\d¯[6àV¤ûØœI²ô¶×Óˆña+G• êÜëIúÛœ9ðËÄ;jjî ÃÜ_ãšu¹(~{Œ4RPÚnT°¢G>øiMÌîµ." –ª\Uëj3»êp §Vûî;buC´‚$ú²–j‰¦& ©š•B(ÊZeúšî“Ù%7 8e”~Õóc*³.³$eié¨yœWð zÛ¦Ô¯‰Ë¹I¿Sæ,´(™z5&UMù–‹‘à„è ,ßͨr¶ÀPðA—Hv+®9ÀB¯nMÍÉôß f 1î[U`äqœCçÄ˹PEKÑ¥·!Ö $õ¬­. Ÿ"&ÆöûÛæ@£*:cšƒ±]u°êÔ÷žÝì-Á·l Ÿ3 6|‡øŠæÂr¥G2cTéÎ&(Z_’¿-ÒÊà›û[é…qêpÓ^ˆÍM1&ÆTp#©i6l‘è ¯ôÃŽAPË’ÓÄœµSw.Õjtv Ôö¥²JÀRJ@Óä;Û~Ø‚ñïÿÀå?׌¸Ëw6Û[8N.°ëlˆ1r-É ! €A>Um~Àó„ó¦ø—”·\w¨#šÃ„‹>=6Äí’À¬éiÚ¯ ïìu ÈÐúјÑ#¢¥¼Tã‹Ð:|ÙCUñ†¤¹ö,© €¿ «i þ麠oå±÷¾Ìç2žÖið¦MB J¤õ6§®+DŸ1ê©;M‚¹Â¼¿í*ŠÖë+mR\]·éÓÇ'PÆyT´#§*¸oÞmñ S§8Ìy*d>¦Ð¸Í,„”‹ _aÞ÷$àÜâô ~D¡D/!çÕ­íh>ufÖ]¶ ¹ÛôÀjd1zMA²²Öw&3TŠŽÑ§ •¸KJYRÜAÓn>¸ Œ©ÔøåËh¡jgK®9¨·ÒQ)JÈä‹(_±¶ pcƒˆTù¨ž™4ÎÌ0#Ch)ž³eM…\<¤ï ÍÍù¿8š)éÉõè2$U‘âÖKH$¡-ARoÜ~d_l=‘†ÈØuk;Œs=EÙ™iн˜DC¢¢•}ûéR“ÔúÞ¾Øm#«3©4ýAè鎟 ¡Û¶ U©&ö¸ ·<œc•±³îzÕŒú’Õº-6$Ù&ªœ—\.x™¶.©@®×¶ä~qâB•:Df•NéÈ#\ä<°Øq-*å(}J½…°!<§Ô ù4õy?ûât b¦eI>ˆHˆäö‹kX¹ Km¸OZãŸl(ÊÎÓ M‘"S¬>¦c¼Ú”, Ud„Žumí¡@8=Oj-ÝQÛÙÄç5IQ#UT¸éW‰aVRíÅÆàn0Ò«™ÌS™jM>¨±œ)f+:¾T«÷½­é‚v8’Ö60ü‰ŒÌÈûæ2ïEM´¥øBõx^mÓÁ [mïë„3¦¦dà ˜Ò#“"í­) R ì{qŒL Îe²[Î93ê Nr •NuÉšM`•£}‘ny°úãÒg•Gpi moŽ£AD@µÀXŸŸ ÌNcV•e ƒ'hÔ‡Y5¨®ÒVØ$j(œšR„Ç”úÖ¶Úu!I¹)N÷°ßžq®Ä|Grjë\n1èu‡c'¢¶þå:ˆ$“¿¡±Â-L„¥ 6­i»’¤›„ßQ…©sÂtM•Ôëe ‚;ŸbquM­Æƒ‰6!*±ô"¿Âæ­Ê$ÿ3óüð‚ê‡a¢Ôê[ÈÖ€àñüÍD)á£6àr/k~Xu”› ³R•R}å)˜ª $R¥ (úi¹Ç™šÔÛPùI¾¡¤ÔèÐ=•†ŒÃ #+[q"?&Bzªx04%A@éH)¿µðþ^-]Ú¥cìä8Ú›L׸ R‘`B}À¹ÿ¶*Á òîqÊXr±Q¥>Ó2!6ãS›qÅÈ UÂGm#°üñÖ¾fú᪚z¤”Nyç’¤¨ªéÔR5‘Ûkz‰²ÀÍ™9š³4'_’¥Ôµ4Jš6Øž$ò]jK•Y«¨²â‹… ZÝÍͶ÷_‹ZWþ° 0­FI3õV ©õè³åS4€@.‚íº}F÷o\aXªÉ©ÔJqN¨$ù­oå„Þ ‘ ’ ’£ƒ?E0Q˜¦)Å ~»‡ N£`I<Û¿¯¾UcS„,±eÄ-Çmô ›wYfÆ÷£¸V\š¦‘ãózuê ;í~ø#ök2ÿåV¿Êp${„iw=ø]N0ó,x³ÝeØu µ õp|©=»oï€jÀ{0Ö)mÂK¬&GN/åÝ]Æß®Iî©Ñ…l9ÌüÈb$H‘€§B_Hn*ÔP]:ŠJWcßÖ™”H\†¢MmH[k*)Œ@Ü_ðöÛjâ¼æ[ôÔVÕ„qx”¹š©•ã²Å7.0¦šMãᮣø ‡ [½ùÄ”DTZ¨>©I“¨”\€tY)Z‡o{ÛŸl*Šü‹ñî7ê,+ÔmsÔ¬&Œöc¢P*´¸2âB ªvËAOu«Žw·Ógúe"l&éø‘£GoSÍ":ÊÊ{ÜîN=j¸ É+tbõ#3)ÏÁc¨ËJè§r5~"»_q¨|°³4VVìxðb%F;an ÕÅÊwí«žµón `Ô¨~ˆÛí¼âúÂê7ÜmŰó8*ÊGŒþÜ—¼Cˆ@uWAF ¤¤n¹Áîd1•šä »®5,Éy÷ T-6Þµ¥~â@ü_\XM¥!ŒÂÓnÈN¦ô¤%¾[u*WL;`…›Ü‹ó„•;XŽå¨Ü.ÓȈ*ÑdÁ¡±™i—›zRYj:pt‘s¶ûÞß1Š8yŽôUÔç"Dªªz!mYM)$éQít›úïé¾ÓN›ã÷s m¼oèf'øÃ_ŸLÕ¥I«1II»O'~û”ê"øÉµS©uZËÍ—[m¶µvpêµ½m¹¿ËQþ˜V0Þvõ4ά3S“öí-—ÙnzuºÑé-;;0~N¥‰É˜š%G†ä‰ ]Ö4¥IØØ•ðl›°$2Ífèî³[*p!(@º€ ý/„±\ *,­e×õ³å¾Ç¸Á:Áâevße]~S™É‡\Rú ¾‘#Bú{ìoæµÀß󺲗څ¦ã ’ÛgCgbny?–$Õ»" Ðr}ÊtbZmfÞS,„Sâ2Ëh³jZEÉMýMñ-!Ù &PA:^ZŠ®6Û¿ÏœM¢,—bØímM´l›ÑØ(¥Ix½¨­Ä„¡'u·ü8"ºë ¨ŠrÜZâ2Ž—PnrwÛß-Ïœí=zeB÷Ü!6ÛŽž´¦å ¤t]Õož~9jÌMm‘äploé„+›çƒ;ÃFšZF9Sßìz3ã±´HfBŠlRMñÐÚ§L9J-ZLhðbOAf"ŠÀ q$¥EWàXóWtù ùHõšeEj]²½‰'˜ß¦¦¡Dq™0¢©,¥¶É(XüJV£îOç"·à£-ørÉf¢•GJÝÜ”¥7çÅNr žçÎÉIô§irÖ‰ t-[–‚‚ÈîNbŒÐÜm(WD¨ /d€O—ГcµûáŽÛO®ãŒERœ’ä—¿³º—VJze&÷‚1_–dEˆË.±ki†Âe*ÃR‚‰»íÆ<Í?N¢T E*•‘Jšú™Ôûés¤…¬ ´“k«aèçˆì­MMB²©1žRDDõT]P°@6&àŽøœâÃÔ¡ «¨Ë/°ˆ‘i-F•>€«x…›€ yÞã¾ØI:®LãkŒ •)ô)V«íÛqk©YNŒjoZóܳ¡Æj…BEXÇ›%ćÚ+* í·êpÇý¦ÎÿÍQÌÖY|dÏ¡¾½-MãC… N—9üЦ)ëqþ›%¢Ú†Á'aü±WR§Ñ˜Ì1d´é/¸ øT4‚´$¤'ðI÷`Îíæ­n#=ÉŠ™•;R’Ú[|º]ŒVŠSb ·Üo‹O…ó©•YuJEn(hÈ ˆ®%7 !VW×Q$þ¡<Éu'Â1ìó™="Á¡UV¦áÉn$v†ç‘2€P[êq5ñ0Hv#1ÚIÔ•Y+¾ç¸·§&þ¸4C[n~T³NTöbUk¯ª¥R*[ÊÀE€.ñæoSŠèTéôÚkuï &D"Ó‰Ió´lO ÚÛ¿ppÔ<™0eðã<³•m9­¤ÁÐËlÓdkmm%eH$žTIÜûñé¹EüÑsM½N¥Õ) •Þ×õóÁ–.çoQ*ªnî ’†ûMØRß„QÓñ-´:-¬‚w]ˆ&Ûß¶ MMJ|:kÏDHyjŽ$ªÁ ZŠû‚M€>Ø0,Æl6 ß ¥ÀÊß)/ÉJ%1â’]ÁV…%$çqŽ¢¨ô<ÃöÍEsU ’ÒU¦IBuW©@ÛZÆ¢7sl/âªTžç¶¶ðÀp'̶ØDn8“ëï.¥-ÀÙCæwöÂÉõ÷_…¨\@ŠÊƒªRõ’ @÷÷6>§¤6 èJÝV°QNI†:óµù’*U$´¦|¾òwF¥+r=†ÖÇ™™z¤h4õ:âOqÔ)Ô)Bí/Aµ¹°õã ÞwsÔ͈c¿sªÊ®Ñkçd e(Gi™Þp'¤’ JTÍŠEǦ&²¾m‹”*ÕÓi*š°USX%¼Ð±{‹q¶ÜbÌŠÈ9ˆr“Ž MeYyξä:C`«AyµÙ,¦ä]^ݰyŨÕâ½*+ŒÓÑÕBJ›+ ç~ØEÖ–·Ío¯#ÐÌKT”Ÿ§)éC.Éq>!h]Ôl¡¶üÛþØ*³#“ë§L§”RÑ·î¹V"Ö9&? ŠÅO£Ò‰‰Ju*›G¹ÀR ­T¥È il!¨“mǹÂÑë8Êîµ4®A9eA¥MUEF—ë´ yÎÀoí·ÞBÛ‹6M:T!ÙØn…½½½°ðãTRpë9 ðmì831UƒÖr —Ò†®PAIM¯ªØÒ]b"âš{°?ñ<ÆøUÕºÀó>ëèŸPªí?‰Æ[äH™U/¸CVm¸JGõ2]Aø-F“1çY@:S…A;ßd‡å‹kŸ)«½ívPxˆò3i‹“  °§fË.2↕!"ÂÚïÁý1DsKˆeš%!r×wÐ¥8»/¨­¶\XƒßŽ 1+X«çœË*¡_”ü¶›[Ò Rëa&ÉPþMþ¸'/KaÇÙy˜éŠt ):Òvå\ßl`““+oZ¬&µ§‡œ•¿áBŠíw €%*瓸킫9™¶¡3!ÄéKE´ uej*°æúO×Û ²ÀsÔm/™©ë:ÔzÍÓ&¸é¾ÊRH²®>xk-ü»U Gf}¡²¶…Ô»Ü ’o¾ AÄQ5‹rd"krœ1â.BšK.Ô@DÓlRåúÃjqQk3ˆ¤¥}) ‹)Ã{‹’=0­Ud&åîS¢Öœ‘î3Ì59mäaÍmä:Þ¢¢âTãÄÜïsòÇ&ñ#×ÿì?×F, âObï?#;Vp“‡RˆˆÐÚé±,:[V‚³¬¨}uÈa%:sÀšãÏR[@Ü6’n£{áUaÑl÷‰Ðú–Í=ÿé»Q?f³Õ¡¹PSá¥IH ¥*Qrµöà ²E^dyð ´f èB’® ^««ÔîpÚˆÚN19OQ{™ãâTé5šÓ1ú³†Ò޵þZ×·¯õöÀ®Äž—¡‰¬!Ä:TÜgœIò¨X£ÇoÔa€µƒlZÔ)ù„uè¢åŠÓm,) oWÒBI&ä‚­¸œ×.¡‡õÇëÊ($(…éO6Ã’¢vÆÖÅxiºšÁE°{“4¹U8Š[ÍgX*Jîor |Æ+*Yß1fúÃ-? (*Ö”%]5÷PíÆ<-¥½DW§{\ 2¯-HÊ"àVÜÇšV–’rãiÖJÒNÐ~Ê•Wv<Éë¡!”‰IQR¦@U›F›î£°;ío|)-v#hàË›Lª®Äò²qyZ‡IrKJ¨¥s!Íl$ €§¨+_¨²{o†™í¸s««jŽtä.>”jê$$•^ûr¯„k_Ã`ÉÌ«L¡ô¥Çç“fiœ,¤j)u–Õ}ôªÂ×ùÚØªøw–%9J™S›*"•¥°l«éIçQì>Ø¡¬‘¬´¼­©»“©‘aÃËqDòéS³#<vá)$Ø)HRÍ€8f³-Õb*=9…%K:Œ…þw õ7;ãmmÀ i¤)k‰äF¼eªã ÌË(SÔ[Í'§×Ò /°Ûs‡’“Él¿RéÅ”ÛeÀÒ÷- î£ÝGר­iñþ'GCbQýaÉný'$£Uz¶ûH’ì6—¤-æW`PÔ}w¶Øs˜‚aPbJmOt̤¦SÁeAhÜ]_".1j±;AìNjÚ´5ð§©%-ôJœ§¢²Ð²‘¬´,(ÿxŽpòt·Z†¶£)ÒËDjPºRIÜ E«e[•˜ð$õ5އõƒæz«Qa—:6RÏ™³ÂŽ6Ë F“ϸ¦R½ÐàN÷üýñæ´š¼”wšdÄ8Ÿí(;©!%J6ÚÀÏŒuYMEî/"“±¹‘¥õGÌRÒêœZº­ù+ê1˜S¯Vd®íó`v¶,½B¡2ϦØÃRˆ¾Ì"2uT®G8ùI§Bv[Lh°yÀ‹«r.@ÿ¾9ÜØ ™÷ú¤é5û9Ä¿9~Ÿ/,®DZlC[)²J* ºÖA&À߀ˆbê"‘0à =—’Ÿ0%BÀíØïltI!ø´j2zgBr)ÌñçUÊ›m ®ÉoZ”¾ÚEù#¿lB› 7)S‹rcªS Žß"pÊñŽdº–ò9aÔE2¨üV•K}-Èi·‹k-Ü‚@ßkÛ|5B‰UÈu%h’ú›((l7WÜþXÇø‘ˆ5&P¶zž‘|6%-ÖZYlå@sb1ã.A .¢ãî0Êåž›ˆ¾¢ü±…±ÔkW…»˜ådP^Ìë‡>3ÓØAZúHXBŸþî¡ÚÝðÄ9­K«‡›†ªzTÚzQõjÒøwàŽØÔ<ó=©ÆV8Ä!)¸ôÐb@e.FsH±¹7ô8eûKÿ©=þTÿL#s)À•-eÔ4ϱ¨B—PŽ‚ãê)h%Z–,¯×Ly¥Ñß‹•Q\’‘8†RîEÁ'ŽLeuµh?I6¿RºKÙù“õj¢Ú®Äi¸Å¸É(Kai%7%7ù_|tºïÃéS˜¤NËÉ\…LJԞ¤ÂAW¥½;ᦵ``Õaå±Î?0êÊ2»95—Ùb&¶b%HH^· µ'RÁ&ã•oíˆ'³<Ú•>6›Oml35·“mKqmê @'ki<[×[Uu¾âM¹ÙÀaÊ3¦DŠÊœòL¡!--*&׶׺ö¶ä|¿ 7çù*Óm‚•ºâÚ±p¥:‰çm€ßôÄ»A ë¯.rbäz\ ]O4‡ˆë±™eeAKl^×#÷<û{øe^]?3"5”·iYt¼E(’NzTÕÄéî²»‹fU溲 Ô¸+’üçÒÚüF„„¥Íö$Ÿ¥¸ÂlÉR¬eèMª qÄÕŸ S­$¤ m[…+òÂêþìZÂ@‰_ª7Yƒé¯:š“ ó-)JBµ‚¢M‰Qý ]Aõ=9¥x°Úˆm§4܆®I<\à,¥H&ØÕ±ŠCû‰1X™%š“ ›½6ZÓ(Øöó1TŒÊÕF˜¡Du[躖¥&ãoË›cÅGÚ;‡Eå,>9‹•T Õ`-¥3 ¨€ UˆI%&Ç×µ ØÝF å=šbÛ’•Éa¦%!6±ô¹ÜþxvŸúM¹ýOkýNE#™Y Öh4Fê©Ly’LT¿ÑJ¿Ü…Zè$÷±í|G®™&ºË꘵«šÂu#IÞøƒZöWý@8–ý*š®Í.zÿ¼šÍR|5^[a¡å 6B,MîNÞó`ÔY¦¢ÛÞiÔT,n¯qí†í{™Z¿æK¾ª7Õwé‰'•!ÀE¡:J—Å,¶SÊ·ßË\qRY%•:Òõ´‘úâk©MU€7©ÏW+îd¬¯2¦ÃO·LÕ&ê(l“ååDZÀ}púœÕ2E;ÄCRYГ©lÐàï6iµcêxãåÜHX˯Im%…)Þ‘]–¤¦à†êÿÆ®¦)¨Œd™*еhq+;ûXòFçPãL_Pr8gƪ¦ÓêuI[$%¦˜P:ÈÚÝ2.°à_´ï„¬Ò( Ôs5}¨5'‘­™c¨âàqkà,PÊ@¦XÉ©R£&Kg9”ºu<ÁŠÓEv!.;º”¯UJŪ= \I"0Y%!'ºìß Äë£>‹]õ²¬j<þem 9ΉU«"SK=é+RÁ) 7Ö“ïnÞÇTdÈñOÆ+2U&(Œ–R›¤XêÁŒVk2LùçÔŠ"L¶ÜSL©È©È™N)ðLØÝò£e~IÂU`j|2°ëN¥HKbÉî0aT&鑎g}aBC´V»ºJRR7;ï½±Ò9q/ÂJçIN%·ÝÖTâ…ˆâÅ>øKJtè‚·ø“02+çÔ0Û6R“¤’£°ô¶7á^Ëuª~+'¯¤3¡6EÍ® ûá5͉×ÖV‰¦.;ê-j˜û>-16$T}ê@JfäoßÌ(›ý–•–bÅ“™ƒ'­+Pê¶«ßNû0îÉœÅBãÆ†EΫÖêõÆi¦2ê‹Úu  a¯ªÿÖéßêŸé€vÌmEÆGâtZ¢ÖŸÔ÷¥øT@ïe8«‹û÷ĶYZž¥ÍmÕTAJÁßÜ>&pôÿoó&³šRŒ¹CÐlµ…­Žñð!ç•’3S«WN‘u¤Y|za:?í™Ðú·®?p º×ÖXÖ«xe§ž×;|±Sði¶Õ•ª®) RÛ”‚…r“a¸=°¾Øæ1=ü*a—~*Ѓ¬¶àSÏ)AIæËÜá·ÄÙ!W+ŽÃ}ØË!:šYA¶Ž.;bŠ@Ûu#³ ‹\zyZÔ¢J”no½Æÿ©Å.Oa„Áyô²Ú]S`„Du›ÚøšŸîÍÔð&¹Å¶ú }Ú<éuJÛñŸSˆö€WÙIP&(¸ý-¦}×iätе’”|ã þ#Ê”ª¼õªKÅZÖ5›áS¿ôn,È.¥.Jh¸²o}BÿÅ…’Ò“•‹¦jÈ6ãðàïþØœ³Î¡ó/ó-*–óÊi qsBÔ²‘u+¢7'¹ÜâJ¢ëŠ®@*qfîosýÌM“,!B‚mNއ÷:ïÙtÍ®ìéSÅršB-ˆ.œuéFŠ2Å)´ác§Šä4„ P]É qð4•B{õ#VŽ+»*x®GHU¥@õi … ÁVbŽzW¶sSÅ)KBª˜~§æ+†3 rƒò"­%<×6xÔñJšU_°wÅ?{²t«UYŠ3á\(OêŒü*xÅ !V‹.ÿv¯¥{²sûµ}*ÇØ£ }+…†¿Q?J>1òP°*ài`òƒÍx ‚rU°kõô¤­¦Âxkqò£ã)¡W NsK@äf¬ ²¥GÌ„·¼œá)Æ)+$rΧŒЄ êŽÑ¸äz⊈yó¯{›^´|eÕ  wRFrzWRÛ¶&ÊN1SnÅWP€›­¿<­câƒN3r€®§ö I~ÄœþÊ‹bIãoÖˆ’˜Çše3!‘ÿþ&”$ÄÆ{P> Ñ$Ù<šïØ©ÉàTÙU¦4)r¡ƒýº)&LOö–ÿjˆ=bN¡HÓÄ£!§ÍO#Ý2eCÏýåŸÛ“*„–lT)zqÌd7Å “§$mìO=¤:‘Ä?ïQs%ŸÛä¿ÿ¯høÅRfØ$!žÀçáBž´?»•qከÈáÙ^Ì(ÝøÖ™Ú³àê?hWw ôPúÖBí¾Fí©BòxxÐÉmJad:ŒgôˆªÎA…¥%âE¸äyŠmÕmA#®+‘*b­HýCQ\¸ÌHϾIÇëUüé>Ùè¯o³îw tbû÷FßR¤Ž ;5G^qŠ&“‘šùÁ7-È–øXñœþúp_îÉüI ýêþt>Ýæ¿ñ©ã èÞ1^¯¨½£]§c#ýq§S¬µ ™}(¦Ôf'ŽÊ`G4 ßŽ)–îP•Ñkù Óé—ôwê ºO’çgé\ìÁð§ÃшþÕ4 ¸ç£¨úÑFŠŠZå ÒK(=P>•7îE£ë\!¬Ÿ­DCJ…Ø g¸+Š?R¥œãpú×vJ–›IDUz‚“…8¥3yˆâ°•ŠÄѨ òÊVr¥ŒœsVhÑî`¤‡ y:“ük3l«Ì-Z‚gG=+ª™';ÅfW œËnÕÈ äšæ¨Ê.ÑÔ‡€µ“q‰ââE)¹ñ–¬%ÄÖ(æ¦Ê¹xŒTˆš¤¾Z€”~ζ¤ÈiC…Šèu²3¸V_T‚ytr<éñªR2;QÏ­5¤0RÒóC”+Šy ?~µ™?ªAOl3ñ¨¯j•©KéÈëÍ U˜è-ErbnJM2¹6î×½ÙüqÅd5S›²½ê½PâÝÚ—3ž8UMEgv¥±8å‰o,ºÆÑô.·i¨2í©oΓßSJq$%ñdùšÌ¥_&(àIxÎh|‹ÔµçúÓÃþsJrdòEª8«ñ9>lrð÷©óÞÚ®@«&½ög&Ìa¢Ã{~èóÍ—$pÛÆÀNzã9òâ¨\¤•d¾áõ*4ê5=é† î²ÛkÅ u@}*§M.’ÖÙZØÖßßrt…©!È[eÉ#‡1áñ¡ÒÔ d‰Rñž>ðð(«×{‹Ê%É(ž9UDT§Î qGãLמí E‘ÄŽCQrÔ] H•0Ušâ¯Z[–OÖŠ´·Ü<qéNí– x$|*k`?t'i]üù¡Fý¨ÛCdKw ô‘RÔzŒ'w¼¬Œx¶:ý)òó¨8 uÇ"–&¸8ò*jûñ¦LïçÍz6©Ô*ãµÐþT^.¢Ô'’†×ÎÝõ¡íO ðÛgþZ' öãGû6ÏÊ1biÊLQË]ÏP>”‘ ²íòùúÕò5“Xµkfäý”"#ÉÜÛAú*§§õ¹‚¬*Ùô“’•ƒŠ¶ÿ¥IÏ[QkChj Þ†·go^ëŽO"–=TcÛ⨟+.¶šÑ‹Ä…„»m)>€ÕõÍ)r ®„+&³û¿KjL(úAÃZý§¢LfÛ(ÚäƒÉ­XïfRæ¿++ñIj]»MMz)tDXÇ™©6ûîf+ §É<}i0=¡´ˆe­»>BÝ® ¨(OOJµ¯gf¬®Ë–Ź;O©M•Ôô©±ì]Âvœùbœ…ªâ)¬«ô©Ìj«NxÍñä˜d7rŒ‹.,T¤Z#€jKwXËÆÖ¤¦c*ÀÞ*k(‰oº€m)ò‘jÆÐ(¯n×ëŠê]lôP©¬«D„!JµŒ~M9h~6œã"¼Ta$Rxv‹¯Úž§@ÿÄÕñ(Iþ\Õ:Îå-›é|´Gp3ð櫲ØàZ*©¶Nu8à v›Ï>çYä‰já*?1Týäú{"²&!dð3B¤î\½á㳃&‡H¸¥ RU¹])§&«'¸º`SCNȃªlþ°?ñŒ¢Ù=WûF¡.ny)_Òš3ê¯öit•hMRPz)ÏÛ4Ú’?¼wöÍE3|?å5ÏzAýoÙ5(« RPúÇj–ãï\ùª£6òT@üÁ«ÕÙ¶ª¼[¸Ãµ¾äwÆä, ò<èn˜¢èkÝžÉ)çn¶avJÒ”¸ñFÞ£jæ¯hM”+D”ä~ŒÒ?ýj“«4N ÓP“2ën‘…/`qÆÊFìdʪ*”ÞpZä(y¢–räOqëkE¸ëp”2T m$ð3Æj)íGGGìÔc-ýb~µÑ)7§ëM¿…oÊ’•>:<اä‘ÏhÙø¦¡&B?¼Zq/§Ì}j(@(£2d‚¦¹øÑòä€?²ÇÄÐ&ßUKb@ sãB•N ÊÍÉöZßµ%#®sG-w§a+ xeULeâ@ <Ñxé8 ¬|ªÀid|VUîÙwqKJ­ 7t­& iH)ÕÅáÚûÅ`È’ãg È#Φ±sZLæžÏeA…£²Ûn’µ© ÕÆ<­àÿ`æí¸ó®Ä¿Àq@ùÖBÅÑ|n_çD¢Ý”1ßüéÁÛuð‚v[$;þª¨Ì}CÈËœV5ò *úš-òqÊóMiDTVºÝügµ Íô ‚àúÖTÕà‘øÿ:’‹¶äþ?Θp´±‹UÔàÐ}kÎ_“‘‡ùÖdÝØ„à+qwcÅAhkZVˆåó¾@XúÒ>Ùsõ•õ¬áWcúôïÛ‹þôÒJðÀ¾UnfHäõ«ýÙþ¡ºÚc\"´•´úw#½Î+(J”?H}jKw L·Ü}Ĥ~ªÈ¥ H5㺾jý+|ÓQ›“qŒ¦Úq[¿qœ~UT3š€íÆ[ÈJ]âÀä,šdº³ÿÍß4K¼Š('óÉ®{ø­ Þ®)+R³D¦»EÓpï~>)báž7~u_/¸°³ä9£¤(Ž{ÿø©&j¼ù ¥jãŠðZüªÝ« Oy˜çfÂâñœ$f¤;êÛeJŠø¯tÐÍ;©®ºra›lu GŽi´¥.¥~ÔÚ¥WéÂ[‘"D!;b£bN•1«›ÁÔ€à)óª;3ºu¢Öw›9ˆ©!n¬ ¨%#'Ä“SUnT etssö¿•Knî¡Çj=)ÄhÀL˜+ãôe þãTû²œ¶Ïzê«K(PIÈÈõ¢×Z´7O+PÓ·­<–›»“{MÝÒÊRF>f¥ÝîÚPÀpÀ“UD…”ŒùøRéiË=Ò@Fž“nHQh¼¾SŒœÅü*B]·.J¶ªQd6cqW‡O £Ø•¤aÀS×Ê—*"¤$%''­6‘æª`¯š1"]¬8ÐiÉ€nÃ…JIÀô⢢j6()N•çº9.[¸éS)Ú‘Ôgƺuµƒ¸ÅN4÷EÞz3ƒ¼ò¼Ú€ÀçÏá^Ob¶K‹“±íÛKE9ú‡)-••lQ%>4„ä„4ËyP䑌Ÿ\Ò"0E‚y/ öA¢¼k¯)´²·=å ¥))IG*'¨ëáçQî0Ýd‚§{LŒ‘žERp¥#$ó‘éA1ŒÀSÛPq²¢òæà›OO<Ò‘kŒó¨}‚[ lQÁ9$qP£ %(P85 Ü:îNx"Žç…SÃZð.R”©IZÒÀÀ9øŠQaÞÁO°RžVAO—ÇåBÚ›%j;Hýyy×b<ÒVU)D¥#ºœgššm Þ”Õ¸P€Ai^ƒ¯­y•—S»¡¥FKn<Û’RÉ#~sÝM¶¤v.œ!$ç44§daÀ_±wÝ’R×dÊ­Þ&𔕡–ÞØÒ’¾›W“ó1é*Sjh' •d|©Ä¡d†Šþ쌅ç¦hi(ò¥%%ê™ JÎ3ó·â¼eþÇknþ¸sɼTFœìT¶Ýp‚8GŽ CT‡Ô„¡n,„þç§ÃÊŽ‚ƒƒ\6V vɱ^KRb–йPçó¦h2T“‚q»#¯Â£®á9ÆÜ›œ…¡X  Ç‘ÅB‘!לï8TGB|¨»ºF†ÞåLWTp#¹»¸ÁãΚB ’½­¬ã€@êzÔH{”ÛrTÚ6þ,õ®GóM¨öÊ8=ÐUâi¢TÔ”%*BˆàSÑ7­„¬øŒ Яy¼8O‰ dç\R­ªŽ†”ÛŒvËpíNjdcsEôG‰÷x*[£Àu?•jB›Vô$ÁǧނÊÀç"NÚÔÔMά ‚ÏÍ&fJÖÑÃÏ î6ü—æºÊ–úNÜt’Ò»'1…¤œsJ]JØ"‘¾åFìÈQ‚84´ÿdI늱3d•ï±æ;lwHÆ ñ‘Å1z;ï®f-TŽBDfJ{MǪˆ9dž¨x§j”€G_*?µ.Û¹I)ã>4[H¦Ý 3ØyçÐuÍ»R9(€W»XËݮ ˆï:¤µ =I'¯ÈRÜ6®¶¹µ0•)Xè8çã[5çMZ¢@T·¾Åq¶Ó­¾ÂÔ~.n=|+>¹5^xB=Ùn…•q´c޽0*æ–ð–@çYUë]½Ù…¸Èеýîç$%$„'(…è¶÷]Œ¤oyÇ0‡¶œã=~tJÝxTNŒÜG~Îx„ ‰9¾$~ê…¨cƇ:FŠÝCm™ c¥KQzŒãâ(¸š°´AO’Ÿ{Õ ï²ôùˆŠÛûÔÞà¤îÂP¬äõ¨÷ ’Yí$)Ä´–ÉãGo¶=w‚սŞØáôI=ê Ah•èì[‚½)Âp0‘Ð1H÷Ûì¶cbHé¼!÷…¡Œ1qlÄ¿>Áq²ø=ï„|¸ü¨œËä•[RÓ .:׸/ r’r=z´]1&+@ÓÙ¦3oá{ÉÜÀI|œPö7›û-NZ±(h4 `ŒxóQÎs¾ê ÄŽ2[-“¿[ë"ÆÛ;;7ã‚F7ò3“ãN¹öcÇS ÊKƒœ¸Èøu©i¿ûN[eﺎuZ°vùf£Øí¶ë…ñ¨S]q”)%)P_‘$T€©€“ÜÓU[<Õ¡S\Z£’Û{JÎáÐu®Ü$¥„3@m*OC§5>E¹Æ®ïÛc:I;Åg#¨•tDŠÃ :Ó„È.©*a `‚Ç4­½Zx[¤oþ7Þà]î>I«|U¼Û¶×Y-«ñ—ºv@ªôÇï¨r´´ã¡Ô!A ÀüYÏò­6Žƒs˜ü”K‘)+6ò;Ù!\~URi;EºÖ™!ऎÉKB‰NzàsW5rÛ•(;l ­·¦-ñ’šô°œþ&Ö•c1ž´Bú›Ã–Vî¯mŒÖ{>Í.eJ9ë j𬌰ãibbÖñZÐâ9JqŒsããÅ.mâLÕ†Ze*‚Ü’ød'9NAWèÚˆã¥j R²àñ§½å«E[€·¾TÜvö¸¤O¡4ßÙÑÿº™ÿL:¬ßb¶FÑOnêÍJŽê\J@Ï•WÜÓð‚’ãaÔ«€Uó§îñ¿®ÇB…†×”îôü¾y«¯±½/ û*znqût2„np€ 'ÈÕQJ!Ùu$ölácºw¼‘ðÿjd)ïi’ð}½«Þ3œó¤ÉÓÌ'±}gc§” p< ­_Oé 5uº\â5µ9jO`…8Ûœd²ã®Ñš=‹–¾¹ÚçD–ÔxèRÃ’;é9e@óÅi2A£•Š.žZ÷¾GŸtY±¾ÿ5J“ L™}»ó%-Å $¬¨ cŒzW§F]ÅL³!Ò}Ý(ZR•œ~#ŒùV“zÒ0b\žŽÝ²à¤6BR ™*cÍ) ü¨O³}"ÕóQÝbMfc,°’PØt¥IʰÏ=<ê ázk”îÀ{áñšý˜;ŽÈV6—îòj¹6Ȇä"C»RÁð5«Ú4»=A:ÄÌkô/vRÒ™Eà¶ÎÓ€pR:ÕZZgYu ›[’Õ ²@í6äž}yªØö #b¨Åö{#&S5U÷८ã6F›wOºXT0¦•ؤ-¥A©èI ­Ö’W%Å’psÍ]=”itj{„س_–ßfÈZ{%O89È´c4{­HÉÐ'‰òF^`³Ï „Cz ŠKM´Ã¨|‚âœo'Æ:ôñª;ÖsÌ™+'ŒùóZÌí2û^Ñ#iu˜¨O´¥a%CºN:c€ûIÒR캇Üb ò™ìR´¹°õ9ã»Ç…?@%Ãen'EšB#/ž5‡ÑTìÖ6 yÍœBÞ[ãi*Çøü+Ž¥çÔ×—%(Q'# VNHÜrjÕ¥`ØæH…kº‹â&¾øhöjH@Ü ädxQͤ4Ö˜r_J†ÖöÞi)cps;H*#¼‚dvLg³*#€¢:}3ô¢ÙÀp*göyÎÅt‘ç‚6íº‰§œ“mœÔ¢ÏjY¡túõ®Èi©W‡‚—ãÃp'!g$dw<ñéW)Z&ÿnˆ˜Ä8í?€ÚÝ’Ú'¦2®x¨·­-±>Ìi‘P†æ))ið [Q>À­BÛ>k‰§¨Ï¡” ŽÜ÷ÝCû*.s‡õ¤¡Ög±N6/8#ƒAå¡ÅX‘hzÔÒd2ööd¶ØJNB¼OƯò4v¤·(.B G$½´¶ÆïY¤.Òlp©v,ù#S™dsDpªVíûM)•ňl£fÇš¡>xJ²3Sý¨U$˜íÅBÕ±Å2×f Á+ Fäi›äe6ܘÌ0ûgvÇ&2Ÿ"ªa²Þ.×y D=Dºò$ps‚3â)Ë#«º+'سÓL÷G¨ÛóR'hVai+…ÖEÃÞ^eþŦb£xq'sÏ9¬ïìK‚Þ-˜Ò¡ÓîˆÊ|ëMÓíê¸W7, B–ÓêJK ^ÀTŸÂ±’°,Ö‰¢ZƒpC‘ï¶Ø­¿ ÕÇ–ÛMøJ’’¬ð cŒU¬{,Hý[òª8Q ‘¾¼Ž>Kç‰6K„4ã­­IHRv¤d$ã?Æ›‰Se…KJ›IZJÁ”çœùVøþ‰m­Æ^ŽðuiZ›{xO†G‰çφ}+5Õ°åÃÔ8°Ó¯:§ šNÖÕ“œ! p9àzV×@ϼºÝ‹>LÍðeÍÐUEÈLPY†ÊŽQ’ƒÐ“Ó>”2X`¥.!·•»†ÎÍ^m‘Qx÷´FaK} 8)ÏÖ¸ÜãÂ`­¢%ЖÆá‚¬‘Ï<`ÕO8Ý«âÆê4ÃáÕóüø*tf%墇V PŒgã5h±jm‹º[…Â;IØ–Îf¬õÎ>5%)v Ò3/2Pâ”;<`… ‘×§PE9%’ˆêtF( =â@|¹I*¤çQ+4½;.Mù(Z§Y[¦£°¶Û ½+=Œ+LxqÒ«ýº?º•û¬oÚ¦¸°†¡­Õ¶Ø.%°´‘ÓÌT?}‘úîþuv€GºB©džXëø+yÔz9N/D¼/¥=Ri&”âÚÓF ø%©¡'÷ÕnSQ\KNö…$‚‘ä:Tu¶\@làŒõ<Ð o`¡ÎÎà½ßšµÅ¾é6T†m‡ÔOÞµ5G>¹ÍKrûh‡13q«˜”ó ûá-²¥#Àd«8â«6XÉ”^vZU3cû]¼‰Éã5É)ŽÛiPYqD‘´xzÔ1Ñ‘þ«›¦Ëɽ¿Ò·£]FN.šÁ<󸲿ãQ êëLŒ‰ñ'êV¤Éå÷ ’³ë•T#¦Ëª„ÌIlÈzZДÜž}9*ˆÍžÝ‡ýææÓjHÚ¸~.ËëL"ÒFõl¶Ûç‡ì­n{G B›7ÝBØ#ñ,çêUg¤i™/-çî÷ÒâÕ•-pнOÞPfKhm!`’°òùÔÈp™~Z#­Äµ½ÀêVA~UW†É UÒØÎ­Ôp@{N^€_äŠZ§Ø-s:£½Fœábßùÿ"­ˆöŒÚÛÚ5\в*M™ ýAªeÞÕm‡Ý“ÚûxRPÙÎäŸStV‘V an·9˜n{&Ürñ×áV2AgŸ¯åä;T¤êì¥G¼X#ßÑ{ªægî*/9l+VHljò«ö;U®%Ž9&Ê+60¡BÔ¦ß|”¸ÑÛ{c®¶ÄŸŽ.ón‚ÕÁÄÀu.Çq´-² Æ@È$xŽiŒ,`Nî±›ßD †Ã·n©ûŽ‘—}ÉÆ_¿îÿ²–;Ã8x “©.ºsQ©§nzé÷TÊT”iZq“è*ˆÔVY–ÛS–¨íŸÄ½¿‡=*Çl´éÛ‘ãâë“#åN©HÂp3À>yª›O¶…½ýO«ÄÈòîš<‘û5þÕi²=h·ë†7·!v§r7 qDýž_#Á›ÇoÕ‘'G}Õw÷G¯ÂIÚT0:f²åÅ–IiF2V¤nðIô®Y.ɱê˜41”U³v7dŒøu§kco½äæu —x$âQ;O¶Å}H´¡mìq)RHèFE@‘c³¿’õ®„ø©„ŸáU;Wµ]5+j%·. ˆä­Hⓟʬu†’q°†o±=7¬§÷â®l¿‚yzWVÄ4cpø_è’æŽÒîg}Ž} ýÔè“êl1‡í:5t [UlgÁñmÔ«÷ž§¤Hõ¬Ó‰Z#`-<Ÿ$¬Îͤ:G‚8Ui3K#l0xók?¾¥1¦ì “²Ëoýº•rDdƒ¹ö“ñX˵¡®ºÁA­!øÖÝ%GÚºŒ»jyú¨‹Ó¶ K¶[z¾1Óü©‡tv˜tÿàüú2néjy_ss‚éòD„ŸãS[} 7sÓ¼+>SO„L vOFloîx5_N‰Ò€aZ~}[®+EiNƒOÀý:°­ö3•:ÚGª…E“sµÇJ–ýÆIJŸHþ4ñ0x`È=Ñ9}EÏ!y;¡ô¢È&ÅcõRGî5Pö›¥lÌÛl´!‰ %Hqµ¥ ã‚A=|<ªé'[i&{ŒHýL¯÷ Íý±ßl:…‹b-“%Æœ^áÙ‘€@ó”Ȱ¥º,ޝŠFDykwÞëæ¬+²ïaj»i™ÒQ( ¢S)A;søóçBuä˽úÛÏnÓ¾é:’¤…<Ú”vŒ¨çFÝ@JþÍ*AFýÈ€Ÿ>*V'ž+ FÜ[üX9Å!†ÅZ®»à¼–¶Ëñ(Œ²þž½¡M•F”†É8Ç$+š«Ï„êµ-¦óo°^†ðSê“).­h¢r¯Ö¨ éÙkCŽˆ«-´ @éšü`ÌžÉYô=?öh˜5mjcõÓŽ d`{Y­þkw»\‘py«Nj6ŠS´%‰(m'âúÕ~Ë]§].÷M]DWc”8Û%n-G©$«ÐV\Ƈ"&:”êŠT‡•Ÿ€Á§)¥¯¶B‡PV E@O%,}q±FclcK…ru®Ûn:‘S*Kºjd»cŽ´Ó«o|rGT¯9 Ú¶§›«þÁi›o%¤¡yq°TSœäF1Y¹bHÿ[ GUüë®71Ô´Éè;eãJcnîU°uÓ¾#!mÕw¢>¾ƒ·ï]·ßd@[sœŽÈJ¹ œ ã¯OgZ»KΟ5Ë%näanÇR{ØÉàcÈuÏLé©’ûª3%ߨcó¢O½1É*[ç´ƒÑ&RÎ>y¦{AITau‡âÈekEߪÑ4?³›oØŠ7¸o77´P8x§(àŽ†Œ/ÙþœTb–¹#ÞU‚såY;Rn ah3nEÅP¤ËXçò¿çQ‘µ£JÇ“›>D®—QÆè-^o³4óè[¾ø³Ór¤GÖ¹þìå©®);ϼž™<|+&~ã|K­6ÍÎèê×ÊBd,Ÿ—>”ãw›ë ÉM¼’°(I %YœçŒg˨¨CmŸ šÖ~«NG³û2;G[™qC„•ù!?„tðÀ¨ŸèêÇþÓ7þ þU˜ªù¨û"´]®Fâ7*Bˆ4ÇÛ×ÿ÷üïú‡ùÔ{+“’?ýÔ¨ñ¯×È/¦T¶TÉ”¥>‚Z ípsü9«V¦ÔÖËÆŽ¢ÿi°½ØŠÇ Œ©dsǯ©7›·Úî@.KB¤ÄŽãjQÀÊ)§œzÔ/wºé‹ˆ¼¡koîÂÕGºãJät ‚øÖcî.é^š0&oˆÇ„Ñð"QïWíJˆ6´û¤HÈJŠœRö…«‚¿SÓŠÔôë ljÝu… É«Œ´ÆKM'rÔ”ñ•õðâ±WôKŒ‡ÔÛmÊ[¯-ô!ÆJH$t€<¨Ä·/ÍÛ-W ¾ÜP¿rRNÕa$d™ëIâº2]#VϰâçÀÈàš·'N×~žŠËª—¨t¬Û|ùAaÞÉh ±8O*P¼I?OZ¯=»Ïir$dÉÞ䦡¤”…x«ÏŒã>>´Þ¢T»í¡ûÓÈ_¸Â[m!n 8Ç©Î2OZ²{7¿XmQ,,¹rq;CnÅ@¤%8à n$ãÀU‘H\I<.nvqadgKŸtH;ïû+ jÓNEa¸–Öh1±/-°•“ŽÓ÷×D‹5¾ Sð!¯³G*u¤(«Ë¨ª~‹fäø(uÐÜVÒ6©IÉø TS}„ý¶TK¹R\í\ 8J›9㞸ô¨Ü¦âÅÊ~ Ã$c¬ŠàÚ•rÖÍÈ~X¦mÐÓØ !*a'o8Rljðþ\q¹ÎÓÓõU–%¾#T†]ŽÄr;4c%À¯RyáÏ…S"Ù:É"DWЕÇl­Ö PFO\óψj¸[‰Ñb³Ì}pÝ€—8Þꊖ|:ÎxÆ)µ8‚െÁ¹ ›²I;íù•W¿j¦æ[á¸õª:î ?ýaí öüω<~f§Ê~CO¸ȇ ¾I*JÛ´·%9<™ëB®ð„Ò㥢ãÌ(RN[RNÆ|võúQ+ÕüÝ4¾žµ:¶G»Ç ÉVT‚SŒtäcŸCNÙ#/‚û4ØÏ ­AümÀ>WÝ\'\M×N<Û¶y¨Hܳ´iµ- ¤%CÇ‘Çðªì @Ý’Á>Öý±ä\œsî‚€ †Ö7sÓŠ%eÕ“-zFKN]ûjË^ï!¡„SßIF‚>9äЖuKßjñ°Å’;Ì#ÝÔZ@#$äò1ä@¥pê«!.†'‹n­ÈߎÞISïÉcM1e·Úä·1m©ë‘{rŽSøRÁ?*‡6|9L¦Tkoݹ¦êœÚ)O{Ç ëVôÊaSh•æå«½ü®Q{nÕ'n<Èêp3PîzMW(ó¥ØŸ…%¸kíÞ†ÚÀ[ =â’ŸO/B*™ZÞK-¯ÉÏ «>VoƒôUy±eGµ1=Æ”ˆò’³ÃÑ͸É2*¸ß¼³—ðâIPÜ®Ðò ñ£{O»9qnÃ_¸û”HYoÝ1± ÚâxõãÒ²g¯6ñŽëË(PVSÀó>¹"‘U†®–w´ÅÎi™»ÖÚM÷ør)EÂcfBÑ%䩵«c~u-»½Ñù A›! Ø•0¸Úl½¿fyÚ 1áyª“S¯ g´Ž‚y(@ëD-WI›©éݵYRv¥JððÍTax~¦­'Úl Œ'cId×}¯{W˜úŠïm¶D|É”˜Žö0Ó«I*NÎÌdƒÈòÏÀÓ—;ò­¶÷l=ƒ¨˜V‡ƒý§{*B l¼àŒç ƒšq¾ÉÔîªT´ÃŒû ŽÍM6FNsÉ⟈«‹×è2¤½!×Tëa™¥Ø V:t>¸«9i xÙrñ°˜ö‰œÆÑ¸ò#m½?Ú¸hÙ/¿§îJaÙ‰.$«ŽT?H‘ÀÖ*Ól-•Û.sîVðo HFÔc¯NƒŠ59Æ4kqvH+rCE·· ã)H õ<ð:úVI*dÎ%)OuX ¡Q#º'9­w^W6]#ü!îÆÛWu¢Û.¤¼«Œ·[a–R–¢¡”eIFãÞW†BI«Z%ië¤y—9wg¦ò÷|îHÒ1çäk+»0ÜK5žD)n*äój÷¶;SÁHäys…vÁû½â ®<•^ODàdóçÇ¤Öæ»w]«ü(²£Ö؃tòv=šÑ™Vœ•o‹ïwG­î<æ;%EÜQÇãÈ<ŽƒçQNœ{Pw–”4ì¯v!)Q# =ì|þBÔQÜ‹«n0 ´ìÊuN(py<õó£z†ÐÕš÷j§¾ï¼¶\ZH)‡ãÖ¬Ö+skØSxÕt Ø þ‡º™©,¬È÷„Ê2BS)R› JÒ9 àžO‡ÀÑôiÆdèÿµ»4^1 Égg+ÀÉ 9ç ­_¤)ÉvT\w³o}yQxä4•q¼ õêiýskÓÖË$éÛÛ“Z.½Ú<úŠ{3ÀB1Ó9ó¡¡Ïv¦ñ\-°>ÖC4a®i6ê¿‘Dä[Íž×lëˆKëN͆;Q½3¸×ó¨â$ÙÍÂÀº™[kki4jÞì.«´Í¼8-±V òÚI¦N FG§SÒ³=Îo^~«µ‹!2l,„$+Ùµ±Éý¿ó¡ KÁ,ãÕhΰ<2ouÀVÝýU™½ m‹¢¥O¹I ]â(2Ò»D¾Þ8ã¨=rG4í›TÄ“9–nÖÆŒQk$4Žòœm#…§ŽÀúU­©èPæ;w\‰3^dÄ.,• © xc§ñª…â%ºL˜k)’¤:$ JP°¹>XŠËöÏpjæ‚ÑÒºÞCÁ¶Fæ¯nÝÕ@ÆŒ‹£km% -½™^9ä€UŽ™ùÕîõ2uÝË%¾õ{ŒÛa䵄0”´Ê6í'wC út£7í)¦!{/…tCÛe:ŽÕ·R9”O%8ã®8ùÕ]ØÐÜѰ&%aS»E¤%) ìR !C$Œð:c›å{˜=þ6Y£¹2xãqdyØç~ãkSµ…®u‚Ü7b¹*s2À‘ !$„¬-Dm>XJ ëÓ¨ÕJÙ’ŽÅM$¶ð9<uäu«ž€ò2—$8•©ÄGky#q ''ŒœøsVK¦æ¥kz4¨Ñ’•>óˆÊ …xÚyPÉ8øHd#á|úz&f vWûÄCs~EY4²Ô›X备’ÊR¾è xñY¦§¶.Ói’¥6âÊ»¿‡<øV¹fš»Ê5g³qõoPIÀœàpk6Õð•RÍû®Ðº±ø•ÝVp9#¥aÀ9ÃÍQÑá’,âÂKHè_fœ¾\˜mV«;$Ü-îÔ+<„õàc©¢š“VÜn—ëmÆ;•Ê#im·Ým`§#oL (cÈÑ Ú´Âô\(ðY\;ý½IŽ•!¢ ë$ï$ùgϧ\ÒÖy÷T1±ÎÝÙR–èåCwU`Åt#Ø[ºèÓrd{„ >¿[Üú*aw½]®*Ld­÷Éu݃•,ÑgË­M»û7“f±›ÊB Q ¶‚ ¥¸±”ƒž€gî(ýÖílµ[ç?i¼É¾Î»(ûÊÃ[ ‚’AÀÉÆ øt㊮Ý%jo²#ý±2c;K¬3-jZДç½ãÁéáŠRYs»ª¡ÇÊÍ0@óL[o\íŪõ–fªÓÖ¹‰û4É·JA ÷˜Ý«hR²ÒO VAøãi5ö„ëŒ{3m8ãŽ%A¦2{Îr¡Áñ'S$ÌÈ&€$Ùâǯ™áE\äE·ÆíÜuלs³o*Z³·ǃõ¡î“àaµ¶ú<÷€>9øV¡fºÚôŸ´h·{•"#­+ŒßÁ8#9ÆáñTSWÚ¡\uƒ ‡9¨ì!¥—ŸRxìÖœŒy¨nâ*}àëØ¬“âMg±YnäŽk×ÉQ¥h铜Ý÷“Ú«îíëÎ=~†Ç³ÌŒü˜n¶Ò´(¸JòR–Ï8Çjáo·Ý56¡b=!nºÉH}×NZm(¨üàqÍ MrACp^|nQYJpCþ#õô¥…æ¹ç…fGN0¼øŒæ›ùöýÕ«Ù¶œ”ݩۈŠÛ^ÀîJ‚Tž ó‘Áñ­³OÿE.KLÖ˜‚’Cxv;{rœ¤ùžíg:fÐýšÞûNÞ *Ñ1 RH ¬¸“‚€CàO< ¦ô¼KV·\[åõ¨ÑmãÞŸRP „¤yóð¨ÙžÒ*Éú,94±¼SŠàÞék×dé”F [e¸ó*JTˆme*<º°ŸköÖßis"Æè…+O`€‘·ãBm •¼gôŽ?#ùUö.šf\©3íäÛã¸"4ãÿ…<­(øsÔøÑGï3¯žÎàéˆð “F÷ hH hçÄå_󬕲ù/S‡ÑòpÞÛp"ýáäsðàª÷²ûMºCÒ-ÒI+ ­­Ç#ªEUõ•PuÊ}·˜k·R€Z6å!^ëÆ>µ¢{<€Ê$\\̯{·°·Rh(%I8Ú¬tü³Ru®š³_¬Ðn®Ü^jäó(eñ٨ૄõ'dçÀyÕ8îy{Õ¬]g¦A‰&`¶mmã‘ÙS®¬é¼§­S¥IÜTê›{J¶åIŽNGýÁRZ§ZšÊ`„ZÃÍ<ŒïZÔG~!ÌU2Þ&C¼6È}ä;Ùah'r³ÓÏ'ÑÅ]n×£ ™eÕ³µw[i ð÷à+t``é²ä>f¹®!£kô=…ò­× ‚ìõªd›²Y˜²–ç•¥*(Cd•,ñŒ‘Àc÷Ð[„û2õUÁûjv,‰ª[I|$€’rÓÄ})‡ìEût»´-Î4Ôu¡ÜnPýžGwó¢z~ÿo…§E–óba÷™miiÂæÔsã×øRÇ,NÝÛZÛ•Òºƒd,`Õ¤ø_Ÿ ê½)i™¥#Ý]u”_P-6Ô„+Þ–öž¼ t<}™NbÞf·=VûëK ,4°Jò¼wJy‚:ñð¥ØgiH¨ûÖvä„2b§Dƒ”wO>ß?ì›ø¹XÉK®2 °ÿ}-’HÆ|xŽ8«rr#ŒÐÝN‘ìþ\ñHG‘î|¼ÀCoZzm¹o‹ÌÕ?1+IuÄwÇ<òO<ùÓzŽHºÞ6 ޏÃM¡?ÖŽ9H9äÇŸJBL‰rÒf¶û²¡*ÀQã“éÒŠê»c691”Ä'ã\II’•e—Žy>G5„Ì]ý¥z8zT¸¬f—(ºßfŠþ »:ÝÿïL6Û¡Å$(©¥ <ñ·Z½j»e„[ZiØ  :KŽã?wà8ôêj”Æ™¿êMVÔE¸¦\‘Øœ¶“„¶PŒ¬ >c"ߤÂ|HiœÏ»¥kmÙKwº@^2|sÓ§JÚÒÈþé°¼œ¶dfç“åFöºóµbך¢¢‡ ,x¦ñä„1$¡²—•xåuæªÚRñ§`™]“.Sï ®%¤¬Ï'qÉÁ©CM­–/"èô¦£YÒŸwŒ“€§PO^§ > y ‰u²öÖ–§D›n-È;\m$£ºOáòã3¼¸´²ÕÓ°ƒ$zéÀöu¾Êï£õ_Ëš9ï×ßî]ÿ¨Ÿç[a–66´Úàu'–mo;ŸËÓä†i½]¦¢KÔ Ée§YzJÄy,©À´'!ͧj”?3Kƒo°êfÞaéßfÛÛNæR¥¤<òÜYÛ“É8làô¡šŸJY´ôT6»Â^½˜ú¶9ø“€1×9éT‹l¶$<ûÊa–Ö°³’FáÐsXÃÜ%÷›AuF3ñ€ŽaâðøüV›¬äÞu+’´‚Ú€äK:;vd5kÍ4”óµ[O ñáš[š5» ùÓ/.É‘ ¶× €fàUœøžH¾ƒèïh/ٵ͖ î9 ­O’²ÌŽ})Ïlú¢Ñ&çìéK¶›ØâHZU”¨ä`õ#§• A'Ÿç¢¡ð»(Ë XÂïÛýQMvÛ·¨=Go/2âæ*/dTd°{¤ú÷‰ôȪ•½7&»j½;¼ÈiĶÛîåWú²OèàŒÓq5‰öyHvcæ3%·I ’¥wÖ¯`‘Ÿ‡•]nZ`Ù´ì6®Ž´åÞå –Þ2IÇ©¬Ò¹ðÅ—n?³e°º3DØhï\ê¾ôzíÅØ…†Ñ£P‰eõ!JSk+.::½Œ×= ©Kݪg“HnbTªen+¼7d“€N<±T&î ¢Hß|b$–÷~äŒMÄÕ¦¥Þ,“õ5ÑÐÝÅ2c0Žx^⬬¤xchôÉò«ÜƹÑ{¯?„Öãu3Fõÿª1/DÚ×MB´ÌuV‡Ryõ!'´ $¥*ý"Aòñ¥kM%í»\X·5FBHD—$¬°…©<ž2tsYÞ®z’1š´}ŸéO¿-Å\€0žx#Ž|øªrlw6W*DU¥º¬òýßÉäþuÔ k û/Šì©ñž"ŽõlO&Ï rÒZºÊÝ¥w]CaŒàu—–Êu·=⥃€êyVAªgȸ¹6æûI É|«¸FÀ£œóŽ>”OWý*Épôý©VÔÜ$Êbá¥/°âNPI8Qr<ëšÖ& ´ÅfÆõÂß"a@Gö=¨î xyŸStÝîíeÓOiÉ–µ¼úÙ-‡mm,Ž£p#É@ù欲uƒ0bXM­-N–#lšFî¤dqú§Ã5O¸Ýïâ»L—.gÐÜ9¤´Š·7ØŽ~ÖØ¶^]¶\tËAæ‚•FZTËxjT|>¸Ù,h—‹ÛsœqÈì[iÔåù<ž8 µL»‰n6âV‰JìF°„••dŒ|Zý‹Û,í_‘ý ’ìtÈ ~ÒðC+]ä¬uÈèG¡¥Ç+ËÛÛäª~vnq¦yÀî)ݸùz_´ó¡u.¤`X-òžvQZi½ÉÈ'®G#Ž:š«{=‰+Rj„ºa{´d8_[Š!- v¥#Äœtô&Ü,m¢ó-¦R©N"kí)”«9ÀéÆjåì¾™]Æê†ã"pAŽr…4æO¢°Ÿù¾¶Ë3]'…¥c‡¤JÞ.KŸ³€õØq|‘è‘®4Ôk& ƒ¨\ަâµ1¥¾¦H<ƒœàyâž§´ÝóWêíSˆÜñºÞ‡rÛ/vGL힇’<¨“å~ݵ¾êÝG¼(2YP!#À?¢lÔïYD[äfÜSì2YËÝTÚ’¡ÇÃ)ÀðÅ%zjùd°Ûïs¦ÅÍâú‚r•+J¸À$sóô¢OΟ>&›Ÿ:C—=ÏâC„î”|Á8<hðô‹“¬Ql7K»Œ)Ëɾ픶®þÒx<~”ckôüü—«?eG+ÛÀÜßÔzwXã‚ñªL‹Äûƒ­˜ê ¸ÓŽª a!#Èdø±Ûm ~‚\©w¶ å÷@f0oµì€ê¤ôQž“.ÁeåHy²§ R8Rpw<ÂuIö™xcZê‹oôqEr—-<…'³Ê³‘ʸ<26’OÌÝWÈ.Z,‘µ¾»h°µÊÂÔÈ|%)óúË<œxŸ*1ím™V={:ógNf:¹ÕlR›JˆH$dž9ùš¨ûÜ´]]“…Fu×ÚTu¨l#ÀU®Ñ^§º›†¤rQ2œ(“)Ä„…mIHÉàÝçÇ­_~#ÉTEˆèd3¹ÔÒ*€"«ÞÐ-[vbTtEYK(i„%-Œîç9=OŸÏ4ÕšàmQ‚ÙvB¤6ƒ€ŒàŸ_:7m¹ïÊ—)Õ#É'ah­·D]5K­Gìßh™/¸!¥’¥­ÐI#’sáÖ†ÉUÞó6Ú¶âÅJ¡ÂNZZv‡Š?°1Á8üê/³íG;F¶ój}."bÒd÷ÔpœrF^IÈ« ’d]cí:Ñ8ï…2JàIVÞSŒxŽí¢gŠ/‚w7: M‰÷Iõ ­fÍßVX£_q—Ø·:¶ßŠ”) BÏéc'#„àƒçSoy³iKv˜Aħ€•;þ?€¦½¥ëHŒë1NºžÂª÷ÇVÄËRBNÕcñw ŸZ{Ô$)ë›/&MÁå•­)ÉKc¹=zf°Ï¨sÇø^›Ù‡Âó”vhrHâý“êŽ{>¸*É=%A°½®$ă×ÿ~”_Û­»^©EÂr5ɾÝ*OMÿ¤G–x?:Ì#ê©íº•= $º”(|A­‚åtŸ«=Ž n2ËÏÛCmE{ï+xl‘ƒ¤`xs*±˜î,èµu/i0aÏnLFö-xªÛ·Ð¬:|…¡µ¡Ç’óNž[ $ ’9øð9òvi,{=,¥]ƒ²çv{U Iø$€>&…˜lIJ hÎÉmsV…!­á´à÷sÆ6ó鎵lvj¥È¶AT'ì½ÝNlK™ e)O NsÖ¬ËK‹®@ÌgÚ¡ð[¹»óïÿj~›Ñîö œäÝcûÌ[j'0†7vJQÉ(Y$’@ãŒ`žsÍÑ÷¬š…WC¸Þܓ‰I)u9R„Z7º×ixûœ”ÛQž B‡k‚1âGZt…Úɧ¬’á³=IºNZœ~KñPSÎÀçA¸úu«Ý¥Ï<¥ŠIcÄ“ˆhp½¿Éý»Îˆ±[/– m]šD©o9Ú4ðÞQ%go€Æâ(½ôÛ•òá¥Þn ±-©·á­ÂúÀe)ððÅIŸ¨Ú±Û¬¶¦¢›Ê›B¤²ëÃj’KŠFR8ÀJ€ÁÇ cŠªÿ¦ÍÛÔÌJ‡ ™éq…0 ’´%a=äîê¬ g­dÊŽI[³Žçà„Òæc¶9µ‚ÈÍ6ûïåÎÞ¼(W-;m³ý‰y~èÁŠú)ȯ¼t¹X)¤’=ñªl>½Su’lp[Ч\uðÞâi$¥ÔŸ/*%rÕû¾Œ…\WÛOõh²ÆiCWÎr È#ƒÒ¥û"›9­Lâ.!H·4—ûy ANò„’<3œd:v±Í-ðö×fL¨Ž<Ÿk÷ä7§{÷ÛÏâžÒI‘§]²ê)mÖˆnœR[å¨îJzd~–}1\²2í«QOK7&ÎÌE‚¦JpêJ¶¶ƒÇR®¾8»ÕèÕ:‚3lÅí…¤{Ó˜v„+•ž™à$ÏS-_-±íÂÊ ¼ÒX›Ú˜½á=õŸðŒã&®”iQÓ&Åp¾ÅÇá÷íóW=^‘¤4;4Q¶UÃ+¿p ¾\õ¬éˆê)Jˆäó[FºÒgRÁ¶_,jûF*™?Ù¨Î9¸ü*…r³N·¢\'£ïÎÎÑ9Ç–j‰cq¯%ôfú†7Ùvp28’ï?å*ÅÁ/Üg´t—£6ÂÏSà29ã´{^µ³]lð˜˜ëâèÈìŽ?½š€Pãœç&´SùÛÉdvÍG¥¬šnnœ0›vS¡AÕ!ahp㺢³ƒÇÂ=k5øØÅº3©寴BƇ$tÁü«éÙ:GCbKr- 2ïf²ÖÙ/O‡\Ö;ívÑoyÔ7mŒ¨Êa¬²Å[ˆPÉçœgâh§G…áòóq¥%Ñ4ê&É(—³o6Û”Æf¦ mv¦wÌ–âBÒ€¤¨Iõ |… ²kË>™¾Ïq®Y²ñR¸Qp¬ç¼3Æ1YÂ…Â ©×Þ5¶Ë¥Îé@?£:7FIÕ×þÍ—ÒÛ,3¸«•ƒÂN9ÿâ«¶1¾sºÜ²XìçQ\ÅÿښݞásÖ›cÛwH˜‡VÚ$‰Éðž9ÿ*#þŒ5ÿ÷Ñêý5+Ú®°“"ánj $û3…l(- YH õ1¯"‚ÿ¥=_þÇþš¿FcØæÏ{Zº—WËÇÈ.ÃÕF5]¸;¨×çíniDf¥4ÌY;[ŽîyÄ‚7‚<@ÁÁi¾j !IÜbò´g-îÞêd¨ŒsÂ’RžéYþ¦jë¦5 ÎË*{o¼=è²¢P¥~-¼Ð“Ÿ\Ö¿ÿñ¿P?¨_“§§©•*#Ø«-( )$cœnåQ˜DÆH#ð°¿Ú/@‘§SG ÷ìÒÈ-·ëÄÆù{¨%axåV󷢨­ÛVç`R‡mÍŠoŒn„ às_XÉÓ¥8¤¡€ØqC°czž ©k- ¨.ól¦Ï.<6’¥IP𔑀S€žrºÿ¤âµîß…v/´²ãBÑfÉ&ù'öYCìE½[î0c[ØZDu"C‹yÈøå.%CƒŽIðÍSm»¡@m¨).’%%j 6ŽNG9ÏM}PΔy@`°Gf—ì0JI8ǡ⩓½šj3èW&3ŽËen©_vÐAåTÏÕÑé¾Ðc7$>Xù­ïÏ’yXl»‹±tIJqÎÙÅ6¢¢ yQÉ4*tÙ­ J–ÈBÒJÒs‚R'ó­îÉì®}¿Oˉr‹ÙEâ¶ÈÏ) ¨‘»a8ä¤Q}ìÚeªÚ Ý=Õ” ÖÑ¿ròµ€I„r|@ò«#ÚÏ+—““NÉÇŒØy°îÔ7ãÍ|ÈΡ–”ãúE8ÏéqWf-3W¡Ž£“®U÷[±¡¸pëÍ'‚ 3œd+â¾”F—eÄÉ[-2†Û $¨å%;|G‚“‘þtV;gÓ“"‹Ãåo܈Ì"\IÚ<†Vž?Â(ºŒ‡¶8Mk’BóÓ1Œi%ô¾X¶ê9í½ïj?))qVÿ¬ƒ×Ò¯Z¦ä¶­jŒ˜ÓvceúÂH ÆNN•¤ûÝœ‰ EŽà[Ç.¦VÙ9<:g§Ogp-ZV쫽ŠS¨«%IJSŒ’ RGO:»+¥fJÝLi±Ûmÿ5Š>«‰“–?û~ë-¶Fbqq¶P@l€HP±×ò«O´ ;/M]šh’˱œŽÜÓÁjàyã c÷ÑùÌ[g[TõªÍ”ãz—ß݃䔀’>^ØßSKqks´ÜÄuœø œyøV†ôüÌ_3)ÞF¶ú.¼~×}±¸øÏ £z{Ù±ÈáRì‘ —Ûn[ŦØS®¬ù žrëNÅfÛ” ¸³ÜÊxägùÕ‘ëCPOkvmF.6º…e;Æxà?*™ìçFLe¹w‰6ÿ}„ÓjA)I(HÀVì”(p?}Lž—”!.kI>Òtïk#ÄÉñeŒ´ Øýê=ÆÈ}Á6¶´r$6Évîô½»]Æm(NÆJ³ÎzzÕ‡AÝY‡f• Q‚fËdön…pU…¸ êG”»‹ßÒ…[,¥¦ŠBƒ¡§×¼yþ}F¥.Ϭ¥¸®(¡Dêîp@É)ààч¤g½šœÍ'ËøUÞÜô÷±ñ6'¸»ƒcöºR¬ºi.\f4÷ã ­JqÎÙ+XI!>çãU{•ºõbÔòÜë6Ù q!nB‡ Iñ#VŸÙcéÛjeÙß’â[!Õ" q[ÉIÞ¤ä÷qÓÊ…_ô»·}i1»%½M³µ&9eI(NÑžéNjœŽ“Ô1âs ­uý—ê=?.R'œG¥¦öüÓ6;íÚÿ­*Ac±û)þÉ”‚ZÎÕÞÇÖ‚·ç»6¤ÈuJm„¶Ðãh­6Ù!-k[¬¡Á`$¯±A†„-°#¨)„çD(óáMM¸®kÌV›JQl%¶ ¤¥Õv‡ nNym$âltû§Õ(à•Þ#£.o"ˆ¢¡·6씑!íÌ)*PÜ()8<ð SMÜnlÛ.ðŸfã%ø’ZíPêÚ Rå$§o‰Ü•|r+T£.Ì]½Õ[»WYd¾”0Ò{ B“¸# ©AçñSO{2ší¸[SöjÚBÒ’)Ü„¨«Û»;ÎqŸ¸8®!êX®sK¦ dÍ‘’ Õ΃.6[gÑupß‰Ô ’Q£»ŽÛþmdO—šõ­¸¬ºîð€@*I#׎~5}ÕR`iëM’Íhy&Ö×o-l8° ¯yÀ>U¦Ø­:q-[f;§‹’RÊëThR‰VÂIÚRzôøæ´šÑìÌâÉl[’ °o(0zU’Å$QµUÎfc·¬’ÃBª¨y/œ4Þª²[ì·ËlëQìn %*IßÔ/>ŸŠ h£nbK·‰²k alÇ|lSƒäx󜂶/kÎmw1S£­ðšžËÊKͶCIR;ΠÛ#Úciˆ ¶Ù-°[ËioGÚ¢B r5Á‚1O•Ðéóü²$]~—Cº‡X_Õ2˜¹CµÛPÊÿ¾a¶Š»ßþgÈðPëÍE©d‹L‰íK÷WOfóMªã¨VÇʯ>Ç#éËŽŽI›aƒ2ZžXqnmÜFÞ:ã•Fæh{lÍGjvÕ¦í­ÑV§.î-²0<çŠyghiK^V~¡Ô `_Uˆ^$H³Æbæ§ä–Þ)X8>|ªÏrÖwûŽŽ›s¨i,´_Rœ`,¬d“Ž1€>|VésÓš,–à\,ð댙hÆí7!=HžTÁ‡ìßÝÇØq;2QöbññÆÏ…h'Ð bïºâõ¦rçt³›%|Õ]ÞÑï ]Ü%â µBºÜ|GÿÕÇPÏzÞÌ™òCÒÁíwÓãZ¿´=/`ŸnƒÕhÕÎC‹[pÃK,ÆF@'O¢®SÐ6ö(‘ÀÉ.›x¨êìϺ ¢“Œq× }E µÚtž¡•rjÁb‡=âËŠIDpÖS„àmäŽI>~4Ðãä¹¥æ2Àß;ÝnÁÌÇŠV¶Zp$wãuNNœqXO?p€ÌŽÊ 㔓ƒçŽOŸZ5ö–ˆÿd´åÇþŠ]‡Ù†¼b¨ûCJèÑSá!#Èa]*?úÖ?ìMÿÒGó¬­Èh`°»Ù˜ØdÈ$ ƒÈ}’Áµ"fµ~”õÆRžyç ŠqCr—¸õ$žµhö|Ä»b»Bœû.¸;$-•”¼ÐùãéPu¬DHÔe'¯Žxýõh±´ˆÖÖ"€g#’z×?¨u™Ócx4ãKæŸP!þêH%]¡É"»ºAÎ^tç¯|óDCj† s%5œå¾öL%š†Û’ûèÆÍ;ïW  Í’R AãÈÆ*dvã­d:úZÎv“û«Šiœ—’~x¦U¦ñßæ ©s—Öd• ®]WQÐõëI&qQW½ËÎÏj¯ ã÷Ÿ©©Å  OÏü«„+ àV¡Ö2Çã?UPu¨ D× ®\•6ž‰S„޹é]p\Vér•Aˤç9Ïÿé_SSÊÈðøRK¤øÙ§o0póõ*j1zí“›„ÑŽ^QÈÆ1ô¥³6øÆàÍÒz7(¨í|Œ’rOÔ“R;dçª~Ðú3ÎߥÖòËÏÕ’çs\Ã1ÉRU œ—JÎüùç­8Õ¨Þ…ÉÇÞmÎ% QÚTz“SƒÈóGÒ¥YˆzäJUÀl¹àò3]N‹ÔdŸ:6HâA4­&l~'GtÜüëc%‹l‡â3»vÆ\RSŸÖ¥7z¿!âân³·) /JsœgËN›”GŸjÕ"XI[Í„‚„™Ï¯€¥å¿Cò¤ê¹™Xùΰ|¸¢ žGN;¦ êýÛ…ÎYYý"æHã ò¥}¿¨¶ ¤­ F8éNÌžvý)* gÃä+:Ö[5ä÷e%WíBJI¹ óHHÿØÿàJFIFÿÛC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;ÿÛC  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?“ÂúŒ—ª¿! ;`è•ËN=¯8Ól­mܽ¤úœb áãëȯB³’'µGši ‘“û°?­yÕ©4ïsÒÂÕN<¶Ø˜œcÖœoU?N+Ô5HÚå¢KùáŸà·ÿãõ·–ù:•ă¸{QÿÅÖj„ÙoM;4·!#$+W#ªxŒ™(ËF=Å^ŸXµšŸiœ1È·ÿãõÎÝi6‚góoçñöQ×é¾´†i×Ħ­ñjó+*çÜÖ”"d /^k-2ÅÛbê7E‡86Ãú]ÀŠZ=EÚO!å äqò‚HÎî:Uº œ‘¯8ìm[kò‹Tb¹ÜÜzŠÄËæzzýk–ºx—L‚AæÜ&÷ή+-n ‚ù~ÿÖ¥Ò] ¥Šœt=:Ë]ŽëäPAõ5fkȶƒ»ïtȯ2‡Qšßt±üâ1É-øsÅXÄ0‚òþÃO²} †/MQ½¬O¾tt ˜ùÊ犊(b|´`î8npGjÆ—[û]Á›oðÁãð§6¨€†2Ús×üûRt[w0•DäÙ©-³G•NT &áþy©ílÖhÀt%O75›ýº°E¹™Xzã©ô÷©‰,®®!† –G }?JÒ¹.ÁÏzï„ôë>Ÿ¶+ÀØØ®H•^Ò ‰&kxfSŒ´\I뎟•c>h+ØÑËK¤gØ5ÚÄÏ$ Eå\z×Eài5i‰`@O\ã‘Q*êÖ ‰fEE½J~oáÇâ* ÿµî̱²eW†RæŒ:n¢mR£Pq}OIlqô¢‘úþW¨yǘùD¦ÆY är:U¨n¥…6ª?ýóW–çŽyü¿Âœ.}@?@?¼ÞM,vF2ŽÒ0n,!ºœÌâUsט4ÔriÎ~aŸé]¹d‚ z¸4 ¯UwàsúU(µÔN »Üç~Á7üõSÇ]¸þ•éSNÇ}À—§ò®ŸÏSƒ±ï‘KæG»!{ÿÖª÷»‹‘÷9uÑ&S¸\«6s–£iex¶×1‰‰¶˜!Éo,ŒÖØx¶Œ¢œžNÜb¥…¡Q&1þªN™çä4ÕÅÈÏ:Ô4«æ°¶Ž’F?y‰6ŽIéÅg­Ž­L[¸ù¶H¼ny¯D†Tmªà}y©×LÓ¤Çîòǯ5“¸åNLótƒS6—Q=¬‰æm·5NâÛR i<ÐkÔ¿³tàÀlñÔÑ.§ªÝGG½ä’Øó«:K4‹|ÈÍž8ÑŽÏcÆ;öÏJ /#i‰ØåOaŒþ鿯ÇË;WæõËbš,¬ð3¸zã4j'NGŸZF5þH‰Þ¤/áZÚ&ŠjH"sµ‰ùN+®ÌäàÒµ…±b‘;#vcœÐùú S’¤NØÞyÿ¾*ž¿rY=ä2€`e|•üêâè·?k#<ãÖ™'†–VK*–QÌ™ÇãT¤×Bäå&ÝŽVúi.´ôBX”·…Iw°ÚÙI<ÒÎ?ý+¢ ÛÈË$L:ŒÅŸéDÞ‚D@ò+¬cj„`“Wí<ˆ´»À²þÑ·’2òÁ±ÁžãŸz¹áÈo|=uu5´­ ™vìcž?Ïó­¤ðìv$ˆ¥ ær@ZX´©_%&pAé¶°©*û»¹ÉgÕ&ƒMŽQn¦{†Q·“øqZ: õÕõË‹t„ºTkQ´½³¶yKù‘ ÈÉÆOÿ®¥I«év‘ë3ºÍg$0£ zŒtüzÖøZS“æìMZŠÖg IÝ{QQ;ïÚèAVPA¨¢»ŽSÏ×V· .OÇ$Z¥¼’*äË;u¬2÷ªÎž»µ qž²/ó¯-IÜ×ÚϹ±6³ÜHŒC‘ž)ŸÚ¶Ì òfÀêvñ¬i¾iݳÕhi WÍN¹ÁÚFr?jM»´•÷, VÐ ß÷ÈÿpÕ¬ÇðMÏû#üiZÓN¸#z¼ zúÛ»6ºe†Ÿ6–3Á¹šâ[ß5v—qóϹŠÚͯ8I±ôãJºÝ¢#Ž`J2ýÑÎAµmµ4M1ýÖ,ÿ#QaÞдÿûôÆ‹>áÏ.æ|:œQ˜œàTé®D½!“ó7öå¹ë¡éÿ÷Áÿ?¶íüÀ¬OÐ7øÔrùÚϹëP‡?¹r½{T®[1¹`)¶l{è6_›/öΟßA³ÿ¾šŽ_1ûYw+>© ÎØŸžÄ)ÇU·  œzb§ÆšGü€-ïãÑý­¦ÐÛþþ½¯¸{Yw*N20€÷¥]Fß2¶{aúõgûWKÿ ¿ýþz_íM+þ€ßç¢Ï¸{iwýµlq¹eÈïO}rÕÐ#$„P?É¥úk}ßÄ~“=L’Ø¿_Âývz|²}CÚH¦úÄ Úà€ò¡µ‹r@ù³êG5¤š·n1×3>?-Ìš_ßE›6{/õ§É.ãö“(۪ͩD²l¦ìã×Ú˜š¥’g™@=‚Õ«›Ý5<½ú¹ýØÇïÛéÖ‘SMÔ4}BdÒâ·’Ú5*é#žIÇz}½¤Š·úµ­Ý©Õx8+×*·-ü³éi)¬dõõîó®c³Vþ‘sh¿jÜò!9ÈÅvà*«¸ÉyœÕ\¦t:4Þn“n&51Ÿø #úQPèÍl°ÜEmòÅä(9îª{ýh­ä½æ cÎ÷?rjÞ–Xê–Ùí 4Ñm)Ä?à&¬iÐJ·Ñ±'î㱯/T_+(36âxëéW´fŸí2 U«™§ÄÓN]b¶"09ìrNß“·¥zc@Ú\q§k™Ù m±ŒÎs]u šÕX´ä“8MfÒ}7WÙr¨ÓD×^ëØÔCS“¾ãÿ׫î¡6¯v’˜Âãäg-‚y>üÖ`†|ŒŽzô8¯>W¾„5Q2çö”Øê?_ñ¥¤ã9ÇëþúÕLE'LÿÀOøQåHAù:zƒÏéSf/Þy‹¨_êó”:|ðÀ#Vy<Á÷±Ž9üJé-n­/ÐX¨.Çoïá9É>™È>•ËiBŽªš„H^L˜žLcØÇŒt#­OY4Z”ÐZÈÂ[[™c1m`ž[#$⪾Ô¦š­ÛúètÑ©Êí%©oRµÕ-µ„µ†#H¡ "ðÃo ± }*–“º¥¥Ö¡4ó‡bë ‚ù@nÚvžI8_ûë§ÖÛøÖÁT-Æ¡;¶t"AÎ9ÿõW }©ÙêOÔ# ŒÞZgÈÍÀ«²…ʵ"sw»Ð[=bøËqÁÜöò˜–R›DËžëVÆ«1<²{dŸóÒ©2Jïº@ŽKc!sííÿצOaq?‘lÅ$Ÿ¿2ÇüDpyæ¹ä¹§mŒ½þ—6EÜËj·bœ¶ÇnÇùT'R”wµ[ÄVÐé5£Y9ľf¾üç‘É~¿Ýõ¦5¼ÅÉ÷÷§:NJ““~íËóOæÏoЇåWàžõvD‰•¥slçÁšŠ  ¾í'ØÖÑv¥#&¤ä`.«2 Åjé7/q•Æ~}µÍG¦N_Ãny9æ¶ììVF8¶®vÖ|’/jæ£îË™³OgVKT7S°–kç’%M­ƒËÏãEGw-ÍäÞbBŠÚFáEwûx÷'ØÏ±–'“»óDvãU»·‚c''VPq’>¦š÷6ñ¡v$2IýzÔÒ1‡kw­ã3¼²Û[¶Ï^ƒ<× FWsdRö’•Ö¶"¿¾„ß 4ìÛÆŠ6ñõ«|Ó-‰Ìa¾â;ôü fÍõ×xóMþÑšu½·/,Jì¬à3Èü9íüxW&£öÛäâ4Šá2ÒI€ óÔZ-­¬m¼7e¨YG-­äåü¦ÝÂß{½9ÍzJw¦•¶(¥ÌÞç¤øÚîÞÖÜAn‰æ?;* ÀzçôükË®§Ònõ]¢)ÊÎ[þZ8à§Ò´å¾º{–¹’è“ÎÚY ¸äp8ÏãX2$767HñŸ=çiã1ãå?Ê–Ú“iùsÚé» `²Ó¿ÏøÕ-WÄ¥H¢h^Q,L2Í´C/{“MMhç‰îc]Ê™•y8íÅP»¹Ó|@±[Ý[KáýÈ2Iÿhtm óKd(ÝérýŽ®5–’TYmÕd'nðAÜÌØüÜö­/6@pàóÞ³ô¢ºU´Q",›y,Ì}ø­£âf,ÍýŸh )¼±œŠUg͵±<Þco%q,@61}*ù•×À· ÏË^¨ÿ»šÄ“RòÐGÀrz•4ºÉ—Hm;ÈE§n sœcJÏ™j+”wÉýóAwîÆ“ÌAÕZTo1ªòN+ ®Ý?ß?nK9‘J£øºQNÌÑÒ¨žÆEõ¬÷VoenóÏ Â"Œ“Üþ‚«øKûV]X4pÜ2*•®p„6·â+¤ðÖ¡k`Üj âò2ÛŒ|©ÏOÒ¢ü6Zó]N’¬wNp±&AnÛ«¦Wºi^æ´ã¤Û"¼ò.'ó"6#æ ÀÍW0 õ,ÅåäÀ]ÌNAL!ýEr\盼›!OîçëJa@>à52Ö”<€u¢è‘ÞRŸ, PˆGͰ÷¦ùžA§lt¢ãåÏжž'‹IX¡˜aJ‘…ãZ¦d=;ý+ÅO ·€¡Ën?Êe­FF´¦ã#½ÐüEkxöÑÝ$’É…¹8æ°Ljs˜Ôóé\“©Mkª[]£xeVÏãÏé^…r¡®ÄÇal¨ôÞ>¦Õ¥ÍÊW›‰h O7iÉ8_ÿÿZ¬J³\Ao „"@»Q8¿­(WÎwReÇz¯i+Xå»"þχ$´{‰äîç4õ¶EáPì)Û¤;(i}MO3 l|Ö•@û€p}2*;}.;um„†nY€cêjÞöÏZBI§ÎöÙµG ŸsRÀçJãÆ(*Aä5.f!ÁöüèØíøÒlcŒgñ¤0¶ì`ý1EÀvÕè1]—‚<;iz’jчŽ7 žŒÝÉõí\lVSLáxÏ9<]§ƒ ¿–ò­¹;Áÿ–­ô­ik-a¬ØÔµkû]F{k].)¢ˆ…VXwc€q×ÞŠß¹Ñô빌×PË!,ËÉ¢½E:ij©w<@G"4?QHúdrºßKz‚XÐùvë ÷>¿…<;ñ”Lxð©Êô1“¬˜j°%‘ìÔaóÀŽqÐT9/ß ÿ|ŠO1IÉQÿ|Šˆ“Ó¥Ãc =}Pc.?Ý©ÛjBX ŒQÌÙ\ÿã*K}7JÔ.1« ’ÑŠ€JóøU=ò•¯—ó,e$€“€qèýUP»•“4¦ùd›4m¼3¡5Úˆš8B¹ôÏ­h1åŽÐ{õ®kÄwb}/jç+ #ùZضº& „c`š©sr¦Øå;Á"è‘ÏsHƒÿÖ¨VRz°§y„ÿ¬îfJŽâ—Î`8r®jçÔRo8íEÀ°&cÆæï=ñƒ!?Zª\÷9¤.ÙÎì{QÌÀ¸. lýy¤3;îɪE˜s“ƒéHÏr)ó0¹ÒNú?öB­½À7‚5vH`IÁSÎ;ø{Ö?šùçÕ`–è}iL¬ÃrÆÝÍK8¤½¼†Õg ž{šêäÔ?á‘´¤`Ñ@ÀÉxTþéO\ÜsùןǭÜéðÜAvçÿuqë[÷ž2··ÐM…ƒ»›íÒ]ÜÇ'ø@<þ5ÑIÚ<×.-%©·u㻘fòìQd@ÃÊNæ÷ö¢¼ùo§#”j):ó#™–6zŽ”»N:sRŒE80$Œ×(ˆvžãô£Øó>F~õ€?J€n=±KóÇ늘Ä…J@DÆ”£6œTzJ[®h–ObÖ˜ö«4e$@Á†0p°F8íIœu4ÓkPØ«ö%1<,»•©Ïó©L,îÄä–ëR–È*p'ê=©ó;X/Єۓÿë¥òíSg€y¤Éã94€‡Ë`9ÁÍ&<ã>Ù©Ãàt£#9#J„FØàøÒ•# æ¥àö¤ëÀ €9ê)Û|O+ž•!œPlÏP)<‘ì)ØÉÍ)ãŒô¤>ÎGËøÓ~Êãz œçô¥üI dBØžÿ­+1Ï_ÖŠ`BzŠA÷PH§œf‚HéEåû¦¥”QHdM÷±OåZ(¦©8÷¡ËøÑE ùNy ýÌûÑE0½Ò‡ã?J(©Ã÷©âŠ(Ó÷©qEÆ(êi}h¢€øiOj( P7)OZ(¤1÷QHGÿÙÿÛC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;ÿÛC  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ÿÀY"ÿÄÿÄQ !1AQ"aq‘2¡#BR’±ÁÑð3bár‚¢²Òñ$SU“Â%45CEcƒâ6DFTVs”ÿÄÿÄ+!1AQ"a2Bq‘bR¡ÑÿÚ ?oÄ™K0mÛ Ž°#´4ëPËÈSI FäW™`X¨RR°tí¨>5è6ZÜ u JŽ»¥y¹®öz?ƨ±*R‰ 08þuÀ:UÇÎ?:i°™R|(†Û«šÎêgHÛ€¥ÓJJT@Qr“JäƒXëE!ô¤åÊ»)™¦ûÞJ4ÁŸµH)<á ÅSÞ⡞©ð±ÂÓß]‰¹’ÝG¬ >ñåX›¬EÕ(©µçLj'_N5HG‘ÍŸ/L¸ºÅVêÄûÒ$ø“\1RRTž èøÖ}…(Bä©H£Jó8•æJ€c±=ÃίÆ;¬Û³Wm‰´ÁФŠžÖ.h ®¼SXŸl9O͉‘ãµ:Ýè ©ADÊï¬þU>öp&€]·YóO,·$+2;%G~_© K/<·…!¤‰‚”@çÌš˜ÒXyµ-J*RH" Nz|k’ÓEf zÀ3zí¬|)»HtŠöbí]cJBšÌTRø êZm´¨¹™]¢tÔ·< Ö¬9^ÐïVÝÁZT BÄÄLþ¦¬PÂŽR´  ¹>Kõl©z5M­Yô&ÂîÙ%››¦#&U¬)"t:DüEcúO‚Ýt~ð°úÊ–(2‚  z=–7mhãm!›‚¥’€ÒŠ•OáLâ¯[c­ÇQpÒ¼Å+·_ 7Žê´5ܬá*Iy`› Öîß¿» [I¶ËAAru÷òÖ˜¹·aŒ3®²Å’µ…(’•%$ˆÚFÃ]tЏÇð—Urç³°êØq¡©×qÀï×…g‘‚]Ü )6÷ ºS«9RcC¿mSîJ¥ X›¬<°Ÿœ:Ä‚'ŒÎ•ÊÅ=‘ÌŒ%A´h¢5*ç¹[—]1’áÅI™Ð÷íP »kx ·ûÙ.úªQf\¥B_}õ‡Êò-įëÂ¥áÍ6ñ‚;™Wu2»»pò[Ð…)]£3A§Ø´C¹VÔ9”„ª;¹TäüÝ“”Ãn,û2žâ˜US—ËÎäx¤*‰ÎÜ*ÐZ¸êØì&S‘>ö»É;Ñ/ou ´Û“•YÌDñ¬&—sr+Y¼[”¥^Šzž5wmub¥u™ÂÒ‘Z‘HÿGí¶i=cªQOh(jƒ Ž3òÚž°Ãn 3 H#Câ8œ§£ #HKëÁPp@HËÍ]ÃãZ>‚9Ö½vL °çš³ ¥÷i„ºÊW‘*ÌR8DqŠÔô«ÐRRSÕÈ;z©ñ’Y¬ÓOHôF¿sI­~ê‡0ýõä³ÄQѬ!*–:NÖ‡eÚ»§Â­0|6ß¹SÖý'³rAH–]Òcø*;X»×ÝÊŽ¥c@=5óÒ§­WŠjÁK £+<à~<ë…Ê]Ž˜'ËFÊÉŽºÝ=ˆZ­GP¤!ÀóMÆKˆ¾³‘©Ïœ\µ]mtI Ü6ý}ôÎ) ²ZA mÏÐâj7¸ž½ËޤD½fêùD|³†ÄèpGª*1±¾*„ã¸wdF—$m®½Ÿ £ë]eî§(ÐîTu#ú¾j¬C…+YÙ«m·ŽJ•ÑÓ‡£Ë–Iݶi-Ž$ÀBÅpdžàªã^_ʧ6êò€åö°N‡ÚÒ+&ÚÎl‰Q #1Õ@É®¼Á¢-:;GM4QðúÝé­/ŽJè¤säŠî]bVWw !»ü1*3ÚÑ寳§¢÷Ιvç ^ShÄÃLµMÛO<Êœ@2[*:èNóãL¼Úúµ–‚QÑ2­5ñð5Há„V‰äœ²;‘]¾€“}†¥¾å¤3­9û!v©I¿ÃU˜æ!X‹r;´<@x03…~_¡L´ÚÂ2>â;'PXÒ)q]Í,’ª/›½GͨO¼­Î›ÓʹIJG»'Ö©â” ²ÚRcPQê8Q-×[WaÄ…¬ö ð×AßãÎŽ)‰2å§T€:²Bޱ$GÝS‰) ¡yN©Há¶Ü'JÌܦã;–VL%=¥&9I¢¹»J€´©Å˜Ô¨ÆºmΚ‚–˜)¿Óĺòãm¹óˆ9BLÚG¦£=~Uo(Ï—2Sµ¢¶ó1ƒUÝÃ.§%ÉBÄ“ã$pð•+E˘µš[y´­n'*„5÷WNQÅ>a')*=:ÊéÀÍ›®!SŠÊ²²;#‰ñ«»²ŽŽ^_4ázéŒÊm†Ïï:Ôš¥q‡Ümª•.â2FaÄS«EÓ¶¬¶VÓhqµgZRsè²´($tå{_Â'¹næ%ƒ¶_}.¼Y8Ú Ž^ÒI͸¨xË/±tm¯Km¤ËP¬¹ŽÐF¾ï:rÊ0ì=ÐË•² Ôé½VZÞ!w©hL +Uæ‰ò}¬–¾ŽáxÊW ;Qo}™¬Þ#ÑäÛZÜ•€^m“”Ì8Ž::×q8NíÝ»,­Kq-§¬D¦aGo*¦ {.­ÖmïR Må9‰Ö›^C“lË¿ƒ\®öo®y÷ ¦dîH=Ãï­c¢ µ³JC¡Å® ò……'žSzŠãîá‹=E½ªÏmãs–r“ÄkøENý·½‘6ÖDNÁ¢ þÕk°si÷)?fïm/™M¥Ï΂;IL”ƒ Ìï·ÄS+}ö–î’Úò¬Êã!=’ ,kR1«»”¸ë(Ph¤7ôÎDŸw¡[ô‰«Ëëd\v›K£¬Ì’”A?©äÃÉ&Џ:¾JýÁEJs+kÌ•‚“)áChÍÀe•ƒ$¨fFR@Ÿ×Æ·–X ž Úß²+y.¤Œ©@ {ê>h¦ÚvÌ¥jem·—NÈ ™>zWOÙ• ž’\¶›·m€ÞT刃”M]£Õ¸Z¾K‰¥hób¤;Ц±_}Z(¼¡!dq=ÝÕcÑìÌ ­iÇzÂê’°sw×oÆQRѱtÙ­o÷Tß­:ßî©™ñ¯AŒóT©W‡ó¥ @„å#¸ŸÌð«‚Í™1Õwìžú#ih9AB’9ðþUæð/ÒeR.²§(ë› ~þÆé+LlLþ=ãÒ­}ŠËR˜æO>êãihdfì`é>}â—ôä¼”ŠbÅÓ*i½§VÒcõ§Ù¡U¦AÌË F¿4£Ã—ÝWɵ±Û2Ý'óï¤Uµ˜V¥)#ps~~4ø°éËÙBpû’RÛY†íˆ™îçÖ™NÒJP––€JH$y_Z_d²Ë Z& ï§Ç˜¡ö+2tq°®{ÇãZ§ì8KÙžF®°B€&sý<þ£ ’ ª¾‚€<€ØpÓÄ Ô B!6|4ÓË»î¤8{)V¯¢#]U¦šþŸÛØp™žWG™^…Ç#€Z„Áb¼+GÁ@B);É’O"fOßãZQcm·\‰ÖBNü $áÍ)ƒÍÆÄ’u.~ÄŒÐÁnP¥(\•)d$ÊuIPžG³Æ­¬,nÛÃ1‹t- Y;“<œª1Ïnà4Ò¦$†Â’¶Ô3BNºÏòô©ööÉ ¾kR™+mߥmr20XFq‡á<¥ …k¨õž»Áqô]?’Ñ·$ „§iÐøø×¢7‡Û©0SÚ×P辕Xk¬¤“T¹±©\—ƒN2ª£Í^³ÄC)Zl_OdLÌî~êåÖYΜ:ã­V¥®À$ù’}+Ð>G½ßG™?•ÉWºÉDs 5ŽRôJ¥èÃኹ6×…æ–Ü0¬¨RHÖDÀ¨¢Þà0j[A‘‘F yסŒ"ñI* Ž:ÿ*TaŠÙrOò¦ç'àÒs]‘æ7CC*T¥é˜Ù‘÷Ö‹èú¯pæî»·¶iàJ¸qH*ùZw°'T{l[¹ÞRáHîíÄZ·s"`N°9 |­v ú1cÙØSŸë  }âHÓ€oëQœ»·}ÿ™µ J•ç!@x[gz6Ò’¤¹en¤uFý°8ÃPÒRµ§ñ¤Ÿ´ÅOјöüíÚ²¥?I|xð.ÎäÞ3ó*•“á®ÏD,€ß±¨%;òùÏ:›mÑÑd€–-²fã˜êE6Õi Ÿ¢ ©7 æá›.ß ²ÁØêqV@i’´RP'ÆjÔaÏ£E6Ló#ð§PÃø|>Y-ðáÊ£s¾ÃªÙ9=¬K OÏ«Jp™µµ9I2?¦ºªùHûC/ eECÎXšÖ”FQá$þ5U8¤^y¡'¢òæÝ¬NélºîTõRV5ÖcñøwÖ#dÚb÷,‡3$šAüjÍû»œ©öK“j° ©) Ÿ#P]iË‹‡®.o ¯Ï…:Ý­À¸zf2õgîŽþTJ¶tD°÷" _óìô40—”“ ¨×wu8x¶³ Êx•ÇãÝN 7zÍ-\ V°Pgû´ëm¼Õ»€¶àQR4ƒ;+ºšdîUvIo^\ü(ͧ>u“Ï?óå5/¨qYBšZg‰ ü) ³ÊQËn¹P¿/a¢(}Ô•Å$ *òü©Rú” Nsݘï¿çO›'g³eptâÙü¨}’â Zºôէ•††ÃëI”©b4L<éKð¬Ë%J+0Ÿˆå4ñµ|o$q!³H-läqf˜—€#u «ByÓŠyJRT„F© ;èÓl²£ë#‡f) N¥$ ÆêN¢‹}¦A$¬8F¦F•!›™¾ œÂÙDꊊ‹r¥Ê’2N’ºE>Ïeঠ·T5÷“M1QFÚ¡27'P L¶¸LD”«ë%?…Fe#«'@gnε5¶åÈ*<¶V´KMè 쓘‘ (kF§–Ì•¨$‚Js j:d(ƒ¨ˆ‰âÊTÜ›(Ó.ôX¨DÞ6„vÛJÌ阦~M:“š PUË,S ©9rÈIuRPÚ2Aw4ù…Ü-²QÖ,¤ÎÅ:ü)¶î‘=³Ë² |·.hÐ3¹‘5Ö€X!°±®`ìùÒä>"\:…8•©I˜Ñ$|)ù LDê @Å êÊ“ÙxHÒž-¡)ʤ!S±˜§aB&åµ(u©^žé ¤W*ï<J”R{2Ò~4 aH@’’NÑ(K¢GVH" €|è±Q/Ú~dõIP®d"=)„)—TâV£=’”%>³LÙV¨\pEB™ 9¦ºE‰1«6œJ³ºœ±fÂÙBB&u•&……ÈBT¤ ‚2˜®2 ‚Ð$SÑž! 9’R c)ã•$i …¬Y…ñŒ Sès+a"¸Õs¡ýkQº²µ¨ƒ9§sI¤ »$¬«,Ž0”‘Kì6AYE©ƒ±„OßM¾âœHÌ ´„ ÔRo*w#M~4kÐqs ¶È–r'T$éëJ0›e «+P™@áçM8–ƨk/ ÆœµX*Zº”·•ÜÑIøŠDQgh£Øhkî‚Öÿm›4©Üª¶DqìªJ˜Ì¢[R€áµ XR ¡:Žê)Šal…fê[T[ÔyM1w€ñZ\Ê•F•`yjI@T}YõýB -Ñž8ª2âž™U©¸Æl®Hw¨B”=À Œú ÑcÝF†ÛÝ2â”ætæq*Õµå™O˜>´Þ ËHÄÍÂ{Mީňú9Éügʵ=%Å,ßË*Kªs*‰$ó¯fqŒ#£Í•\›£Ø‚±L·0ú mà>°ãæ ùÔŒõCÑ':«›ëIÑiCÉΩQô«í*s4i;Vy~uíœÇ.r~‘ Èxkç]”ƒ^.ÆZ¾·Æ¬Ð¥Ž8gU\g’jª éV‹IOF[Ut£è‘[‘¢»:þ¹õ¢.¼@rˆkMe$ñ¥ Ö³o؉«¶½i„>T¥¶¤ƒ™&B{*c¯|ß+º ]X¼â--Knå9HVƒ`¥×} §º› àëIc7h™>? ¯û3TP{EÈÙåýª/hºß¬ÿXÕ²ú0²ßYnöp}ÔîOlï¯W‚à¶=]“O¯«JT žqBÇ'Ý‚‰æâæìß9öÍ'´\=sŸn¶¦Jþ oö¿öО™µÇ¶>ûháþädEÍàÚáß¶hÕ}~¤Õtú¡%f j‡L­ŒfÀmàø†»öÂÇé`6ÝþïåGö ^Ìtº>‘õ¥Îï×W­kÇKðÓ¾kèŸÊ»ö³ ?ý=jcøSþ]5ì+òdBž-CúÆ”:øÙÅý£ZïÚœïÑËoøiÿ wí6 ÿãŒy6ŸÊŽ’öù2!Ç‚§¬\óÌh…ÅÄèóŸhÖ³ö“Òz:Èþ´~Uß´}ãÑæ¾Â)tÿØ+òe:ûž¹?Ò5Ý}Çûe÷ö޵«ý¢èáü>ß’]ûAÑŸ÷~Ê::‘×äÉ•9ÅÅï4]só£«Ö5«ù{£:ÿÐì§ó®ùo¢üpöSùÑÒü‡ý™2ã¼\Q>&»®xÞZÕü·Ñcÿ€Ÿ²ŸÎ»åžŠŸü ^‰üèé~C~̯´>ï ¶]%9CË&µ,tSýƯAþ*_•ú)Ç_ÃüTtÿ!¿fX^]uåíÌ× ë±³ëõ5¨ù[¢_îEü?Å]ò¿DÿÜ«øŠŽ›ÿoÙ˜7·yc¯pƒÃ5'¶ÝFRò p­AÅú)àŽ~¿­N&÷£ 0œÒ`ÇúÔt›òödÅåÈ0wÒ•wz„-[pãZå\ôe$‘Ù0H#OíT–/pÛ82“™$$Ä“®ÿk ö=û0ÞÙrUªÌ´>ÖîáxuúÖá*JQ—j´Ýôi•/pl¯Ò¨šÄú6mŸ(Á–ìõƒMuÓ:kO¸[ödõÚvyCÒå+Ðë ­/ʽûÏ×õ¨­ïú1vâ ÉRÕ”q>J¬ôåÿ!oÙ—ùVøj.¯…wÊ—¤~ùG¾åV½2ÃípüY¶lÙ  °R :ʹø ϯѬII:±9Iy,ìnëÊ[Ρ’"FÇoÖ”o¥ Ü7™à%D,rAª¶€.¤<•ud ëk^Œp¸)ÌÙUžu>~?…{Ÿ ä^*—ƒšpr–¼‘,_·k¥–É·x8—q©t ÿÖ–j–ë °°zÂêÕ¼«EÚ9‰Ñ`£þz¹§•§+7#Ëçÿ1>‡ò®ûÉ4ÔWxMx&ì{µ§¹ö…Z?)èõ˜„ÊžpûøU7ZßÀpÔΧ¬Wö¿•j=˜Ñ‡ýqDý 1ŸÆ™t\­ÆÙ·[M©Â~qТ”dž² JÛW'HÓáéRðä)(YÄ™&ŽrºV¤d…¡ýäÔ,ks R¤¨AI1ÄO„kR™*YPϾg$ˆ9ãÑ(eØÕV‡PÚ’TzÈ”)D@=‘ýÓëZ>–<í¾†”8¤3A:éÝY†Ó)jΑJÊO~ùhzhOÈXfTŒà3dsò­+âÆŒòq  ·mŨå‚ÙïÓZâûêå™lÔ…˜¸Ue%)p- Ì%`È'»Öh‰rIHJˆPZ4€x˜ò©òf,± Ù¸´¤©mgëˆ;ùN•ÍÙ0én˜4퉞ZÅVæ-… :â• Ä*ga×ûD<œÚ¬ƒþbŽ_Ù(Ø\“ÙBÔ•l¤ ™S¢R[P=äÓ‹—R S“óI{ÏœE®-‚/%÷H  u³ž|6Ûnúi&¬)QÝY=6¡ËÌÀ§Æ!tÚŽw‚ŠÚ*m$“È#KíË+*u -I=¥v„ ¥¡h0vòid„úÔx’Hu”iïåt€p¸mG2˜PÿÖÞ“Ê–ƒDmuß~ú^Ô™ ïýMHë˜'F]dhs:R—ØRˆKKèÍÆã™ÒŠ #œÄìvçüë„ í¦Õ%W •­¤v~~ý©}±¥)×b\VÓÝÃz()†aÌúW ï©>Ü´„ÛµvGhùžÕ(Ä+ KHH^Ý ŽºQ ÐÂ[Y"³ÊM:-^0íü蓉^n¥I•„éÈM¿¼Ë.]¯²©RAÓ¸rçOê%' ¹Ì”ì ë®Ûz÷S‡ i.d[éeí'Iûê°¸ò~“ŠSj€V¸“ÄÇupZÏc­9U¢rk‰¢×¡è¶Ëb…(æl ¤ ’";©MŶu—^QH:¦Iˆþ·ªŒÄ Ê”¤ÆpµIÈ"wѰåJ+L) Y™Q¤w |˜ìµöÖýôÛ8¶ $ΉLD9ΔMß¼NTÛªFl¦d¤“÷ ¨B“ÙrADB³$FQóO£?²¨{AASôûSýäëÝB“ &*þè蜪ÔåæH¥iÕûÞf’ &LÚÈùÕsŠ œ° Âgc‰øSÖäœ:ðeì À}ÐhMØìeEÂD%Ô@ˆñ½HÁÐ]Åí`ç‡Ó©ßÞÛÐM@9´L •ÃáVKŸ+Ú8ÛûjS…cO¢tðZQM¾áÉè±éÚV¬y$$Àa"@ïUf‹n}SéWŸé ½{¤"ñ´gm ‚¬Ñ±$éçYÜ癥•T¬Ì©v†úUæ~ñÊÊÔNTJN›NßT!ç÷ÕëV0¡gor P¬«#|¤Á®¯&¦ÓìN}­Šß­»¦š%d&í…‚W¤v­¤÷V B‹„(Ÿg!$Ÿ¤~»”ó®ü• Æž»=že(å] ð$SÉ`I–WåþTJ·LhÓ€ò"kçñd~ÄÆcëVx„ 3 AQ4£ê£P‹PñaŠ2Mµ‚ ÂmÆ‘ÞkqzcQe;«K-)Å®‘&ªmºHóW®.Ý)( àƒãZ;l-›å©‹”+ª)$ÇfcjÁ¦ÙvϾ˜R~q]“¸Ö5®¿‹Îí 'ÈÜ`X¤Ú¾»‡²—*Vžê@çæjåa!j[š%+Z“¬™“ä‘ëTÝ µjêÑm¸ÊW R”6I™ØøÕíÒÒ»¢²ÉBW©ìîT5É"žjR¤4›¡ JÒ•$©ÒrvH"IøÍ_ôÜ“päOd¥SIÐDyÕI2¥$…‘ÚPÖ¯á éº@²Ã¡%jH%#ž‰©ßÕŠŒQœÈ™J–œ©J†œµ¤8’¬É!K‰#Xà8S*Np’ ¡Ú%Cnñó¢ •´€°¤‘©ƒÆ<…BÄ¢Û¤2H*“BŒŽSð¥4óAÕJà9ò§ž¶q•-!ÜçÞÎRDþuZ1|;å#b’ž¹+ì’øóÚŸqÊ.˜ýÚ”‹7GZÚÃsµ{¤l# ¦ìïn¯¥Ý\Ý-E¤åëU “çÔx“A»TR’Ù1ôÌ…EÂPí)_Z2)d˜’x}úÕ"þŒú–iQL<±˜BB¶'àk‚ÒbÌ€({Êæ}k”H+Ü ÑJ1°åñĨ“ ˜J}ÁøEHÀ …AÎ…L˜÷•úŠè1ªA½bO§–Ô:èGV’ØË°â|týi\’´ G'ïÞ€fI…”rpÎ×Åtê3äeë²\µ¤Ír£¦‡´¯Ñð¥(VLÊËÇ.êá@‚T€c€œ©ý)P ù¢}Ôò´2S9”ŽÎ‹ìN¼†Ÿ YZg2§"¡pù (³$•¹ÀÍ{©åñªH\•;]² ˆÞ8K%ë‡îž%0XKnå PÞ}gÓ¾›ê֞ʙR”!]¯¤£~¹ K¢“~EPJd« žÒVÊÖqIÿæa ¥Tgîûýi°€B5÷xÊ´ŸOJ‹qgŠ_¬Œ>ðZ¶Ú3X*+ˆÐþt×ò(BSt‰ªIÔI%  ª$k&+ˆJB]0 JBЧ3jÛʵiW ¥·²BóÊ#SòiÒÒV’œÒ“Ú(”‰æ é7FZkBžÉÎJR«´{„Q©$ ¹•sÙZæJÌO¥ ‡W+!Ì­)s™J@ÙJ²‘@”¥FA'‰¢ÄBW´R¡ôŽá#OSR3¬0L¢¬äsTIïÌQ ^ä ¿‚ üiЄ!ÕœŒÙÔG„yÖ“ B@=ÂxÇó'ÒŸ`á·°ƒ#²»þJ>•¤Hl*@LúñQò§šJ…Ò !E=ù‰ô­.ãEmË©@RP±9º¹ž1 ?~¢´Ø tÅÞñ¾mÐ…Îi Ð úD~5‡ÃíÂlïí–ä<ÍÂr)J%E Wt™2+aÑÌXÝbx}‘i¼;-”æ!C6Ó5Ò½¬8ã/ô]»Ù^9«}ÈÝ?¿¼OJ×h‹—RÁêå ²tåµSežu;§Šž›¼9)¿î Ão…x¿!í˜a*Wº ò««Fƒ¶=JÆP¤tÚ¨‰ˆ¯ðÐ}™ü*Ÿ ý™6Tt„)x{PPÒбÂ@?v¢¶¾Ðžu‘é*úœ.í iJžM~2|êãÚkÕÈy+)i¶uýš_”ìàœÎiü#ó¬à âf+»\uætuæi'd Z­N ¦"¤â7[ |áFYIì‡:ÉsFc¦ñVØþqxÊRHËlÐÛøEmKêÇÖ“Ù)xËl¤.ܬ©D¦#S¡Ú«—ÐÔ>CÆíHZûJA'º*5 Y¾¶íHG†¦´OÜ»ó=¨R– @á^‡ÄK‹lŒóNZ&áí3ƒaÍÙ‚>uú\3"åÈB̯@No¸fñÇhË‹RR˜Ë°Hþï¥@_Zd’ éHæ©æU6‘X䕾ØÈNef “©ÓŸu\tÂàÛ·‡€œÙ„ò øÖHö\ œ¨I)I‰Í¯gᯥhÒbÞØ8I ñ©þÖ>o¹@î*†,»t¥ ²…N§€ñ˜ãP°ñŒmk¹¹Kvöªc¬mEIF]a*‚d¤‘´Õ~.טJ•–åø 0„̘×ǵ¨vÆÕ¥ao¶ø})²ÃÜq•T¡)Ok@5ŸèÅŽÇìÚœÓL¤–-gŽ« Ä,’«RZZ˜0`žã‰$`–ÅiG°%7h{­Q`9³o<ëUÑçÒÓëÆ؃ŠyްJÆm 4!1ZD?…¦ã­Id>¾0ãYɉZânšo—“Ìo]Må¢íŒ¶§~oI”$ˆñ¨¸N[-éʲ@3Âdíü[wVçE¯²|¨Ë!$¨uÙ4ͼÃü«R¥•{ÈS‰$Èœ©§ÀW$¹CVJS’eÏÊmõaArrëÄÑô ·ʨ\g»áTÁJ%':Ó/ð¹ø@ð^\®(f9Ÿ¥¦¿ÔTù?bê²çåÁ!N#°{z¹ )>RFS6 L”˜ >]õQ×' QtÁS9•ÌŽ1"»6Q*pŠÊä¢sww8ÑɇVEÈÄ[ -½uLƒ¶ºíÝFo™Ûo]Ù;óÚ¨JÈIp TB>Žš ;ö®qô%*Îò”˜€”ë§t÷~4Ól}ikÓË+œHZõ+ZÂäI€O­npëf_eºñ†l¾îœÍ`TÎ i†4ê­§¨R@+(P#Xž\xÕ°ÇÛÅq&žµy)` ·ÕÊŒDk›çuø.šiyÁèb„\©²åÌ6õ„8Ü[н«¬N^¯Þ:‚=ߎÕYŠâÊñ'-Ze¦Ý!KYw,ÈAèG½k0|)x’Óv댵¦N«²LF¢g@jŠÿ¡X•çH´i‚Œ9E?>îU‘ÃrtýoKᯑ4§?ÒûôÖIcMžÅv#޳‡á‹¼J¥A &uqg–“´ü)pÆ1ûëw.onÝ]¤¥¦È* Ð œÀî#ŽÕ ¤¸'oŽa–É·bÉÔ¸ N®+8Ôw@žFkFo¬µY[ïX9ofó®6£˜ ¾²3ª&Uš~—öcŠ|œ1–Dùü?¤­>úìî¬ÕkvÚOXÒÆ¤$ ÖcXî©íâmu(6¢2mfºS„^\cv'S ¹†0†Š•)S©nü*š·T¥¡_8Õ ‘ÙLñÞ¥ž0‹úsšÛ.UŠÛ¤(”«00¤§ëŠS|È̈)%)*1#Y<¢©=¤ Ÿœ*Pì©(úK3¯—áçEíA!-ÉAê’T`¬Ÿ”×6ÅÕ‘v/ÚŒð2#osõˆâ,†ÐJä “—}Œý™¦Ò«q„ä²ÔÈqMŒÑ?Z«V¦Ö!TA[HÙÍé4öW/(Vû–¦ý¢@V§eh4àçô§»ml\9”Ž­)0Sß?|ФÌUÛ=¡Ú×ißûËôî©–Äü•záJ‚’P¸™úDǪO­j6K›b"ÚÍÌEwIhçq¾©A?H Ruã©ñ«.ÙÛZô™”¡Å­À­¶A)ñÐFµS†uBëäG÷¥]tqmž–¶”¨*;:D}'Ö½)G ßr3|ä­v+zZÛc¦×7*pJƒ”ƒþÍ#•3ò£yÀê“ãú1y¥wÓHþT½zF¹ÓÄ×—’RreV´‹Õb-kóh‘ÄåS­H) Ì™VºO*È­ðL§íoZ»4Eº„j÷ èø­Û¦çÜg¤¬%ÌÅ‚ CgÐò¦úñõ…O»iÛ©§¤6´eQTþÓ„·{þ¿*ô9jŒ%ER·È{â‰+#è*7Ú§ßGÆ”„ï$xMxœ ÿ%û—öA£% ´ ³é”15$%G+hDTw\e†TêÔH“¼Ôfñ,G¤¸º•eh…HÌS1 nj‘‡Õ‹¡.Ö€mn¢å²”©&³µ\b®)›¶döR u¨€»ö¥¶ÜJTVL'mêV4¶•‰­6«mÆá!+3®ƒñ­®j4˜ã…$âÚ²êóF›h éãÃBýÕ\žµää}•%KXŽ€ >Y„U¦,à {:Ù}/ÂV‘¦RÝÚ? ‚‚¥²T©p”Iç3?ÛøU%mÛÆ›¸µCL‚GY•IͰP˜"#áZôˆl=YI ¡JÐÄê?\ª­ mÕ¥@‰s*˜"®úw‘.Ù¸­Ò…§Z·½ÃÝÌw©ZHR{Æiߺ«ð¦±é%ë -M²‚´-!Z) qáæg'¯}z3n8Ø¡)¤ö{{ò;¸úRåª2;‘it.6½o¼—l`eâT2íÄj-ѧ.ú3ikeW6è!¤Âg/h9Öm8N›a6ˆu„2 ‰áãsAÉF¥¶nJ2v=:QöK´¤PT °6@«à'ʲ,YÝܼå«î‚õæ%oféPԢݼîþ–´8Î!Š££Ï´õÚ.TË* ÞT„©%'Œ“”è|+4:EÛ½íáHc­qç’T×d)Ñ•yfLé”úéÀ”“h”î/¾±G±U—Ÿ 6 Ô• g¿8F´¥HSjR +3‡U,§|QáËÏan] eÆP”©´&ÊS:î@“âiæm ¶€®Úc$ªIY‰´¯?*&£Øn2ÈíÉc*ZRÚÜ'²„¨«"gXÔÇ»ª¯Ã×Ó'»¸öefá»F-™Oh’Jʈ ¹ßxÐEiжam!ôgqA¨Iœ¦Wž£ááR¬®×‡ûÈZͺÑpó¡:’†ÓÂTjßÓuÜÔ±(/³Ù¤¸]³ S„\%n%Ke9•Ús©¢€&³ª‹ º^#„6ò€QëÒŠ;’„ɹSåW×Xân­ë”Ó-áí»Ö$Õ8øQP¨”>&¨ð4aX{¶÷¡hS¥Ä)³ Œ¡$ú…S"‚ƒU°œe:“cÆc¬S.}b Õþ!V  ù¨XVv Æ²z>4°ËfTé$n<7ãü*õ©,%%ݤ:HR›Nmt;sð5Çg…yE~T›´'"¡I1>ÀþÑU¡è»m£¥¹P'M? `úªV·¶¶ã…Å6* QÆ8ùV‡¢J¶s+Ka+í%,ª„ž3¯}uâšXø²n.æG¦)}]+ÄT–‰O[óÐUW@M(kª²˜•¯éi] ¾ÌAùå GóªÔû:B»)í:sθZû;6±EíÉÌX0¨réä (˜=DV_!¼=¦[_V‘©"u\h@)Û³üê@ÅBr¥ðáÕŠ¤f£Ø²Ç‰*ä‰Nc–.Û­)qò‘`™ŠÎõÏþ•S×pÛŽ$º¤Ïhu`f­/´·þÎßþSü†.ž%û‘T'»ÎŽWÂ=k‹3ÀÒ) B ‰„¤I×jâ[8/^h[­—œHëRSI ×t}› £Öëq¶O^ÂB×ÿ5EÑæ 0LOæââå^ËnÞY’cOU$ÿTÕîhßGmI76jJsæTæPQ#S"kÓ—ÄP‡}ù:~>n•訹p?p㥴#:‰„ì+˜J}© ¢Î™ðšh¡s®•; `9z3©BRIRü4ñ¯5w9ßÙÛ'̸¼ÈR—¨NM<¢hd”Ç^g$$Á÷R;GÏ*¾ÕNö©#¢ ”,(ï=Ú™4‹Ãî[¬¶”¤™Twý}è¦V†Ùÿ­$¥aD,DeI3øW_é 7¶X¥!R¶Êe'Ý’*®ÖÕj} %¥fXÎFƒ‚jÏý!››YR´RB–bA‘']«±‡†bÅݽ²Ú¸~áÆ €¤,¡y€æ5øÓ˜}£w]'°Æ›¸YnÚ]+ZóiÙÝ¥RtºÝo`ýbT’–]L€ xFaâbµØMž…ô ˫ԥΥ´¨+ue Ö§Ê•2¸§JKVh‡NãýMë [D%HÐÀý*ÜcöoY%Ưlzu‘A¯4²·P³d$³þ°‘˜ÀÓ縉~ »‹ç]ÊC)h¨äX** 顈á’IÕY›Rnô7ˆ\"îù÷RPòå“*?¢iˆJÁ*ÈÁ+PTk©ð§ýI²“ï'´ŽÆúo¾Ô&Ç4€í°ÊZe:î|‡}s»nÉ eIP$$,ö3h”ÀÝËZeòi )*iA)“©“?Χ£ [Ê =jT½Áxf*ðiåR™ÀÞJÒêßjÝÔžÉ,)Äè i"±)(nE1Á¹!§mEÎ.œd4'¾ )¥,¨üòzÐT„k§~ÝÕ}tÖ-tÞE7@̧”mÀ¤™µQòxJrõÖùIzÁñ×õ4ÔÖEq+òRä¨d#1}jB€A“î¤F¾tKÎ.Ø}™}ãÙi•¨DÇû©ÅY¤Îg˜Ì™poävÔí\X!Ô]6Ú‰%²3D𙎸}d›%®>ÙYÒ&bóÅ,ÔÅÃXkV-¶“œuÍ®B´Û><ëT‹¹[±fòPæ)r*C}” )g.ð¢vÜr¬?Kð4]=íVw SÅg¬ë—*ugˆÓÆšÃéšY½+»ö„-L±ÕÝÀ^r4î®ùåŽD¨éŒ6ÓïØú4¨©YR`uVw¥ØŠìp婸I_T˜…•yN‚k)Ñî«S¸v1týÍâÊzµ¦\ ${¢8ÿ:¦OHé_Yˆ8ë,´ÛÅ6Í8T HÝF8“•&Ò‡$Bv†š½·ÃÞmÛ¤œ™„)F{dLyUcеÅ1¥â0„¡¹Ê†Ð T£ Wy˜ô¦ºZÂQ’‡šXC ¤#6nRdrªœg¹Ã,-.­n”!!ä"{+Ǻ~áQÇ]ÕèqšéðhÖ’¢dõ‹Sj)ÔûÇY>_•p NˆêÁN­’duW.Ý‹¶×¸{7(} V€QYÊ æóRÔÃ$‹¶&r«²dÏxøÔZiÓ9ÊûÜM¬5‘pnÁ[q«LǸh~UǦÙíz•ØÊ†í¦~º qÃ*sm¢^êµÇ°ŒBóR¬˜·~Õ·‹™Ò¨p  i©Úd×uKMÊóé•DEzŸACòQÅÇlÝ[â–˜û·-:ËŽ:Ì)JJ'ÄžÊnÝ fPÞbr¥0T‰õ[ÑÜ96ØYuo%=Ú˨ p7ßÖµö]]Þ_MóBg!/„λv?Ïqç|ò>> 픉Î@‡u A)ã©Ió5`ÂÿèKå{2Þ±´æ úöjÎÛ¢Krä!üR͆fe/%JÜè†_NêƒìËkº¶Ì•8·•-ÁÌ`í¦ºéߦ¢×q¤U…+‰Ôäê’<ëCÐD‘ Ê–•ÆOwüÕH»K¤-º¨X1¦Sñ#û]Æ´} d³©µ$¥A…(Háš5ûüéA}ElÍt…E]!ÄaпﮃÏnꙋçV?ˆ,Ì{S¼ˆÔh3Ê£?ÔÉ>àë;Jí'z “:ìšî<«NÆŠèWu}çÖ“'êhØ»ìP|ÏçPqKÐl–ÎFƒ ¨d|IŠ˜-õÕ5EŽ[¿·C ˜&Dˆ'—•tühsÈ“îz Vmž‹[3Ý';+KŠq+ϯÓ:n`«J¨»Ä¯Ÿí> X*=S ÿ»[žU›°Çï­ïÔã%ÁØSA9AJvÊ 4ˆÖ+vE¦,ÃI¾=[ëh- J`ëÀо~¤#Å»OÉßPËŽŸþÑtAÕ>¿¹r%:pŸÎ¹ëY¸[]“J·ÎôAPé àÙÀÓN˜bèÁ„¦yë§Æ7ï v”ž)QŸ¾˜,.uHŸî¥\cÖ±Qß¶D>¨`œÃã]Šcw¸»Í¿z´¼¶ÆTö@åPͼ} O!4B×XëR8ñü©ó•Pö -ÙÅ]M•ÑJy@( Léߦ•gŠÜ3ˆ`êè•—TÕãç!NCjjs% ëÚ÷Dú¬U¢AKŠIIЃ&~(±m´„¤¤$FÒ4ªcÊàmJ•ýÅͣ그·KN¶aIQTL³éÂmS¬ºµ]'+!±¢”g4£^ãL fç\±Î(ܲmðÐ[A©êÁ*„ÎúQ œ]™UddâN- QÞÓÂñJÔ s:t[ h\Hò4¾Î’’IÇM±QwÑ¿Sî2Œ©L!\•¤ïÜkfëˆLk!‡ÝÛÚY2–bP®Ñï;ÕåùFWJ’ZY‰ú²7õ¯äržFÏS T`‰7Ël¾ °‡ÆÁ#~sXÜaÅÛ_8“l–‚»A<@5«Â¯zÌMÖÖ’•usãzÏô¡¤+Vb­Uørk'%.G·§Rߎ¿DÅ1°qL%s³”€Lj9š–mYË!ÅO,¿Î˜~É4¦Âç2~>3^ÄÙY­;Ã1 þêþå"êÍ*~ÜäëÝúMizŒ¼ÇB¯q<½^gÕÕ ñ”ïã>••U›xm²m^½e³Ûe¥ñÛX*¾rúÞߣÂmËK Z]K‰™V‘@‰ÿ*e98Ó~J‘|‹ Iœ]e¦Þk²“”À'IŽqÆ*ã]¥âS`‹vÁGÎ2ØýÓ€œÀŽg:§BnHs«POX‚’JvÇÔyÐ'Tå[Ê îÍÔúqdïCÉvý–RKp……õi ýÞU=ÌL¼•´¦ÛPP!@6˜<Å0Œ)–Î`¥k¾»Óè·CpR2‘ËÉI-#%vnl­CEIQ HQ’=¶©X¦2í‹6´¥Õ@luiß»J}m¡¤-Hl•™>÷¼j´¶íÚ›¹¹´JWl“Õ%)P*:ê©?uÔ§É›¤ö+]$¿Ãp¦Ä)˜a jÒUX\«ÆC7M[”ˆëR‚‚¾ý7ñªfpŽºãÚîÛ}÷¨C€ŽãÏõ¥[ñ)d€?Šœ¤“¸½›y4L¸€’€ÓæÓùR¦éÑ P#žAùTTÛ¸`¬«M¡CJ42¤‘™y£º£ÿdIñâ°²¡#ˆ@ü© Û«#ç#` ?Ff—ª$i_ä(_hpk׬ãëX•ã&Z¼y4uBšêxf'˜çIÕêAÍ‹±¸ÿ‡^š¼Ápñíåµ Â对Œ}úWfè¯ÿukÿô:èX&Õy3É3Æ¢ÞtÆð×ñ›gÔÚÈK TÜõš›Ñ%3Ò&îMÃ…4@IHf·Øbƒ-:*‘µM9à›^Lü|_f´xö ÑÛÜ}ð»R–lCåâS ‡cZÜâ8{Øe­¢•t‡ŠQ—2ÊããÆ« î;‰©Ö”–볘°IÞ´]"y aͰ¤¥N«Y}k/ÉžE^ Â0p“^ êÖ\Ve'sB2ăLfXÖG•)Zûµ®[86dzÞk€‘2M1Ö*¸¸½€)ØêN”¥"4¨Áå©Iu|¢Àt'Y&G*ì¤LJ¼½F†¸8£2¡JÀ\„˜4Y#^"‡¬:(ºÃ‰4XA3&EpDŽ;QUÄ&<(Tâ§@šGÄï²°S%D LŸWÛt¦á€¤8¢¶ˆ÷ƒ ÷DúO¥KÆ„ÜfÒ:26¬1½PTó«ãà Šäެs|hô¦Öƒ³iàëHÎ*tß”ë­_t™¤£*@\@WÂ? ò%8§é>Uél^«è¶z§R«–’XŽÞé>"hžãW³nxÚõ±¢>¨ò®ÊG14 ëd¯JCÖ@ÔÔ,àù1‚œ‹Ò $ž2I3ëRC)Ba)Ñ@¤^dWu†;GáM;ã¶û‚G¥plˆE5Ö'ò¡ Xú^”¬Cù xqåIÕ®xA¦Ë«úó4½rÕÄÑ`nªÒ¸‚‡Nt=b€’I<æ8Lþ4X #YÖ¸ˆâ(JÎ]O„m3ë¥8RA! N°yE“¤šX”îc(ñƸ'‘4}+²bh°¦i A驪½HR tì¥kI™cΚ)IxPÂN‡CE!+GÖΑ^»Y'èóM”Ž´€§5žpò¯$°·Ïp•d“ZLÄo1Ö-l³¸Îp\DÂJx“áVÃ$…C“fÇ¥êÉ‚µr‘ÖnSnÊ…–UÌA5ý€_ûâÆ½%ûf.mÕnûiu¥ˆR$Uß²øû­³^ž<¼”-ž.ÚÉ%¤%™%"­=í­%*uÕ'’”H¦Ã×)¯%š_l½H )Áÿ¨kƯɅ9-&VãªgØÒ‡-D&d±×œSø2FиukQ¢a ;úãS—Ñ ¼eV×WØ•½»+Nd¥eKQ×’A{Ȧ¯m®m®”Öe(6c1WÝ­vN£A?ËM+ Km'qJœQ²G¦ØS¨O¿Ý5)7νõÄÒ×R¹Ž­@òƒJmÜ1B‡|S÷ •*cº»¬Q‰Q´ '޵Nþí ˜pn…zSªpñY ŸìùcZz´Yºà% ¬ÇÕLÒ'ŽcÔ®ý“Oò3\5Ö ‘jæhKJQã¦Ôâ¬ßJNkeïQÌ\9OÉ·YH9 Dò4¢ÙýT¡×ZzDeO…pl‘ŸZ4n4Ûà÷ q2¨ÚLVå°BA$šôón†–”¬(Än=*û¤ønÕ»bÂÕ/æJ‚’ÒB„k¸⯋"‚jŽœ1N~CKiŶâJV‚R¤žV碷.+6Ó)K„ ;qÓ–ÿ ²cÃn±F»´C¥g*‰$xe‰áö!l4ÒHÔ64'9åS¦ñ9¦E6n%)Žõ gs€LHRAØŠC ®}š!Äg…(èØó¢’N²upýI£@'²º=Ô˜'h¤öUa)‘ÀNIÛERgS­EªàR8ê¡D›(ÿ˜ãK:§­*”µY¼ (žyÓùÒûÉP›×øÓùÒ…F¦»EC|Ä)£:Èu&= ÃÝ‚@A×´5¥igS¤ùSúŒO“V¨(ZVv„‚uô£69d’‚9…AïÚ…Jî¢ \@R€&‹@4m@Ó®H“¾¿•rmd_Ÿà&iÌëBÌóšÔt>Å›ðúþQ[W–ðR…%+HI˜$(k¨;FÕ¸EIÐÒ¶e}#RâtþT‹a V•yHü+CÒ@ÛŒYâVëm¿hI $¢`ûÑ$kYâû›©døëY’IƒTèQnªÿ µ·+H/;œ´=kŠ‚¥IÅ/\¹Ö}ÐihI¢[«Å"ÒѼ‚@H¬Ï5¿Àpöp[vÚ„…îâòûÇÆ³}è¹Å°Ç/\»S *)l­<÷Ln=m[Ý Ýs4¤¨hT#‡ìÃPW/%ÝÊŸ“~‹†œ0•‚hó'c± EŽŽYí7ª`é<ÉááYÏÛTÜà;$AÜS° “ Ÿ…w ÄSz˜B;é LAŽ3@ö"3Ovm¢=i±¢u ! $M¥IR'vt‘˜Jh€t0|)O*,©Z^½?[áL¨@ÒH<…!*>ê4ð¢À{ÚÖH4Ü:‹)¼è(R›t¡D8PÁ0HH@ ì3¬ iµ°jåa–š\åi¶Á\ÂF¯O£eH¥6‘Cw¶€ú5“4Aä;Ô0A×*£»ZƒˆÝÝÛ© ³`º`ž_•8«t4­ž²ö,œ ¡m ]\"ž)Iô#ÔPXtNÅUÕûªi÷šÎVL4ûëÏz5{†Ûâ‰ãÎ¥Ip¡´È$˜Ôž5ãV=/éÕÆ1t«{yjŵvÅÎóùWsâÕ¾Þ spvˆ d·k«JÖdÉ*$Éæf¬þJuG7Vd÷S½s¿Q_dWM²M¶öLåì«^SH’¡¤Ïq4áhîÄW“ MH!Q;÷M$‰Þ<èʈáHQ3΀ØüiD¤vŠ€çEÕ(L w\«#‡-(Oïß\®ZŸ@•¢gÒ¸6Bµ1ÝEÙÀ‚tåÒG­&±ïO…pC„èh3ƒÆis˜Ì}+”…°½(mZ¨~ú@IÖ|«‰QOf"œê–@í|"€²¹ŒÔPÄ9“±B¢³¨;pŠt![­vHf>”fD5YòJ,®¦ÖÙm0èJŠKét'C:€ íW!}!>”½Pª©¸¦½šN•˜³açRËÌ´ZQí‡J€#Å:Ó66-YØ]Û‘þ°€¦ó+,ÙpG˜#†šš±ê§B£ãEÕé¡3ZŽG@¥Jˆ¡ O­EN•%, À®ê»ÉŽu#$R•$‘ ðš\„uòÒ¥u"sI®,Ž*õ4ç ’ ÷Ò‚74òš¸¶”§‰=ÆŠ¡¶ÀùP¢¨âiàÒu•eV´€h±Üs¥@ƒéa ‘‰ò®êcZ Dq™çC ˜€ :Q&„64’9Ò€NÇ”w@š0„åÚ)€ X)Ú•-¦ ”ÑuiÔ„÷Wdo>€l4'Hõ¤ê‡.úzÄôYPÖAï ½Pú´Ša °©` øW Óz¬Vf§JÃiÍ ’ ÞœM³iWe´ƒÄÅXeDÈò¤êи&±ƒc’f“«þèj`hhcIÒ Rß!ë@¨d•%#}{è“·|i\Üðó¢L¥&”txP„Ìæ ŽêP;S“aÈ×.Øo@HÒ„Ìsï®Rbc¯*LÀ T=h½ '~îµÉ©Ó—1ú$ŠTƒ´Å ‚ë\uã"­”f9P„é3é­,I¦˜sHžþtš$IÚk‰qÞ‹€ê|5®˜Ü&8®%^t¤²ƒÎhb €uï®H÷ç;QÐË"x@®ÊxùÅ’÷´ñ¥™N©“ÌQAä#™Öº5Ô$ëα·-hPic]@•qI>èˆJ¸§}µ¤S· å>ô…( à@üh 8’LlxøWA˜™îÚŠÔÄêB…À  !0LåA™_YjŒ¥Pt™áC•_PP9½7Á^ÕÔЀ?¼ô§~®®¡ˆU{¾pã]]@1µ{ôâ=ãà+«¨§Ýnž>ï•uu1=ãúáAü뫨c?¼ò¢_ï•uu'ÜoÞòü)U¿õk«©>àÛΘ_¾|Muu/!à}ï•"ýÑ]]ZáãHßîüë«©1¡Þ^&…Ï{Ëð®®¡÷ANæ¸ðñ®®¤Ä*xªSºº’.{þ”œMuu1‡Ëú&¹;z~5ÕÔÆ/Ò4'ex×WP ‘Buu÷>4Š÷Súá]]HlûÞ”ƒÞUuuCÀk÷6¯vºº÷îÓL×WP&ÿÙbygfoot-2.3.2/support_files/mmedia/pics/match3.jpg0000644000175000017500000006417011225071373021125 0ustar eliaseliasÿØÿàJFIFHHÿá¨ExifII*  ’ž¤ª²(1 º2Äi‡ب NIKONE4100,,E4100v1.02007:04:21 15:55:24#š‚‚‚Š"ˆ'ˆ20220’¦‘‘º’ Â’Ê’’ ’ ’Ò|’)Ú†’} 0100  ð ° Š££¤¤¤¤‚¤#¤¤¤ ¤ ¤ ¤ € 8 2007:04:21 15:55:242007:04:21 15:55:24  : NikonII*^d kx† Ž–î(€‹‚ ™…¦†®ˆ¶”•Æ›œËžß¨é¬ ý­ ® COLORNORMALAUTO AUTO AF-S NORMAL èAUTO a1Ý)óæV‚ Dd¿29}#àK7adó""""ÿñÿñÿðÿíÿÿ""""æªöd$`\R  ¿i½f5ÇèLjˆíÞ <í¡å®³’`xp kUä3wwww3  d“O×< ! Ð/8Z# N$  2B51NORMAL OFF dd OFF ASCII dR980100öþ(š,,ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ì@§Š@)ê+Ô<ñÊ*UÕ*ŠWÊ*eâ˜H¢SS)¨€©!’ƒNÔ«RÇrE§ŠŒTŠ*XÉ5(¨…H+6RNÑNŠ)ÂS…K(QN‚œ)¢–“êE-R¢–Šó혧§QR«¶ç-†ªTŠ´¡iÀS¸¬8 ‘E4SÀ¤1¤QMQR WÀSÀ¤¤¥±Š¢ž   •a@©4 x7)!E< @)⥲ìS€ S…MÇ`Ó±@§R¸ÒRÔfâp4aÉÀRÃ'ð©qEÆ´RÒ E-Ç €zUµAé¶0;>e÷«â¢¸µ†WÚ5ß¼|Øçó®¦ßC™"KK…¹BȬ¸8!†*âœõñÀvƒ×’jÂÑp°¡AéO NŒ.~lÔÃËÀàÔ¹–ä@Tj`St”¹ÇÈ4 P)@¥Ì x€SÀ¤Ø$(ð)§ ›– SÀ¤áI±Š)E § ›!EEyÜÚ)ÕçÒlÑ¢…œ>Fäo˜@;×­x†ëSÕá\1€±•žyÉÍOw=ö­áèa`êcÉó‰'×ó©æè;ë—ö‡œ>Y îP[±÷5èW‹ÝÜ6ò€$ @sœã šókl[ÍÜO!håÕI$ägêjkÙhºƒ^Êc£d/ëÎy©Q{¡6r °U%ˆu&¼3SøÙ#å-fUö·‹qüÛŠáµ_‰×÷ìw,Ó{ÜLHÿ¾k[ ý‘ôÔ¾#Ñ¡¤šª°ê<ÐqE|Žþ1ÕÉYbAè¨1úÑFv{´>-Ó߉VhûI‘ùŠÒÖ÷E-´«"yª ¡Íy~,Ñßé¨>¨ÃúV…¯Š,cpÐê1)¿Ž~†¥T}Jp]^V©«Í›Æ·I亅Î8 ÍfÞüGÔ’ÝÚÜ*œ  ×'ëþý¢#Eïê¾.ðÝÛ\Ù¹ŸM’®»³û-ƒÇÖ¸CñCÄn1öœ«ñUêšOÄM7WÓ™ž'Š`6ÉGê+ÆÕiì%ŠæLB9Ó5鉦ZnhÄ0®ÆÜ†<’:ñNû,0µS¸ceölýO~ÕŸ3ìné%ÔóÙï,ZDŠQp†UHÚÄu=i«uf"!ñSžÅv×:%œ÷Ïq%¥³© P+ƒß8'üŠÏÔ´ ‹Óbáþê®qîžçëJUaÙ„¬º˜v2£i!Ž@¬8iÎHã·éUÚÈòwô>‡©®ž hÙ¦E……AçÜf¥þÅf¶xžàÞ7Ù‚üj>³Ekp¼WS’Kv#1àÔ‚È)ÉL'bÝýë«@EdpíÚ?+h”§}û³òôÇÓ×Þ­Q_kó4NLYƒtUçâ›öM“íe=ÿ ì[C¶.s,ÛHÀ@ÃÒý…A$¤ç-ÈçÛ¥/®QîÑ9dÓYÐ0 ãŒtÏúÓ³¤Û±.ÓÏïWük¬þÈ·Yˆù“3Ò‡Òíd,ªÄ¯sœ6}ýhXºZ•x[s{-¡†ÖÜ™'=?É [1°ÛŽNØÍvgK¶·+a‰?x‘Í*évK)‘m”c‚Hüª~½KÌ—(ô8•€íÆ7z´Å‡bÜ“åüëµþËӤߤ®¹ç’{õõâŸý•`£þ=“®~c“ŸÆ“ÇS]¹ÑÅ´cæÚ8t¨ ¬ya’£ Q]Ûé–M’m“ž¤ UwÒ-O(HäÇ,}7ч1ÇŸ=™Çå$â®%Õü6mD;9eêkqü?²y”qœTÛÂØæ;’>«ŠkIî]ŽrHe.Q–NH¨Ù@õ×BÞºR K`äsQË£jBS'–ã%z}+UŠ¢ú‹˜ÄD.ÅFÀ@ÈùþF‘¢vû‹œcúÕét­@H\Û¾Oe@GéT¦Óîñº’1Êž+EZ›Ù˜‡åç1€~´R­³ ù€³zš)óÄ.P7LsÏ\ôëL2–'<þ5©=üH§mÀù~€ñ¯ U'/‰™ÝëJ Çü©£ýŸRGøÒœYÓéšÎ솄ý(2žÂ£ß¸áY@ö4 Ée?ÿZ•Àx·å…öð¼ŸZk>xŸÂœ‰ÆOò?áS{»!RSæ9ÏÖš®Å·ÓškžqÏýóNH÷6Ç©KÞK°É­]5f@1s ï_ö”u^õ냌Öm¼ÒéÚ„RççF÷õ­[ò-nó’3þÉÿ8®ì]4šœv{šN6Õ Výö »š\ÄÜÇ#þçÿ^«Í!&9ÝZ¡yÙOTö<…sÊ*)hAu"·3îbâVw#Ó­YÉÚY1èPñU˜—;² \úÕ“q1PV^qÓšvO[_xô&™R“¬=AΫµÄ ŒííQ“™Oûæ¢{¹‚åŽGpj­Ü«%Œã-»{RV¾ˆ46 ‚9׈åû»ÿúÕ#Z•S²'ý½ßЊ̜ydgOJ³æ±m¸bÞ€Ôó%£Cò21W‚0ð ýM7yc´F«ŸlZlŽ çv;µ"IûÅåXsܞƈ»»[òÄv#òªèûçš2˜‘Ï®FjG‘rUüU‰‡Û®@-ÈC÷~µ– YÙþ?•|ýƒcýÑEN 3Ìfþ&Ú:võ_âûàTm3ã‹….Çýx>¼Ö–ìI`Üç€dÿ¾E îÇŸ;ËSÈ"kxü¹ãù ‚r3Ȫï Oùy檥'i‹[’ù›GéQ´®Gü´Ç¹¨Œ™83~µv=.WÔÖÂY|©xÜO!AÏƳQ”Ý’M‘F²7>\‡þR²È«“ ˜÷zŠæâ"8çq|(õõ'ÜÖSß[Ép`ɸyöëZû+-¢ÞÆ®É Ï–©cFÚI¬E¸¶whÖ]Ì¿xg‘W#h<±ÃÎ4µÔDäéeË&>c€ªsZPH/ôEå|ËVê{£þu•¬[Åy§I!Þ>e>â ðŽ ªë Çä`a{ÿçÒ½JkÚQägTb¥HÔéczq2òû/R0V3/àµÄ2À%‰¢;’e:òGõ¥ýæÕÌ@Ðå³åIÿZœö"dy—#±¬C.#¤|c°¦¾ð§"1ìXEÂH˜Ç$lŠœ6pAäV|j"êÊ‘êXœȬûÈâ’Þg€–\2°î¶:TûØ©ùÕG½d^Þ‹˜™J¸¸ýÔŠv?Q[A)û¯sXÂ-ZåëgÛGa?(êjòÝ©fŒ(WséYð<_g‡÷¬p«Ñ}¾µŸ$³ÜÜ«Ã&co›×ÿ­ŠTââÜ»’lÒ˜³•cZŽ6™dçhÀ8À¨g9òÙsÓs劎;Èâ%›Ëb ’ä‘ô¦¯{Y{™ ÈáUV`×ófb2‰ÓŽíV´ti’7ÈŽG&¡Ž{95 Ú f‘LiŒ!<å³ý)ºM^àH㋇üè­T…ã&KIâ9ÀP„qëÒŠ ”¢7QÒíDfþSnëæ„ ÊŒéê}k>×ìÓÈ#B#–8ªX¥Ýþ‹y L-BטCð}ן_𥶒ÃOÑæ‹SŸ}à Û²ðëÎ~eè3ƒþ5ØððRº7ö)O]‘r{ëH虜u lt˜qÁõã­T±¹³ºñÓäBX&õ<“* ­CB—Å7EA´Èû<{qÎA úóÆk4Ëi§x²àÈ?q¤¨É$r{ôÅS§i%vW³M.c®û-¡7n™H­Ì€¼2§úž)müE'“̫忒þyEpEb9ëýÚεÔm¥´Ô'2ˆ£º™äxŠåÔ‘Ðw×Ò¨iMm¨[Å{½-å%‘ü²Cýx*#MBö.a™aõ+2Ÿ4,U‡SÅsñÝ}šw¸*ÈÚªyÀàdþ_­nëz5懭ÛéÃl¶÷+æ’[œž¸?tŽŸZæeWm>úTÞ$ˆ®ò:mÎ:ýqW i|̽Ÿ³o©ÕY­•¥¤×ÀòY‡œ2¼•2^Þùуmå«à†Úǃé\î‹w¶ßkr‘µ¹ 6æf2¯ðõÏOåô«z†§,7–oHf˜H±©ÜàãÛŽâ£Ø»ê\ãÚ{Ó˩ڂ!þáT![5ˈæÒ5™"¼_³Èü”꣸äVŒ7SÜ îGƒÝ厙_~ÿs×ð%¬9Bç-ÔJÖœyC“‘i³:í~êgµ²»…3ad±»oÓ¯cøS´ˆ.5Is2¬fB­p2ÀvÀçž«šÑ5t…Ö ‘ºÛ”vŸoJô(n4k5±¼€¦H¬žfpg=ºŸ›ëÅ‚oRaII«w:uޣ⠭7M6ÖïÆdv ¨ÚnÔýr9<8±Yxcº1•Q7™7`†àþ}éÚý³Äz†¯,› ™Ê¬e¸Æ1ó~¬x5{Ë¿-‹´Ñ\¬â8XYO'·Z^Î)]’àÑjí.<¹6´R•*a…K ü»zâ³­ñ©j³G-쪶±³Gòfî€:qŸÊ¬M ìšë½åã·ÚIÝpP†ÎxЊ´ž›Hk«Ëkàò ΀©ÜW¿9ûØ$Õ(Ç[(%k”RâÉCÛ‰¯¼èT|­0P@ôùk9îã”f%2Ã6‘ä'-ÛœƒY…ì²ê*¹Ë6A\óùóWLPOª!ÙQ°ÙaÎìrjÔ3²ÖÆÀò¦—döÊð·ï‹7ú“íSÞÙêfÍTiñ[ù¤•‘­Âü£øÆHúzV5ĉa~ˆ£ÌyS–=;õ¥Ö|E©ÞÍJåbd òŽ ¥Ê¯¡¢åKToÉ6¥§N^Et€Æf¶£v'Ž£ ÕÕn`w‚í.oB$-°{~U®§x¤Xj æÂîØ1Á£Ú­\ø‚ßF¼‚öÂv–E$mtåHî)Æ!)[A¶v77v©5¸ŠXÛøœí?LQRÿÂ_ö©fžX"ܰŒ"¹äöõÍ|««?‘n¼k§»;{X÷1<Ÿ“½s~*f>$“$ðØöɢЗñ}æ•vûŠýíïóÖ¥ÓÀ“U„8Ý™sÎy¢ŠFh³¥»–BÄ¡“sÇS]fœí6˜ÞkòÛ ¸çhÛÐzQEc>¦ôöEÿˆRÉ-­ÂÉ#8‹o–çf[œzWcÿ \zÛŸéEKbj|Oæsöq‡bW#ñ­½uDZä`"o•FÞ4QZ½ÌÂ]Ѥ’;»fGeb$ãXúúé¿Þ¢ŠÎ?´¾fô"º½(–Ð¥ÜIÙ/ËŸáàôô¢Š¹CãEßÿÈ2ãþºUk Æ"€"°aÔsëEžÁö¾cgžf׉id%”ç,yâºfbZÔHaÏ=x¢ŠQÜ©í÷žW'ü}'ûßÖµ"Õ%Ç1¢ŠÕìaÑ6¨[VnØyïÖ´ôX!—G¼i"Ga¸‚Ê QEgÐÑîË>0Ž8£Ñ|´TÍ´díÏ&¸«¾@úš(ª‡Â…Wâ'„b1Ž(¢ŠfgÿÙÿÛC  !"$"$ÿÛCÿÀY"ÿÄ ÿÄT !1AQa"q‘2¡±ÁÑ#BR‚áð3br’$4CTUc”²Òñ%Sƒ“¢³Â&Vdsu„¥ÔÿÄÿÄ5!1A2Q"q‘3Ba¡Ñ#±Ááðñ4r‚ÿÚ ?ôÀ(Ö”oJ}"g„ÂZ!B(ÔS†´âР§TT¶ŠqhTS¨) $úSj)ŤÂÇTÓŠi¥§‘I)§TÓ N)©©£Êšpš bœZiiդƘj7§¦ÖŒVl» %&…EІu :´ÚàS€Öl´¢Í¢‹±{è…  (…b¥”…BRŠRŠAD)¢–RÐ4(¤¥%D)-!KŠáKH¥®Å.)á”KEËD½ë<¶"ŠuE"ŠqE!PSª(SÈ*@%à‹N(¤1TQ¨®QN(¥`*Š5®QF+(Ö¸ %X´kH«N©l(%§Š0*[-)Å )Ũla¨§hÖ²e Å QN ’BˆR !H´(¢€QJÊBŠ!H(…IBŠ!H(…M€¢ˆPŠ!HhQKŠáD)€Q áKHtu(®´€êá]\) Zêêêñ~JP´ù\fkØR<×ѪQ„ÅŠ«&ŽT§‘\(ÅrŠqE"ŠpRl(UÓŠ(@£QHi(Ö„ qE E8¢…E8´›´b„QR0–Œ E⊖ÆrŠp @(ÔT6:E8¢…E›e$QŠF*JBŠ!H¬Ñ!EÊ(À-•GD(¢-Žˆ Z MŽˆ 1Š-¼)YJ#`Q ,Wb‹)k±KEÔµÔ´€LR×WR©q]ŠZ £Æ”‘O#xÒ2Ò¸ õí3ÍݤyÒ¨Í6¢œPh†P„wR®|ièÛ»[ LiEð@kŒDyÑ­ƒQ­p\Qªæ‹ ¢œQH«NSaG-8´Š(ÔR±Š¢œQH¢EN¢’ 0)UsN*Ô9Š(Ôࢌ ‡!¤rŠ5‚Œ –Æ QH©²Ò 1H(€¥e¤(£"ˆT¶PBŠ„Q †RЊ!@ÐBˆ E“H´-s2ª–f  d’pªî"šH4y¦ŽFŒ¡RYN22:¿Ï˜ë^q¨Ao©hó]êhòƒ‚$e™ÊsÂ]×Û“ ço§Šü†ztZ®™-ÚÙŨZÉpÙÄI*–Û9Ø÷•MÅy÷ èú…¶·os ½Ø±3óJ1ÊÝ®=†“c†\û|+ÐiX]J)h°¡¥®®¢ÇGRâRüiXÏR{èù{ŧ½k<Ê<ï‹'J=b(Y–>Rg1œû ;Ïy÷TÝ:MRßH·™5)eæçæv¸.I {¹döp½Iu¸eWR®¡”÷jŸFÑtùt{Aqkº¡ ÁyHRI ‘Ü3Ò°ÐÓtÍT•nYh’M=‚½ÃsIÌÀœâGuXLÚ[Åm†*ƒ ,OÖjBŠÙ:Fm[ 3N®sÖ…iÅÔ¹…Æh•qRÝ;0y÷§ûy@ξ±y’4ð[!D©‘")ÙAó4öPìÊ1Iæß¬>¬‚£Êœ zÓòËeF+—ÜfŸ‰bðèl-­¸ü)yh×bÒ ÚŒRD+ E‚ŒTØ$(¢ 0*l´…`R )Yi ¢ˆ áD)YTp@R !RØ ”¢•… -p¥•”´¢ Z,ª:DIc1ÈŠèv*à ÕOÂÁúº*‹)XÛp„ŽžáVâ¢ëvúEäÏinéóR(\ã`è¬7 2(껇&õžÓ®3žÖÖ'Ͻ«jD¸RÐ×PPUÕÕÔ¬´”¹¢ÇG‘-€Q¨¯KQçЪ*6‚y´{Fñ ˜Aá­ô3þ¨RÕ¸VÅâŠj)ØPJ)Å¡Z5-އPŸphSÑ㡱¤±§TŸAÊFÛRQv]4ѪøÐ)§"“c TÑòЫŸ*q_Æ¥¶ qD‹˜xW}„⎈ à(€¢Æ¢(£*(ÅM” Q AD(²¨QD)¤ØèQJ+…(¥aBŠ!H)EKcHQEH -+*Ž¥¤Tì(nyá·@óH¨ ÀÉêk1¯ñŽ›ªGbÅ_´\’z¶wÎ:gåT^’xÂçLº¼Òç±QcÙ†%°F'cÔglŒ×„ñ7ÞkG>™aËk€œÜÜ퓜“¾ÝNww]ñÉ‘¥±qŽûŸ@z5ã )4=7K¹áx¡ŽUð¸Ï—Ouz |e«ÞÚêqKk¬‰²+BŽ™Û§}zî—ÇÞØ>ä=­ÜqÁÄã¶ß!·;g`T¬ÞóLZ6Lö:êÎðf»« [$¦W·PÈê:{³·wŸv+EZ§aBŠZ]ñLt-uw“4 òu£ƒ¢»un!P¸g#A²ç šÕ†Ft2?ì…-[‹K,֜ڃN(§¨4°ÖœZE' ÒÓª)µkPØèu}ôcÚÑ­+u4ÚÓ‚“ePBŒP 1JÅA 1@(Å+ˆBŒPD +(ÔS`уçSe!À)@ß7‰Åqžúr ÷°YHx !Q ýŠý+Ûu÷Ê¿6um-N¥fœëøÒ°Ø°¥XºîŠAÿ­¬Fn}ôq'Áy5½8ë‹”'嚸¢±÷žxr4‘mïá’UR@' O†i«ïI|5kbgq0Çæa^bO‘éS© ÛRŠÅÁé+†f¹‘ ƒ$ÉmÍñÛj«¼ôhºQq:=ßhp“ŽQâqãF¡ì[q×]hz„0Àö«Œ´!ɳ¶pþ5†ý#þS¸¶†K(ó9åQ™s€0^¸Æãaž•á®×WÜCs¨ßY¼êÏφp;BNHêq-¶>5?BöZ•­õ’I Ú"Çírºìp.À{>ß¿ÃÎwiHôŸN×–«%”·Isk £Ë ì²rQ‰Ûga’|6¯›P°¼K¤:\ -˜€›&ûrã-¿Sžü ôíoK½Ôímìõ(^H#W–^Í=©ç œ“žð@ÈØwf¼íôŸÉš§¬ß¤ë÷ $o,.S, C˜}ÆÛùw·&÷ ¢O ]ÛKªÂÂêò+)­Î;8rò+4™\ Áåß#¯…'=ýÄyiäõu6üí€àH®øÇ‰#ÝÒžÓ5‹=+Œ¡ mu`Ë"2F˜ä=U”6Ý]Ç\ŒußxjsH\¨æ‰E)$&—»Ë=ûf®X¥. ÖHǹïþ‰”ZÙCåÊ=Ìѫ¡B3ƒ·Q¿ZÜê…†Ÿm{oiëÍ(Aó&¾EÔý)]i¨c—ŠaÓýžFKy>'»Ûï=õÖ}*h9K}ª\Óå$ŸysŸª¶†=*›#žö>³écƒ4îeŠú]BAú6‘Þ8_®±Z×§+¶Êhú0øIw)sýÕÇûÕò©éZýË-†™oèW.~¬VgRã~'¾È“T–%?£ãâ»ýu^ê ›>¤â_JQw>£Ä­cý]m×'âküý²ÿæÿÿ¢⯛..&žBóÌò¹êÎÅ×AŸ1KZ ¾Yú8 ÍxŸqe¡o#¸Çs’¿ïsÕÍ—¤}b,-Þ&©Œ·?ûh]DYo =Xª¿„Û<=fsþOï5 …8–ˈ-žKt–b IˆTv@Èó§¸5¿øvÔxùkwº2jÊiÅjަœSJÀ’­^qÇž”møO^ŸM½kH9] Êùe#¨ÇQœ¼ z«)éK€´~?áöÓõÝF ´»UËÂßz²½þD›ì ¿”:jVßêf?e4ÿÊL—Ž™Ëœ{6s“ö×Î|èËŒø:YŸTÑn}R7*/!^ÒÀ<ÃèçÁ°|«’J¤ƒœwäVz™zõ«ÿ(<ç“R¶ý›)>ú'ò‹¶åÔölÇß_+«!bìÀoœc­8“@ÌkŒ÷þêZ˜h>œŸùG,rü¡y±ÆVÊ,F“ùH·uö¦}Öp ù¶âh_(Uüš–ö~*Éb3Ÿ¡–æû1õÒÔÃB>Šå9V+s«7(Î;(F~F¢?òŒ»o£.¬mÙ^ ÷ ÈaY-ùB’!É>åÎ~ªa.@8(£T)0Ð{“ùCê=ß•Ïÿ·°Sü õbÄÕÎúI‡Ý^(u79º|±PvaØã É9…3ÌxÝTìæ…'Ü#ØöÉ=?ë'¤:©÷ê’ÃLIéß[eÕ¯{›Ps÷W’ÇpÍnñöØ^ª‹ôO¿$cäh<÷˜´DõuôÓÄOÉ,‚Øõ‡c€2OÀ~ ý2kŽ›+m¿ZG?}yÂÞ,%™f0ú0÷þê-×låå,KnI9'ßF§cÑÑ_Òæ¾ÿGOÓ¾*çÿ}2}*q+¶¦œžè›þ*ÀzÓci¥C%ÆyJ³’:óoßNØhG ÜúLâÔr ½¼Yè6øšhzIâ÷‰¥í,ÑU‚œÆ¼Ù 㜑±Ül6ÏQXºŽ¬=sHnŸ%säM+cQtoeô‘ÅË4K͸>®0GÊšøÊRU/á]³“ cí†õ™ÖÉÈ®3ÊÃv ¾ýh¶Q´ÿ¤-'}S>è#ûiñƒÆ\j¸®{0~XÍb»y×>&¸\8Pžw¢Øi^†ÍøÏŠD¬¿—&“ €É°>c`q糧ã.+€eµiÀÇU•[ì5Šçrp×W…­Ù]»¸€ŒˆX*7õ/BÞߌ¸¦âhãõò´’€3î5èYëv‘¬ÚÇßÀä¥Ñ´Æ¼òÛEÒÌØ’òõpþË»Œk®Ç=ßµµá¾»TšóUºiŸÊûž½ç§4Òä—ãcÒ.½/A§Ø­œ¼_wyÈ1˜ý¹ß"þuŒÕý-Ú»™-të›™ùK™@?y?:[ŸGúGdd±’öÎUnU+(<ùߡ߻ǼUÆ›ü5Î HeÒu˜ ³¯0K‹~Í@ØYIé‘ÝßﬣÕÁº[ÀÛwfQô›Ä—9íkf½ÝœY?6Ífõ-XÔ2/µK©”Ÿ¢e<¿.•»Õ}ñnÅ÷|3=ΖבÇ,“$ÏÙ|òJ‚zê·½ô¨iúö§{Ä¥ícw졘1Û˜‘޽qZ¼¬uGŒ–çzr0GQÐæ¤5·-Çd 9·?v[ ý ÈBFǾ‘Din®gP’Í,€tæ%±ó¦¹$=ƈG;Fl½þÐÛ! ysŸy¡l‹o# ì3çR»;?õßUCYTµ¬ÍáõP}6.g›™qÔrŸÂœK˜[q*yÅ|õ¤>0‹èësŸ'Uo´±²ô•Å%È’æÚbÜÖqõ-aáÈÛÄG¿[]´r,ÌVE>Ë£`ˆ­‘ÅÚ¦™f–±%¼±.y{E<ß0FkæØ})k@ækM2Oû‚?ÝaWº7¤[«¹#It‹HÄ™*Ñ;Œnp[Ë­4§Ü_'Ћéý\¶´\ô0?ïPYzSk–E£ög©?xf¥Ç¶p/e=¼wnhÖìãäÉYëþ%±ºeK µò„[¥(r{÷=ù¡K#лñÄþ™n´++w/k=Äw¥‡ic$å3É€zùW«pŸèM¥Û_é:Œ2¤ë´e€‘½Y{˜x}Õñ^¬Ú\Ú{[Å{n{md ómž|Ããõp£¼Ô~ â;Í[†[‰$`%Š#’ãÄÖð­uJ1õ3tϹ8’xÁS´F1ÞZ3®sëõ¯‡½:iÂÇÒž³oAüר]ñçe¦O}“¨Ä޲) Ì®­‚ÿó¯âíbN$×.µyùZiåæbÛ§§_1ŠŒYV[Û(Ó3yNs°Ú‡måVM.æPê=¬Ë…äië» óÚH^%b_¤[åÒ´½è¢£ œ cÇÁ[Û­I0ȭʸÁÝAÆiÅ·u*ý›aW$†ÐBïâcî¥NÄ;÷#TC(gðg¦7Í:^-ŽaœgsK†ÎHñ«‰mV8)!èwÆìÙóñQY0¨@ÏR)W>'Ï*€sÊXŒ÷dÔ×·ˆ`F`ÁéÔš2‘ ä4] 3Óøò (¬D-’=¬xWr¹8òï«d¾).Ƨ»¯ÕNµ´~²Q¤R3Ÿay†?²˜èªìØò+„28' ·_*´h»(Ü#“‚s‘Óøëñ§ y$Õ#“è¿&ØÎÉÛ¼PR2× TRØä¯.3ç‘S¥Û*9 g•Ï&07Áû)RÙŠ©(›!Æ|7û¨H®B”ö²z¹¦æŽXÎ$VF«ˆ!1;†ÙÁè¾z)â˜)`êÐÈ9Û¯OªQQ± Lu­O Qe)»KÎ0…vÇ\ ¢IùîÅ‚òs3s£=qÓÄUž™j± ™¥,C¨]¼²|û¨¡QnÐ,Œd2–è'}†=ÿÆ)ø‡‰”;sv“7Lž_ÒðÅC[«hR0¦`y‰ 70ÎÝ{ªßHÖâ´†FŠ;WIÒG’¬wØŒ~4#Gi}Ú”I]Ÿ“”Eƒ²y úW¢pßpõî|]Þ+E’'·(!ºŸ"Àþȯ5H¤z‹1dR{97&FsÔïßõwÔ-CŒ"¶Š[&e—®o¢ÛÏ»5ã,¼]QGF¤ãF«MÔ ƒŒ¯îµ+ö³HÒI9L±–F;äm–8Ãj®ô›ébÍ4ù´]=̲)[™¦Œx$ÚÜøü½ÞGÄzÛê×Áåg@Ù[è®ço>½|ê­”³òò–>ìm·Õšõa©Ë“*ÞÀžòí›úI1×fÀøTw’I i]™»‰$äT®Ìò‚Ü€I•ð1Óå½D¯:aJ¶Ê¾Ð=ßX­(f`sÐg­#ÂY¹vÇp©†Ù•pOyÇpÇÀR´,œŒ /(è:°î84PŒSJŽQ ìà.j/jÞ3VS’#ÛU]É ßNö_úJOüN‚ë’§Õo¾1ßS¸vÊKU vÈ޽ǂuºí%…#‰FàÈ39Æzãqߟ—YÚoÜÚjV·‹IJ#s(l‚Ÿ‡~kÞ ››„“²…ùÇ!ÜûcŸd‡Z»áÝ.Þ (¤¿·u8ËìrrO.|;þ"ˆ½DÂ.|õ ©u=.(#¶ºŽV¸=¬³?ô‰Ê¡F3‚­¹'9LÚ]Ìå@hIÏ"uÙðÆG×Z+ˆ-Úig–|"/±ÚÈ'œû9$çlïåßR´½#Ö&žæÎne·Œ±ˆ2¸l@`:<|êã® *‘6AfYÇjÑ+–‡ÍÐc~úá•íRBpÇeêFÙïï«( æ¶ŠÝä-)vV,Iååe;m œm,¢·™L诈ÜHÁÆ:àïóêuÝK¹QÙ@‰ÂÆí1p{)ŽG(èqÜ>£Kmk" =Œl €HÜ’Nã¦Ä}Õw£#0}=¥réhûH éí9²Aº£ê­,r*J;+ÉÜ1“ÊzìË×§}Üt‘ ±>¹.-¹y$4} ¾v>¯J$9•;Œ» òÈcœc~»gåßW) vÆY§’p²”Â# ä’3¶øîÇ},Ò[Oqm$Äd P(“”#~§6Ç—JK3óD±Ü¬eyAå.Ì«ì†ßÎÞ}ÝÆ§[Y™9…åé± 1í1·V½•ÍÜ«s9ŠV^UyHÉʳݳû›µ‚("ÔGUöK{GÚð>ôRº—VW[éáíšxåpݰÀö˜x÷ùP?ø,Êܲ¤…sÌÃÚVês‘öV–Öõ-ìmá‚4*·dƒä/0AÎø[¡ïî©q5íÔ-e ôÑÜÈÊ!ÉÌrWËaî=Æ¡M.+ŽªØÇK–Nb‘dž$HGÒn^Ÿ1G ”å–뙕yKòCs¿/PsŒøtó­%ÍÿvÒÛGus"¡çä*Æ`1HfÁó‡Q±3ëb×P´»[‰í£,ÒFÅÙŒJ¡€ÎIƒæ:ÕÜjٚÒSQKvef…}V)ÕŽPörá0\ä:~ÞÑ$¹eÓPܬJó›±é±÷}÷úŽ—<ö–¶l’ijà#¼–aÍ‘Ìûà{Ï•5¨éº¥¬¼š-Ì4"•æ\Ž`«¿Lã#¿¿½\jÅ,rƒjHÎö,ð2Ãt¹ r‡w_#O¥g0íÈ<¼±ç®HÛuÞ´Z¦{ÙO)@ê¨ïžNôSÏ’q¾ã¯4Ú¬–O;éÑúºÄŸ›[¤í$Êþ§77Q¸ÆÛf†Ò{±v37hh²FXv‹Ù\‘¸üêAãšOÍ8G0 áˆ#¯~ÇcViš¼ˆZ=â&f ¨À”U$å¹³Ÿ °{éëžÖ¥—ÚÎdGhanòF3޽…dú¬)o%õ%4Ÿ%d‘„¶TI”‚ǵqÍôrÙó¦弉{)$sƒ$|:mÖ´|)«³Çh„TuyvÁ# ã`=3w ê‡Ø–0VEäfH%nÌØõßqŸ†Ô×Uñ%õDkTfç‰RàˆÜá˜ö‹$¨¤‡}’Ù=០ƒƒ¿+ú‘¾þ~Õ`4ŽÁ%ÞMn² ʵ«1p@$íïó¦m´›Y¯¬sMêä=Êv~À^l {ö柎­ÕÕ•óȧr°lIôÆGy;S~­s,Fê(äŠÓœÎÌw#lc¯O²­d:ta$€I’‚†'ÝÝ>¾”š”«i¥¢…U·åi0y‹“’pÍ%4×!® îJ×5ëéaVF`‹ .1Ú($Ž gǮ՜…šâc$+¸`ÆAë¶*Øêè]Lšk±Ë0^›øy ;ÍE.Ú(Ť°¯)<ÑL¼Ùó<¿UkÃ#Äo±N›Ü8™ãç“$dtñ;wÓˆêò4“*ä•A°Ù$uÏ_¶¥Ú°õĶgktfÙåòªã¼ô*-VSH×RšYfBÌ‘{ó¾Ûc¨û*Òî‡eN ŠhùÙ¹(ÁÀ;tñð§a®¥™Q‚ò¯9 œ6ðß;Õ’X]*)Y‰Ko– rì|}õ yîZÿóÚ„,ÈÁH²3ÐOªø:àK Jn#†Ú8\aœþÏuE¸B„J›µl©;·§Lû±V7=´Ø~Iœ³ lIêØøu¨ ªK$_â–æ8ÈϲIØ͹ëU*õþCBcX›³‘‰'*06ÏΟæ_óH>Uæú;’eìà[†|rˆT~NM=Çù€ÿg_£nÃj¢ïW–ÂÞòyÕfy–>ÎHÝdvWöc\²Äžnƒ8ÎùwVa§iRëKê÷°zé··cWP9:Œ}åò:õĶr^µËzį ½½›´¥{HÁqŒv#ï¡7±öñËØÀÒFÚuç,ÍÕžw÷×›<Ý4+VEò¶vÿIJ–ýƒ–ÓOEyâ¼iîa^c´y`» da 'b9†WiÏ4·½´ÚeÊZ°2$ܽ¤|€OCÑI#ô±Ü¦âU*èJ²‚ vÏ^óL¼¥€W”7€ÉlW,½¥ÓÁÚ·ôF3ëÜ£J+ýýˆš6«iBùF°…®™e3<„·3+)8vfÉÎÙÛzgHºÕàåÕ5æ¸PK೎5 v'$ þu01#l³÷PvŠúAŸêŒýuÏ?lKðÇëþ£š]Dä’fCù…oq?®]\„» œ¯XƒËqËÝÔ{ó!¸9]ÒMJìÄ,Ç—Ú`}œŒwÝÝþU©-Ì:ž]¾ê ËúçÜŠqËÚ]EÞ£?^¥6™ÃZm–-”ý­ìS12vÒÎÛ}ƒ¾Ôš éšl“9Io»PT‰¤|¶ÙR¹éßš¼Xä;¬dyèˆQý!’CáÝKø—R—›ú~Öl’¦ß¿ hÑÝš×µÆ{(ÞG+I>ɤõ&% úã]>Ÿ©ÿ!ÎÂ1Ó Î{¼jåI# "ÿgzF’$ë–jŸâ=Uyö%ä“ݲÖ‡¦Þ^ÁvöjZP¡ITös‚@8$dïA}£hÓ4M>Øvök vc|uåÇ7Ñsҥ󼧸/™§’1‘ÈÇßQöþ¥­²:ø‰ä”¶F¼Ó4ûËe†êÎÔħ˜Tì1ÕpqåK%•ŒöÍgêƒc™D 3Žüã­Ë$ŽQä3Radމlý/ÝQ¯>G÷޾,zäÝÙÛÛ[Y5œ6ñG §#" —Àøühô¨£°ƒ’Æ1l¹;Eìý”ܲ+1`ØÇw.*LG'hK«Š@?]iƒ7QÔfÓ7ó”›Ù!µŠÝž8¢ìÑŽX'³Ÿ•?sn¡^xv¸ÎqôŽÿ3¿×Su>d¶ü¡i-2¹'Ä~u e–R–LØrxy¹Çk#ZIavÜEjñ«Ds–æÏÇ;°'÷T†¶åÃ*ó¨è Î)eAÈ0íÌά~ Õ}®™ß¨ÜßaªÛ­õžâÆelç™â#~+ÙYbc˜$IÓ¹‚úŽ¡eÀÜîoßIû_<™Çˆ´Ñâ-fÊÝ#Ƙõ­•\*÷ cG\:†ÖÁ¨²iztßJÎÑóßÙ ý•¬}¸û¯Ô~òîx™ÓP0ok9ÏZŸõ)ó?z¬œ9£¿ÒÓÓÞ¬Ãì¦ÿššOù”Ÿßoƶ¶áèþƒZ‹®ØÖ%o6ÿ)•ü|•M21úrÿåsJZ%Èæ>=›~5á·FvÜäDÍ熧1//NQîoš^wÌm(›ñ§O¶­ð„ýæ¥6ø$"@Ý„ñ?…<ÿ ¥þ<(qghÉÿ¹py<±„KšM×øe[s#yâ¸KËô|@ühDNOµØJ6uŒ +ŠºŠ|ð#¹¶gQòüiãOÒR´?â¦Ìîz¿¶)#çoÒ <  TëWQVÀæØà0Ç“ÑÆ»å¤û¨Ãª(Ý7ÿê(á#™ñM6’Þ`:òr˜ÿ³QÉ‘ŽÜÄŸêþêÑüÉŸíODay!æ>!fœ²:ì‘BP ‚²he,«Ëƒ¿–>ú^x€Àh¾1¦—cʧá k’Z#¥ Šçèü3ûè5Bcˆà7Ïï4ê«™mމĂhäµqÚg1>cå zxŠìö<œ3Ûï±®s¢÷Ѷ¬’j‡FÔ%ce|¦B}[èúoûº÷T=VÌéú•Å£:±†B¼Û`ŽãÓ²i#Ep1]ñ‘ÔW¤ñ ÃVáý?ˆ½¹.÷<­Î£©ÏŽÇö±Ý^¿µúµÌ¡®h&¬¢NGPÀ©ùŸ±i=°â.~S¸!°ÃÏ¥S„|vGÂb*C0 û;·œW‡‰)Ö¤s­ÆÆ¤ðòçE°V*­ÁØŒõŒÓ‰¬3ìÚN”vc¸ÿýS§K2>§xùVí$ä‚2Öðœà÷Ò›´,U£µ8Øíø]=Dåƒ#ŒR¯ýQRÙ––v ö ¹ëáï??!œ§<¨­ù´8ßsŸ´Iˆóvãû+øÉuj\¶5"ÖKêCÆ€õŸÇðMRßiòÚåÀt¸‹þÑ»û빦POc÷ŠNy¿Íáþírêˆ ’(Î Ç㟺ž‚Œ´gÀ3ÔF–ðç7©ŽþQ\‘Ü8á€{ë¦Õû¨Ì”g¢YÝ6vühFeâ3ææ€@F3¨h*2u,{Í=2—˜C« cÚ±cïþ4çæãÇýZ¿ø† ¼ŒrQ#ÌþÚd”Qþ<íû_¾¡ÍG„"|’1ú:tkçÌ3@‹#œ wó¢Ãm¼—Ä)þµHÚ®ÂþB<š¦§>@‘2(9³¶ÉñÅ8{A–õ;1Å’õ½˜û2^܉ûÏî¦ä © Éí,ärˆ­G¹qM†œþ”÷TֹߛàiؘÞN|w ÷¬=é°E„"eâQÜ)þÚuÎo¡ò^§žGÛÌÒtàI0Èhþ5Ô£¡QD‹™eååkô`zà `>0 Ör|*;ËoÌq ÇrÏE€+“$œ˜¬ˆeÞáGx švÒ9‚ùÔkk˜C-•*.Wôl±îÿ•tô²p©/QÅÖæZú2²«kèÆú+¨ï8~ìŽÂþ"£?¢ãèŸã¼ Êë@"Ë<£²@KÛ`eWðά«qõ¤‡”?27MÁýÕö±”rÁK³=%Q¾ÅÅì+kw-¬ð:Ë”uÏB ?g<,0 lãÆ¯8ò5ͦ³i0êm¾Œƒ‡ÙñÍf¢{´“˜&+åg³æqô<éGL¨qp5b1 |FÀÏ}¤UÓÆÎÙ[<Ü{÷¥•n?°„œ˜l[çj£î©…ñ•€¼WoY,2§ÉV^‚ÝAzS–óO€”R;Æ1R.4ûÉ0y²øÜuûª(³¸çåbAÏ~Øéç^l¢àö3h²³žy%PT‘Œ1è=æ¥2ܸ!™#© ·’;„¨æÎܧ>>¬à…› $ì¤m’þþîµ¼2jÙ”˜ZL):-ü¼ª4¶7¯i$è$x£#œ(Ïï«TµojKœmží©è.žÈƒk(q’†éˆ>#ÄV¸úxd7EÆä‘ãLzÉÇxÏ‘¨7óDx‹Ff•†ó+sŒ§î«íOM·ÔE„R6 €}†Üãð¬Î¬°®³£¶ävî§cßÇÙYÆ0äpŸ£þŒ†œ]3J^ÑÆW9øÔÅ6­ 1f,FG7»»"©Kxß 1yU¥ô"Àƒ(É\²¹ëùؤÇá‰%›(«1ÁÀ¦ïy!icVQ˳cØydSŸ”"šÒNÅÐÊÈFç”ઃÖÇf±˜*0I$smò®Œdž./Þ{ü% )Y\¨`ºgÃãî®7.Ãü]|³ð¨¯wxS+}ÁLøwÔw»½cEÀê#®-9#æ3.¡YšÎ0£;ÿm©›ˆîr¿ENû“ã¥3ëKJ’àb@Ç^fþ?ŒSÝ]û*d=z÷×gSK$¯b{ Õ\—aŸ ÅSpšLtÉGmÈîq×åZ¦,’¿²ÒüÛ¥Sðå·kkv¾ôãoíšÊW…-22@[ÙkŽcÜ ƒ÷æÔÏë7÷*œØv“ï®õ#úÿUe¦Hh±K r׿)ZÞÉz\ãå…1êËÊyf-çŒc릥²89òÚ«Tc²3¡éÏ>ÄÙÏyaøP-½¬®fçbq³ e¬YT~p{±×ë«]N´{Õ†{“Ü¡àæ_`¶z7xXpϨȣ8ÅÉÑûH{¡ot½›2À‚¤dFÕÑÚéêfæ#¯µVúųÞ[ÛM4€"(D)íeNXoÞ:ÕäøÀw=ùÅ_SÒ¬\BpÒèAš7,?¼hYtÕöT’Þš m­“ ®Äøœbšì!íŸ×,ä×P¸³ì>f¸µ¸#ØùæŽÎÈÞ]ÇioÍ,®z±;(îôñkw%ÜRAq ”–7öY8 Íb”Ÿ¤n'µiвàç ¶Ô¡Ó4É"‚á —<œÓDªb{”“ú]äwU­¦§ð÷Zñ ²Å5ÝÓµ„œö'ö‰Á>êÌKêlÅäuwcÌÄÉ’I=IÍzQ风;­Ítò>51XbÑÁGÝL^júx<«i $îA\ãåPï.ô›W‰gd´‚4Áϵ¿_•U麦¨Âò*"JË,yÉS–|x/×SÃ÷W¦_\Áwk-¬ˆÅ$BŒ6ïã÷ .®†~°É†Çzôû3^ï³²\cÙ褲`xû£ß¸jy5Ž ¼Ó#cëV¿áøë·Ò,üH¬ášñó—rO]è}êÿ“µ»yÃþmˆ àTÿ©Ü]jú^»qk~`âHz£n>]>Éíl éȾ óú¨S²=Ü“¯_ˆœƒ%‹lqœFË÷Q·­²–2•`;ß=ÕY’Hø‘Š ßK¶o”’Š8näd,vÏP•eÕ_Š×ûÁ„¹$Æ·nÎýÌ|é©mdqž~RsœÐ$³3ààô3Š’–ºœ ˆm®ÜòDN6®g¢ÂË:†#sß°ëð5¡B?GÃq×ßQ.î2­8–1Ú ŠFä·ûªKAx¥×³^¼îªzÖŸ„×bÒTqƪAaƒÐŒê뀂'"B!8Æø¦BÏžQÙ61Û©ñé½,¶²¬N³\€)$™•¿ÜÍk£É´;•ªM£ë¯ä’ãI½!$Ùì[¸ƒÜ>Êî+µŽÛPÑÛ!âkÁÊã«)÷ú¾tšÔQ®•uÛ\[Ï…Ž7´@Èî¬Ï êÓjšl:}ëžM:ê)"“`”Ç×õ ôà£Ôcr|ǹӛF\z—+o‰°’8”°äRËsok¦½Ë ¬ym÷Îý7n}ÔìƒMÊ—7\‚-ÆÍ¾ÇÚéçT[y6²Ú)–Þ)Ì“+€ÁaâIÆý+ÍÅÓø™låÅ,‰K‚ÏIº,Œ¤™%À»nzøtø ²õ÷]˜Éð\ýUGÂw©y§Iy$R<÷ ɇ` :/\ƒßßV×WQ¼˜K‰S¸I;Ÿ¿î­º´å™ÓÙl>¢~&FìïOEèNúI®r2bÉÏyȨW™A‰lmmœl{2äûý¦ë½;lÚ„G+:cô­QÇwŠŸ¶±P]Ìh²ojÏ/QÝæOãÿ:¯¹õ‚=•$.øÿôìÔ^'â)ôýfLJâŠ6v—l¯Ì¿¤è$?ú‚«n5ëÄnY”ñŒwRêqûí´aÖ¥Ò®/b·ŠÞ{_^¶›´‹³º¶ÊŽœÁHØ÷¶™à¨C~P»œ¬)+…Na·1l“ñ¨ºíÔº¶¡®Êy"Ç09Û5Y¨_rX¬¡¤·…É%ŽCJÃüOß]À¥‹K\X”|?{º-¸“FÖ5^-°Ót‰ùšP©VìÁf889ß»§uz ðìvW2ZOr¬ð1°wÛÏÕ_ë) ßéƒPkxã¸tž)eBÜŒÃìFã¦ãʘâ+ËØõÍNØ]½Ã ©’0Øe,Js‘A¯;'¼Ö7uqù›õÝ,2AÛouéÿy41X[ ÂË Ïo¿Ë’ŠH´²Š#¹üàúAfŸ€\ŠÉ_h:´OkëVWÒ‹˜Dð”-'2m¾Aîdun*÷†4‘y¦½Æ™|#b/R&qlÄ;LLg©ïÎøÁ¸ãf<2›qª¢Ò¤rñ]ÊøýÊ3ûJ>ÚóßJ¶6âîÛH Pʼ„É 7ë“Z-O‡øƒM2-Î’cîd1)Œ¯s;s±¨7¾¸žïBŸ‰¡H»(À’Ky$Uq6~Sd÷c 溺XÔí/ÐéèÜñͺ㒟ƒoÌ–‚ÞÜû»¾­¾ë—“®«ÂÖº’òvöÃÕåv……ê§ÚSßžŸ­^¡j–Öwn.mÄI Éw™^ŸezçL'µŸOiÕ­/â1,ÈrªÄ{-äAÅw䎸¸³N¢:­¢‰u½B]|–¶†)­t¸­‹F?¥å–Gç܆ö»wpØXCˆÛ²O_(zˆÔžõç:¾Ÿuc®Üj½$ÑBBÜÁ )åé9Û5y¦iãS†ÞIxÊÎ#pܪ’$¼àøËËÿš¼üÝ<ç%+8Þ)%FóFÓø·Uµ½k åÎ6šHe¼äv@9˜ª1ö°N+3¬jsX@nïïS³ÈS‹ ÌsýQ¿}zf™À’î-–Þ÷PÔmæÒnVâ5œG#Ü"l¨TeùÈ硜â¼WƒtÝ?bŸEú­ñ>Ì®ç•W;ç'÷R]"µÉÑöoÏê=`üWgl–wKGr¼¼ÃON€œÆõ¹â 8´@éZ–¿¥C=º¯4…ä<ÜÊ!Bœ|Íjm= YèÜ&§Ã\Oµê‘v—Vî…& ¿f!±¹® ë^=éKWµºÔ¡Ô,m§ŸSXâõ¹&đˈÀÊ)M°AÉ$äƒî«}<­C¶üü·:§Óaû.¨ù­oñ½¾Eõ楣ڼ9×#Ÿ´q‘ $€¤ý#Πü·4š¶«¡Ûj3iÃU¸•Ä|êRÇ.;ý AØì@5N³×80É=µ¥Ž©0æí%‘Ñ`öÇ\g¸äŽ6ÅAÓ Ö­.›†âÓ­õ„XVv+n®ìUC Øßa×q‘Ò›è`’rG4pFI¥Û¸Æ¹¯é-¤ÜÇ^Èì…U¥”(?²:íçY­6æÂÏNµç´–K¦¼IdbþÉAœ.1àz羇Š/+ñZú¥¬1ö½ž-â€9½‘ß±¯RâmvÒÊã†ÉÓ-Ø b‰“ ²0ÅHvß!«hôñÅÜÉb“ƒK·&R>"Y›Ún|“˜ÿtÔÑ'ßé³ZZðe̱̅X¥¤ÎN|÷ÜwPi¾“µ™uɺæ¦-]Œ}¬WRes°9æÛìªOYHnf‡T¾’à–dWí]ˆ ã=q¿ÇáQ–)ÿ€];_ˆ‘ÁZþ¬Úzhš}¶œ/-ª¥Ô0æU$™ÇQážžê¿Ç)Èo´»hâÌ-omCª÷ácbÇÝŠòíEžËZ‚åoË"È6C)=2<«U©¼Z#B—2ÅþX,¨y‚îaޏ?}tK¥Œ®i Â.tÙj­Üj·Öw\ga–ì{~{¹sƒŽEno€î§SA¶žXÒ댡U‘Âö±ÚÌȤ÷–eL ê ]¥Ü°ëBóÒÔG0LeU0¬ÝwØ®†zš°±àž$:~«¬Ï£ß~NXÞ(.åSlø<„ÆAÆ3¸oX¬pn—'Rè •Éþ¥õÖ„š¬:^£yÝ–{#ØZòL›à;;¶wÆHß­Øp⯱£ñÑG1ánVl&ÉÉÛ¦>5:›í]#Ôä&òæØËlé ä3+}9Û`ç899½Åº/pïÅ=å¬G{ž‹"v#Ù*78å## ªqƒÙ.ÁKiGfHÕn¸J³7+»&yâ¸Ôd.›ãÚ mÃ7ú–ƒ&¡¡p¶›dª¥Û·IeWnü3È@=6ÇÇž½’ï[¹µÓ®îÕ/$Ùäd<¥9H Øö‰Ï)èk2—üIaª-•Š]ºÙEhÄvåQßእ‰5ÂLX í+FÓùß©&¦4ñÁRÁcÒ-ò¾ö*H÷æ¤ÿ;8‹ý3eþÊŸðVs‡¯¿œ:¬¶‰[ò]¬v«ÎQT*ädgÉó«ÿæ)ÿM¿÷uh¢øŒ~ˆ¨Â ]“½ñ©—C½!âe*º2ˆøgë¬ï¤ãy qœ[ f³H©9†žŸÇZ^;áÍGÑïX^$¶ÓÚ^F/,¦¶›´ŽHÉ ¯6ãpF6ȯFÕltŽ/áËfi.–k5çŠKP „66ÜxàùoU7pÔÑÑÕã^"ÉŸô_§ëZ¾—{ÙðýåÝí”SK ´Ì½¹8Îé¶Õ¼¤Ýð—êj‘ÞÜÄÑ]=€HÊs´d‡Ï2û]ø<‡Çl½—êž‹µKÝ?NËrèÑ(œžEWQ–(9¶ÛÞs±™áÿH¦…i}s¥2ÛÜ\GØSÌNzûÆøð߯±ŒT–¯R&àÖ†øBp怼SªëSZÂÖÜžHÈ'rHOpÎäžï‹OK\=k§]Z^E5•Ä|©Ÿj7QƒÌ 1ØøxVNÊo8bcejÅ Œ§’9Ú¯øÇ[†ïÑþ ¯¿¸šK™c1aâeÚ=Ì9Ž—•/ækUåñøZSÝ ú2³†ëPµ¹{–†K+Ô•@çÈú'Ãèõ­¿FãÓmÔ–‹Ïu4cbêÐŽÂ2dÁÁ8÷äo^KÃúÕö”g["3p¼§ÙÎýÇÞ;¼ëMÀúüúN¡%Üæ}Bç”Å_ú'mÙ‰;çËÈøÕI4Û|âœ4Åw6Þ‘uÔìçÕôËx.VÂF³™›=¢H2QÎ 0 zg*wÜVJ×#mPÓ"&[ËÛ¯iHú*«œŽá¹çáWÜo®Ý½³ØªiñZ\šqml#“ URGQ€¾òI¦ø¿µíu»[‹JÚG=Ô"x™²Ù S”ñŒ_:Ç[o¿äÞY\"–5Æï÷ý oHqê|;mtöL/nÒfk¾Fv2¬jÝØä’5ßl`ÖBóS›Kœpö±êW°=ºx-£2û@¥+Î1ÐïÐlkܽ^Ýj=Ž¥§Ø\ÙE +5µäN´¨±“°_Ì¡Øg¡º¼§Ó·£÷áßH½´ö—¶Tê%€ÈÂ^tU Øœä`î<èžêOb:¥…ã´ž»UÅW™"ö’IodÄ[°^CÔ•ÇNƒ5 ˆÞ“¢Cd¤z‚ ]Ž@<¬p>úü꾓=ô3èŽÞ®ð¡*[<¯Ð°üM?ÄÚmåÏ£µifi­ÊÆêŠÀáyßlŸÖÑ–”ÙÁ•?{n8p[q6q§ßëÒµì’K`n¸í"·76X)csŠÙú=Ô†©wzõ­’,PâÒöX¢‘„|¡ˆØsžAœämá^5Ã×FËX´º#œE2¹RH6ßå^ŸÄ¼Gd5Õ·³Ž!kwËôP(Ä…¹eCµœø3S——Qÿ…ôÓZ+óßóôþå¯ñиÇ[ÑSPõ>K§Xtë„ç†Eæ8_êœw®=*»O˜®¹{<·5Ë,–c-ÁÀUÛ¸Ž{¼ê‡Œ’Àñ§.…{ Ýœ7%íîP°×—v³×>c¼b¡i‹ëLu7*Î3ž~‡õ²5+Öló8M.Mö‰Äë¬ëzóž%šÒsÕ!9p Ã#§^óšÅë–:èâ Éì¬o¤²ŽV‘"i Ùc‚ÀÏ««–~)¹ŒÅÜ–ìs“*•2÷xõ{ªÛŠ^ÿ…µ9-5›sÚ(ì™Nåe 0è#qÜjc-‘¤Ö¸[}Ï0gŠY™Øìw<¦¬øgY“IÔ’{+™VÙÔžžxªû’bŠVª°#XwøWUZ<÷6³ÛôKm;T½¸Ô‘Z+Éõ¨‰ö_=XwŒõï¦oF ĵäOa¤½½ÅÅãJ×Ñ¢G•<¹à#¤yÉß­x‡ ñÍ„±âB{/£“ƒ ×´éüm=Ç_Á¦Où©žºEØ…Y±Ç¸û½õ8ÊΈéÉIðm,ïãÓ´(c²™Z:ÝÙÛ”Wa’1ú#?îÿýM¬Ýq,ž ¶éI9•6G7FßÝWüCÅ 7œ U/®d,œå2ª¼˜l{ÅYz-|šL—V–ñÂóIùàŽI<½3áN6¨éëºu©Æ_.æËÒ³jϤ_¶ÐÇ3$R}ÉBFW ï¶Ão/Óï'Õy/4í:Ú}^Âw,<$†ܬ]“·-^zr²:Ϧ©gÍéÒ¸‡9 Œp¬;ò uyg£«ë¥ã, äæ>vB 3ŒíœúRƒÒÝðsG?­™è¾—ý!ëÜ]«[Ùkzq°ˆ*óIØòc;‘±\‰ÍQèΣskioÃ÷·÷ДHÀv;e޶äঽÒfê:•îƒwqäéÍÃØÝ²dö!H—ÏáOƒf³žåÕ4˜ÒðI¥NKŽYcŒmœ‚Iÿγ–ßNñÍF.Óúžqo¦ê1qMÅ•Ýä—6rKÚK´L2¤¶ÄŒ»W¢ØqkÙØ[hcPŸK³Ý'HT¨pÙ àuÊ…>=+Ðî®Èv¸ˆ$s–çiU@wlç$“Ôõ¯=ô¶æˆ,–½yŠ\ÃÙNÛ_Ãx=6®‰­Uêqc–„ï†y þ ÆéÌy@òøükA¢[^ñ.‡{ “ÕNìr7;õú5’¾Oð–äÉ9®xròîÂÑÚ Çs˜¤dúI·RÎÿui8·FXò(ÏT·DkxL·H¢„°'-𢹂mVÕ„±3G»#÷©?º èRÖ-jʈÜâXwÎFAïÈÜìÖ¿QÔ$ŸMº‘Ï;vNIØ‘±ÛßšS*/ ž¯B§JžÒÛMK{‰Qž7W‰ƒôeþÉ'qâ1œVßÒ¥(.¸zÒ 9o^C%Å´‡ÙY01†É<¿Kôñ¯áþ~iù î3øÕ„ÖƒPÒM¸¼NÍ ,í‰ÎÜÙÈ>Ϻ”[„¶)ÉJgã˹e¿–IÝ{c!…¤$&y@ õ r¨Çv¶úG¤FÖtõ³½½X&ÑG<¹)‡ÆUŽ PqŽa¶Ûã­y—Éê:Ë5õ™šÜ+Cq‚ +VM‚H=Ä µÕ8~Nºœ3=ųáÑ ”s £ŽÛßáS*Õ¥r^9d­otzމ|/§†º‘ÃÌêrªuDlx`ç¿>¨Z6§“ľ±©ÙÈ·ÎHÃ+ƒÔî? ¦·â{Í/F¶†Êå:«¶Hl‘°Üï¶øVwx®ÿ[¹…§1H‚– oyŸm½ig#ÒÛg¼qÿpuÝž‘Ç ¡[ÃëgzöøN~t%]ñô[c¿~wÎ*»¶Ñÿì¯ÿÚᯞ4ûùRA;”cí.rÞ+ië±ø7ΪŒ6¡Êr•S/øâG“ÑÆ…Ú;?gw:§1Ï(æ;ZßBìÍÁ· ÌHP=65ÕÕá™êeÿÇ_ŸÎYfÔ•¥‘äl6ìÄŸ¤j·ø½¿œ»×WR‡‘9¾ù“x¹ùÏå\2Ǻ÷PjÒ;ßMÎìØ‘”dçùWWR s/‰gÁq%‰ØU^´Íê)Ô^Ë€§aŽ+«ªø ð¾?±­áwyô½NIÙ¥uÎyˆö×¼Ö³Ñû3~U‰‰1˜À*NĤ {À>ñ]]\³ò³¶<ü×Ocºº¥yGø¬Ñ§ LŒVS\1BÍYq«¼‰ ‘Ùù‚óò€Ûó®®®~ÿï©é/»ïcu¼;ô¨ ß]]]qàógÉÑ’%8ÜVëÑT².½",ŽªSpƺº£/áäoÒ2¬pÑB¢ß]€ª0ç+cè¡8ZDUg Ì@Áohõñ®®©Ý×s‚.õ€AÕ•€ Ûîö…y‡Ã¼½”E‘J7(ÊþqFǺºº“ᜱå|K*¸¸kÕ§•†z'©Z©á©¦M6ü¤²)RøÃë«©eò—¾G­_»œ;ìsÍóŠÈq‰3z)•å&Fí-Û™·9#¯¿s]]Z÷F/Êxö¡³¦6Ú­ôù$þmjQó· D`¹Øuß;šêêÔæCú1+w©À01 wþq«qÁ‘Eq¬˜g%‰„™GPÊ4{uusääíÁä<òOe¢åÛ¿o}kýGÔïf(¦HñÈøÝzô=ÕÕÕSàÂ&ã_Ž2º ïf¾µëJ;l{}ߥ֟þQà5¶‹rÃ3˧âIOÒp,dõ8ÉùšêêÆtuÉ&¤þL·Üõj®Ô¿Éûuuv¡Ø€ ÎSWXºº¡ŠÿÙbygfoot-2.3.2/support_files/mmedia/pics/match13.jpg0000644000175000017500000016274411225071373021214 0ustar eliaseliasÿØÿàJFIFHHÿáExifMM*ÿâ XICC_PROFILE HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀYÿÄÿÄN!1A"Qa2q‘#B¡R±3ÁÑáð$SUbr’”T‚“¢Ò%Câñ4DVfs¤³ÿÄÿÄ:!1AQ"aqð2‘¡±ÁÑ#áñBR3$Sb4’¢ÿÚ ?”RQ˜rÛò'5JyMh(qÇXQ@½Á·ß¾„Ô.Ö0•³WÈí죥R¥H™Ry·5ÒâÊŠCAbÅÆÿ¦öõǫъñ·¦']Ø{Yë Ô=—å4±$&”Ú×!æõ]E=4•î A¸²J»ö6Ð:Áä™ÍïSòþc›–)Û`?ùÏôÒ¥¸Jl[$nS¤öÞ÷ç5÷…»zfOêñÙƒWPa£p¤¡_¸û߀Á•+ÖR f•Wè¬AfA´—5%¤øôYÃqÉÞݼ÷Á4ÚVɳ2ZJ²„…^XU2T†ðI6Z”µrJV/aqþ1¹ö»…îdë]ê¹8ÄLÌ4Z¤ú«‚˜¾ð­¥~ÓwËÝÕ^lm©HZaSœa“ù»¥ÅÛq}¬=wúqÍñcUgRþmŸw°ýþ¿H¹a_°½{ÌQ¹´q§‡\AB6QN۱ϧÍÓ0ôü'4öywƒòƒ‰!š‘|GqÔH¤­ÖìÐ’>}ŽþïŒA,zÍ­Áš› +¦£¤J¹Cq´wa“¸Ï4ÿs“®œ_bº‹jPYIÒa{{ÎØîp°8ÜØÑ—&CËôöžu*(a*ê8HÐl;<žÃžà:kßOa²¾§‰=v’}+MãÎsˆŒæhj«Y÷‰è4V´¶òQpµ‘em‰òô§ Ô/Õ[¿o€í+KMiNŸ€°µJåD‹?IµJi.6¤ÈNäíºJ‚~—ÅR Î ~ÛÄ=5s…"}‘N@e^uç²5þXI7¬.uoáõÃ~peò®cˆ‚h«K›U§@ëå‰îÈ€·¢6PÄ‚ÊÐ]%6VÂê \„ñ}ý0«º-›ª#4ÑkÕAlô÷À®; ¾©•xe–Üb㎒•M”.ñ$ÞÞ ðγWö€\D¼?—DÇÛÉÛw¡QgU)óK¥!+u¦ìâÆÊ¹í²¥ºÃQ¤6—ßÔ-7Ú“ZS9ù÷úõšo5äꢣ)¸æšL@ÚŠ’%!E _Â.FÄÛ~Ä%«¶6 R'ë¤B›l¶­Î¸'·»·ÎNrþIŸšªl¹tØŽ„-ÙH$ÚÞw![àáä]ÍÔ^(«Ì~§eÜ»3)O×:S+§¸‚ìT‘ù‰°N°xG­Ï–ø)vÓÖËŒƒùD“ÈñKRÅ<§¿®!3ËNV)ð¡ÇB¢ºóŒ:§^µ,±b@{.@b¼ »ZXŒÌ.fn¡*•øQîòÚZ™ [­¶RzgP6 Ø“kÛmǽâD gZ·´8 &†ÌÏ{Z\…@€Q<’/öß|x‚FDð » ¬»šªÕeI«ÜL&Tòž p¨¡*7Ò?€Xì;zâKM–QÀjC¤©k½ÿ¸ý1ûÄŠ¬©Õ³cˆÄ„¾&”°J€èE†çLyBŒ¹ÜÊW9ŒÙv¶š[,uÛ+1™T¦sÄ•~´(žàmì6Áɧïm0j·`¦îo|éUÎÕêa-½˜‹¬)ò´-@Q[%;öæý±ä®¶_hdöÿ3ÈlRpq<ÑêªÐg¥MGv2šKM€¥'U’Î×༱6AEc#“ïÏú„ºÕÔ¹è~þ~3=?,µ˜kRhH‘<­Ôô† HA¹*wàm‰º0A¹²Xš¸.ØÊŸÆi̹©Óé0áÔJ¡´ãL8|!$¸JR@Ü)ÜøÁÀ<½½:Ûwã=Ë6›O¥Ì›•ä¬?ÔJº 2Â’”*ú‚–âˆ*õ½€ßmñãanl=?YÇW %?YŽ*ÅÑf&2]RZ÷Y ^•4Žl]¬S¿;Úøàc«så·Y›.V-™R¥qŸ»MtõøÉ•¬5[‹ÿyáIr¥Ë„cîšóc•<ÛI‚©;oÃü’Z°Jõº£¸½ü7H¸æûàkr†dìѺ±¬‘»ˆÛ•3»MRJ½I¤ˆÔö“ˆéZV.¢>+ ߬†<ôº¦¨c¼[ÎUWsšdØÔ¿ym²ä Òî ;,+­\\ÜŸ;Ûb¡\žq‘Ò Ê9r_ÍïB‘-¸©C%EL,ôú—@«”îw¾ý­.ð S‰ã·w#2…ý…þ×¢ÿâýx÷=a7¯þd~ª•ÅÎoÂT‡ž×ü°êÊŽ…X§ŸB1àw&a9[v™IÉ“âÑW§Õ98’† T·¯¤Y*;Ž|°|ªF{çö@}¥ov?<ÊK¹© Ä6©ó\v`_D¸ÚN€ ÷&ãŸ,AÎx’­qÎzHÕ^-6v|¨-ØS#T•!JÐã—B\ê×n÷ìxÇ•ŠþÅTó*2½Þ´Ûk¦SÖp§ÞV…¾xå:e©‰k‹F}xé;eŒÝb¬Å¨7˜Ã*ê<Ãk-Ü¥–ÂT{žwÆshG–,å׉È5!qÔòÔ‚äBëÉA!W¶•o¿—#ŸMñпÛÌŒwóßùÿ0Õ³ãB¨%–‘RýÕEWF¤$l|À°±8QŸªLÑ[©SinL¥SiNÈfd€ä†Ú:–Ŭ§oBóáÆGœoí6:æ{r=k8Ær&3ˆ[P.ëR•£¦’>䨀ö°¯†èÓ%H.³ÚÎ`mÔ—%b!œ¿64úu;Cˆ\„uŒêÂIÜx|°ë_Mt VÊŸ¼"§gÆ9í)éqgµ 2‰b¦Û,¯F£að’7Û“ð«l+²½F¬Š8^¿_?ÔŒÙ`ÜGãüóZ4Ð:¢^ˆP¦R‚/bUmì{ýûcš½/—|CÀü]µ·/Lté.¨æ_£3øŠâÜdë@Ü­À›¨ÜöïÆ%£·MåµlpË×ßñ7ˆ>µ-£•8Ü{ÿ¹™Ø LnäM”e ¤°ÒÐU¯u DÖí¾^µocõ×ð‘Õø¢xv·ÊT%¸É÷œž?g"¶Ô|¹)+—D·^:é’¤\×ùßâ¶­¶°Áš{õ&äPNT";ôø´¬Ú¶YD¹1ßó2 N¨ KÓr«iÜ(^û(`w"1XáÓŽ5+}Åé Ðêm°ãÐÚ)d!Ë!”®úRK~ø¶ðÊÕªfÇy‘þ®2¶SÀºg0ÄùÎÊ€út!ô¡Kh€/Ô”ìv&þxfý15£™Ká!ez¥{Žg<{¢T§ilÍnŠóÈ "DµÝ*vFÞ5Ày3üX£¾§LyŸJÒ]U«æ/+0f&œËRJ)++D×üJŒt-hH Ø\\Ÿ, oY3Ãt€+1¤:÷âH‘iê”.…=g‘a¶‘s{~ç¶$ú΀@Î1ŸYÖ‚ì–!½î£1å²µ´ 5mJIÜÚÀ§å†*Ô:#"3ÔèkÔX—^2GO”b¦Â–]’¨ñHyky‰( C¦ÖI n´_mñ[ª£}ÇÙèGcðôøË*IòÁèzçù˜êTÕSób[ªƒ $ÕáØ“d€B·=ý0å6=uŠßÚÇ?]ºEݘ°8ÎzLÙÂ4š?ÿ TvºÙGçG±m KlOqsÀî-;¹p,ë.dŠSîTÙmÁL—½›QN¤V Rw ùq|{L‹göÜàˆÞºŸ'V0÷£ e÷â~"&4Ʀ­} ·–µ-(nŽoñ ÚöîN;r¥L9Ï ¿FžÔ¯}~/A-Ê)”Í› @>wñ¦×ä, ONg˜7r1Z?24ÓÐØ‹6SÊÕïim(JšÕöP \›Ÿ•ðsfÜì^qÞÊRríÀ=¤š´ç¹WW 6Üwt±îv!D\orý8]ê `üeΗÄXޮǤíc’DÆ–™ÆÔܤºSÚJ| ZB‰ºA±;Ûa‰†SVÓ×눉ýÒëÊûúüfÿÂ!92"z9ŒÔ4—_é!A*Rˆ;ö°¹¾Ûs‚éÅ$2X9÷@[æpëÓß9AË'0N—4×çhth-7Ñm &ÆÄ›ðûŠÌ¨ÚGµ$‰»ÚÙêg¶)R}ŸfRd8¦%“ °à!Hê½Ç6óKB>0†•l•? §ÿ{UïõíÿÊß÷aÉÿ˜ž×õ0ZÙp§»Pý HmçBˆÒ@I5^âÃ{q…8İ`7†y€)Y2˜ª\§®Ù)Ðóv_7ýI"ÞV¿|O“0¥9L¥Ê§#¨ˆ%Å5k ¥H"ß¿8=‹’ -Á°„§æ•LÎ Vÿ XwÝ› ¤X’@X¹°ß‹yì1Ť Ç’ÿmŠŒÀuê|º»NTæ¢ÍL¢ðCËJ¥jÔ®ûr;zsZm!9”Ò¤õû)S¢ÿKÓ©É‘&A[i¤(5-o@q%#‚Ã"‚ l¿0Ó£åg%B 2[KÈnëx»©VrNÚü±^à[=$ÅØEÚ hRZ~€™­)Û€px¸6Ø® ¥Ò¾¢Ð ñÞrë’¤9Ô¡ôÌ\¹.|J¶É¿í{[nÃ÷ÔÕZÚiÅcóÿ¬©w#Ú?xþS„w‹¥4O0€Y*ìêÖ”%_B½_1ˆxµ…(WÁräzþSÚQ–Þ݆`è ú”j* Lt#Ça«P²Žã¾ÈQ·rEð—Œê×Ãô¤(á@ãÔž}ÝÌž™ Öd÷„éyqœòL Ä:âX%å8»ƒdëÁ¹?¤'H· ã§ñýMZ•cfñÆFý½Æ?>’ÞÍ"2c›§O-JqRŽ‚R¤„Ü›Ÿ„€<÷î5zš © ƒøñ+«³Ëžx€^¤EL”·4%¶P4,±Ã‰Ä(-qà/,E¦}M†¼ð9?·ë¯Ô}ž£bŒ±à|æ¹^ó•)BM£µ#(,¨›($†«Ÿ•°Ñ«E§µ¼Á»ÝMF³WJlb£<ÿ¾½aÉŸ/+ŠÏâì±2µÉ®›Ž(ê)!À[í}¼÷Å-Š™È—õ–ÆIË%QŸjФU][R%(ºQÒ7Ò…Û~w=ì@Ãéçêû+Çã+5šª4j¦ÀK1àwxÅ.5&lÄVdV¦²ÄþPl³23ˆ‰-Msªb%N$õH º’/¸H×<ì’1ß>èÅ$»á<Ôb¹7-ûè@mÊz–÷] ¥I%&ëò¸>{ÛÏ 6­Vµ­ÖW×áÖ ßQm™þ¿æ#гUES•× ÷‰IZ^7W»ØÜéO±?nø•Ms:ùg'´•š}=¨ËjŒ7\u‡˜‹GªÉzvdë°5’VÒºaÐTEÅÆû°`»÷yíµ„P¥šQ]zT%¿ „ó#f¾âãÓ[jÑx/S{”­6? {ß â¡Y$ó™q› œÓfi4|ÉC‹"(ŠÛ:ÌÝl°@±#MÈVÿ?\§­ÛÌ“Õc/éECùŠ“L¦ÓšnMBJ‹ÉJ,u-îHð/qaan ê¥w*à@’Ka1ÒK¡Š‹l¡ØQ“=ÁÔ5¸NêlÞâÄ”¤‘ô<âYP'0"zuè-nZ‹ì‚Ò:‰JIAXÖ@óF‘~öààV5™ö¡¢Œ¯9˜—+}8Ò ;<Æ%ÈÎÆ›BŽÊI–)V°.ìFöÙ’°-r•O€ÌgcÜi)çZoþ‘a©Z€:@b{‚;ÜyÕzžÇ§ Ö6@8ïóøÅø ÈjERKâÐÖˆî:°T7 "ê!À7æûrpqrû ó·=¿ ®Ã’:ŸÎÌÕVë}d¾ÔH.¸ÛK ¨úOÃqbw=þø%¶CÙ¿nŸÌ¢Êß¾Œgš—2®nf-­O:à6[Ë) ì÷;›ó€1*7XxéðæHعB¦QãV¿RnSk\oo¿lJ«ýYwà¡â+nŸÃÜR2Ë^cÓL&£6;ìÉv¨°*KAIu)PQIÛm®.-ñ`š½=K`Ü2L¯þÖêì©Õó±{˜u4ººã±9Å®F© ¤˜Ü¥ €¹ÞÞX¬±.ÙQF¦›Y‡Ï¶xüâ.u&¡"D‰.KéGx3§VTpvZNʹd€·8á¾Ð¾Xéîê¸RÀótžücÚj+²üZØz‹XRbí˜Å>\‡Âµ4„Rá'ýÃkÚ÷ý0Þª–Ó ³Kí“€=Ùõú@ÔÁÎ,âdŸYvU]—)„ô—³vÔ³·œÏ®ª¿ÍnýÿÔ•YC‘ÞR¨Å¹ÒX3c!2áuHK¤µÀ% W XŽAæÇÓU[ÖUIßñ=V£IbÚø~yôó=VŸPžÀ”cÅ û¬Ä4Ò°P­û/°¸·a Ë6–škêEµœ‚"” Å2‘Ya©%!—P•%µŽâÀ‹‹z|1R½©µx*‹fç$ñÓø†©Uv* ,Ïëµ*åÅ<øJ¬xJµu8U ñ`-oPÜŒ €ÐÕ2o¯§X³XÐÌÐÎŽ´{±²^v÷:‰Oˆ€S¹íc‰hoÙ†¸g¤_ÄôÍvj¡ŠäõùÆ ·™ßË´Üu"CÏ-  ¥êJˆEÿ„jHçkßlpºä•B§ÀRrzAõÌÖ³˜ìØÑ#¼d%N—*&éà X_ƒ{óç‚ï-X9ýg«_&æmçc‡¼CÐ(²3‹k`f3 ¤‡iÀ¯Ö”‘`”½Æüc¬]‡µ{³ƒ;fzB(¬2ˆ%O@›¢;ëI&É$m}þç…ì­“œÇkµ_#)˜FŸ2§¡ä:´Éi²l!7¹÷¾Üq¾#K ˺FÔvF s T&T'C­S›e·ÝuHq >2 ’”¤vÜ“Ø`îm[Tduæ.+p…àô˜ªSjq©nR HmHi”¶Ü†œRV«{•p G\ø•–›v޳±^NéûM‰—óDÅÅr¤ºl'”‚ÚBc¸¡â< ¨°àŽ0VVÿ§C ‚ye­Ñ‘C©Í‡rrÞì…%ÃùŽ¥@Ý:~#¸7 áE ¹$ƬqiÉÌr2Ky–CÒäËrRbÈmÿ1ËÚtŸAÏÏËo¯æGÚ :ÄlñC=a6š´wo¶RŸ•¥Ë‚E¸MûíÎ )`Ø>2øãÒoþƒÕÚ9kþ¹ÝŽùvA}¢¨2‹N£U˜‹ÖíQä!iJ€ÁÕ±;ƒ°&ÃçŽ6J ˪ï$˜Ë€de)Ñ¢¼ôÙQ”„²§¯rvïdßn@`9ÇS<À³eDüF.å pÕ" ÒâÊ’EZµàlG?{âa'¯ÑJíÔõ&‡rrS1¡撒뀄€,AâØñ~ÿBo1ÁLÖ•ÒU¾ñ‚3$ÙÙb>¥q\€³Ó¸)‹Ÿ=ï`Ÿ,ÓqïÌ\7ýDÁO4üÁZ¥ÔW¤Øü¦™ñ‚Bmc°ä r0&ló ÂOnè†&Ê£"4èä‹—¤Â.µ)CÌé}ü±æL¡ðwrößÊŸgÔtèjb?M¨¨À‚^Ø ¨Ï¨ç¥™,‡_5‡Ë(yBtV©/tÔè•KY²åMŸáW‘nàè*³Ï;—Ù°~W0Ûï_ÒkŽæ”{£ÏéeÃv¤Üi>I]ö#‹|¶Çl¹¶Ü0àƒëîJ]Îg¾gˆÈš*ëC jnx 𓵮àì«~±PyÂ×èÅkçéùN¥ƒÛá<º‘÷m8>¿Ìâ}ŸSœ¨¸êj *RB: I lO‘½·ãL:ƒ¼§ß(ÏW¿É œˆJ‡Uv,Å&ÚŠCGJ‡ñ Á°Ù@ýF,ªÔ—¨5i‘üK ‡-q¼®ä©%SÙHe¶AV•ïo"°7ÚØ¢×^ü ¸O®!|7ÂÓOaÔÉäØftƒº>^z5mS*ï 8¹ F­d¨¬Þö$‘Cm±PÍÃ%óVåBŽ½ç™¹Ùqj@jLùôÔ¦:œIJ[…`i ò7;øÜẵÖÞcã$p%F»ImõŠ+é‘“ÇIÊL×K‹!§* #L‡’ƒ`Mµ¤Ó½¸¹Ä*ñ33Œœp;ë!¨ð±ŠÛjç,{“£Ói’Öü6Þ~šÜÔ¦Ðê’¤¼­>Dss{ jÞûXTÐn%Ž%ž£PšL`ÏaŸœlzËMºÂ¢OR’åüWp„óarMµ‡m±c~…9Cœ}~³=¥ñmšâ–&ŸL`zæ$ghu·å™Æv0µÒJ¤¼–RáMÔ¡¦ú•{ŠøªTòòrfÚ-åïhTùÊJœeþ’á2 yGUœY”ØÚÉÛÔ`mÖ2WŽÝãnŠŒ8Òšf„ãíHH’®]mm°$þÇx…öÁFºØ'-ŸS!Çb–·g–F?œð¼“Òi=SßC…ÉËmj(üÆ”PWÓß¹ÙÑÁÇׯ œ‘˜"I„†ƒfè–T,\G~ óØb³ÄrnqÉÎë,´5&O[–ÛŒ“Ó>ƒáßÒ`ÎM5Gy3 ³¤°ÃŠX)'¬ H·rJ­ð¿†¥—Tl·×ÿHñ»g©‘ïάç8PëJCieN–c¤…%%`xísžX} 8ƒk<Æ¥š QúÄTÉŒÁDX톚%¢Ž,•ZÄl6hU¿ºzþ‡ú‚­Eú}š@8ëƒív'Š‚$TÙf)ˆ—ë~aRR®’Nàï¸Ûëƒk¬§fÕ`L«þ›ÑëkÔy·)TàŽ§ø±ø}zµ×)Ñã¦#-EÖ‡|¬ ¾À|WðŵüÍ–6¦KLÃ7=2J"&bIm÷’›¯ µµïµˆ°Þêy6³ìœâÍ¥¹è:Í‘áÇ–ìˆÿˆ=)æ^ë)fÉIÕ’n;ïó=ø#-”8Ä 7Õª¨²ç îÄÍNö—yTw$8‡ÃjONúN•(ªÆÄlš“u`mÚL¥ðÿ M%ŽêùÌZ‹—̵7¤M}Úl–ÖÛmê@RH м#pxï¹ß ¶²å—$ô–tèêb®Xù‘©È¢e¿vªºdÔ^$þÿ„æœÙ­šj—P„´¢ü‡~¨+b8Ûr;y Z&·È­Bóë2–xBë¬q<yì9þ'ìø2ª®²ô™¬©"oJ:µ•5eJ ß8õóÂ:Ý{Z¸#–Z ¯Ã÷Iö¿OHZ=¸‰5j–Òд©ÍJJŠHä®ÂÂÝ€çÓé|í)ºÁìœñøþ²£UâþOˆ "©'Ž~?ÄÝžjýiQÚ}z¥4â¿1ƒtš‚F“smZl;oçŠýžðY 'hÏn?™§‹C3íŸÒNÚ‘=5_tKHœ+ÒzjMÊ’,c狸^ÄXË×ëÝ!ª@S0“Y‘’"²ô”²ÙŽ¥—ÚlgmˆÜ&Å Û鎽WÒ‡3ó…E® ë”)æUŠësZJÊä ·uHñ¤ê%Bÿ¯o.Û[FÀ<¯ÒyŒr??|;ª,Ê£D§åx2˜erŒvÛREœOˆ©CsáØX›Xz_VU§ˆÌdzUe5-`¥¼œBëTúÜ8í=G@TÊ^}`´µ¥I ÖE®E»úo¥%•'´PV7n'3?*©S$´²æ¤ï*³Š‘äí}½,ý2ò~HÜî‚ cƒ“iùÍÊTpqK Rt%M§b É:<@ƒæ9ÀV’N!íÖ’¹c˜¡ý¯ÿßóïÇ<“ö˜·QEI¨b¢¦ Vi¤è÷´7}'É\)³è@ô¾$¶ ÛX`Ÿ®°{xȃ„Ê€ŠSÌ(ò¨Ïoù‚¿–É·ï$9í;£/Ó''\§†×!í§ÿ0'þ\{ËSÐÎn>“­ —ø}e/¸Rû):P´‚¬‚‰™Ë­psØN¶zGªµ6t\àÕ(J÷Y KÑšpZ)ÚÚO•ïçôÄ.!†æJ£µ<ÃlR#¥­r˜…&R“3é ­–þ%&ʾ”…êm¶Üá=MïUDœ úãëÐÂ%z‡ï åš­6<*Û™êĸKóáPºB¯qˆùvÄ(¶Ö§6Œm/Ö¶ ª=r1ðæg–¨Š›&P÷5"4”)´´EØN’EÇêOéà\Ly¬ f0h]øÇH:³Wb-Ê^]C©@F°Tkp ÆÜé%EŽ^ëÂ{)'óf¤Ó0[OºÇivS‰W6µÀ$‹Ž °îš²,µÚ-~£)ƒÀ•¨ jfç5.”±!²Iî¿„ƒþyÑkà1bõ¢U1ÿòfLÉP\'ÐóÊ y¯ ºjRB÷R‡Ÿ&û}O¬›jp½Éíîq¥¥_Ìeþœj³-^4†-ÂKºRµ T—ì=1Oâ ¬¦Š~ì¶ÐhØ0ºÎоl¤=S—G‹JZãG‹ùKŒÐKAVñO•üÎǾ+|ÔÝíõ-ÿ^°¬é2µ n‘ZnJ•¤›‘ͶÞ×µð¨ÆÀŽ;yj EŒ¯*•U%÷""¢‘–»c¼­1Y±Ô²o„qo+bÍô£Dùå^/jÙæ99Ìü¦Ú¨ô%¸ˆÐžWMjÒ6 Eõmp7Û,Pß@§ O¦hunúT{W Â'ËUZ¶¦c B&S{óeÏç6…, ¶¤«‚ ÷ãkcaç8Ê/˜ÞÐãòœhT…Ó¨j‘*ŠûpŸ”§烀_àºFû§{›¨Üb5ÚŒbrÊKVAwXãO‚˜°”†Ú6Q†BNá}1Þý¹îpJ¦Ô俲;ûÿˆ®ªÝBèÊV˜sÛ¸Î?9Ê«BËå¸Õ©ÆÃ®jg¤¤†ÙºB—­Ä½‚ÿ,Wø•ìúϲÐx$õôàOxJÚ)¨>‡¯ÄÌѦ°õÚ¬XîªE‘¤jp‹„cUÓqkA{`‹Qb‘óýLµk†7cbž– DŽy.”!V†¥(‚om’ãQØ‹M>©ôé…<~RƒYáºmeíLŸ_tN£@ºƒP#Jžíô%E!ÅòA½‰º‚¯è’/ká+ÙßýO×ï-êT¬Nƒëö€M2FL¡T& Žì×k F­@©HN’~>7±Ç©°›wAùÈÙX AŸÊ~Rë4߯̌âTÑ GÏá6±ó=ñiâñU(0z‘޽øÀPíZo'‘ØóúÊ ‰šs]‡"a„ÅŠœ2T”¡Å‚vÝ"ÀnÛâ·Ì¾¢R£€=ü~Rм8'™©œŽÝ¾sÕW'fN±VRÚŸîÊ6âdkð‹w#Â6µå‰gÓ‰kUÞåðyîyÿRVfŸU§T¥75Á>QÐë-$­±k­)H?¤ Û`Âø*Òô¨<&t:9Ú¹Éý ê4šœ•7@O»¸ g¡ÈéQl B•¦üïé¶ã Tw‡$öõpT¨?¤ÜÔŠ…”ž€¨åÍ·˜¦è'’ ‰Q6ßÏ ‹+µÈcÌnÍ=Õ `LÊek6¢ *"aµ.Z\gª»0té¥*P:I¿¦ØoNÈ,û¹•:úÝ9Í2}Ù‹š»Qç6Ì¢„diuaMÒ •é'Ä>›á«.Õ\7Œé¡ð͘t%û“ܹ9¼Vké÷y-@ ¡åê[hQ–n•¤7ÜùïÁÅqï,øàÂ{:.åG„Ê— X ºÒ¼JW CÅÁóíÎ:=Ÿœ‹îq3JªWd¸ZCªY½›×ñ«bŠ÷ÜX[R¡ó’{c޾éÌÒ0' {î¥Æ™4xèé;©ÄEII^‹ÜjW‡’.7½±\•³,s·V¯HZÔ/¼f7Áö¥&%=Ø SZBœeM)Ë…(«{'æü[×wÈÀD­we‰‹“sº¥Yr#§¡.JÂÖ’µ,^Ö·ãOlD“$UAàC U³uqkLZSËê$øÐË¥$›\î4ï¤m{o;î3Ê@S6~íýÿô›ÿÕˆeg¼Æõ’Ê"«tZ¢:KMÈxhSEiZIý+é#Ðá–Ò;{ ½Fy‚ ÎÒ«PVãbR…=gÆZp.:·ßò–’>—·¦"”X›Fü©ì™&°6N9’‘›òó–*TTËt\;%»$«rE€µ¹æø-ž@fã>ž‘f[ÛhGÚ;ñ“òÏHÛ\Ë”YùpÖr«hjSi é8ž²’AÖ J†æ÷¶ß\"–vË;)7Žg<‹*mö$Ë®¯T¥¤°T…ò›,ùíÛam°ÒT_<ó-Œqc®aϳ—&™8Jö$€,Hïr£ç¶®Ë4ö’¼º&¶ððª¹b}9Xœë1òö]ŠúóòzÏ~Jt¬¤Ø jãýâp tkÃå‚!èyùÄhtº“5‰n9 Î|´”Ð¶Û ¸ºy;›Û¿× ]HTR#ë´¬fqs©ÎGé˜k7E‰L•RmQ'²—”ûi¹Bïe<÷­Î ^›Îä0=ño?ËHàÉœ˜¤ÕPôIaÍJX* *;›_€Oa€+ê'®T>ҘǕ&Ó)ù}ÝbTºƒ…Í ¡&É]Æ‹7¿¯c‹XTEäû]¿ÔU˜°òÇHvÖ&@•TÌH\¿cº“ìþ©¬„» ¡KJu§[käxwR|VÞÝð jæÒõô1)U£eGé2û¬ó¾ãÕ4ÔÉ/)ÆÔ «„Pv7û vÊë©3kc"j˜*Œ¨yJDBìÚ“¾®ý€¹åÕpnO ãÌâ‹Yâ X)¨ñÜö!‰b@™ëOS*²\Ë-¥¤2Ò òŽ›¨@Þâàò1/6[cjú/@=G©eÁØç˜°å^—¯%TÇPÔEÚB–§$_pBy;ïl]gí8, 1˜ÝZ«.U 5<*3e-¤P»i:WrKùöa½•ÃEUw?³%Wª {ÝIÀ:;ƒ£¥ q )qIÙ"ý”w6î{ŒukI+ØÎN²>ЫoC‘éÀ˜©µóžeªÈšÈYS ­@”°¢4“Ó½ìmȵ¬=p0áX9‡½+ÕÒr¾¦¨d×è&:Ó!—ëå¤{ºo¹ÜNåDp<nmæÄãüÊÍOö«‰==ÝÿhF»˜«‚zd´ÌK HCQ’ÑmÇ}·ÞöÀÙ‰=ZÛù+µL_‹œ+‘Ù~“¢äd8¢…4Û×J!6¿Ç>x±Ói”òÇžÃô„U4®Þ¢z§ÈœíeÈЧRTÒFÁîw$ZÜÞûôÁﮑ[#ð§Ÿ‡ÓØêÁ“¯O”ü ôhµ÷•ÔR^Š´jK~4•.éWˆ‹Ÿ=¹Àô5‹l>Wõ¼”QºP&QÜ©Q[CrêÔ WK}JçÇÈíŠë|8hɰI8üúKñ«5·ý—aUU'¿ŸŸngLÕRªÂ`ÚŽëe ¸’H)°7Zä|»œeú{‡U×~“\PäwÏÏø’¬ÍV½!Ô-EÇÜ*U¸M÷"ýñe©bµäq™5{!9Çxª{XвvðíÎ*OÀ2x–,“—ê“£1h% B\謓Á:‰[rýöÇVÜDõµ”n±Ò/³ùËŒYLp$)]0´‹·®àxA?§|sÍ|bC`3E3Ù#1f¦D‰J}_™qÐØë;nµ°ûâ›9“ê1 Bö_—Ù/C[åKê¼…(j “Æ8žÉŒ4ì«F¥€˜tèŒül$½¯=7Ê‘5Ë’ÓI·/;aûœwgô£+¶©õ-ÿ~=‰éò#átùh/¡ÄY‹qb6{-‚ÖňvVkF|Ïì½@§Ñ©lF­û±©È%J-kEØ(ZÁCŸ?߸¶p tÅ@øÆC&CRã"8ø[J»¡7nà°M® ßÓlvŽ[˜k|Ìm^>»OÊÄú¡«S¡Fªê˜ƒ)½}4‹iý&×½……þX5uË>w’BO„R¤Ê’¼Õ"ºán4WÝÒΔù°¸îÜ_¹@)ÀÏåÌ ÎþeœgúC:TåÔ©#! )ˆ®tÝ,B®•‹v)æü_Ò>í®xëÚÕÛ”ü@^ϨôuÊëV˜‘!Âñ êfÜ EÍüÉòÁ5Þĭ–€é™úr\vódâV„S™ è{öF¢ll.lIðóÅïÞöpTÈ=!IÔh…ÕÁË’EºKtiJTEÓ¥÷Û›íØ`Uç9îªTƒÖR…59k.Uœ”ê_iÀK%-ú)ÓÇ6âö€ÃFµPIæ&,,ÀtÄL‡˜hÕµ³˜ãO%NH:JBuÍî¯òÀB%hYÆOhW±í}µž'ŒÞ–¦I„ŠIJ*aÅ4¶”„£²IÔoæ8 ÷…KX†¥qÁÎ{úbvªå*UNR"Èq(X’w±>¶ã{Üy÷ã’ÞÓ¥Vö»Í̶³ ¼¬!)ä&îë”ÝÈV ¤ÝvøEÞÝñ×7$ÉrüáüµJy.´Ü™`•…©/Ø›(€?küûE'û2>qcÚQ†rähOÎ`HrR1¶U­Å3â 'n<);üû㨸ù@9óÐÆ £O§Vòêä>ëÒCë8û¿–²ɽ¸ÚÞœb›Äu³w•@çëÖvÖ¡–4Òòí Ûqc* @´)ÅUk 'a}ù"ö6¶,ôþR6_Ÿt´º1jYÕS¢©ªIKˆjò¤¼+Ѓm ’I'QÜž †ûbÉ(PÀ§ÂË•ëÞsÍjNMnê+ŠmÚ‹:×+V§u+Ä­$|?ŸçœXîAK!ûÀþQ°#¤í•ŸŸU$>ÊetÊÂd¬¥ÇP@RuÕ¨7¿7ìlµTµÏ…ÿQÑjÔ„°š²éDªreÕ–äÌyaøé:PêÒI¶Úwn;†«}l8ïñí TØÁÿ]ç|£> ”µWi(ŽËÅ:K) ±!GøüÞà :‘ï1šÙJú~`§F¢&±>¡©˜*KéBñH^Ÿ Ü*ä&ûsÇò—$ÎXBàÅ(y&fodUËÁÅ„)ù#¢­W:µ„›î{S¿˜fª˜œ/Î+¬×Ö¨óŒp& fW+2E{1À@eWKO¸u²\Òoç`£¿öbùŒŒžyÖê5i˜é¹?·|FÙ5ºLʹÄa{©Ö¤4N›’lt«žö¶'bé×kg=YU§_ÔivׯÀããñŠy¡¹u¬âÕF,WzT1!Im¯P¹ ò§× xv¢¯9¶œùMM•\µªÙÉÀçÖ5Af¢ŠZ+´”>äØˆÝüëhJMÐ-s}V·§Óñ=1}^å øýb7¤ÔªQµ—stúúé0æÊ=Z}>£%iJœŽÑx”m ’@'µˆPúbº­UÖZŽ@:->œ3"€[¯¾F&5ôUc£’Õ¹'g¤ ÖlËW?0Äe1‘ej-4JU·ã2–^±Ý%µSrÙwÝ꜄ópò±UQÖã%/­iõÓ±½î~D`H¦±‡xµëµ´ƒpÇaæ ùAË4¶êÜuÈ®(¡ ŒÉXR€½®6æF&#‰YmOSm°`ɵOÿhÈI%4ºî[…Éu(ý“ç‰b1Z¥íç0Jh¢ Ø‚lMÓ(“åu(ýíbs˜•Pöœj@‰ŽxIý-;ÒùmŽ€'bëÒ¤JYSï:òŽåN,¨þøî'§-É_ls™ŸNÕè4¿¶ªmÚ¬‹D©.ªá#JxÞâû\_|‡-ˆÐ · Áù¢Sðkð)¦=:0óhjí¥¿€AµÆÖ;€9ôÃt莡[o$A}¬R@= ?&lÊM11*‘pËIY:õ%Bã‚9튷ðÚ^ß5óŸM{ìÌÙ-–ß`Ám`é  ¥ Ûei|xܸUMè^Ãf£‘aH‘/¾ëÚÖUe $!`XÿĤŸ§(¬ºlÁ—ØG³úÅh†¼Ð¥Öe·î`Ù ©% x{zm‚]£Z«W¬ä™ÚµMe„YÀÌú«ù¤Öª”ª”fDPË^=%-”’¢nv$ß±ÀëvT)‰ëQY·)€²¾_«Õ£-s)@eKއ Ö £á±ðmŽ-¾S†N°‹K²äô™(½˜sK¬Ï÷¤)‚z©cJ•×¹smùÄUQjôžg¶Û7·hûEËbêÕ–žfCHQT2”~b’I ðö>D|ñÀäDwéŒMÌ·>º¦å=-¤5 <ÓM¶t›óâó'çÇ®·%@¯¬-x Kö€aÀj™1ÉêXDˆ¤Uõ½î“b=0Šê­¥…L#MUvâVëL±š½šOHBÚD¨kRB¶RT.Eþ£ëÎ3(œ`‘!ô6(Ði-¡Z™R{Äâ,5› i ®7ïclží¦‘÷sŸŒ’­*7ÿÚqNRÍÒª!RRô*qP)tÙ'O™H7Úûà7!A¼ŒÈéï®ç5« ˆÅ›Ü›C‘G0å$‘!°¶ˆ,‘tê<Ç_ ÕVrXGî´¨”'˜3³¹]øRœš—éMGoJ5xt•®9ùáÄÖ†«Ê3ž¾ït®:.ö½›ƒØzúάæEWr¬_ÂÌæ”€ ãÁ¢@;ÂAºnnmåÛ ©(ñÇňL ±D‹ ³&csSä¾Yt–œh‚6VÊIìG•ñۉʩÜxí)ya¤Òèe:PÛELØü-’4&ö°°ÅE·ÖuªƒŒ “êÁpNg§sŒYJMZŸv:ÃN-þ#q¤yŸ úíŠÇ:¡€îrväöø©ÚҳǤ‚æœÞs,ÉÌ8¯siþ[K¾§”<']¶æl-o3‹ß ðåÒ ÝËzú|>¹€ºï3§8e,V¥—•P”[˜ób:N”‹*ãÄ9? ­ßϽ†2px³Ë„]àäú@³2úÚ¤Ô)†Ëµ­¨Ë…P7Ü’‚lwúaýO–X[_O¯Ö(›‚”aÌóG[™‡0R©3£t£SR—Tò‚'U¶:G'ûpµî >ºU-€¦=ɨR]L­a bE"J"‹‚M®’H [3ØU{±zFmÜÜ)éÖO¤NüÖâRÙKP®)m“¡À,T×;ÞÖņšç^ÃÐøtýâZ‡Z­*}æ>M£Q«Ð¡Ãt­¿rV¦ÔÉÑâÚ÷HÚÆß?\5g…ªå»™Õ:=UÓØÈÿÆ vCU\ÅXb¡Oh<ÜèïÅÔ¦\J®«b;X‹n,GÏÛIEëÉôü&ñ_ÎlÿÔB>º™TPãISM¥÷T–T ¬‘dö·Û }œÖ|çúšËθmÉ\qé;U¦BªVcÇŸ¹‚;EÞšÓt·ui¹_/낪éícNîG?_ *ªñ*4¾{.7~ |;ft“TžŠ¥* Tiq”—Zqݵؠé¾û¤‘¶Ø¦ÔÛJ­[b 1=¹„¢KãMVÓ0ß'Þ”lغlIãrÔã·èô´.åãÐf-N»[©p¬>xŸ6T¡"N`—ާ%²§Ö#” •:[Z÷"ÇŒ)nN÷–ËÇ“'RÚèÊiÕ¹|‚Zl”SÜ,«‹;i<á½-¬¿sÕ·ô˳Ê.\DÏœÚLhè+RÅл¬{-ôÜb¡ÑÙÿº:M3ßF‡M·Hã-ËzqÏÂN}¨gõGÝKpÒz}Ž”¦ÄJFÄùß¼°Í4†ÆéÐ|}f^»ïÕZm°œv÷‰.¹$ñˆñÖ?(ùUʬEÈë% •i ªþ}ñg¡ðÓªMû°"z_’ÛHÌܼŽêEĤáÛûpïü vqøæ+ÿ&?óùÌ«ÉóSº_iCê1ð‡Ý`a‰WÜN_ÑY¾iÿ?\ þSè?ñ'ÿ#W¾}˜Pô\ÑH¨¼Ø\c}¢TP±ñnIܤßééŠ| œËÇyžvFq.ÇSo ZÔȰµ…»x‡Üâ×@ÞZFC~ÃüÅ/ˆÁéhÔú¾böC tÙ U¢)a…ªÚ’ƒ¾OIM¾C~%MW7#ƒƒŽŸŒf‚Ê1˜j¯eœ¡—W.Ë–ãE±Õ7 bnwäíè0m&‹íÈà‰xšèP62OIœ« ¶ÚYvd–JÁHàܵíl´é¦V®r=ò¯Cã¶kl ¨8ç‰&ÍY:E> 9-ÌC͇™R|6FûNÇcóÅkØvûG¤Ó×YfˆÇI£3–ó#’£G„ìI1Яv”zªmE;Á ^þ¿¶kzºæoŸ™ét7œ©ª]œZd6V°°n@>·67à}11¦³h´òyÆÔ %NyO5Qóg®TRÑ”Ó)q^%i°¾÷"À!08‚GÜçÓøšõB½I¬Ïf 1h! ÿó‚{•+áI>[Ûç…É90Ãp$žÁ›+R$»On!¿Âœm%.Gst”l¦ÕÜ4ì|ñ3C& Åáò‚+×ênSéR -è )P“c·ïŠÝ=&ûwžƒ¬Qo“^^ÐÔÿh,Îövrêz<é(AqÀ< ¦÷î; [ +‘+.!°c7³¢)y]¦Ö–ÖûÅJ/ ±Ûe È6µÑiE‹æ™“þ¢ñgÒãK_ý†Iøæ:<¦‚üg—©§›)V•YCÈ\0Õn#‰ŸÒø‡Ù½°Ùâ æHíS©ÕšÛk£1ðDÀ,FÊPíaÇtŽqKfös]}ÑŸI­€­m°ryþ"­At©Yš—IÙž”)IYºH¹¸?ïsü@bšŽ°éñÎуñ<ü l{˜Ïž=ݧå!¼Äæxv)¹ 0Ò™[«m°ŽŠ€«(^ÓpäœÑ‚Uy0ªÛvÚ°ì/fµ_érÍN§Ö„?;U®·…ï¦ÄÚû@Å^¿\4hr=¯Ë“õñ†¨-ÞÚ¶AŒyò}C+Òésé7Êë°ŸêÂ4€€w¹<_¦ð_³êµ­mœžŸè?=Ad¯˵JFA£O®ÏeÙõ'Ö]C¨(R×uö#r.m–4wZ­fÜtéþâ¦Z÷ç¬D‚ºK6OÍèÅ.@ФõÒÒõ¢­<'sk¦×6í°ÏâJ²î#2Ì+t ÷áõ†'6´²Î‡’·4\©@î²·?Åßf$ã¿Ê ½‚-#žß95ö©\fD˜ŸPŠàKÁçkê)·Uþi±M¾_`Ö¤e‡xw`@_I’“’kSÚeæjrÑs+HM”ÑK‚€¾¤ó~øa©»•‹«Ô7Gö :…z!‚,°"¢Û Ke¡j'Ä»“òç…í|(Py‡¤Äã´š±Pn=UÖ¨M´—§\Zõuõj%(M­§°þx=ÆÇ×>€|§‘—î Ž™]/Lžõ:lÆX˜QKZnãkMÉÔ`?|1wŠ_eB°{re]^ ¢¯Po+“œØ|¦œ¼¦ÌuZ‚"Çnï…6¢Hp%@·kœwC§KÉHõˆÝ¢¬VŸöî!šÄ¦ÛŒä¶[C®´‚µr.yç‹Ûñe£9•?Ó’ÚÖQ’ œüºEcQ•1ÚBÕ¸1äKЧ½àjuââôM’UÏ÷¾(,ö÷À3~ĸ leim! % °c;G‰òZÞ`Y`jÜèTÍa"kP’Ô.}wQ\_øv¤êI=º@]ì.b\3I¦Wè3¦K™ñá*Bc¥°¦ÖÓ‹p Ê·ó[žS[s*ûÿ­ÅT¡<œÄÄiy™yŽ{¬¿Ba) éRH Ô¤¥:ÒÖÃÛ©¡+½õ[±¸¾Ç«_ek°àˆ»é²GDóT\Å–^÷Iiy˜ÊRÖã±îÛN E®cù`L8“˜Ý—ªé4¶cDeÇVãQ6H$ßï ±U9Ç_Œ¨ÖÖ|ÂÍÒT—ñý ñtWÚx×ë‰ Ï„þê'ÌcÜÎâ} )–+tU°ë`<lj¿4*Û±±ô'2ï5¦A3->|ªóq`@vJ×â .6±° @ÜX‚<¬npàsåÔt\€™Hʦ±•òÜÙR m‡Vò£©ÄjR|<m~E½ž ªØHø~è 5)o°&ÍYæŸ9øÒÝq ´ÓH$NäØñÆðë´õÖInI”þ9¤Õjl‰ÀÌUÍžïC”ý>C‹t4J·GmWíkß km¥*' æSøo„jN¥Y”€§'år­^jÑ2«=³8%%/Iqzžh[e GÄ6çË{S~9ÄßW­¯O`WêÝ%ð?,õáI÷™eãN·¶³køwÚüXœ1f€®ND|ês^ÞñHÐ%×)DDSoBLD-S$,jë¥!ÅÞý·ÚÖòÁ+È «gžGÈâW9÷œZÈòš‰9¨­¸ÛSf¨7ÖqVJHØýGòÂv®ï„f– ñ0Îp¦TafðjrºÌ-–úA‹†Ô«o½·7ßÒã]£”³y8iÚ¹—#嘔ÙìÊ’ôüaÅ·~“Н0mpG—3¹º/¸ýä±M¾aï å—éõV¦;P€ë´ÏvZzï~R mÉ$m}¸Âj†™˜ç¨Æ#wÙö…œæpM,æ¦b""N:¦RK²­au'¸¾×“ÎØ`£-Q\íNq²•!êM%qºÎ<ÛJºVêt«ô Ÿ¯npþ‡Ä’¿íÛÀõ™ÏêéÛ5˜»NrÃŒ2&‰øÍ%ÀµèYie±}+ò>¿Üpî«Ä*®¼ÔrǤ¢ðén«Rä!G^äã´O­=›+J£~ë”V™ñ²Ú›zouûwÚø­ªZ†',y›ÝKõ@8E'$2Õ>M/&KÉjw¾%IHp¤&âÄw§r;n0“Rßióà A”Ä}öl™îǨþ&©HÜŽ¬§$$êp[Hº»‘¤ð{|Z'råÏOyô•ï¿[rûPuÇ©u(‘fI:–óié$N“½íØn/ôÆ)“Uâ‹*Ôm<úgÓä8æi4ôÕJ*T8sŸó%TIfÃC’"ÆQ×­%EK))º¯Åïa{[½޽"ÿmpO_|_PûŸÈsÔ+Yz,xð½á˜î¥’‚楢Óù›î>¸;`ÓÈY—gY@÷j:§#)ÄŒü—§$ 1ã %²[¶¤ë<ÛJ­¸ÚÞX´H=„0^ó’èÁöv¤9PmøŒêmÅ –ѧ¨V «Â OÌúâHU›2#ªŸõ9Ò©yr<‡"›© S/¡wICrop©Au qžþy‰œààB‘+4 ¾jefcÈA Ý’ÐA·…Çs½Î.îW«JÁŽXõùÄP40³Û”ƒ‰*É‹P\t‰*¶—£ëApç¶÷sŠ&Ñ®[,ÏçkËR£ÈýbUhÕ rT·ÙˆÛŠmÝ@›¤üîlvûcÚ±°”=$¼.ö¾¥»&7.SJ²ýI°‡ª‹lBÊÞÖÐk€R”Ÿ3¾ÚN0eƒØ`ã™7£æê½&”û†ôÊ’]Sî6J”£È¿忞¦Ö¡÷!çÓ´®ÕéªÕÒi¹r:ûþQíª‚Ü‹%aé`׊Ylº~îÚHRÅ·ÔTJ>cÊçÔkR}¬`zHè|*Å#–õë0æGÍ*‰9nG–jÝ6œ* ´ Oðîmn.OÐ& Çq{© ØÇÙ^ÓMBDeˆ‰›2KÈŽzÄ¥--HÕ¸¨ͬ=yÆNµ˜›ÎÕ·âwÍ…ƒ–ç½æ “ŽNT…7Fp:´.úÜmÔ/Â;$ÚÖ¸Ôh)M8U ˜b–¬ì=Dí:bfœ¿FãÄ ¤ÇŠûïm¡k&ÛìN“žÜÙ$°J#ÝÊx9F=>ž©*•¢‰ :ÓwSWõh¹&ö½­ß¶:tä Ú3žý$†º±w”Í‚;B~Çj“§gš’'>—Ba+¥b ¨›…÷âþ%nœPvä„à¼Ýí-²_Dhëy Î ŠY‚‰ íZkk æ*U‰_mLLŠÄ˜W ¼~»ðq`º}ƒž³"þ7eöYöA‰“=ŠQjáÉšƒÑ¬Ý§“Ö@<ØnçÌá[7VØ3E¡ÔWª¯zöâN_ödö‚räêThÑÄ—Þe­$ƒÂ@7Üí¿mñêë76ö»[^†“kü£ŒüK¥å÷GSñà .­ P_TwÞ×´éØUÿSúÌÅ~2º·þàÁ=="5ÖUà$\iŽñ:ˆÊVëQ8ìá8ŸüÇüØç“»¤¿Qç%ÙVõæžoÀùß2S—"lqX2WO«Çk:ÖÒËäJp¤é·€scÜ\âçÃR¶,­×¬ÊÿQ |¥júwM°%RjzJKe•Ö“Üù߸+6ÑÌÎiÕ´˜¹Û°ï󀿠t”Ò$²˜­—:jugÄ“§b ï{a+t•³¼MvÅ·¡Î ‚)4g(ôF×1§]sª¶V§Tžmú{\Uj«òìÚ9K ³}A˜IÖg©8·F[¦DiDÜt\…j½€ž/¶ ƒÍ)×ÂÅzŸ5œ³FL¿^“’étækQ¤%çîî‚—:{x­ü7½½Aòž›UP§kcÊð`ÌÑT§ÈÌ’Z€ê}ÒYL†JwEÖ€WÇ>"¡é†´ïPLd ÆzGHÈÅÉ ÌÜ¢ô*„“í‡éŠ$8°èüµÞæÝ¸#¶(®ÍlPðcôl3t”kTÜÏ"—ñ6½î+ÝDi6$n|ûÞǺ˜Ñ±7¾³½f£m·=Ö$º\i². ð;›_ÓÓVv8^#6Æ^#OΫÓ}ÊB]rŒ-’ƒàYø,o¥;=-†R­¼Äl¸1Ú:CA†™¨õ"Hq0£)@X_m ÈÞÿ¾=¨ të%¥óÀF&ç~%š 1ßL˜îhn?S¦ØBË‹#Ä|­òØ“%<$ÚŒ9‚è´GŸ\³*ŸÒ‰! q·\ê%(6:JT­€Ú÷=•‹GÓÔõ/—÷»çÝõÄVŸ}%¦ÓÂþ=gîT¦Ö*ÒjK‹f‰ å­¦È •7ñ i ßÇžö8#¾8’r¶;6x$˜B@ˑꭹ ÙŠqÅš|HRnoqksö¸GQª4)vè# §¬¬¤&*Ùˆc²P¨ÉdjpêZÍÁ*&üÜosÞøÍ¥­± )ݸ$pè×&xñœúD¼¯S5*sìÉD†åKaèí8«¡–† ú’wôÆ™©òÔÚ9>ò`Èl¿\Ä*¦Y[©P{£Õm¦Ë+ñêlY”°·¦ yÄ̘;0ÁVQ̆=: äÁ–Ò^e·W£ZF×óàw¶#Á™1•<ו ¹5iªq3  ¤“¤¤ùØßÌâgOs¨5®AýaVê“!ø3òµQr§–¦µJ[ˆ ÉéºÂ<:Ðàº{·É^˜Ò°%«íŸu;²g¿Â{øna÷HÑt­†ÛŠ–6 …e[‚~öíkM±R£€ ,}ØéøóîǾWÚ@9=OO¬g©Q•MnBŠ">¾”ˆáN%DÉQ$öÎÇœWUË‹zó‚=GÂÀÙÚIÃ+³ø+S[ž•&\5œŽ¥_b7IŸ?\_5ÇX‹ZdþGüEœyyëó¶^Ì.=–}Ú4¢Km$«ã¹Sjî@ ‹ÖóÅ¢¦¢Â–u–Úfó“}}!,Ìü,ºôÙR#!æe´€†–µ©:‚½È°Ç\ÐâNÍÁý¾bükõZ©mÑ%IiF3­"Èivá YVßÛæU¥Y ç?¬Õp ý&Úzœ¦G§Æ¬MX©ÈœËÎ2àêhH)7(µÁµÇ­í¾YŽ#V‚däžen£–2Ýj+´ù1ËñVu $èSJ#rï‹G¡™Fî11ÃÆéªöZ†ìœ’Iü¢£´™xA/H•S%-)dZ"Áj*Û}ùÛ·–õÚ„uqâi´ªu šú÷÷Lùfs)é+[¨€¸fšâ‚ùZˆ+ì¶×ßl ÒŒÚ7¡#´CÏShrXŠÕ.jÞTM ©zÉ••©:¬U{§ÅaÆø-•EéRŸtý{6Dz-2ŸC †ÔËŽ+m)R4.MÓ#V¯JÖFqîĬÿŽêžàr§òe/Ù2¼ÄøÍ¨*t'¬Y+ A¹§¾+ÈP9ç‰lrHÂãŽe–¡Ì€óØ­6×¶;SìpÞ‘mehÓ½?úI”ª„x-¸©/¶Ò[$-KX[œh€wvŸ&:KŦ­§wLF_gÕÖkTÉJeµ%)|ôÖ£ýjlŸé­JX±é!Ô8ÊV–—¤•Û$±Xd%¶Â8"7dx_qùÓ‡zD!–ùHW$¨w¶Ûb·Äî°]gëÔë+ÒŒížé@÷¶ÿÕ³ÿ þìQyGß+¿æ-ÿÔFc2!(~¤Êˆ…묩$) w BmÛ”ºé[.¹ 2'Ñõu}¶ˆÛJñ}É…æ§«ñ^ë…É/©\ŠŽÂÞ^¸6ˆ u@žGR†&Ðw:Ê49ïÍqjZÎä©WÆ†Ä ÀŸ2Ö—ó nð“Ó”¸½$sµ¼ð²ÔdÉiõ/‘X‚ãÒžèµ8ðª} 1AiË)§pþéìºØ¥× õ ÌúaÚAcÅ©Ñ3—:4–•PKÎ-¢Mîxìp“c¡!ƒFiJ©®ÓÉS2£¥7&á%[äAûàT±ƒzAN\‹AzRgF]b;ø‰B”HÄz‘äyp+²ª“Áíïí¨$u¤ŒæÌL©P¤¾•¿6|•-Å”ôÛ¸ ;Ø“ÿ!ujŽUy÷Ág3Y-E•~[.¬p­I>›ìwúà$zÃ#œð%+Ú^¢®£–QG¸ûûᇵ/Æ„XÝFû‹Ü$Ÿ–Ÿ/`u‚6ûØÉÎG¦Ä‰R2ËÿéQ\]–‡-·Â’Îþ–8RâÀFô¨Éë fZ„ê"ašoúd­E#HJA®ÖóUïþ…u’}©-E¡FÔ„ò¸©M«'3Ä2æÌkò\qÕ€·@¶äiî’-s{wã¨pß—óŸÚ)ä».åúù˜¥˜¢È9QéŽÔ­ ¸Ô§TG x¶®.0`ça"!6m2©“)µ™fdÈ{Þ”•8ÛxŽàö øA!„ŒÌvôŽùH€ë7fú—ᔨTí4Ì©jR¤j ž7½ÁïéåôÃ:JQbÕœzÅuš£§F¼Œã † Lm¨q›fᥴ_PÒÚRu(ÛèFÜ“‰WUD('-éóŠß©ÕUk¹\T9ïœs'U\ÁZ£Ï™JU@­MNX`-)F¤%Z’.ì7¹Þøu<$Y§ó˜ü=!WÄvY°®Gsñ&¹H®RÓ·"&OV†Ëmþv«„¶Ø\›X[, ô– RÅËc™‹Ú.f÷J›‘¢!Qåżwd2¡ùÈõÚû§¥¶Õ޹÷~‘k[6dqˆµ­XšÜŠªÚyƈS®(~X °·Ô[ë¾,t:£XòG¸þmE-g÷L|¢ä¡¯.cލÁÔ¥It€“á=ÀV¤ñÆÃÏ·]åØÃcÐ÷ɦ—zœ;Ën‰E¨)Q] Ì[ªuäX …‘¸çÿ©8?†j‘Å»?œSUSXêÕvúÌp„6Œ„Så;O^B:4Üvnø®Õ‡ªàÎ2„ ÛâcítÀûÂ!K¦J~®ô†e¼þ›©å:¢J’6¿òûcM]UhQoçžõ̬¾¤šÈé(.PäÓ˜÷Õ–T¤Öµ$ƒmö›Û ëöjoØzv‹Ýª¿Ãh7Ô;Œ‰<ÌU:L¬Í.—*[lHZ#¤‘¬-qÜ[o犋4áNÄ<‰{¢×EKu‹ÁÃ,M-®\ kñ)ˆmŤ¥)MЀ UͶ ó½ìyÅ…wÕ^˜¹aø|£ÖèN£^XY…# ê8éáÁËõ|âÔù•‡^.¸yRTKZ{_m_¦ÀÇÎÕLÎï‘ÄÐÖ¨ˆs(3kLÒ©Ñ&-Õ8%6ÈÖ²µás¹yŒ]'‰PF,àÌ>§úRö°µ$m'ç=Ç®ˆTÑU©A(”âÒÜx›: «:Pykü½1[©¼jpû«Òj|'ÃWÃéòË7S5®œ¹ ”Û“< Û Zu )++P"ûBAIÛ–Òiü쎇¬cżCìAlÛ”'™N^aìéQmÆõÇ)k|²Z $¦üh¢&7qÎø ×T^žã#ðã0îk{-Lf4ôEŒø$-ÈQÐM¸U­ýû7â B¨`Ÿt£ðE×›]µDí=3ëîŒt|Û!ez A1=êTå+X Òm?¦ûîJ‚¾˜¬jÙ['¼ÒC(t–zŽmƒMËÌUßK·Øë¡²,m§U­°z4íq8íÖkLIbùÏÜ"t¹¾â”§”·¾Ú‰¹Ä 6ÐŽy ;³RàTT†’òmÞÚø±ò¾Ûúaôñ´X37ãžöÔ,£’;{¥Sñÿö¦¿çgË>“ö{ò-å*Éeù•À¦ÿˆ¤¥.iInåZn/͈ÚÛ[WKm¨ÈYöS«ÒéCYs…,gª~\…E’”:ÙHu¾›«…‚O¿qÆ"­m. b2¿dÕÔM #ŠáñƒŒ%]$ì>|_SâŠW6L¾¿úy-;Rr\è±ÊŸqÄô@uÂ¥p›ïý¸þ&vÕ×ÖGIý1VžÁeœã´T¥ÂvVtr¯—jÈ,HuæÏõjÜ©<‚o·úb©õZàõš*èÞr½'ñïõêd:|tL¿!KiÝCRÊn“¦æçr{vÀôÕá³gx}Ke1_h5Üš?£inC ­øN¥Ô2—–k(Åíc±\$¸Ñ q;orGìmÿwÏ!‘©³’9™d{¼êFÕùŽ¥E¹êq—T„•È]‚–vì6ß<ê {Ù ‚«Pí¦«à±#°ÉðÄ™³ëŒe×é´÷Jg>Ò[-%Šv"öµ­¶»S¦j³QçÓ—IàÚʵ»µ+ëž¾u!„8Vå;×Q*LfRºcaâæÝ÷Û÷¿i‰´|j3TªtÌ®iaÁJ¦¡VŠÀñt÷s{ïÚü÷í´{g\@ÉÛ¯Vd‰1ßnM5ôµùŽ©ÕºÐYRÊ{îHìv#}±6Wnt2V 9ÀÌÍ_®Á ¦sϭ窒SéiA@¡$¥$_øˆç¶Óߨ¥ŽÑŽÑ-V—Kª©Cï^°^Y¦½Ò…PW3zd‡Mž¿ŒY*J¶ÀµÎöÄê }Ã'&U¨]”±OY÷.ÇËm±˜i¡*AXmÖ€ á`ÏnݹÃZ­?±î§Â|en·äôƒ)UJEAAu–oNiô~RÒ–«m{[‘@pŽ©­zQkê8Ïã4šE¨5ŽýùP3fx…XËæ‹Nˆä†d°¶Ò¢‹©6îÌê¬IZr,'Z‡$éW¡Û×ÿjÿ0 s4>®¯[§!z¯ÐŸ")Wx’y8T6['¼¸Çùj c„`âp铲áR‘S”Z¿-4¦Ôáù”öß UPÆëÇÄ mÿª~™þèïñ+þ‹ÿ«Ý_Óˆ¶_ÓÿùÌmüMù.¾â–Orqoä* (Ÿ:Õjm½ËXs4±ŠÜˆð¤ÓÜn×í~0†º…52çúkWuZ±Zt æ7túô â2Êœd­,¶¯„n‘òàb•ÐÄ߫ۻϛríuÊ„ø“"+åH&@vSkì;¦¶³¶5E«¸†ï9f¬÷ïpܤÒR†a§Âµ2)#ÈÛ£Ns½ç¯¼cbF ^¶¯gQd1) ÆbzØGL§R5Xúj¹<[Q¤¯U`G8âVÛ«³IYtøÍQó}I{ÓÊÔ€RV›<î?q¿ö;£ÐYM»_%}~—׺#âÊutä(ÝŽã=~ˆ˜ªfº«Ì@d¥¶ï©Äܸ¿×ŒSë¬ËЙe¢©ÍJHTr…=ºRÈKñ^d6ò\V ­û$\ýp“Y™l4Û;Ç7žÑ.N3*HkúýÂSÁ¸ìmçý˜ºB‹Y[28øÊG ÏìsÌ_™_bt÷ß‚ìpú†€ò“âKAG“Ï7ÛnþX”Ú¬WOä˜;u ¡c~§œð }cžç´Pö±K¦.• ¨Í½ý§: Ë© IîAl24Æ…ÏiW¤ñ†Ö^kaï㤔̜ܦ¡Ã˜\*´sb¢ <­r~øVÿ½‰x€c" •l”(6ïMhÖ’´[l0å5NX­º»­²ãl±¢úÔPFþ›žÝ±ÆªÇTg2Hê§$ô¹d‰5æj³2N’HéÈRBT7Üû§l"¾‘Šëky=%:ûNvˆ§)¯SÞO½¡F{k+{›÷møÃȕظï"ÊìâÎñãUJj€Úߨ¹®éµ‹º€²Š#HÛ×u]?"B¦²òCEìʵ5ÉŠ“"!JºTÄçŠJ”7Ø€@ðI¸nª…>ôUªRk™FK*•èè ³n¸Ý’éM‰Ò¯Ô8àñ`°ˆé-~ËsZ+0†e %^°oAsÎÜüñ5]©ŒÎÙg˜Àã%^½=c.ϧIPKRXSegµÆÇèlqÌAû§Ï‘jÏälÏH¨ÉGú9ÔÑ%JC[ _ÖÛÛӪ䱘/i' ¢T†q«Ô‰øê¶JÒ¡ó¾"ÖØ6ÊušÅb»DÞ"¹™²Â¡Íi-Êl”ŽàpG¨Ãz=M”¸´uý-Ÿi¨×wS'ô6ܧfEÅ“³­¡@ââõ5^]z| 4õ5­‡´á™2ìªû¯EŒ°‡é|ÉYm½)cŒÙÀ¦µ‡õ1æl3ëûA”¨ÙÃ1BuqꌴÅ1†Áe”J’7µ‚´÷?¨mÎwPÑôFeX¹›â”gsNŒøi…Ö°…ob,M…Õ·î;âU6äÌ婲Ͳ²üåÁ”ŠU2Ž÷Yô„É–´Ý!W&ü—{üŽ+V\“ˆgr®vŒÅ:ýM¶óÜz-2‹(% z©!¥­Ð¥#âIX̪¢í‹ÓeŽûçîL˜„TëªüÑ%ÉVw©ñ€./aÜ,[xZÖÀƒÖeªSRUMy*zã×´Û*bäJ»ôˆî(§¥ïÝ $ü]÷¶Ø†¸Ö\VsŽ~PÿÓUjjÓ5—¯sÇÎ)PfU'Õ\Ìuu¾ B ü´‹qq°àí¾­ÍN¦žÓAvž­UM^££GtL¥V"¼ÝQÖœbžKk$ß{y_<\åuto#³f–ïתPCèHü‡?ŒŸæºÅuAôQcºëRÚÔßH .#º@æþ£ï„÷WJ”ƒ5”¶¢ì=£iæj} 3ÔYIJØ€‚-3Ÿé)Ócðƒ½ìOaÎ+<ô¬ñÖX¸k ÒcGÍYyôO“Du3}Û@[`Ä‹‹|ðÅZ rb·i–Ä5ºäBöyU•] ÉüD—eíà-­6‘± ßî1u¥ÔÙ`Ëv”:Ÿ ÒÖEÆbí[OÛ ÙN[&;V¤¢lŒ•OjoȧEŠëq¥<Û@%î–íZÂ÷ÜyƒŽÙZ­‡a$ ;r`¨É(¹•Z"¾ëîÇ`xÔlu$Ø(y¦çÓŒS¨PqÞwK§=OH÷[¨ˆT7ªK‹k¬¸†ªq\%m*û\_ŽEˆóG¨î»ÏË@u}b¢I!•© \v r‚YžÃ÷šªÅn¸ï%YÁבH…Ø ˆ‡d-Ô•9©Õ‹¿S«‹íl%§Úmb8À÷| ì(™2|œÍp>épÝlv×m÷¾Ãç‡L"¸Á—ª,Úƒ‘›v|!KµÔ ¤ƒó¾ Ô¡•‡2¸£#°]J³³yªºÆ–„\…u‹$ÔlÐTûDþPˆYî`àE¬ÔìØuh/Ap¥÷¤-EI7 I ¡7õ¸V+Nv%c’îLkÙË;tÏíò"™I§½ A!Å “½ôñ¿˜°À¾ÁjÏ¿ÔK\UIÉ„ÔÖ8e“ˆõÉómFœëRD  ëWäØ(„Ü7Û½øÁÚàƒ-¦ƒk"^zÌLæÕM@d7”ÇB”‘­`w66·—ù`NDîÂhiúròÔ:‚奉L¸Û7¤!§d¤5ðŸ|@°Ü ©Šà­ŠE"Ce]BëK-4úR G;n{wIJ}˜e¯`ö¦Ïf°)”ˆNLj Tu}'ÇLI m·ÿo,1S)8ÌZÚØ.â1)p¥„Ü_ìý­‚ºb[3ÝB;N°¥º6ÐP}AÇiv ¨L¦}$5mÑ×›UI«Ê“×aÕ5Ñ))C‰Ø¤©C}Áýí‹S¬gsˆ­t¨€™³®`ËSž“A‹9tèñ” ä€\»–Ý@;ŽÆä ÛZ‹ py"XP»Aç‚r~S¦A«šÍNtI±ÒŸxa@ìIÞëOé#ËÏå„­¹±°ctÒ¤î'ˆ#>ç¨y±ô°ÛNtc¨†êÏ'OöùãÕÖW“#mÎHRæ2öKqR]eôÌŠâ[Q)°M¼®9ijYˆðZëÓîþ±%-:P A¶­”|ÆS‰U É“NŒëB’ü3§¬™).nE’M‡Öø'8ærNƒf['ýÒh…|-¬jA¿ #í…²H8ë»C{CƒÌ”øQá0:%¶·Ð….4á±Â¢–²?mõ Fö`Ç©û3©HqÑU_h‡_7-…8›jýÎ'BfÌÅïa°7hBµì’XPºìÖ[>"•„¬¹døNÖàyá³NÆ8•Õk>Й3”<‰ìÿ)¤—ž‘WœÚ ÃaÛ”üÒ‹iòñ–8ÄídFcìˆ,T¨që>ãLRáôÓˆS¤Ü”©;ryÒØ¼ÓéÛþ9Ôõcðôˆ[gÿ:ŒâþwË}aŠd1%õN¿%*[ª'{ïý„!…¨Ñ鑽`ùIYeÎ@UÇÆv•Zªgifš†„”´òÜp¶B•sÂA6°† ÕUÚ1ÆOéN×iù{Ϭ žäæ¸ü(s%6ã}c*)ZéÔªôÂb®3˜ÐÁ=#*rV¥,iUÁÓi!JCh6JÏ;ßÄG™ÃcC–&gíþ ¬9ZÓ#Öv‘”%Ça˜ ÖZ 4ÿT€ÉÖàéÞûø¹f#VžÑhdæ9o‰i›LZÀI9^ø@T=Éjmçº"ånl‘þ>˜¸Ô5j›Ø€&CÃü/WªÔ¨ÓVÍÏA×þÃã?«P¡«&SÞ¢‡Ÿt(¶§Ø*%Fåd_¤ïØc3·hyôæ%­E«µÔt8ùsé:±=liþ„¥+äÀãNºtØ:O”knÔ>¡šï½è{IGµŒÀÌúœq*‘ Ö¤†äY?=ßÚݨÁVk?§)»Êk-èzN¹B¼Ô<·&fd”]„¥ôb¡ïîT /co÷¼ùÅU¨ŽNx3Y]öW€§ˆJ«œiUÔXˆ‘ž<{)n(¦Ú”¹Ãú‡_¯Dl¯~g[XRΓ£MTÜ]EøêD¥6Ú E)C¤EÂUmV);^ÞcÓ¶ „~=aã~YF}'î{4zæm Gaì©é yæ{ Ÿ ¯·Å«éŽ&Þ‹fá÷à\’ª|zzÚêJ\…4­GrBìIóÿijÔ¥> tÏÀr)JÔµšÜwçÄa™E‹—AŸ&TC) ÓN¡* ¥7IO{VïÛåó¶ñ;üRó]jv±íž:ãòÆfŒiÓN€ž¢`ɲc-Ø”•tÙ yNL¸Oît¶Aý ÓÁ7¿a>°”UòÏëî÷~æ)£AcáÆ!²£Rg¸Õ>‘"S¯?­ñýjkì±Û-’ õ™*¯A©»^®7OL·c%`j$ª×÷ \ü†+5'ȸVŒãŒÍ_†­Ò EÈ3ïdö% sß°˜Â|d/ZüB×íßÜakÙªvﯦ GhtèŒSã’×¥˜M¶T…¬€¢¢l/kÚû|°¯›cØÀ†©”6Î'|í—QFzޖצ<ˆ‰aW7C+5qÂçÏZÔTêÜäAj«-b1ˆMÙ”ºU%ª;³\TÕ„¼·šÐIZGHzu¶øõ–[¨×|ñÆgí¡Éïúâ`lÄk4ÒÝ뉊F–"°[P+p ªãpÉ<…¶ã'ÖxÙæ=!xUjTÓ• .M9÷’Å…”èÖR€‰¶­pxÂþ)n³U£§GJpýHý õü ôµÓMö\í04‰9¢µï’PEiJXE†‘qd$z÷8`éêð]ÒÕͯÔú,<7H|Ró}§'?C,{9ÌôlÉ6µP¦»!¸©YŽ˜ïuÖv ·:lNæØõ»ŸïE‘«V%zvúa™-è²â¹•¥âó`·ÓøwÔÛžØVŠçÒl,H36y¨9ŽTåF~k”ÛêaZHjßõ¸<záý;¸¨šóñˆÞˆÌÌtóÐßZ#ÓCìF”ÕÍºÕªÇÆtÞÆÃÂHvÃ4ÑbSºÆëÏ_¡ºú¼Í¨')Ttf!}Õ/¨T”¤¶In6ã{ùÛa^rÃ?<™ø `×a4Ñ6”ÙUÂU®Êû'ûo9F#hÿýF$¨¾ôãwþGá~Ö+ì1*ßü·×Ê5öñ过ù›¨´ ¶X¨1S­ÑgIT¸ïj@Zít¤Ü´o~1áZ^Ä–ÉëÌš³Ò¸Q„b‹.d„MªŸu#Üé¨WõiBl•¸®Iµö¿Ï˺C°G¨Ó¾Ñ{7åæó !ùŒf:ú…§µ- M¼D ŽÛØ\mU×-Ö1zŸ,é Òh/Ð2õ)m<Ü jEÈAÔ6;CcÁ¶=eo¿ã=]Êk ž‘7Ú¥m ¯5F”]ŠPö€@mÄ‹¿ccûâÓJíFGé*ï vCt0ŽZ[ªÂ™©dFRj©-\¶–p–NÛ÷¶;¬× lÂŒ/¤æ—FR®¹=%OÚ §µ–Z¤D¸jñ²Kv!]À¸;ù`U¶ÖÁé:Ã"B«>Ô³UST2#DiÇB m{ï¶Ç n­S û^’Y=zFHÞÔ35 b«£5¥¸µ· qqµ­rÁàþØ^Ë c˜Z«ÉëÄ\Í™ú~q A¢Ã}Å/óm´u5.û-qþ8Kg9hø۵bÝ-Q9®,9&U=çTBÔ¦ŠT‰'϶ç bA3¸O (”¤fœ¯ï(i%.'[m½e!D…]÷Ë©=­ÑE™P¢`¢SM:=Á´¶#¤ÙF×H$“a¾Ç›v¿8UÉ-“UEMD W£-ˆQ+ÑU HZB‘)A;ØŽ>¾¸^ÊšÆöD°ÒøÅZ5d¸ƒçô$—?¤¯6ºã1ºaHAn­gNç[ý±e£mÕ v•>,…5$“œóÀ™(¹ )-ü_KàåÈ8½T±–™—jRšÌx²ÅKHSËH H&Àó¾çœ ›#ß©0rzLMn”hõ Õ'Ÿ"Éi °­(&ÅHFÀ*ÆÇÊø ’ÇohËL“ÔGǦ‡[¨êP­Ó©Z÷‡°êP8•¶j]2Cí2¡>šZ[Œ·Pd#uD)$ù€ú÷¾M žâûØà†Oêõs5 :²]u-„8ê¿Y‘öÁ_Œ]Èfè×ìÃÝçÔ%"·Çâ{¡è¡+ … và>Ûó€¸Ç*p~ºÃW[0÷O ²¥~ î7HaÔºwëC} 4,*7˜»ˆÁ€ ƒˆ»šë ÑÄÅtغRPÔºö¹ý°µ¬Åð9TVIÎkªºìDH³‰mµ>§P6³„mè,ŸL¤é½ÎqŽ“fC§þëõ‰þšÆ~`ò}8þX ¶‚v)æOPÆö•ü»•i”÷eÕä0“.¢ñt!.*èAÞÄíÊ®«[kÛÕ£ó·3Þ%㉦}´’aÆ2ýu$MLNŒÆÒB QäßpNø•º5ÛÄ[CãÖÛd޹ý2w?Ôio¼YG\­Ntõ%- i6·Âv¿–u×i+ƒÇhøðí'‰YçºóßåÚWs½RŠÆ^…çP&¿otJW¥~5aÀò;,!aÈÞzËm:…pƒ¤‹æ<‰LËA¬Ís«\ǸË:j¸ ÞßÞ1¹ì$ž²WT¨Ø^k9Å÷ö`¡¨¥}.SªÀ íp;ãÛýãYF6ˆz½UŸXöyL÷Øí)ùSJoÒPU¤€·‘Ø<JnÉé‰Û÷µ@wÌ_Íyuü«˳}é-uQÒ¸-‚FÇê?ͰÚëVÍ(Lr #ÌYô滉ìc={)'(æ*]r+ª~OvzZu-µ“ÉXxãê0š•.ÏtåT•íÔ‚Û²j-l¦ZÜq!€*7¹@Q°¶ÿnø¹ÔjhÒÿoFr}zð÷˜4[w·xÀýfŸfÕ1QqÒÓΖÜmeÀ­“â°¾Ýïûc?¨Æácòs4Þæ:ÙED.TöÏNÂT«¾Öi”) §(º©ƒô Y Üm«û†,BWœŒ™Ef~zELíœêB—Mb³!é$:…4UýUɽ‰¾äÏaÛ|VŒ¶U¹Yœ ðLìÁ›MÒ*.õœ…-ÀWªÊIØñµÀ·Ó>jŠÙ{"Wxç“Ó+†à%kÕ‹)VO=Ï*ÀèÛŸ,w<žÓÞ%å£!nê!OÄ¥{³Qu 4Gü=ìGoA†¬J³Ï>¸õøÊåw+ŒãÓ?Æ'…U¡¶–²£qÔÿÊ9úâU´mN>Ìð«<·âgm?Ô+þ“ßoþ[ñ0»ëÿØü£Íw1¿'/:¦ÝB\Œ¤‡Z;+~8[Ãè]EÁ{K=UçOQ'¬ ù™ƒ.* ¯¥¢µ¤­K'ĉE®.vPC†|kOR°júô2u„‘w*zL5xµL³N ÙD—ZPˆûh Ö/d“½ÆÀ^1GÓÚ2ÿr²í^°×²˜û›ðêNM•烹"Ø">æ‰]AJÁ#˜JµGœr|ú#Ò’‡’­M¹` @Úþ„Ü决‘^¸“<÷[¨dßèþ\§KBTæÁ@¬¨óèHýð¥C{n1»Ö»V[r…E9»ÙüwåépMeÄ<„¤.T ³ Y‚ÙEé‰ó4\]‘U¨Á‹N˜o)…º²”&é>j°¾Ý°zÔ°È‹j5Sÿѱ(ÜŸšWGjŸZrœ¸­¶´¢<‡T§Xfœk I‚ª3¤³!¡ÆŒ€gZJP5XóOøöÄT…` uسNÀqÄšš2iÌÏl«ñ)>¦Ûýž%¤>UΟ8åî5~F£¸öO×Ëóˆò#<ÇMô¨½¸Uö¾p7J¥$õì¶"ªê3ßj#k ¡aM8¥Ü©'‘nØäCVF &Xa°‡ãR$ !–Úu)tr“{îA>‚ØæŽ–²Ã´tŠø¯ˆW£¤5‡¬ë_¤ÿH)®Gf|ˆR•hyxŽö °øn{[ë‹VÀp32´øñ±Àq$ÙŠ§.½Išj£=S¥…-Dh:¬S{ùmaö¶)šßgx4ÛXÛ)—V‰A–Ó™jS«@áDØÿ ~¸&IRD£Ù<™« äJìŠÍB»Å8ô€êHð’€tùî7õéšÑÁÄ­¿V´‘˜O2ÍËÖ˜¦,93Üß †Ú‘qðpm¸×ãÔÙKSjmz;]¦Ë7·Ý‰ù¹‡ö50·ºï¥ÖØB€³EA- (›~ø±¿Ï¤‚˜§¯\>Ië#Ju¯hcW«ÑýíȪn Ñ [.ÝD¥Ò6±¹ïÇl q†@ƒƒ‘se*ç$ˆîF]Ž m?+¾Öà§é‹:ü4ªÇYœÖÿP5VšÀû§ýt’ª¬(™N3´žuÔ:%0MÞH¾”«Žw°î0 N(ÚÜ“éÛëñ—>â#YQ)Çë3+-·X­±S¨T㡇ˆJ˜qk/¸P4<6¹)îoéˆ=WXÂõãçKjWÃ?(á•ó«Ôìé9عar)ǦËît”·ZiHÐv¾œ./ ÖM›qÈé g–á=^iøL¹­°ñ 6 ±Ý'po}±k¤òë¯#¯ ”š–Ô}¡ƒcŒ~ó‡³Ü¸åbM@¨6˜ÍIPÀB‰ lãk}Æ*ßÅ(Ó\i·9cOœ±ÖimÔQSTÀ¸ÌÁU¥.ŸX• 6RZt¤ouØ•ÖÅu¥ãÍ-„í*CYWöØeÇ_HÝ–—9 Óh858òw*òò߇™Ü£‰˜ñ?·Íò³€!ï}OúÕcÞWºW}·ÿìÉko·.®¹µVÝ ’ñÐÒIV”á½¶;xçwëm¥Fžž09ýçÖôÚsç]Îz~Ð}#3—ë `¶¤6‡‹-§V@Q ­°ƒ;’s®‘æ”aŒJr)´¼Ä¶×9÷K ¾‚7-¬ $ßÈùw6À€úB;:g’#6PË覴䵼Ûê^Í”dŽü‹‚pJPAÌ_U{>ŒI”úóôº´êÐÔi¯>§Ê¾$¤îoo÷µm‚Û[2à@Qb£{BFs…{úKšæTÒ Yqa,¤þ”`?Ïž=Z‘±·6gå3V(Ê PœÒA?–ÓÊJ~Ã,G‚Æe²‰Wª×)Q_UKOŸ¤‘Ö?Ån÷µï‹Õ(b¶¸ :|§ñ¯ óéMd¿¨ô„“T,+C­•±¹±¼ò ©˜F©*ã˜ÚYÒèqêmGx.!ºJSrP«KÛßà œó6_Ó4êªf6‚ŒýzAfdXϪ‰u™rlE¡®²8x¦ÚE·Ü‹ïÛ±Jœ¿³7íZ²bç³\îšMUù@ l¦Ão¡k:u…cÈö·qôÃíP±pœÖV‹Š¶æéúFoiYå2ê®ÓàIHÁ‚ž˜l­j?$}­Û§NÍIa×ÓÝ<ï‹í«5Òjq¥Ç–ÓðŸx~{Í#X½÷%;w>cˆmÂ5cWbxœëU:dJ{ˆ¦Ér\9Mtµ'…Eößkúb[l6"{NôѦ}($ç|zÊ¥å¯é>Jiñ¬¨M)à ÀïÁ'’@6Á|ÆÏ0KH`H¢KyòF«¥¶O~ÀyâM˜5äàK•\¡—`E˜Ë‘Þ`ôÜAIÒlA·Îãéë‹opÌã<œL·õ~™üŠŸ Çɨ*Sº[H¹$Ø‹cP<Ì y„íY{4D^t®Ny¤®$¶Üh%WÒÖØÎêŽëN'Ö<&“§Ò¥vu™î‚Ó’ž\‡5§«ù=QÿËEÀRŽÞ¿±ÀÍæ¾æ2”‚#FY§ =EòÍL(¢í)¥('b.FàzÛ¶±‰"?¦@NsråAÙ­塵ÃyàÒ•¤«@ô"ã‹X`*ÁmâÏiqŒÄks§ Ì…­¾‰6Qq'rêB·í¸¿É@áô³r+^ ®[Ög Í™’• µ‚ÁWXÈqÄ“`›¯éûãjô…]+õõ”2¹yo-Áj]E%f¸ÓƒK ¤¥"ö¸Wß~0­u—rÂ2ïå¨w¥UÒÆXfcͺ´‚© ZÞg€<ýF.t~%–òíéë2>;ý3^ }£Np篡þ'™yʇ`†¹èSÅ!@5u‹‰7¶]M¸s2Gús^ 3óÚkzk°âÇmm°ÙL€â¶**nÛ›,ûÇ· ŒÐéYŽ­S~d%3 ”¥‡Vîî¨ )CMÉ߾÷žðú”£o\æ]x§ˆ¦†çÇ׺05N"3Ñ3¨Ì¸ßE/31KÞ÷U‡ÃÉòì, ¦Vä"õëÕjVÍ1Õy˜ÇOyì112ËTœ:šÌÀˆ‡ÒÓëå(åù\žš”ö»ík]¸êd¶+µ&Þ—9n¡µkS-´u8¡Â¹Úþ¸Ï³tšzÕr3)L«cèÍ•™fLö¤ÌTØ"5“tnHÐ_Ïx}5ÚÛ;âSøö£Q§§Í¯Žq³¬Z ,óKõ.é×!”›ø·×âû[¦4°©‘ð-EººK:ô8øñ 7˜èôê!ÔůAÐÓJH #{å`9ïo¦ §ñw©|»v:HøŸSª°Ú§i=DGm—0~.ï2Gÿ* ®ûé!fÂÚˆ¹Ø‹ßpf½¯´3 c¤cMá饠×_>³ÞfCQ™„gPÓIq¶ÔRˆï¤Ä.Á$¸ï|3§à–8QŸ×8œv<Œ“þ³ª•U6†Y†¢$­ÔjQ:‡ ß{a=eU©^£ÐüãZwraþc–E¢M®¸§§Nu§Y·æ•$ž¿6‹ñ„ÒÁ.—}d´z¤1˜²Œ‰o"7¿@°ð[:œ¶ûpxä[×c„u~N·ÚrU‡B9œf)Z¥|ã9íÖënVª+yæCkQ±g¶Üj?¨úbãKýšŠù*1Ÿ_ºQÛC ZË:ß)¢ŸR0#J"Ãõ X/_¦/è"ªÂZÜÌ¿‰xqÕ\m¨cã5ÿIÿW#ÿâ~}>±ø O¤—&£P‰˜Oun4Êž]›}T×S½¶ Xƒnׯh!cŽæ}9o(à“À99s.¡©ÎH”ÒŠ@NßÀjú_ëƒxŽ™4ô©L6—Yn¢ç&0Ôf¶ÄöDv’Ô%¶Z4éRUÛùb±FFOy£ðÝ:Ø®sϤ~ÊÓ:qCŽ O„Ÿ=±=0'"Sx…xn:É'´ ²ªÌfU¡„·#†$}(ÒIE‚¿{áÁY ¿±•FÀFÉ?#ÞvuS ¤¥:&üìqÖvV}—Óa1uuÔ¥7Ra`µ%E IÝ)Ü÷ôÛ±ˆé  äÇ\Ã9Öë"Ia mæo­.+_)8ßpõ~#b鼎þ¾ïH†¯Áê}`Ôã éïõž¡KjIm¾±(ü'Iñz_¿ßå° ó¦`@nð¥o)GÌÙ1”TÙQ‘¥KBÛ°Sk¶å>{r;€{àx(w×ÒpŒû#™f™J .\%¢£IiÔ­Ã¥jºØŽ>cwa‚;Éé©G·hÏ›k¹R+#QL§”¶äH%-¨õ)WÕ¾ÀvôÄéS¼3dNÛr¢²¨Ë3r¸ÞþÜž«o¸[R”›h_6;÷¯–<àŸk<Œï?'ÖuQ˜¡¾ÍÛŠúÞBÒ­ÁPy[a/" ´)œ÷޾Îe9Hoñ 1ŸPޤ“¨‚,A>W±·Ë´s,´¬6œÂTŒ™ f©“]o¥.LÅ."_l h$¾8õX%”8 ;Ûô>†E,©Yœö1Íß|[M¶#Ÿzzé(Z´$ž;öXW5Dlê;É_Ew‚mcÔ |©­û²•¤(­O(­ËwØ'MÏÌaë­Õ^=§ãÝ*ôºOÑ9jªö½zþ²Õ:\š”ʃQ‘;®-ÇRÙ)M®AVÖŒŒ,9lœ™²¬ä™V¥G:c8çIåo¨ ô¶ æ©)ºÊYŠ#1%Áª­KŽáC—i°©6ª÷à[ê|ñÛ·I:-T4¥Ð)t™ùq5(Þø…‰-ª:Ý ø†Ü‹å…Ýv¡Üy†\mD_me(ÍQÔÒ¶¤ÅmÕ¤r—Tƒê.”§Óœ¬^õ! &3<&©ì!ˆÎ¦Sd€»!iï¸7¿ÓÙ'ˆO´¨P1Ìkk0ΪÑ㼂¶]JqËcÆ•‘e|ÁWßœDŸ+*:0<ì1í æćC¥Ày’óI[CmW‘Æç ®Kq`:˜›œ Ói©¢Ô!ÓÕ”¸¦Üm$êYE‰¹7Ü‚>˜r¢{ĵH‹Œ AùŽ©4T)JŽÒ£§ –Þ×±$žÛX·Ï×P±€ÏXb ™W¢OB GTb…GKa-¥;¤ ZÃqM{N“æúógÚX¿\ž±cÖļÇ<i¬Œ¿¢Q?ß¾òSyÖzD¯i”ª•h3a'­Q÷•@}¤#M”’J/èQ« <±^Ö n3HÚvÎz}{£[¬Ÿ•’%¼˜ê€*Wu«·È ý¯ßVÔ*¹ãô– ¤¤‘×÷ƒ T:<¶'téJžJ5¦÷J¼ö%<\Ø«Þ#¢EÓâ±€± ×ÙF°ZNsÖ1´Ü¡B-4þ—ÚY[N øW¶Ãü1ŸÓ6,8š }‹cN½¦="™Ca@("ª•©ë¤i[‰Ð’¯žÅWÅ‹¿}jƒ þeVVÂOyJ ‹ H¹'a…Œ …`Ñ"\T)ö“­ÀºÇ€\o~ ZIW'ïd˜3(Z$<Ö–ÜlX(€wç×Ïl$OØ‚N1™¦¤¼Ñ•c³ø•5š½Kh%€Cˆs½¹ñvksËÕ¥MI×?_Y•ÖÜþhdí1X¥ºä™©·œOID¶ÕrRyoþ8éO=1İd}%U¦­F|Æ’ÛÊEœoI½Šw úž1%BĬ}Î8’ìúåŸI¨×„Ó:Z›é_wtÚà}/¿–[olC²š“9ÙúlwK¨JÝ@Uô¨m¿Ì›ýq`èÊ[9ç‰^1Î1?)Q¥M}¸í%jiN§Zo¶û\ý/À„D,x–ÌÓ좛X‰¡M)§L]’óaZ›X; ñ½¾ø ©¼­â'f¶¡­û1=xùâwÊT™9D†"FmÇ–é[*’ ¥$i¸âÀûyØà:m¶Ø7t–š½´Ò|¹G­æˆHC m„ªbSt©Iºš* w¾öÇ®°ÖƵ¢¯5C·"³˜XËSÝENiÖþŠ”› êñ+Žÿýí…ÍVu «˜:w´ê":$GC²%,©ii"ÀžwQ7Kü†ªÀW‘¾­¯ÁàÉÕ3*LW)a-6Ûí¬(^ÉN³âúo¦Âv°IšÆRŠë,EEQ/Gq@õ›B’…+XÔ6½?l@’¼FBVØÃš•B‹”¦Ín€cIHé4óK/©"çJí¾¯, nÆa/­U3ˆw,N02@†Ü‡ˆAp_pÚ‰¶éç’ly±c…3«Y¦¢ò7šdIs1OjL¥I,¾¶Ã‡m@·m»vÃp"ma~LIi*’ËK)O„¬&á8óÐÈŒö†i•:Ü5·&7Q¶ÝV£ð«~ ö#çˆ2©2kæ/´83ez¥R­¤­!QÒé´½MÜrGÏ›ãÕÖ¡x’²Ö/“:.¼*¢A˜Ý£%Рä4“|ŠÃwLÅïw³;zÁ5HÊ¥Ô r â, Jv¸8%õùo´t©·®cœªEJ>L¥.š©-TTâиðÔO] ºÒ²{ Ž?–^®Êò!ïðꜱo€0æJ£Ê[UbžÄ6› ®›ÏÔ|V¾Ä÷ßç…o°œäÆ4ô¸Æfµ~ï m*’P¯KybçÃ<3ûFûûôþf[Ç|ZÏ0it‡‘×¾ŸÌ2DJZÊÞŽÒF a´Üè¾{`¾eHøaƒñ0^Y#ýBM­”) >Úš’–§¢Ii Üì ±úb“[â7­Å ¾“Gá^F¥w䯩ï3M:dX4æã@Stç/îî"öqgrE÷ã·óÂïm6ÕŒã9ü$uZvÓ¹¤¶à:çß4äöçSQ.[Í:]JRP‡m¥)½ŠÔ•Å»b'$E2uæQ£O-†åV+OA˜ÊKh™éSº{|B÷8ñ÷zÆ)Wq´Œƒõ™£(ç;Õœ¦Ã•!•¨ùR¤ÜW7²íß¾œ7ZŠt&Òw6Gdw¯í½u>Y•Ý\ÑèêHOY,´V”$I¶Ão[cŠá—q‘EÁ÷Oýãfõˆÿ“û[úK_øz=cÔG¢R¡=-·FƒùŽ¼ã—¹×=†Ãê¯}EÌç¹…¢¥¦•¯°¯&Msi–¤•%dÆfá¡üWåGçk|­‹o A[ÝL§×[æ:J’ã¼,ò¿53arE¶?;zéÆ˜ ± ·yTÇiÒ{Žõ~›LPüB.—¨éCÅ}E*ßÂnm¾1†–óJÈš×_.¥bÃg˜Z|ŠVh£³Oœfk* Å׸Û”Ø&ãùaºûÞK¯8•:¦_ ܧ$tÇ9’Ìå–¡e™1SräûÂT²•#N}·¾ýü¸Äõzo ž±×6¨1+ŒAôF>§kÒ§œùwý°ƒds-Ðn8•=÷i’«$:‹ ¦äB`øË%N Wü&ö¿òÂV¡b–Äþ‘ý#е`Ǥ'—ý¡ËT¡ïs\y•‡ ¤©<„ñ¸Úøm,Ç È–ú Óê5{-õÚm—•_‹^÷ªSiw/ÔÊdÝĶV Ò.wä›#mðÕºÄm1­Æ[±ïó™ÊômN§}#<¬ÚŠ ]Kží!¤ê{²/qÏ€ûáM;Œm3º…ËdIµŠ›O@:Ú/©Ñ¾éi>ýMÕöôÇ+@®q!}…À"S2]n­3aAä=a :½®msƒ¬TÎ@æ´‰YUÅ´àB%:ØQmÇN¯Ô/pvànqÂC ,=$‚cö_ÎÒ«L5 Æ–—IuÁáŠI'bR“‹ uÊÔÕpq‰GO‚ªë×T\àN}e&ŽÊÐë¨JÌ®¢IHYh©mÇ\ÞÅ21‰¨±ň5¤GÌ z<r$&Jšea6¢ãËÏ­M~Ó æëÆÀzI¿´º±¨ûB”ôˆkŽñe ºÚŽ¢HM®6‹q§¤> pFsûJÝ̓‘È8ŠueÅSPÛ¥)J WmÏŸÛ °u s™â N@”PÒÂBBµßeo°gcöÀØ9‡A» Ñ&O’–)²å?ø{**J5*Í(›Ü ÉíÜœ¶X¨ÇƒfåRËÔFÊÞEÍUfj${›i MÖSÊ éQ¸ò¶ú6­È8ŠÙã#œH¹ê¥ „Ô!(ŒèjCxEû=°#Cm6Ò6—ïÂç ÂTü‹#2W_ªT_fŸI‘!ÇJÖòÊ/«aòïõ¶ÇœâHЙv§dœªÌàAî«m4²UsmÕ~o±ßŸ–Ø"1ÚGPdAô23™©Ó̲QÓaq˜=”€B ¶$æn· D$ø¦ë°LW¨·I¥Á•öTì÷T•Çu+±d_Ä/bàss÷"1nD^ÚöpzÁmš¤Çy¸o)——ùk ’S¹±ôÁwŒâ!Æ{G)têd™Èœï‰„­e¿ ü·¿mðãVú€ ì;A)ZÏæ*ÕVzëEØ®)Ùa´7Äïcnyý±^þQ8Q i˜Æ¸Uœ¼Ä®¢œp_¨…’¤©ÓÀMûÿvÁk1Vדê³%Æ}%K³.úÖEÇP¨ÜXþ’{6Ž–Ú4æ¬ð0ezZSö‚0Ç1ŽmJ™9RDÇ]R’¶‚‘vF”P>Ûÿnáwšï%øRé×P‚¬!Ëq"]/Úhîòéé ¡7IJ’NÜ>¾!¦¨R¯hç½CYuuÿë"ŸK¨=\C Gf ÐÊ×"n¥M#~oºxó#Óy¶¶ãÞOÄ5m-y'…ýfÜÝ“gÀË >åOß›aÀW¥­RŽê;›ƒ½°öŸK·Q¿2²¯MM~Pô©¾Ëêù•)œ_LU‚PÔ°¤­í¾ -ÁÛ~ø†¾üÝ”2ÇOHZð`êMdŠäªd¦Šz:ÙJº›jOØù~øPé-Ôàs,4þ.šíž‘ë6ÓfS)Qi饪U5,¡äJm%A§R'Qì;CË ®–Õok´ƒx…G$æpöSŠ­nTù.µJ|*Ð\ZµX_ÊÉ;w¸ÃJhŸL¦Öò¥£JU)2‚÷B cV Eý.6ÀEc8Ž&¡Ð†î$ÉÏg2(™Å•ÅœËÈgÙZ•¥JûXwwôÚ-3oÞÃÙ˜xÅNk~ƒŒvŒðsJ(Ï4äÇÔqä¡k½ÂoµÏâã_@jK ç´Ãø0¸kTÂ3J¡·éßcŠ1?ýMùM¯÷ô? 4uê,8’)±›r[¯›)ï@NÄwP"àÚÿ,8þ¤8ôúïò‡Òø¿“rïåGÓßðùñ%Ñ©“!TŸgÝžT`âÒÛšlmù>ƒöš{B8- ®ÓívTäg‡hÛ—ä4鳄!öÇ‚ü‹Ÿóë.žúÙ7)Þ·LyŽ{ð—t¦ìn¨ò>W·Ða"¦ºô9#ˆÝ¶½•S§~œ˜›C˜ìdÈšã+) HºÔJ‡±îNÛ P–ÉÌoOÊþ]}¬¿¢‰ ’†\ ,k Ñ}Ň ^ãqß.ÇŒê Áe…›T¥LA¤²Ùq½iÔ|­ßkí¹%¦º»¶7"7æ¥Ôå¶ênYg[©à(¨éb½>˜Š`©Ú†ÙrºübM5÷‘69(K©i^Ýÿ–!œ¡®ûö†¯)[MZ·îö§Ó–{¨xÜá½´™ m‰µéTú’§‘Þo›]¦¦cÕiS%°[ÿCtÙ½Êy;#o\ —8¤ê°ÜI82+b>bS1¢Àmž7¹½øÁë9;yn¹–/f‘j´Tº\É̆_Ò¦.´«…ÿfì ŠMc }ñ 0eõW=¢ÎR%R¡­ÅØ`±¸çË[WDRl·-ÒQr­"&iúVò÷\¥JØØޜ퀳6A„ ‹•ƒ1ËbŸFŸ5¡ÓM’’,” 7?2N;J+Ú±3c%{½ ºlé3)Hrk K¡àÓÑb¥$Ømóãå|vÆþyàBWÿ_YΣìÙêÕ~eB{¢%ÄÙ!WSš€°X)#Iï½û\s‡ªKŠe«]¦KnÒ}ž½‘J PÕ[‡5S[mvݵ)°P ¼ö¾8UÔûRTêh¸lÀô*cjt´¾ü¹qÜPSñØ Ø[s°6çËÏqÎm%¡ÙÆþŸÏºͬ7öÎHëé(só%|ªu2,Ö¦ÍÈPXXH;{”ðÝ~^“T_$þ_9]âZÛ®ÑZBãˆÏ¤â[¥EG}Îø¶²€8Yó o-œ™>ö›2,ª´@V–ã'R“ȱ²OÏŸ¶;Mu•:f=yÿ3Yàwj,Fµ¹ÿ¸MYÎ+¹5‘U*T…---»€¢´‘u$ž<ïÚøFõU­…€8Ç¿ë˜Ztw'ˆ+TNÃÎ}ÞŸ´]Í^ÔêR3ܦÊr$é\ì;µ±Ífž—°:ó9Æ3ï„Ó]`M§¨ùÍùÊkTùN»FÒbÁs¦#¯p/²ÕçÍ€'{\÷ÅjTµe»Ã½Ïi zDª¯×jL‰=&‘¸ü¶øŸRvÇæÆgUc->¹A¦>Å ¤¶.û’Ð]Ô‘Í‚ù (C1É8Œª0c.TÌ,Vs<¡K¦± ¹-¢Ì´P€ÚP›"Àw=ÏÏUÞB9ÀÏ0 å=k–ÁÄ+L¬Mj|¥Ï6e-Ý¥!)½í{m`;bÂÖ:gP½ÓÕ­­üÁ’y÷Ƭ¯5üÃ]i1e¡è $uR¤îA¿ÿ =¬²ªë XúL÷…x{­¹*@ ž?(ŲìsI¨ÔëÂ[¨Ch7¸Fà<¶'|g¬ïµ­Ø/–:IÝ ˜Ì)ÉR$ AÕ¾.ü2àk)(¼kMæˆù²Ò¬…š¸±ã ]¥=zÌzkÈ·“Ò+æG På?2PÊ¥)ý©7!D \ïÎÿ,VkéaHaÇï6~©G¸¡9ãðœdfU¤Äˆâš yC —¢^§o[[ä«b¹¬‚¼¹ƒ1®˜ªJd•9 €AAµÇl]kµºº´«n‰Tç¨?BfƒOv¤×ªÏ"ŽbˆÁ£®cnéc©®ê+P7$[NûÜùa«RúqkœŽ¸Ï‡Iw¤ÕQUþVÞ@ÇAÐ{úÄ­*ÿ±?ÿ‚p–Ù}æÓô!hr‰.0ZJWõZ*ƒ¡[(ÿÂB¶Å÷†Ü,¨/qõÐð~X3%â”·¯×QÈùäBqªÓ®Ó›j¥M) R”wµî•n6'møäáÓ1{þ¿8÷†ê€Fç§ËƒõÄV‰.‰8ΈÈrpâm²NÅ*‡kü°®ãexôŽÙ‘ÐÍÑaÓs)Š|-ÇÚQKî”§ìm½¼ÇÊ÷­HìdÆ™. ƒÒ«TMª/ «¦SÕWt…EÇžâøê€D^ÔÚÅgóË„i+¤ÿÁHÈæô"=eúÌy.µÃÕôT­E6Þø£„•þ 4x|dp~bwö›|Æ©u.„•!(p/KvJ> Õü7±ç›b:v,¹×¨BdÞD¨Iò^´¥¤›÷·åƒ .¼6ô:q¸ô…s&uB$:ÇMRÜ*@$’l­@ñº“è@ᆭÁ³Þ%?ˆª¾¥™:Å*³n¶ëRÛukŽæÈ%Dé¾úO—öâV ¬ät1*ßp õ³l51Ö£©•iSMYw RO­¾˜Ò^ЉÆa ÁS-ÚPZ¯!¸—Pû¥]4£r¤'“¦ÛŽû_³ÃSh*ù'±~ƒÄ˜’®˜¾z|e ‘Xc2RõSÝCSP4¸—’›©@n8ðý6ÀZ€½§|ÒÜæsË Ô[ÎÔ ºÚ]l¶V´Ý$€8PØñÛ ÜÞa©Îr&üÓž~AVŽ^.–ÔÙR\Òu„>|ð\1Äwvå^30åiÌȪ.®¦Ò–Ø b"-²;)Vý¾_<\é|9–¼¸öé2ž9ã¾Më]g€?8Ê%*S‹Y%Dœ?å„LgÚ[Qc1䙥‡Cm­·Ð N$¥IP¸ öÀl@ý#ú=KiþÿÉ­Z±˜©õù4|½N€ˆQCÉ A pnt€ç­‡!'*žp6çæi´Ÿ´é·ÎqøA5*vm¬BMA̬ôY±’·]qm¥*Xm$G`|6&ÿlKA}Zö·làG5WØõ€šö€ZaçP§Òµh±J¼ü±=O‹Ø¡sï>¾ïtª_é½3Ï‘îù?7æ4ȯEŠíM”¯I}’’­­°@7ØÀ¶*[Wc?˜Ç™{F’ª+T0¢Ž¹• aP $«m v¶;eía.ç&MTM"S^@u ‹VëJ¬Ë `ƒ‡ìê’šz«q$M ÷¶Dv\nâ×BÕ¨íµ¼7ù󃥄®ïH'L²Ç–²ÔÙeŠ,Å·1æÐó©µotžÛZÞ–Ä«§"Çd°ß­í(R©qàVCM%„-§œp¬) H6ÞàLÉ^U—pÇу¿}¸um§?B|ã6@uG@Ò…)K)ò$°kߪ/N¿<Â"òI”<¦Ùz gšen»`’›éÛ€Ÿ?¶¶à4Õ1<X*jo1ÀOí7–+ÎKzLôÙÇ\+ZV뺷'µ·¾(Mêç‰d4Ž'ŒN™‰Š5ýÞ–°–Û7·ŠçÄTmnGÓÔVõب{ŒÉéëKtÍ~xëÔ©q¡%ÈC=tؤ¶«ƒ}È$ìÄepFLUŽº9äV Qà5-l3"JTR§™!dm¤ö;}¼°?*Û*ƒ“K©ª­îG™%عŠ3ÌKsS%•4}®M¾ƒùbÂý+µéI?™¯V4º;µƒþÌ0=Ùô÷Í9^¤º|#r[wÝœ-¥`’”‹—'oL+pû.Vν¥¶ŽÏ¶Ö¶×À>°'´Œä¦²Ì—” ½hBPØê;îx}ðˆf±ùéé,Jyi‘}—Õ™˜J¥¸ZŒÓjSÃÄ»¤øuzi¸Uý­™*qe!VäM£:6j¨STÚ‚#¹¡GƒªÂäy‹ÜL\i¬ù„tâ_iÿµì1ë(T·ØœÂT@x ƒ²B¾ >J¿Üyâzó+j+â5íe¹{DŒÑõKE9÷RÕ= zk‚ÇÆ[Môóß Üö¥f¯|s@4ÏzÛg#¸‘CñŠwýïùÏ÷áO*ÿýM7Û|'ÿÒ?æ2ûº?ŒMúN¸{KiY)>ЉhuMœžYEâ›j!´:væy,GeibžZh6µ´ûޏ’-Åøƒí‹ o‰UjyH¹÷ŸÚUè|3SUžmÏÏ éóõƒžª2Ô „ :\”€¦Ú ry¶Ûqµuv¬·¹wàÒiÉ«•ãN–Ôò…¯HJ_lpMí¹¾afí A1Ž‘’è¹ìJ¬ÔD¶_’µ'ò‚[A#oÂï}Ÿ O~Ü,@çw¬WfªŸ)êsN6·XQmo6­I$má=Ç®"(Wžf¯gå×ótV [Ýr;ÜúmÞL˜Î”âÁ>‚ªæðª‡¡À\ŽîEÀûYøˆÚaøL÷õ>¥²•'ÇöŠuhs(s½Îa$(ù\·}¯ÚX…ä‹2¥?";UrUF5]¶¥> „tµ¥6ٯͬ ¶ç‡Ab)2ßÔ4 ö²œó¦Z˜â¦=ÔŠ°¨êO儨 ))C?%ªÞAX«ªÃM¹=¦¢êÒêx?xCS©´šÌ—=óQiÖVÒBí¡JIB¶óô>XÐ5I« 9Á™UúŸ ÔãÈïÎ~aý¥´‡Üa°×ÿ¯Ò?ÿ'oÿ®mÐŒñV­.¶½@ù(c:jËdÃ\|&;d¥¨ÍÎÚˆ½ñÀ¡Îd ögÏñ"@®Cm„h‹RBt¡W³ožÁWøUëÁïnqlºdº°S†ýeu–½-“Êþ’©ìó.1“©OÖêè˜RÕ¬P€.GÌÛû1G¨,_ËÇIw¦Tù õ\Ÿ6£ ñ¤Æ*•Q’³¡N%êîIòì1{á¾!ö$#Ïë2zêÆ³XS8Àúý wbK O•:Júã›3ªâé!@_` ÝæêXØãúøËƒFÊ´Xv±"#‹ †ƒ«H@ŸG'L Àï¿Sö–ÞëÓwù– ™ì5ªå.=k1TŸ ”€ê#°FÉ;‚¥îG`6óÀÛÝ\±ËM9ïÙz2¦]v«F˜óÌ4´‡á¾Ú• ›pâÇ3… ìïZv·ìÖ,wVâ–t8ÊR¾›‚·k( zbT£ÛaUì3 s"U¼÷ I›ìµQ¥Ó¥x‹«{ þ£{Û{ïé‹£‹©F=IÁ•*MV:ö"Yòæ_€ÖFiØK~+Ñœ%àÛ†Î'U‰±¸Êo,T[N ¨âYÕyÚ1ÐÀ™£=C‘•çÑ ¥Ùj -¥¿p¡~w¹¿Úãùb Y#3ÏfN ìò§/ðIO,®GMÀ/½€íKcIá¬l¬ï< þ Ò¥–¢Ž Ì 34>ØRR´“úJlFjö™‘³NÕ¶Ö›™ rlç#ÄW‘k’‘ûw«×k–“å(äÍ?€øÕ§Ú¬>È==qûDú>hk0Ôç¿,°=å+*|’CD„Ù)óûì}ñœÕ6æÜyŸ@ѨEÚ¼bY)§Rb«S?¦×°ó{úáÝ1O$c´®Ö# ‰=çÎ^Òs²ªÕÈŒ„;ùÛ¿Ü„líϦ9u1î!ê´ù~\œŽp1;;¥åú5xuÜ§Ï 3îÓ…ÏCú‰lͰ^ Qo—\ #b•sû0¸D‘Ûw¥f„ M8Ô·’âÒBȰ¾^˜Pd”x•ì³[—Rªõu©+CŠh¥GJBÇcnÛ…îT­—ÐõÓcØ®^Ò»WŒ*9F§…Yøn¶W,9&¯Öf©4˜¢:PT„´OÀ×ûp} û#'©@Ž`„6U [©`%>¸št˜õ8ƒ'GŒN¼‡¢]SÀ.'JJþ!¾ú·ƒÏ³F\µKÉF ÍZR‚Û¢ÌË3£åÊË´Y‰‘:S !:4$[PFçr‘nØàÒYAÎy•uxîŸPû1ï…}T=Û-).¸d+¨¢,NÀoöÁ¼Os\7œð%¶ŸhOgˆz¡`ÎÓÞl'Q–q¸PvÁCýáscв ÈbDù¢¿•ëTÇzD žî•d-•wæød»y{1Ä Ø¥°O0m-»ÈJ†ÊXo)Úr;I?#ê.}{ð½KŽ òN¤ªé$q||ÛÉ#ž$‚1è$'2Í3+ÎG¤=z}=2ÚÛ-ob¢÷ UýNÑÛä>ó«SríÆ1ÄWâÐTâ@[Nélê @–ä_.¡'ÙÝ5“`ôÛˆýIϬS4º’Šd¸êKn¥&ÜÒSâ#AIûbZõnåè~¿‰í#h£u_ÌK™?ºÕŒ¥ISÈPYâüóèp³ ÃgRÆ$f‹\rDF`ôÐ7W©<œ(YÈÛž#žÏ\srÞn‘ í:]eFÚIÛü0}>®Í;dr="zߣZ›lö=ÄóZÎNÎjCP› Jh¶ê6(ìlo¸Ä-ÔZl<“é U¤ SO sõÞ+R* ¡Öš’¤Jñ¶•Ø,y_}± +$m—Çt–=¨wv$~ŸŒÏ]¦Òäåæªô¦Ãjl¥/ y¯nÄ玣0r¦3j£VD A"löÙmJIº­¸H¿6ïƒXºÖÎp¢:³”SNÌ’*n²ø¦Ç³¸¤”•(Ißü¼öÀ™ÉG«Ò…c»´K¬U¬IvsÁ)R•¥ ½È¤î£êIÃõ'—QlóÓñ•ÎåžHoCðZ@âÆÜƒ¸òÅ–¡µ5ˆ¥g!ØÆ¬¨ÔšsOלROuÕ´ö“ãh‚QÿkàšWjî{X{'9>œÊ¯ uk¦Síõÿt~^vƒ š]DöÜm"á-,(Ÿ ÃwY§Q¼°üffŸ ÕÙfÍ„|FŸ¾Ìækbs‹}:ºGÁ«‘ô"ÿ,gßRorljô% QZ¨9+¬š.e‰T0¤ÍažŠè„€êT´­&×øNûú`6s$¤NjΔöq´R§Ž ±)Ä%I'ô”H=ÈÃÕתԧöÔ`w2•´Ú -Åìc’s€}~oœ_¤Íªð )£« ¨Ø]wÝV'žMÍÉÂ*Œ –—X¬À'I>¦LyèoÃOI)Q*Rº!J±ç{\`d™˜ËðÂiA*gxUGb…¢T¡¤ØwÄ’ ÜÏNq奓qŽ…ÄæéÀ,”“«~Ø*ò”†D·}ÙÅ”¥@ÜŽmnØr„‘{ŸËRÑž5!˜Ñú,¦ÝõIõÅÍ:U©p²žÛÚÆÉ™¤ASœâA±ÛqÒ…N}'V̦oŸP1©0 ™†ZKíÇ}$€v5§ñ:G˜w–¾©;Qûÿ©‡2W•?/Fˆ†Ym°¤(†ÓºÕ¤ø‰ç‹mÆç Fì½­À<#Ý}'•”€Fê8]Û'™ÄCƒ%WuêD‡#(…®B6JG'åm÷À÷ŽÐ¢¦dB2³” ’a%Z‚ÃnžFÃØ¦«¸f5e¥=÷ì×.H̵®Œ§n<´¹Õ~÷6ýùº´~þx8 ¢&Q¶ï=!htäÑœ¯S+M܆l‹›øÓóç|qòõ* ç¦ ¸¾Í36j‰ U:=ÙMuÝt!$Ø÷ÚÜvÁ|GÄhMŠN9Ç>î}"ºjœ-Ç1‰~Í*Y~–±Qˆë¨RQÆ”„'¸Û{z‘„ßÄXœÖ¾Ï¿÷Är½5D{gÚˆõ,®Ô™dÓ:e:7A^Ÿ×o¦©¼ÿ¸0d,U§–9//¦^›TYãÙjm³r âý¼¾x1'hŒUZ¹ºE—]H}ÂÑWKY(Õͯ·×RF U€'‰®=A”B’ÃÑPêœHé¬òÚ¼þ×Û军Vî¥_~² örŒùL†e8¦@R4””•â"Àíä/Üs†|?Kf °FÀïÖêÓL0Ì)›)*^Aa™E•F÷À¦HX%*Õ½ø;mé…õ:#E‡"KIâ•j—bŒ0½˜{8¨×üuébŸOB¬ÚúaktŽtƒ°§ ­e°=aoÕ%*Xž’Úœ«M~¡ZäÉv\T”¶ãÅ*s¸°ï¾ÖÄ_B1œÅêññc…Ú$³>SäQÙ›J¬†‹r§â*;D%WP "Á²…»ÝÝ.œÜËZôïú…;HŸ¨жá6Ö˜Ê IÞú‡Èù_›÷Åî³K§¿IeU(Â÷­¬KUÜœ˜aúÄ<ÅH :èëÝ)R€²¸ïëåšÕáöѨÊtõ÷Kó¨VNzÀ”\¶Ü©ñÑS”˜íêR[) 7çk‹PÌÎ+Qñ÷;Bî& ¯­¸SU1°B•#IÔÚça†ˆ8#Ûë*ôÚVYDY’§)Õ¨l´\Zè);Zûý}0 ÁµŽcVRàr ÅVˆÝyôØ¡¨rl´¸…_PáI¿;*ã~ÖóÇ0Hëˆm5ÃÀÒó¥M™tã#TyI±i{¥> v>£«9Çia¬Ô¥tnõïï‹,릔d«Q7Å€»rªžÇ36ÀO¬9‚åM™+B^)%] Ÿ2F¶óeêõöÄ"ºÈaÄm£ÂTZjàÈy…)KyiÙ)äóè.k©è¥à±ÏÂP[rߨ[0@øÍ™:¶iÓ0â&M88 ÒT„]h½7ÚückîrÆlè¨íã úDø’§× V›t7SáB7'J“äO·¯|Ç`¸t֮ğÂuöYR‘—½ jµ™qN‡)GéµÏ7× VÙEm¬¡äNõÔÍ©f¬ÁV¦%éBøq2lBu]7‹÷p©®TÛ“‰Y{éüÁœnüàê³ïÕrÍaæT:‚´^ß–•$mû~ø‹ŒÖLgbUǪ2 sÀoäp‰æ!sq°±H¿*p9l-ŒJ ÿÎ2ÄÈ*L@J}RB“ptváGûð‡‰jRš‹¸âꤎ‘Ý€–˜m””!!)°Çת.“:Gy¡*·"àâ×M{TrzH˜«—hε¥ÊtrÊ”u$ ï¶5¨[Tªã"Qx©zŠÙ“‰+δºN_˜¸m.,´•%*qA+"Þ ØØØïæq ].„èeŸ†ë“R~¢'JË”šä'ÔÌ"ÅH¥Q…›¿`SÀ¸Qmt=x–MR¸às'Qc²ó·V¦Éq)*µÂSÜŸÛAI¼œJ=Ÿˆ)jX]œ Qø‡÷sGƒVƒNOsÖf|d»Ù´ô#,äÅ̱£Ó&¸Q¼­&Ç`v>1Ï®´¯òbžE‹¨6Ž€áÔ†ÔH€"+`% ŽÄ<•À”ZÍU†÷Ü{Æ(ó£¸ÚRëŠi@md턞§ÙQ©¥Ôlb.ûLmš¾J”‚R·c#¬ÓƒF;BµE™xâXÓ⯭IÏlúƒ>wËý^²š(Užø.>"9¾ àÚ• õ¹àŒÿ3O¬¨ ÙS#RÖâ]W/¨-§R¡]¾˜Îê¨siòÛÙˆâ0Ç´9˜W_šì€ñX H²@ ùzúâtVñ8ãpÄèV%ºÊ[K‰7Sa6I>{,0õäe`C•8h~‘-ÊÞM¨ÑÜQ[Ñm&0;›¦ú€ÿ»«ì0“{©/YSÚi¯|öyKŽ«Qå„ÿÄT?p1$ Ö9Çf`›¾JžV§ ÇluF5­¹Î'ë)§‡cßSÃ"0G­7X2•©Iñ\ܧ¾8ÎÄû&q+\{\Çjb+´æÔ„†T®¢$iRÁ݀Гs¤‹ÜíÇ× ?ˆ;(GOPåëïÛß1åÌ•˜çKv z"ÇW¬æÈEøßϱüq…W1öÝIÚ!:IJ£Æ—_¨Í„ê¦:̆H%:.,®ÛùBÐÞ„Ò×m϶¡“«~ÊÛª3·œÜ&ãNÄuJ[¯¶,AYà+o„v6Ã"«bïÌŠ®Ú˜TÛœ£¦}ó ÒêÂ# Ò‘¡M“ò°ÆšÝ(?v|³í6ï,[˜m>—+1ÐÂ[ƒPaf[-íb, O‘:‡ÔaFÒ°ö=s/4ž*MEÜ}Ò??õÄÉÙIÊzcšd1¸JÒQ'Ï_7úáK4À{ ISâÖ–Ü爴¯g“ªª”X4ã>ì¸þòã„ *Å77;_¶ö  _$dM.šñª«p<ô‚i¾Ê+y]2$:ã .¤èl¬]ZwXó¾zÚÃÀ—4[]Yä™çÞ«ÿþ—©}•}™¤¾Ú}?9#+Y}@¨8¿ltÅAĪdz”ºZ£*‰iKZB”I$w# ±;„e@)ƒ{\…5µÊn3M¼à*Zš@F£~HõÁêv-ƒjŒIÃ+ S¤ÖXöú"~ÐWV¤Ê<BSo,jLãuÄþ©n¡#ü°Œ]f\èt{<¥éÚïoÿŸ>#ÿÈ|c^sª?â%QGâH:nPÁq7ÞÊ·8¡´“IHãBÔ¨‹§¥ƒÓ $ÿæøòab5ÐÚn¹™$ÓªhLˆ‚žá ¨ZǦÄoÎøò€ö’VDÖ4­i¬ cTe·Í@ºE¸úÓ¹ØßŸßµŠã:+¸J¯±gV¹’õ(ŸËIþÌPÿQ(T}ÆøËj1’ªtΠŸyVÛ|q¸n'“î͉C‰Òmq†TàŒA¸È9¾ÎV¤æ…:æ&Ä+ÈÜâ»PyùÇ´ gå+Qc5QÌ0bLOY†Ó0¡ 'ÂB›±Àm¼CÙZ6܈*FIËp'0ôzSAa͵©KÊ$XxH߇ä`Ê?êj4eª89–¢Rääy2ÝÉd·Óu-„©7P¸¶Ö퇵J8™ßÔZ×ÌNH“º ™¸”³ ´¤6ŸäwÞÇõ±ˆäÏ£Š+Àí=eæ=: l#¼ÙqÄñ+¨ïÏ¯Û vb¥Ú½»3+4Õ®‘“ó@€µ±ÑuÞ™JÓ`Äï/ ÄöÓ4štI-Sf¾ÈvJ¦4‚âÉ$Ž¥·¿§~pddË]5΄ª§ô•*+ˆ•(Ü©J½ûîpØé(§Í™Š«:?½%™ @L©mp”¸@A‹-VªäÓUµ±™O¦Ðé›Wk2Œ~}xéý˜¥5HO®rú´kZV›^×çœW6®ýÀï?Œ·¯A¥(TÖ0}Ây×eöÛYJöúãGH›®'ÍõãÉÔÙ]|(=>q‡,:± gQº7>{ UëÀcÝ5ÞüAñ?¬%]ñåùE[”§RO‘¾D»yÕsøÕ÷ÃRSÿÙbygfoot-2.3.2/support_files/mmedia/pics/match9.jpg0000644000175000017500000007430011225071373021127 0ustar eliaseliasÿØÿàJFIFHHÿá'­ExifII* z€–ž(2¦i‡º` CanonCanon PowerShot A460HH2008:11:25 21:58:27 š‚@‚H'ˆP0220Pd‘‘x’ €’ˆ’ ’˜’ ’ ’ |’b¨†’  0100  Y  * ¢ ¢ ¢¢£¤¤¤¤" ¤ÈP 2008:05:17 16:25:202008:05:17 16:25:20õ À _ è.Ú6>"FŠ–®ýB  Ä Šä &04”œœE¼"ÐF #æ 'î (ú \ÿÿ@ÿÿÿ`Tè_Àÿÿÿÿ ÿÿÿÿÇ•Dóÿ :Àõ™·úúIMG:PowerShot A460 JPEGFirmware Version 1.00Khadems›&îØÿÿÿ&!¥ÿÿÿúÿÿÿ&°¡©&¥ÿÿÿ¡© ôÿÿôÿÿôÿÿôÿÿôÿÿôÿÿúÿÿÿmÝÝÿÿÿ‚‚þÿÿˆ‚þÿÿˆIÙÞþÿÿlíhí$Üþÿÿ€IÔJ›Ô.&°û¥ÿÿÿÀºEGÀºE¨ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ% •!qI`  òÓÓÓÓÓÓÓÓÓ,,,,,,,,,-þÓ-þÓ-þÓÓÿÓÿÓÿ---° Š €à€ÿÿÿÿ3­ UØ3­ UØDH£"®f.‚D@Âp‘ R980100® ¶ (¾ ç´´ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ“Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ÜŒt§ˆÇ¥Hœ».q؋˔¾Xô©vÒí v!òÇ¥Xô©öRì¢áb,zRùcÒ¦ÙK²•Çb,zQåJ±¶”\,VØ=)vJŸe(¸Xƒ`ô£Ë•>Ê]”ˆ<±éKåJŸe.ÊW¿–=(òÇ¥XÙJ‹_Ë”›¥X)Fʃ`ô£Ë•>Ú6Ð¥¥O¶´\G|EÓ_¬±¯n„ýrGô¢½UÑ#Ô.–f!þ¤ÿZ*Ô`÷5S²-izÞ—®YùöbXd<eÁúàŠºåϽcZiþÔ°Ú5óió‘ £ýú楞?hè|ûawi#ù±ùsùŠá§ˆ[Hª”¥ª5vqFÚ§i­Ù]¨ÌN:¬œ~µ§°1ÓÒ¦žÆV!ÛK¶¥ÛK¶ªàC¶—mK¶—m-´l©¶Ñ¶•Çb-´l©¶Öö¶Ö—¯Œ0_ÇùT¹$5šÛ(ÙYpø†ÆøÈÏBZÚL:+Œ2(SO`qkr-”¡*}´m§qX‡e.Ê›mh¸ì@R¥XÛI¶‹ŠÅ}”m©ÊRl¢áb´l©¶Ò„¢â±X§4U“4QqØóAf“Ï$0)žR¤D‘ó¸úö÷÷©ìõ½KN’8⽑@ ü͸gÁàÖE«±rÀ0‰Ž³œ.O#>µ$7 ܰ¤›²Ÿ'Ôsž„×–Ó¹ôüШ­/øs¤ÿ„žßT(ºŽ— ¶á¾hFÇÇáÔýx­+9¬›HÖAËm÷`¯>€ž+”‰-%Wš9d™ü—fçÚF~˜È¨1Iuãæ¿ÏÒ„ìîŽJ˜*s½´ýOAò@@¾¶xFx‘~d?ˆ«ÐËÀ-ŠàwÀX\êqGþ‹tËòÛáR§¨÷Æ*xuW7Žå7»F]Z܈°‚Þ‡¯LVñÄI|Zœu0*ðwüûe+•¶ñL±ª™¶È¹#æù[¿qÅoØkVê¢9•d?ÀÜþ½oÑ‘É*RĬ\ÙFÚ•v°ƒÞ¶´¹!ÛPO§ÚÜdÍoŸR£?]ÛHào`i64cC X4“n|ÁÏ?­j¤A*Œ0I þå>”ý´–ƒz‘m£eM¶´î+m£mM¶“m í£mM¶“m í¤ÛSm£m+ŠÄ;iBÔ›ivÓ¸X„¯4T¥y¢•ÂÇ &e®ß28¤•K¬ds“Žùõ«gÁIb£ì÷ƒ(äywQùlàq†ç¼úÔ´ÑÓ ÒšI3N wR³tVÔ¶ïun $²&ö#(ý8_O­h«>§$°ONVzÔ\Ƹô©1^e»«À»EébP ÝlõÚ´­¼i}#ΆÞD_”Oëý*•UÔÉá*t;¼Râ¹Xüwm·3Ùºs•Á«¶Þ-Óg`¬³DO#Ì\¾¹ªöˆÍШº3wb³Ÿ_Ób™b–àFÄdoR?¥J51ÑŠ_Û ãÌü©ó#7·.b“ź¶¹¼§J£'…-šÜÜ J# Øs[>¿Nq]¨ŠY'Š?%n; ÌaÙ݃ÜñUVîÙÑÀq¸tÈè{â¸ùÚvG¿4Ršßïÿ€qð‰\,L|õR­€Û¾WàÀäÔ/áÍJÎMÌ#aËm|‘ƒ]Ô–’]@š‚¢´a† }Gåýj'yÛnŸg˜I2g>þý?*µU˜¼×ó8‰.5]:áZžQv”b3Àô­X¼O­û{[›Óq8u,2s’®–¸’8S¹L™ “ž}x?˜¥··Ò%ÓÍ´”ßÄÀ,ˆãhRÝÇ¡#ƒéZ)ÝêqÏh¦™JÓâ­æåûeŒ.91¹àŽù­DøƒáËåÛ{`ñ“ßhl~#±“§Ë1Ý7ÐŽȧxS¬¶w±è-¡j2”ÊÐ¥±´t=ê£XÝÅ3/Ùå+ä€Jç“\Åž—â+{„Š ZHËcnÙŒžØ¤u?ÛK²;èþrKïŒçHÏ•.XØ~Òº’/Jia^Ç©?þºE;Ô!9L…ÃõÆ=éÃÅÞ0.°=¥Öÿ›ä\ÇÐÿJŽ_ê0Þ“uáhƒìù‘r¹äsÞ¥DÑÕžî#ŸË{xüÆO”`mëǯni|ÂdP¯œÏæ3ÅD¸â›€GâîÓ¶ê3žªjP’¤e$]vž‡óëR[xƒÁ1ˆî†§ÿx€?}ªÅÆ­àV8æÀ)8ŠÐ©µ±rÅÆ§ÅëÌË2 \á°Ýx'¯çR2OjÑ™–d†A”#¾{Ó¿µ¼ÙÚ×HO6íÒ«Éá½ÿº×…-nÙš‹1u©ßbQ}:+2]8Ã)^=¹¤:ò°honJ¶xóË~<óŠ©ö­-ÿ¸0O Û·J®4]c×`ÚO»aþúÔr²UjOt]}gVQ¨]ƒƒÀ˜Ò.³ªeþÑœ޳0üzý*“Ï¥ïÔâ¢6¢KtY/åoI™v„ä sÍ'Ÿ{ ­ÍRÌ+.Bà Œã?OÈ×:q뵺ÿ^oü‹CQ¹lZHĈ†C‘ÓŽ{R›“†YÜ"8!z©ÀþUYÌ\JÑ„7 „9³Ï\Sdx泑™Òi"8$uDç¯>½}‡­ ]Ü\ñQ³W}?áÍ{}ä$pÈ©#8(d\•ä‘ß’O¯JŠæÍáYd ‡ÊX)Áp1ÏoΫHøq,0ß"å#;HíÉáOôâž|ã*´y—ÌræÊîç®qœâ­-NiKš §Ð ‘'$8$NÞ9üýÀ4Ö•‘„“±Þ #mQ v÷8«ˆ’ÙC'›'œ[d2J°ê:Fi-íe¾³¸ÔЈíÖ5ÉYFå/ÀÏ=ù©W¹¼¥[5ï^ãȉ™¡#y8F°;ƒô⤒ånî#ya·s@éÔ{UËy,bž òIr¥‘²Ä޹ª(4=BêÕgžÒæ6-´‡ O玧¥æqœ-~¿Òù:¡nE.ÝáI¾yÎ9æ®ÛO´‘N…²¢hÉ {tÿëV¤~ ÔF[ÈHâ<²É2ç¯CV×F²÷²I?è̾b¦çòÔ($ŸQÖ„ôºëC™&¯ÿ rY"]öñ›ð“òç¡éŠS1N"bC>ï#éŽùq]YÒôØ6\\yp™‚È¥ŸnðF{žGJžm/ÃÏ4PÂñ-ì’Š àu9Ï¥(µ'`U³NÇ&z 7t_”ŒñŒ~‘¤r#Q '‘Ç·zí&ðe™ÓþÒûÖU‹&5 rq“ÓëT,ü=¤L—š©$1%\’3z¤…*úœÅÃe–)DHþîF>žù¤›O¶xŒ¢Þ …*ØcŒuç*ì—AÒ$C,FìD„®"9õô søu©ÓDðÂö‹ùÙˆûÎAÛÇaÔ}(Q)â"úØ­„^L¶°€s Ý ãŒéTÂ×Ú€fÀ8çƒùcü+¹¹Ó¼+Ì«~Ò@AÆÐFÓÇ^¿õOû;@WC©ÊBžË‚OåK›¥Éö´®™ÊO§éí*±ÄN?:céVw[î |À…u2ÚèÎï4×2©?1UÚ7‘Û§Öª©Ò2¨»%ºƒ,|­R~fukRNÍ+ù»i¶EV‡†=éF•§=ÄQýŸæ_¾»ÀÝŽÕÑ)d;ïÉ*»‘¶d‘ï»éÚ£š;(xäräó½×ŒtíÞ‹®ä{XI=?#š¼“ÃVwO ´¸OvÎ}Áô¢·å³ÓçmÓÃŽ8È+Œg âе8÷9yYqt÷[Û-¤ËwsnÙc’?ÇJIõ™bŽð:FCÈ» š}ÎãCŒ|§ ñÚ”´CÂ>z—ènØø·S²/‡ŽmÁGïdc‚=*£_Oržc<ŽžO°¬µ`9«±³ZiwZ‘)ˆâ>ŽOQô¨»zuáJ”\ífzw‡ôêZ­õÜÓÈóeäF”(R Q“ŒóŒ×C§é^µ‚C¦i°J€€ØÌƒV8¯Ÿmî¥)½'|«e@=+Ú4ÏÁaáë4¸`·RF¬‚L `Nr}¹À­ÜyV¬ðoífßs´xˆºXü¥2 çž„tëUçÔ´øR5¼¹W »™IÜ qŽq—> ºÔœÈ“¨FR¿¹8\g'§_Ƴ·ÎzjEÐÝaôÕ|þ/³„'‘nÌÊ$¼žùæ¸Ý3Å·:}êÜg¬„ †ç>—h*Xô³YWðÜÏ žC#DÅ•£èO´”ÛÐN„V»›®²j1BÒ'šV$ :0é#dÈ8u#ëWÔ0ô=jbŽA²DãÑÆE4Ìš¹Éj™mRvs¹|¼cAYÉwPxü«­—Eƒ&Krð>1˜Û#ò¬kæ0 ~\¸Ï áç[ÆQ9%NhŠI¸’dùp ]¤~Tà–“ášI£n8oðª- ¶ìâexøî½iQÑÓƒ†â“]P&¶f”6Úr™RKß“ ¹Já³ÔñƒÞœš ³a¹·”²ÙþU‹30 äŒfì±äuì+«›ÑèBuó ÷|ÅNHJaЮãšEU!_¦yãŠÐЮ.NÉfrŒ±Î¦nÝFcðÅgsN[œéÑïy'p'¸éO½Ð§‰‚C‹€ùÐø5¶n]`})¡÷doÎrÛiw¹ÿg¢º2W?}¨§på8ð@íNšªÓ…êU¸ G"ož%Ñ 8áM/Ùeÿžgò¦Á|Ãòµ¡í¿÷…'s¢œiÉnQRž|º_±KŸõM[V÷0̧ ~¤T€Í+³u†ƒWLÂû#þ­ÁÿvéòI(P­“í]2}áÊêjꢜ°>àÑr~§ÔâžÆT$aj©8x†~cÀâ»i¥ÞKvÇëX¾õ0„@X“õÍ5vÌq4!N“Ì›+¶·•øÐò>•é¶>8ÓL—í ą̈Náˆç§B¸Ž#<¨V07N+;RF6â8Ôüƒs~tåM£Â?$¥Øß±ñL²N>Ö‘´}ôaøõ«V/iÓ6Ä»ý™ü+ŠÒ-$»› ¢—g'~>¦©ÜZÜ[/š¹òK‡=kIS‹•ŽxTª©óî®zÖtß1TÜ fèTñU®¤× ²]ËâWŒ9i|ã‚gùbˆ·+êJ)]jΧH·šÚÇËv¶âqŒñWw0û§òl:­m$Ñ,±^æ±ÌŸ*“ÝHõô§yóg˜À…eÔÝ4•‰‘Õ5ÿ oÊGÝPßãTu›É­t‰®!…Ò@“Œ×m¬ÝÇ “Îf}ÙmÇ!«HÓrW2©YAÙù@OGü¨ª–·kwl“* Ü9Z*lZ’jçŸ\Í"ÈT9¢Ê?ŒÑEu¤¬pÎræz—!•ÏV5«cóy¢ŠÆ¡ëàoSv݈UÅ_V% &Š+é)ì<1ÊŒñW-Ô4Ñ‚ Š(ªŽèU´§'äz¾—¦Ù]鱋‹X¤z2æ¹ÏøgG·‘gŠÉRE;qøgQ]uâ¹/cãaV|î7v8O;%¬J§ _‘\û(•˜H|­Ô}h¢±Ãÿ ËüAÏ‹w cžÇ¿á]&‹ko-ͪÉn¡‡ÊÊçÔw¢Šªƒ ß#0|s#iÞ"½¶´>L ‹Ó+ÓaÉ–M€¶@Éô&Š*J k+žÛ¡hú{èq3Z¦vŽFGjè-t«´ëYm‘áòÜínp@È9ëEí¢%·ÌÏ#×f‘4K¦VÚÁê9­qºMÌг4m†' ýh¢•$œJ®í5cx]Mq¥Üd-…Èí‚:W@]0ä 9÷ÅVsÜÞCÄÿcN3×θ8ÉÝŒÑEmGá9±?=C†3£Z’¼”ÉæŠ(¬^æñÙÿÙÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀY!ÿÄÿÄH!1A"Qaq‘2¡±Ñ#BRÁðbrá$3CST’“ñ4‚¢Òâ&D£ÃÿÄÿÄ2!1A"Q2aq¡ð‘±Á#BRÑñá3ÿÚ ?Ú*wv+´â»hT½Øò£»T ]ÊŽìyP yQ yP1t*4*@Øò¥Ð<¨Ð(Ð<¨Ð<©4 ]Ê€ ÊF@  Q P1t 4* —@ò @£@ A Q yP Q yP yRèThThT‹ÚëQqÙ^$˜ÜB[é¿ò¯Åg•l±p} Ô¸­Œ—¸£€\Rb‹Š1@)q@ ¦4€4Ѧ€ 4˜ aŠ\PŠ1@(ťŠMhÓFš4Ò☚LPŠ1H¸ AŠ1@(ÅVâ0|Gº‡ë"eúƒ_<|; «PÖ1º>‰ŠFaŠ\P!qF(¸£€]4b†)q@ ¦ŒPŠ1@š4Ц4i£M Q¦€M Å bé£M.(Ó@ ¦“4ÑŠ1F(Å Å&(eȯ8þÈr¶Å$®Æ‚œS•‘4iq@)q@)q@ø ºhÅ.)˜£ \QŠ4Ѧ€ 4i M ¸ ¸¤é£M.š0qŠM4šhÅ b(Å&)qLª.ìy¥.Ûž Ú!¦òÚKKŒdÉÔ¾ùÌ|ëJå.Qµ À æ1\ø%.$m–)n†*eXù ýôbº Cb€ Râ˜)qHaŠ\PŠ\PŠ1@)qHi MhtÒi M.š4Ó´Ð0ÓK¦š1@šM4X ¦4Ä&š1@(Å£MÇ¥yÜ}•✞Vš97BŒÃ‘ù«nǵ¼B)£ï´‹žüùסÆ^â§iÓ7lx­•ê°†uÖGØm›˜éV°3Œïå^„d¥º$|‹âÃð¤Ñá'ÈâŸ` 4b˜ Š1@ Š1@)qH¸ a¦—báFOJVVHØàH„î0fŸŠJIð:¡qF)ˆ1K¦€Mhi¥Ó@š1HMh4Òi BbŒSÅhÓFš ÓtÐÀÆá¤5œ´|NÑ‚nи`ÛïÌúò­†àýœí m-©T“&‡ÀGº¾êòeäô³`Mz£Ÿâ=¿ƒ/e"\¨ßOÙo¡Ûï¬xïx§º"â9È Rpw8ÇÔÖØò8žtñËÀè,ûGkw¼Ê`cçºýk^h ÆÁ¶ÄuÆk²c=–ûUßäi1Z€bŒPâ—bŒPâŒPŠ\Rb©ñFxì$dl}Ô¥À×'"/gÖC A á¾àãSAÅf_³$ŠBcĤdƒýßzæ¶mH¿—r]tìFHùë¦a[BVg5Bâ—¡Š1HÅ bâ“€1F(b“b“ÀM4b‹qJQb®ÔÝ4˜Ï-šÝ¡‰—QV8‘@ê>ÈÈ;lAè9{Kˆ%á†Ý·†í‡#*TŽc'}y·Lú¹áS‹—Ýlx§\´é§N{¹rËÓ;ç#ß8ßzÞ°í”ÖqZq‹1&0¥öpÍæsç‚r(¯CÎÏ…6Úýïì{/wh.,oÒÒY*FÏ€XòNã<ùò5ݞ㜌–Ù–>z :³î¿åR›‹´yy:wâKkÇÚ6ÑyàYÌÖ†òÚãHŠUb܇_¥wâΧ³äÀFß3F7¸Çi£M ÅhqF(¸£€]5Öñ\Fcš$‘5uP3:nÎpùNQd…¼âô;}ÕiÙÑ(sÃÄȪ¡vŽDË5œ ¬ÑMÖãÓ²ó#câ©:P¦ßSø×I¦ª1ÒL¥bâŒU¥Å QŠ\QŠLQŠLQŠ1IŠ@£Ä£¤SqèhÌæ¼Y§7ÚC €#tPN|JHé³èzÔâÂ+þo¥â,—1.öX#PÛ%[ÔoŽÇ+Ízm¹M ™e‰,|®L»©ÐN× ª©\(8Ë.7S&ï$¶ŠV×Ë)PX`oËí ²=ý¨ù–üý·—ßîMmªâyûµ2Ê×’| @ÎzïŽu«mÛ^+ÂLqEx·Pþ÷}ðànN~ú4úœ¹4d.ÌÝ^Øð®+8‡ŠpèYtôˆ$ÔysŽ]~Tåá¼.þ|pž&R`5n©ÿ{”œ} ¥$JòqžqynÒD?|Œù‡ó©ìøÕµÄ…du…³„V<Æ^\ó]8ºí™ÀÓ‹¦kFCÊAd•(]Åub”®ø¢À1F)€b—€4ÑŠP*@ÌšŠéñ?LgsRù)pOŠ1THb—M¥Å£M!†)1@ƒb€b€b€ QŠ1F(¤S1@Ïan.u®{ö³àØ$ ÷õ«ýÔ\EYR)A`ÌIR6$àgÇ3¶ÿ/9¤Ï¥ŒÞ;­Õ Õ”F;• BºU–@F¯Ÿ±ØãŸµ_{›n$\NÉqªU‚ä©óžõ4Ôw7ñ1d”R÷üŸÚ¸MÕ¼B&€Î«‰Ÿ9œämëÀû¢‘¿ÄíƇ‘pÚCuÂý£¾:Ón¥§¹†Ź7Á!-âdQ(8À1 ù7Ï,ŒoBK4hR)PÊ™d.BÏS±7Ï?=èsØ#ÂJ-\3‹q¨W]­Ì©!c“á(9ìÙßÎ<ªwâË}ÅRâöÚnGtVîÛ=\DíþêU\˜æéqæÇ±moíàFýYÅÝQÁÓé¡·1Ÿ¡ô­X»JÉ$+unñ:œ‚7Ü|ñ÷Ö¸ò¸lø<\¸2au$lYñ kí&­#ØûoVÈÞ»c%%hÈ1µ(Zc QŠ\QŠ1PY¯ì”±n£~u/‘® ¥ÅPƒb€b(ŤŠQŠ&(Å&(Å£bŒP!HÚ™Š,áÖb~&,nÃF¤¨3*oµƒ±ç÷ïN¹y­ìæ1ðîÑ…!@u!@\€0Adzõ®)ðc ש¶$;[IJ†Š,BB‡bÎHéýcM/ž8­ã»2Y´ÈЬ¸^™Ïõ½KO—Øê„”-ܾŸhuµÅÌœi^@"—¼R§*ÛÈ;^]N³Z™"ÖÂX•<*È¡ï‘êÆõ:·³XcÒœWä‚Cqyv€c0Ñ©ÀÑ‘€0G,b§€ÏLáY‘„šd©ÇLžžÇ¥®¥Aá§å“¦¬¹#Û\GÞY¯ÁÝ"³¼zñûä©ùóÚ°¸ÅÃÅa H{›…˜³o…•p¸çÌó÷È5Jœ¶1É®8tóï&»ã<2òêI,죴Œ€«}EyíÖ´Õ’M1GıâX¥FÁ ]±p9⪿ÈËrO¿©Q/nC!%XcR»ú¥tv=¥¼¶ˆ=Æ.#΢§Üs¥ 8=Žlý”œñükýö\nÚbýìÂ2Í•WýÑ×ß5¤³ÆÒ")Õ­K»Œ:üÅvC"’<îôKKа l*Ÿâvœ*5ÜË“…ÏSŒô¤Ýn[2jˆÍEf¡ @NNòÍ'È׌QŠ¡)q@(Å b€ Rb€ Rb€ Rb€ QŠ1F(° PIò¤Ð|©XèäÚÚ‡í#Sâ犭Ãx½â–7VäkTÒè̸_ym¶…æ+:O“lm©l[‹°–·ü6ïõ?K¤fc ¸ä¶pËœgYÁ¬n)ÁÁ`¶¹™íe‰F™Îy1ƒÿʹòF•®g§ËâK&Ò\3.ÖÁ߆ÈꪆUec¤€5‚@Îä×謫¦Š ÌŽ¨Ê)P䓃öy·ÝçJ•ìe²ðÚ—ü%Ö¬Âæg‰¿döûUÀÎN<óÿ/:šÊ`’Ê­S‚¿³V]—?kŸÚØùó÷¤Õltã’mIý¯QA¶îu¹U%·8'FwåŒãZÆí±îšÖ.íÓºr ÙCÝ8ÆE({jËê¥ËÊ ­¾_BÿKx$•ÞÙg•Ùc@'S åëV»Ç3JÈ‘xÀU]<Éå¾#ªçzŽn™cQ¾ö:ÞVµ•]_VVUd%03å±÷ùÑ#ÅäJæ-™YSHÈéÌ‘¿¿JàÑÖ¦×Aeøô³Bò2¢d®N¡–Ç#¹ýG¥]·â÷vÈ y]éeÈggèE ÜcŸ§‹Þ|³rÛµó ̈gŒs=Þ–O,Œgoëm˜;UÂå!d•¡s ¯?˜ÎÕ¼sVÒ<ì.Hn•£NÊî;Ø™ãxßK0ý›jØ~U·†npòÄŽÑFïeΖÒFG®æ·NÖÇ1mú:ÿ‡ùSmJˆÂ¯ˆö¾t›ÜilOŠP*„£­.(Å QŠ( “b“bŒR¥À Å Cµ)ºÍ*žaúMpo,‘±Õ _κ.Îv냎ÔGstÆ;9`hf.¡¿-†I)ÓÜÝE_”õ—³q#7v¬rXGk8\1ýí ƒŸ—Zoàﺆk¶¹‰Ôå'PJÆ#mØLT¸/i?™~‡5~º8yl f†@¢I¬¹åŸ|f–ë²±´2-¤« fÖ<ô¢QLåY%Tg^ð‹˜xlVÍí "7–R[%²pFùÀɬI-®m¦‹ºÖØH©9Ô¿héÏñsïë9ªÜïég­¨—â½±º¶šÞæÜGĉ‚x”jsŒ0~YåÏ|üù®ØÍvÜ"Ú›õ»XfðÚÎnLwn^ß)ÒµE—’*q›—+ïêhðIâ67LeÐåÕ•“éE$jÎG.Ÿ*Fcu[¿^ô‰Qä‰s§K… ÁÆà/QY/FwI©55ÏßòKß(†H-âhb˜àÅ ³¨'Ðn#¡éE¥‘¹á­"™’Fƒ ^{ö!±ÉÅ[g68Ú·½ïúûéåáÖð¼áš-]ÐÀ ¿=·=>îuQ¦^éd0@jbWŒP9oŽ*˜³LÑÒ¶T¤"Ll±"»÷x 'lò#著´¼R+I¡ø£4L­ÕâÈ#wó­"ëƒÍÏÓ'mÓ¡þÚË»¤–±ÈÁt§sÎjÍ—k8u­¬P÷RBé]M¬0<ªy%g+éå75_´ü4îä.[?»€©?Ë5«o:\D¬’FĨ$#Ål²&Îz­‰Â’3Š4ÕXP„n¾ôb€”Xq@!Ú€ :PQHŠPi”òZ6Ç'©à¿uMÝ"âO'#µ½iÛÎÐZ@`‡ŠÜ˜HÇtòjO¡È¥Ek½™«gúI»Ia{Û8¦6¬ÆÚI÷é÷WYgúPà—YÒ{fõ—ëþT¥‡h8G™#³âHò0UBÚI'â›qccÄ¥ Ê·£\EK'<©æçÎ¥ÓØ¨JX¤¦„—³œ2Y{ó ,͹tr 8æwõ®{´=‡øûYÄð93(8cbycéE$†òÊM·ÜÈá<áøuÌp³É¨Cg œ{Õî ²pëÈå³I`‰¢RÆDÆ–Îã cËñ§%nËÛJhÍøÃ4ñÇ<¥¤Àm99#;7= òÿ⮋VB(îuÄêƒYe*W;s¹98õƒ‡cÔÁÔ'+nˆ Û$¬³¸‘V0©&±¾AÎ;õü(YDeJBîºh5+.˜=N6#m¹RŠÚ%’*Z£·ß?2^t¸xeÝvð¹ÊòÏ1Ïžr hÙD·,ÝZ7ZQ–Îø'n¸ëåUÜÇRqÙìQJ±ü<ŒÅY¶L! €|¾ïÚÈ-f”Êš1l’6êwþ±IZa5«®Ý‹ ñ^OBȆ £ t9óߟò£¸Šk¦7J¯«H¶ †t#9ÈösùSM2g¦ÖÌhˆ:« zKãIÀ¤u¥µYœ1†M{j˜wØ.øéÈf(ÜVÕì\‹ŽßÁ&!½PJ‰1ÔóßåšÐ·íŠÒÜ+±9Ætô9_¾šmw9çÒGUBÿrÔ=º¾•Âü 3uýl‘çÌÖ•Ÿl…Ëè{T–™TsŒêÆ9µÂ]X«­i8ÊÁËqewl2$Ò¬§æ¤ùUkNÕp©a^öì 1âý›>ê½hÂXåQq8ï ¥)y¸)]ÅqILò¬™-":²YÀÏ@Ißëq5½ÃÈ€@J>Ù-‚@÷oLuclSJ6½H.¯%¹¸YÜÆ\dÀÏ!Ë-ùý*I¢.·X”,kQˆŽÃlo/Æ…Ê6œ“RvšGy'UpžP@åœíïïVeVÓ1I!`ˤKÏlcÌ•Néìj¥A)pS í’ŒË¡Š¡lc=7;ä`ÿ•Má”–žl¤äyó꫹“ÈöIéÇs4fc‡y ïËb}7«Iä­¼û!#WcžFüùs´’RVZ”°Êžÿ|â"(¸‹0-±*}FûŒòêjqu«!Ð_žI “ž£¨ò¡«Ø¬y”%­oîûýÄ\4m¬€ï PÛƒƒçUÇìp³.–#VQ|+¾àÎ*#'ºîuu<)e‡°þ„á„ 0Ó?…Ûf<öå¶*U`²H®H§bX0*sÌo¾9ymZ¦ªÏ+&ÊmQ°¡¾ÈW,0Fž™ÏQýtÞOнÑÿˆxQpK Î?Ï¥?‡åà¶­Ëñ®))/n–$$NjFãüfÝÑ?YÎÚµ8lgÜO­ M+4—M ÏJò¿¡2ö—,…G”“¾†D-ËËGNµÝ¥í ©kŽÿw“Ý&H¹SMM™äéR­/o^I?¶¼c˜½Œùê…F.”ïíÏÓö-؆cÁ>ÛïMI÷&]&ž%coxçzÚͲ ÜçW¿Š›oÛn.–é=¤JƒJæéË8&m tz©Æ[?^ÄMÛÎ;¨ê–ÁÝ’ Ã1çUÿú‡Æ¿â#ÿ¢µIúœòÅ\1¢ hoc»Qª8¤RÌt’ÞrÆÀ`í¿Râ‘ÛDú„á* £G¤©pÛ;·/˜¬;üYhŒ_µt[Š;xR+ÐQÒÞªÝØ«¾ãqƒüGqíT`·´¿×ß[Èã ëÝÆNíÌsË:ííSU+‰Ó%/ NU¾ü÷Ûmþ¨Ä°±²áÑ Ýeždq¤ïÜ1Èäÿ„íçAàÁou,2´m>– NT@ž„ƒ¶6õ­ui—¸ãX¡——³_¿¼£/d•m{Ø­îâ3ö«åº €;óëÌU>!ÙË™mâ—=Q˜Hl÷ŒHúºœr:¶cŸ¤‚šPÛn©—mÃ%‚qu-‰šÚärjU;줌šo³–’ÑÄcüj£8$mñ±­,âp}‘? 8O 9 !?óV|o,lC+ ÔÈÕ>HŠe«n1yfcsd¸gÖŸ#Õåz{¤ë;JÏab¤„å¶qä~úWœÁs¦&—C(ÞdÁÐpw s<©4èÖ†«àdÌ$¶ÕY€#ƪ©ÆNÀoçëNj`.%r~ÖHÛ~{b¦Qr߹ы«NÞ:¸H’†[Îéæ6hu65€CÔr#–j;é!W‰a¼3®Œ&T…ŒçIèF>úvÒ3PÆÞÛz_ßr4ò\4r£M1ðiÆyï€zs«[ÛÜ]4oÄÝ$´ 78^´èÇZ¥K’µÌ z!µ¹·º!‡¸$ .cPÏrÝî™dñ—98Ò¶9˜úUv¤&ã©I¹¸µC*Å*Îvb\i\1€}iCDýôŒfïˆ4йRyg~^µ2»M†Xô¸É»íDb/Ù–UÀ8rG‹;rÇMˆ¦Ë @ÆEm(ÃTŒSŸ?ŸJ«¾ œ4J¤D¥ZGc2¾#$¸åóúцVR!]ùäoƒÏÏó£nÂ’’óOïryaµUI¡’Y ­(|¼A³çž]*·ÆZ»ëÿÊ®<eZ¥w±ÒÏøâAøK5™:ÛHX"¨ÆJ’9yg–ýqL‚S(žI#ˆÇ파°¤s€w|«–n¥¹ìt¸ñ)G›ú îâ[[[ø†·Öc!X6bAØí¶Øê*[«“⇺† Yt²Àº–—õä<¨J· ™¥‘ËŸ=Ùs ¦ŽÖ%î˜*4c€ Ô|úæ¬Níqc 9."Q„„ v]ò7Ù‰÷ØúÓ‹^¡“œ\4÷¿øEÏptÃ3µÃ&Bo¨ànz?ZKk‹¯Õ/$p–ˆé’bSY'Y;ç–äzÕÒqvrMÜã¿-’]ßÛݽÉÐa n€ƒÆÈæ ~Bµ¸?à|g‚«q+ðwà¦Jº 9; ßpW{™æ’IRõ³.û‚ÚDZnûáåUŠ€Uñç·SÏ¥dßpx-ÝRh ªÒ$¤Z¹ñzR“R¡`ÅŽPM¿_äuçái&‡(“Côå¶yŠÎ½à¶F3ðȉݲ«7y¨±9$ãËj!9>E›-Ü}{ò^?£û™ ŽæÚxðª°mó‘¶==½ë'ˆöOˆXÜÊŒ@³dâ­d}Ñ:EWgKÁ¯ *[S …ý6¦Me{š[$g"©N,ç—O8ضÊC)K~ýeá ô½kÚ2ÂÚÆk«¼<Åf±!éoìßZ­™œ£$¢Ò~»E …YÒP 4Kü€­kOÒ÷‚Š~i" `ÊHÆ<ÍD¢¤5q\âý,Û½äSÜpéPr8ç°ò?Z–óô‹ÙûÈ¡Óer’$ˆK>–Cdã,ŠŸ ¢œÕm{w••t«nCÛ·?–jXø×b''»¼K.–µ\-Å]"5ËÔ$—²Ýý¼–¼JLˆ®Bs'ÅåZWpvnú.ê+ ³ *ÂH²6Üüòsþ[Nš{,­ÇK"²ì׸“Iâ‘´k¾“’p7þ/0<êÜߣÈ$‘Oë Ò&‘¬Àùy!±ƒËåT¢NN!qØÕ‘_¬€XÁñ‹íö·8óÏJ©?a/!]kÄ uMÄa1‚v;ï·?'Xå’¦û?±Wbx „’½*FÄt_o¿Î«OØ»û}wá‰8P‘¾ØÈæ;Ts±/-¤û£=û?Ä•1ðÄ1$³¬‹·°Ï·Ò¢—ñê†Í˜ Øæ=Û;ü±¿¡j,'ÔFQT·pŽ äÇ//rÀ1^¸ç†—<jªÜ+ˆÛ\êK9 .AUGýÑÏ}DõÇΓ‹'Æ‹j^„Rpî"ÌKiÇ‹PÛ-òÜŸZ•í/YÎxü$1Ü‘þŸuY§æRÝÇ ºDÂIÎcÁyÒCi{it®Ö.óN–åÓ8Ï3KKå†\ñi(ïßçè?ˆ‰nÌ ¶@˜°sß³‚ʳÿVEþáÿéó¦ÙŸ‰µQÓÙ3þ¯Š> o ÓJ8æ‹JËž\ÎO¿·¥C ì3XÜÛ\[ü!ÐQ݃d ÇvT·Ó¾ø?:ÂII­Ïj9ü,U¯½Þ¥+Û°ŽhdœHкƧ½ÔÃe`ºC äcÞl†{Ë6†H"•Á¬gV3’NçŸÏ•Ûhxò¯ 2iî·Kæt—ÿ«-ìc¶†â3xcÓ"+dP#3‘µdéBVLk•ðËÔo¹åíR•Ý™O+‹…?úWµ‚öÞîU³(n:˜ã+µŒtõ>µ5«Ì‘ñm„RÚ³ÆÑã`•*G,œ-êÓò4È”|Lq÷ü}I¤¶xEônŽníòíª ê8#<öõåΨÃ'Âq-çˆÉ'»L624–ÇÙ;•8Ö›L]FÙtÍmÚ»ûþb,RVÜ–‘5¶’멇]º“×p1LX¥1—”E)„ZN¢qYÜç—qN{‘…h©/y¥ÄÜÚ÷‘FÎ$ q’£»Œç!I9'¿•eÄ’L³ÎŒ/zÒ€rTräFÛùšˆbÑÀœã^nM{›¥’3Jè)*ç|u9§Þ#^MdÇ:¼cg’~ó/ž`ƒ²‘ŽcŸŸ:µì¿p§p’}š+KÃ¥³˜Ç* Ð j 8®9óöçUìÌku¬Ħ$S¤c’:ÛéPšäßTç¸ýeIŒb2:¸B7ÐAä~Övzöö;¸ g–IÂéW3E°Áº5gzíëZÂŽ\ɵ·{¿öBükvïšÏ½V”¢2Çœ2>9rñëLÉÌ. …˜n{ņÉýìjoÁòÍKM;f±œ\4Wþ1Ö<ƒfK«b "\Ø#sϨªwÝ—á²¼bϼ„œ…Y™F­ò >ÇnYÚž¦»‚ÅŠ~V«à2nÆÁñ-zmî5èøv9Ç0pǦAþ·ª×]Žøi6y«ÈnOL ÏõœP²É-Â]*Ú@½“’Þf+p¬Þ2€ÙvôëçU[³WpK˜e:ÆpÀ|³Ÿ©ùUø‡,zG$ýI`ìwš2Ñ>é•ð ¸Ï0*Ävý¨á@<7Lª­€Ë"¶>»¨YWq¾’Jô;®GMÄ{bÁ â73Ô+‡ë“·Cš§%Çi~Ⱥ¼ŒE¦®½*”âÈ–ÑTøú÷ŠÙ½Ú^qAM¥ÜM |Žüý*5âݬîË~³âæÒ1} Å™KÓ¦4qÞÕx…Ëdgý)ïÇûZˆ$7séÉ´‚Ïõ"|ÕÑö«´ú´­ô€Ž¦5ü©OjûK$£]èiñD›OANÑ:¯Ú~Óǧ¼œ\µ[¨Ï¯*kö»´i&–rwÿR¿•ãiX«ÚÞÑ—Ñß+1Ø óúTRö¯Ê(*§#öJ1ÓÊ‹A¡­èmßh¸œ²/ÉwÙÊ¿]·Ò:U×\wýïÿ­*ZbÑÛ^ÞÝqXâkËùHu÷n¸öR1âΟaPÚÂÐÝ\@ò´Ú¤ J‘¶Ic¸Ï=·Þ¹¢’T{+†éíô*F‚k[8Õ{Á˜ç”ŸÕÓ# ìwÎùÆôøî%–5xcîÁžìêÓ#.ÌıóßÀÏ¥Z’k~Q”㓨ðÐïÖ=¹¹» 4¡0 ‰’[;9=F:Ú¦qu€ÃÀÌ ŒX#°8óë¶w¬¤©íÁÙ†Jpóª’ãÝKêO*ñ8¥ïÄâIÀ“ ‘³ ž˜RZÚÛÜÞ[ãImÈ€wŽ|‡>YªŒ©Ù°8eN6ÕZdÑCÄ8µóܵؔØ” xÁ ¸ûl*á÷qàN÷yt•R°ÆsƒùûST×ß¼ÆSšÒÛれÙïUd ìšB|)¥ØìwÎçj·È!iž9ž+Ë® tÖÌ ¼ ;éÒÃ$ïÌ1åX7):ª=Üo´½_·Ï^/–N+l'Ó F¨—<8 éÓzÍH僇ݢ)´ˆx¤Ï‹VpFþ[S‹Zt•]å¿+_Çü!±·¹R^8y-« t–$Œn oÎ®ÙæI¼íÛ†*¹°‘äÛôÜTä[ìiÒJâd|&]ìOvÆfîíõ ”jÝ¥# uΞ9dÖ¬Ò-¼ÐEnÑÏ4(ZwrUÂäxyclóçZéJpøÎyù¤ï‚÷¹¹á|ZêÎý#3[D^hPøö\€–9¼ÅV´â]ËÁ?Y ¼¬Äc8ÁæqʧE$Èyc‘µ]ŠówM_ÜîÒ¶c![%ÉåÐgð«<6&A$W04¨Aဠg?ÖõSö™]HF4ý߸ùíÞÞÔ<ã»WS!|êr܃Ër>|g,–¯nÏ1P*±Ahê­ËlädœŒùî+<|³»­ðåâÕ÷õ,™„+[bÖ±À±8*œïW~£èk=Ųwi(“†.FFNq·ÓÜVŽû8c5'ú$ò‰õ³D ñ¥ñâïÈíKßNÄ™ÄÐ ø@UØ·®ùôÛÒ¡lo),’§+ûûܘ– ;Édƒ¾FnéTˆôó$“Œäü½jä67ÓC-æ‚öêèL¹ÈÃH9o¶àŽ_]«D®^ãŸ6W4ù­þJ‰eáE­­Ù­àÑIßFŽÏ<ÿ/­GqÁ/ãlGi¶x@ÚŽ79è¸Øg–yÔ¥¥$Éy#&¨±mî®îÒ¶Ór±÷o©´%@žYßËÕ]xecF¶0¨PçÈœ "›EIù¼¼EÂçXñ-®‰Ø©.±NÞ„ì­5½Ý¬¥/Y‘ŸžÊw8Î3Ìm×4Ú| RULb`0y!q–fÓ9os¸þ¶çH³8•û´ÔŒ™Âùœù>\©ÖÆzíÓ[“Åmv"RÆÝã¸p¹ÒA`tïÈœj…l{©µH:¢ãKdªòO.[üý)(½Î+J, †I’;6–ÞU ’X®NwÉŽF›woz5^JË‚Kºœ’Ç~§™Î|èiðLscøXÉà™®6´0Ý+ˆ”† bç®~uJvu <š$Me“Á¤œc%†7ùçcIn÷+$ã-a“Kƒ ó22ö3†>urî×á¬âk;Ôý¦U‘Üëoõ«Œw2ÉžŠi"™ÑbrII×.Hyc iä=1çRVâUPA׉[färÀï°Ç¾ýjkq®¡(¸úïð"½Õ¡ êŽ# Þ}£¶Äçs“Ì®™Ìsƒnrò"åŽøÕŽ£j¾90œãU‰­€[F)¼d)È>»ló¨ €Æ²Ê&~î7¨s‡<ßÒ’ì\òמ;. Þ•Èÿg8—û•ÿ¬Ÿk*¦pdKW”ìm¬¬,줽¶µSy*C‘n¤m¾’nezÊÏpMó¢C"Lê]ðíÏËå\‘×ÉíËZ8[¸p’3ˆ"‰'•ügw>#ó¶1_B·q2:be‘ɾAÆ0A¿_•Sz]¾hÊ7(%¦âŸìÑp÷ÖÖRŸ†V3B^W|Aü 0FûnvÎØëMƒ°•RÚId í£*¸æÇ#:¿w>§¥&û‘’1{GgË.ñ™Øg3¥Å‚*43 Ïw¹(§÷@'ïíʆ[»˜Ò(a¹’%¿ñn€€U7é¹#RÝ3)'ÃW?ú-­à¹¾˜Ê±ÚËY™òÒÐq•†=ºâœW»H®b̲Ë.¥ Èï’vu :߃ydÆšp^ow}űáí8²»»OôEh–I†tñ–>g .U}¢"+„xE匆%—Ç¢L7Ùp“nÙÎq«éS­TcÏF¶¾þÙFÎK©ïg±Yãš;dÉ2¶úwð©8ÆÀýÞÕ²Üç…ön.!{t¢ à¢8¢\6ˆ-Œg>~”’zl<©IÞõúvƒ¿°vŠ[x«,²ïÞj<³þþu‹Äì%¸‹¼‚&XÑ÷=Þp£Åy¸8ô¢Q© 9¼­Åú/¡/áÜJáXßXÝÍtÄ*¤Ãdï¶G>•©Âø/¸ ²R#W‰žRÄGà©Ï=™º½)]Ø\bÖûVÿj'`¸ÜÍ`†£­²Cuæ´·œ~ÀîÍÅì=Ê4˜£Æ¼8ÈØrƸ©‹n kÕ~æDµ¶ÖÆ•ý¥˜áˆmå–âÐ ”<>QÏä1ùÕKH£â\8^Ú­ÄÖ²;¢I4¤¨¶Ü†Õ·–D–[uÁ®<É4ÒÞ¨½ßÀ“ÆgžÝ‘è¶”ÜjÛO?:é†p×ý«Z[ËNí¹œœ‘‚vó­ö‹Ü‰æ–X«G#enÜNHîá´³ 4Á$ETˆˆñ‚¡Ž7dô­¤^ÊÙ¬r$á–ÛoLn—':ÞT†Ðði¸“Ú/ ‘õþÏZD98 g—JdmaigeÃÅÛ[G·¹IW ÃNÀî2yòKi—¡­ßcU8µ…ºkŰ]"W FÞY&”qîÏ< ñ ’àîѱ žºj“…[ŽkÙ0n¸Çgíx‚Oa*;,†\˜‹:tã;xqÐçE'hø ÀÕ?uÞrVN~ÙÏÖ°rÇtÞÅøÐ„u§çû÷%Ö<=òÝ]1º¾ÇAéÖª~¶„»b "¼ÁÐÙûÞ“ð»bë“^yo÷îüs‡Ãl͵ÅÙ^=[|Øùž£óÏþÓÜdáüÔŒéDñ5qx—sƒ¨ÍªnQÜzñËêËÂøAˆEJ®Hô:¿íQ\qno¾$ðkXˆ]K€çžB7©õª×½·ù¥kqAaÂ"*ª¾4 XõbsµT¹»Šyüp¤°î”õsÎjuFîÎ…áVò"Š:H­lîI:Ið.Ûõß—Ö›ßÉü6_ôE—¨Vò)¤0Gcðlµˆ– |›$lz÷UNΞ%ÏÄYÄR%¸Ô·sdÆYwÒHöÛöœrnÏS©Ç0„£³wúQc‚KÂø§¹·ev™aBñé@\.:ã9;ÏqTZh/o!¶eIdñ¤Õ¨œïŒsǰÜ\i™ãÈòAÁ:ŠÜŽAGtX[‚5À %NÙç×j«Å.ض†ÞÔEdDIñºg›\Áßü©Gua– 8«¹>‚~Åd±‚kY †æÖ@CC*äË#¨>¢µâí-ˆŠÝ†˜G$ñ˼ŠF¥Æ: ©Ã%luç裑곦¹ã=”Ó=Í­µ½Ȩ̈2we  È»yt®Pñ˜‹-¤6ð£@"qÞä·¦sDÕ½Ž<=3ƒ¹ÞÃø<¼H–´IJ ‹¯KÛo™­û>Év–NÃepÞ)q2,z¼ˆò ›z¹§+„c²ßoš-/蛊½Ä·wwÖ¶ú)w™Ü7À=k©±¶Ã‡[ðëþ5quíÅÊqŒ)mXÜÏ¥SžÔy©Êí=Í‹~ÂlO{˜l…FiÜoäqŒôªü1-íö(­uÛbHˆ2ºã~XÛï§w¹Xü±q]ÍòxìÌéoŒ €wå€6¨O [IndŠéL·RhÕ2 ãÅŒç˜MZ[ã×bÔ°ÅßÅfVr –Ûm×?*ã;oÅ8Uœw2ä$sOXX”¶I–$ޏœ`£´x3“Û~h½'áp)8m£ËÝh1"¢øHÆ99Å`ðûȸeWƒ[w²€ïûg“ÉG#ó¬ÞD•!x‹W•Y†œ-bž9à‘\¹a ÏMJñMupâtãÆ‰-åû¸ôó¨ñ6*6G»ØØàÜBó„êH„L0 +. œ ùÒŸqy¡U·ƒVN†3’yÎßJ¨ÿQ¨¾…S\áá×W¾XåO' }±TuÑý³ïËîªçìv;ŠLC㘡È>â­¤Ë æ3M0Ø9¡h¾ÉÁ¦wŠTÜ}ª=RùŸ¾–â*ݧì•ÚÙq(#ø¦ŒJ3.¢ªÙ8Èé÷S8g’{UâȬ¶q•BºÀpùæG0w5¦åÚŽiu†9orªºäÔtÌà~¤Òðe–ÿ‰‹xÀÊœ’[çQWgoS;„;òu7¼UÏ·¹ÐÜ2RÒGpw™¾äç>U‡aouÆ.ÛŠÝ^$Fëq@•:B¦AÆF9fª+ÊŽ)),­VöŒå>#ïK«¥`} ~QFôâ4ŒÐI§Iaiaw„heg ©FP‚7˜æ {u×k,§œ3_Am,ËŽð|¦zz‘°Ï.u¢V¶<.­Ý|_ðU~Ôðù§– a%Ìͨ!sØúêÛhܵìü8݆XFç9<ÏÌÕ¨ÞçU´‹×VÖpÆ!U+•RÎrØ$}*>úX¸ HÑÇl&³žc5«Ùºô* ʯÔͼí%ŒVq¬34Òª®Fræ}³Ë5“Ä;_4é¢"¶çPݼ¹œº³–D¶Eø9ÛmÌ‹î9{}ƒq<®p À!µq}¢Ž{ËÈFP…r½ <ªc/5±K¥Ó»fé¸KxõÊåQFåFHùf¥áÓZÞ”Ž •»sï0FN~Î3O5>Yyç,)xq5£±"ò2ýÌàwŽÓ0]°2zï¹àÔÑGd„Ou3l¸ˆ6Ùp}u/Ê–F”´E`É9N2oqíÇ,m¤Sgh (Xåag`I9 ­7¼¸·Ï~SC(DC#æ¸ô©YÐNP„ÓÖí™ÒÝJêZiÛFy¶ÍR“ŠÁ˪Cé°¨žNìãË–V•ÉZKë©—PqG¯,ÿ3òªO,hr£¼oãqô¬%+äó2d”ÝÈŠYžC—a°¤Di=ª7fe¸âX—SÏãO q©€ÏATgÖ†8UðŒ“šc(\ô—Š®' }Ä%†áíPÑ€ªùÔW—Ó•X°ã¢Ç†ÜÚÃn‚yÒõ<·Ï¥m,w+ó äq|vø•äã¼BòÀÚÊBÆ[-¤cV1ÏéW­.¬ ŽÖV–'ßFTïÏ ç8Û•)yUD¬Jsó.Qž‡•C <ê-ÿ„S{ çP²8t$09t®£ƒqrò á2@䴌ܤ}̰Ç<)wãÜÎ<ð."·Ì.ÐÆ²_˜$žŸ:eÇ{[½‹8ÉJ2k¥e‹àùœ$ñ¶§³L­-ßwðHlzÔö·ÝD°2è“9c«b)¸mf½?R”¼6¶äüª`ÕÌÑïc•Äpjê;1vðOÄ& ôTËhœý\¼ª>§ž™¥wω‰'×zÒ‚ãT8~€×}l|Ëäí; ½åÔÒ:w:4j—žF<³ÿ*}çl'ˆ¸žt#:2ã–Ør¬2nèïé"Û'á½ ýku$mvBê=_ʶ âÕHÈÖÄ–?:Ū:ä’tˆ СÃÈ õŠ’Y#i›K#o¶“Ó¥Eî=hÝU|GŸ?Oëʳnç:Ò5ñ©b}8¡r&Ùbáb½Œ³G©ÚVdùVßgÕóðò²z5Q“‹&XÔÑ’8eÜw ³Fê§‘DÈòæ:S‘d·¼îʳ€’@89t­Kƒ)EÕáü:öð³[ÚO2Â5HR2BŒxåʪ-ä/ŽòÍF1¼NWñÈ©ŠNìr–û íe+ŸÚËðé‘õùU˜¡GŒwóð~ƒ÷Q,n¶r+ÜIm䌞ö&C·Ú\t¨„y‰vô¬·Eìè®] lÆìp¬E*q µF)yp¼¹JG_zèŽI%É„¢­’ÇÅø–µ¬o>ÐÛ¿oΜxïLÖ ¹ÙÛWãO[|îK„_aßÚ.*9Ïz´ŸÅh<{ˆF cœæÞ?ý´›O²ý±B¸ÜVæY_¼X„Î{•€ÃÅYj´¶Èÿþꊃì'‚ĺ5•¶= íÿª¤7ð÷·À&[9ÄŒ1ƒëšý ü´FÇylÒ…6’sÊþ4áÄ,eì.ž›µÿ:z1·Ü—Óz2ü\w† cÙ^²~èk…%¡Ñ÷UoÖ¼?þïþ²ÿí§áãõdþ]¾ä+Ãâqû;ؾÔá®UƒE$LFà«Ö.,û¥…ók5åóYˆç´/:à,‹‚õtî8“ÉÁWáÀb«‚pÀs8ó¨PiQÍÖBnqž›¤r¼7ƒ¬p™dŒ÷KŠÌ¼DEù/t~Òu¯Fìù'º¢$.ì8RFôå¹’7PÞ%'Ô¸&ŽŒ}fXäÕ{VX•¿húGó­Ûž+à io 2I€àsMsKšG¡“<'ž¯‚ Ã|t1N.š6s’š3ïLâ•nÞÍ5ÐxuP0Î|ª×PÛÓGèÒZ›$„Þ;Åyæ1œçB¯„⳦*Ó0ìçÚœºGFK\çßÔØì¢æþyê±éù’?*좕 ´.§KˆÒ|ë9ò:ulŠXÚ&þàŽDyŠ@UÀW‘ɱ÷äFWˆî=AШä°:ó=å@š\†d…ó°$c–CçK¬?,)ò<¯A ®£K.ÞTÒQ†À{0 É#,"åK áN2qµp:3#© ¤M«hnŽ|µhkŸÛðÿ!U#Ó¿þ_çZ#ž\—ྺ¶U÷2"ž`6ÇåÊ´¤ã“ÉgA4QÊh*O=×2§Éq[Xx}ÉË|T$óÁäiÄY°nëŠGƒŒ‰©ûöûé&žÈn/¹s†ð8ãâ0Ë;Gyn§/2GéU®øÀ¸”Eþ¯Y($lglúÐöä[á•¿S_/î+{50ðÛÐÙäAëI´5 8 šæøCpß ©WR@úU[Þsgq,,!ÊêA©N0G1IPš— é vU`„l2 =cÉ3³.vùÔ¾e¾À¯¸¨žæÖ-qÚ®¹@8ôqT.­ÌhØãÒìI¦™A·¥EµRLØÑ^;nÃö¼>ìƒò§Ž+Ã[ÿÁ »·àii>ª=f7íD™8Ÿ ÎÉ*{HßYN%g¦êuô×ùŠTΈu8Ÿre½·nW’ñi4¯ðr@ùþ(¥º4¼s[Ó#ø.Üá´>ÈWð¨ÿRð¦ xF†FÔ¤Œ'øK>`¿b7ìÇl$_ðÊ?Ig-âÒQØ•mYp«Ä•QÍ/Ázfî6Ž£„ΖªË1aÉ‘ãÛéX=¨á÷\_ŠC%¼£àÁÁV#~dg}½k8-2ÔaÔ~šQqƒE+n%¶§øyãÕœŒ`ãß}«æÒâ7 ‘JîY”‚=+HÊå¹Ë—¤Í u$é|ö7øå¿³‘îA^õ´‚‹#ËëÊ¥n7Ä{Û‰"3AnêÆ5ç©yºŠqnÉkåî¯Ükðž%ñëÜËHfžqÌ­X=Ó¶ •]¿ƒPÔ>]k:bÍŽuØE“H+±Âi +}’ù7çHÈMO„Œû­ÈÒíúè?Q@„+")êq¸ªSZ‰2cšhû¬HúiК¾ EÆà¸¸§Ÿ¡Þ°æi$âåðxÆ­)¾Þ•Ñ &©y!$í‘Þ-¿|¢Ñ™Ã [ybª<A6™WI UQ•︮pSçüªg9fÁÓÈõÜÔHÖ/rC#$Wa¸ö§‰È$6OOjʬ­;3·„b¬Ûqkëp‚;¹BéIl¡­S¤bù4¢í=â.eŠ € }'î­ >ÐÛ]È‘µ¼±»œ.aŸº“Qjø)JIѯ¤‰u;ºŒóük3FÄ1Ä77T+¶¡÷P-Ù»e—½P5ã•p~µys݃êsùÓ‹M¾ç¸C“Õj-6ŸðñÊ(ÆwTw&žÆ dQ¥€¢Å¥ˆC L¸äiì-Ðá4Ã÷›ëR-ìëþѨ¤\sN<2eâwmu2ñ™—­N“xõ³\–ŽK¶AúÔéǘluo½wDëDZ¹vÖ¤^:‡ý ¥LÞ=\ro×ÈXÆÀnÆÔ=ä ¢X‘´òÁåC/úY=ÄV¤†ŒÍ ŽM…Hö5Lp ÁṞ'uʪ3qTŽ>£ðÌÞ¦ÚdñpÉ#º3¯rÇr]ugßzé¸ ¬—¼×e B…Ø+<³µgŸðÿÊÆÔ­2íï ¹´ËF5ÃL¸ÎëùÖa·Mê*c-HãDˆu&ãøòü©­&¯´ƒÜli‡#tö[&Ú™4=âbxÕ×ûÃ#ë@4Œ©øœ­ª=p·0WqY—î6-‹7±Üüm™Ï<=Ñ™qo4M‰`daæ¤cÂìýé:@—©­3™ÜGÅ:‘†~æTrHþ¶¬ê™²•¢´Ç20òP)¨3§ü"¯±É!>b¬plü}¶ß¿S/e”½¤uíƒÄñ²j lßY›XwƘt±ÜjCàPvÅ<åŠ`ØéMÕðÐ+8ð¾FŸT{#Hß•.‘AT•7@ ZC@Å4Æ)â1éGt3ʘ´ ÜÓ»¼ â•’â[N1PlãЩŽ‡J_æqA[ðe9Ÿ­6KÆWDI\§Q¦·fy2KmH±Óí—‘”óË~é]˜šÞç‡$bB¬9ùûV9ã±ÎòÏ"ó;:âºÑ¢“u•°äž_y¼ü_…G4ˆ× F+‰ àã þUbåtc)¨rYAª1aã:‡ÔR÷àìêÔóúŠÑûÊMKt4ˆ_“2z0ÈúÊ€’¦LdãÍNiúŒ2öÑO¨¤"&äÅO÷·ûè 2éÀuòûCéY×&Ò|æ- æ›}ܪ”š"PŒŒ©ø FÄÄêþ‡jÏ’ÖîâFúVÊj[3–XåÑi3™Ë§ éˆ¦ØÆw«­Œ“v8–Ðr¤`ñVx+·ëâ¬æ¼¬Ò/ÌŽÀI§ìÈʯ*Rò72Ž=pë#¨cýø45%i˜Œì$qþ áLT'wü2F}ü4½Ôugä26f$°ÿÅE¬ÿ¦ç8£zg´9iàåAKrU·vßaîiÿälÈ~t¬Ö8›dùÆE(°lý¡JÊ];õ{ÿ¥ý]/šŸ?ËÈ>p>Î~t¦Öà ‰¢Èx%è/ÁNT çÐRAä‘ðÈãÿ- ¢<®Ã§áSÅ!Ó‘çŠìf_öOô¢ÊðdÕÑNhŠXŠ `gG¶E;3ZEžwS·§âÇÇ9`Úµxw¸°pa“âªPMQæÇ%nvߤU‚ñqcØlólW› ÅØ=âú²_žÄïSƒ‹f]NE*F· âÓp”&"IßÄF“çWGlÙÀïlãçí)+ý|ê¥I• Êשtv—‡‘ôÌý¤*6ùõ¨fíU¼l¦²3œéÅBÂýKüÔh–ãµv©h“m39ÀŒý¬úšË—´×"]QÃCÉ0sõÍTpÿ‘êiù ~Ä?YÂÛbdûKùV›É*ìç'ûÃó¬¥.ŽˆMN)œ?ãW7ò«PZ–5cœœŸj¹Î‘ãô¸|\ª/ƒ;‹HBTaKUb¸*TŒïïZãöQÍÖ×*àÕ²°7ë#DtŒxÉê|…cxõ.HéŠQšrqôNžPà ¯û¯èIƤÜzÕ² ÑÆ?· Uc×ÿTö0нŠWgEÛ¡#ÀJäzRÇ;ÆÃL„uª\ ìèÓ²âE#ITÆ3¨f»}=ÝŠ¼ƒ‘‚68ëƒXfJ¬êé¦ïOcÏnµG{8ê$`~µs‡,Ó+ˆþ×,“çZ¶’³™E¹R;›K&³¶Xâ 2YNwóÚ²ûM}5¿ Nò>’ÄoŒy×,7š³ÐŸ—£”µ¸*âE‘–Eß ï]Aãê’ÂnÆ2\èvÉåçó­²BÎ\lè®à6PA:Ü£Á8%IÆÜóUÔ'›Äß?ʹ’mYÚÚ$ ‰ùÐRÅ/-»Ø­X£Œ ùTï8}Ý»šÚXÀêÊ@ªqkvŒaÔ✜b÷28¸E´ÐÝH<³Ux?øƒÞ1Єì:ÓÕ¦ø”SêôFä¼&ÆÒ7†Ê¤îs\çs+ëç¯/ëùTbŒ²&qãê1ôò¹7¡ ˜H­Þ)Œûþ"«ÛpÑ.5: ³‚Ø®¸&•\á9©G¹ÒÂñpî ¼&YÛT3gli®*¿Ù\M-¤êú™ ¹éYJ.n<³»Y°B%tfÚözý¤F–ÒU‰ŽÌT…?:ìm­øV¥‰T(ˆx<ÏÜ+.£/øœØ ¢­œ·ø^)q9]d©ç±ÜUh-圲Ƅé$Bºã$â™Ç%æh×á|kË t2Û©œÿS]ýœ1ZÚÃocUæÊ2O§ZÂoÄ–”ub‡‡O“>?Ñäœ^úy`‘»«imÎqâüêàç…ñxøy…¢–0K#Œž§>•9ý—Àñ¨'©rjµ¾ò0†ØäÑŒä\’[¤wÇv>êã]W yœÕ'I>”.F5»Þv=I?G:í\\¹:®Æ¢½ôÚ€>7÷®Ûá þ¼×>OhëÅ´ÿÙbygfoot-2.3.2/support_files/mmedia/pics/match15.jpg0000644000175000017500000005143011225071373021203 0ustar eliaseliasÿØÿàJFIFHHÿá¼ExifII* z€–ž(2¦i‡º: CanonCanon PowerShot A530HH2008:11:27 17:26:37š‚4‚<0220DX‘‘l’ t’|’ „’Œ’ ’P ’”|’Hœ†’ä  0100  Y   ¢ì ¢ô ¢¢£¤¤¤¤ü ¤ # 2008:03:29 16:29:072008:03:29 16:29:07ê t t ï-è.žú" NZrBC  ˆ h¨™ HZ’ššEº"ÐD\ÿÿÿÿÿ Z¨ètµÿÿÿÿ ÿÿÿÿï-æ¬Dóÿ tê™yðúIMG:PowerShot A530 JPEGFirmware Version 1.00Filip Kalwaczyñskiå77sÉåkDëÿÿÿÉr$vëÿÿÿ+òýÿÿ¤Îêþÿÿ…øÂÏÿ™ íþÿÿ† §B ð¢ÿÿ> gé7÷  ˜ ØÓ' 'Š €à€'áÀ©¨ R980100 ˜ˆ  (˜ ´´ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ“Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ö¼Râ–—Òs ÁÍ-.)qJáa1Š;RâŒR”Râ—\ÑÍ.) ‹€”Q¸v”iÜ,6˜ÍŽI·&£wUè2hLdÒîUêj™Ïb£;»ƒUbnY3¯aMósÍWÍ)ôQ`¹gp=M×Öªn>´íÔ¬Qkx ?½V N RÑH³»uÅAºæ¦Å\Ÿp¢¡ÝE+Ët´˜¢ªæc¨ÅŠ\Ð;(Å€84¹ô¥q¤&(Å?4dQp°ÌR…ñE Ú&)äø¤ÚB1Jã°Ü c(=©ç<Õv¹O\Õ/"^ƒ¼ºg Éæ™öÅþéÅ9gGîEV¤èª‡ž*Á F|Â?—¾M …ŠæíMØjb§ 4ÌÖÂÃvâœ.)3I–:ŠLÒf¤cè¦ÑHfžÚ6JO0c­;w­MÔ0´Ç_¥4°ô4\v0rNhÉÏÅ R±ÐP;ç8ÍŠ’OÐÕvšFîö¨÷¦rÛ‰úÑa\¸$ÝÔP\Š©ö­¼"þu*ÊXd€>”¬ÑZ1ÒKŽ’hBàdàTlUNw­-Éè3M+è‰nÚ²y¤Ýò©?…W1&9lz„Ý0è?æf=Mk´e)&X`¨~þï¥ êN 8öª^a¥»s@ÏhñµG&€,$‚D§ ŒŠ+Ž´ñqZG²á×p8>ŒE®‡fUOˆÁoÅ´øÖD,¬øù‡çðÅhÁãiaÓGüKîPƤ–‘NNsÓÒ¼ÓZÐî´D]>Ìû‚ù‡v ç%qŽ:ƦѶ„’Ü}¾èAÏš%;£9í·¡ëÓ޹ㆦ§ª;eR¤â{ñ4ÛA&Æ+*†R9>œÖN¿nš»4Ó4‰@W©÷ýk#GûMíôoq¼á@‘ŠœêGøVó(kñj8RTúzÑR§±.”nOÄ n#vß”î@¬©Ù­=šHI¶É´Æ–ËOdÎe.XmäsŠdš†¡ü2KsÛ&w…P£ß99ú`U•*8©Þ‚‚ʺõ¬½œ%&û–ã$’·rÉsp4b"ªÛË[# ô¥ðî§5ýýÙ4p«Gs÷Îì ôª6K#¦f ¸,o5Zç@·½Im Uv>1ž¿ThS‹ºÜ™T¨ÕŽªmRÚM)¯m™n%Sƒ¼†ÇÞõäú棺14<çÌÚŠÛTœò0k¸Ò|9”Ûàš`vªìgÜj“VÑEõ´›[lÉdê}¾*â’êKR}]õ²ßéâÞéÞ'¸Xæ+ ^üŒm®ÙnôéÕÁò•ƒ`3]¼X‹aPPA-€9?.>ŸJ5ï x†Bk&q™P")`F;zŸ¥b¡8AEJöê÷: ©Îîq·¦ß‰ÝêFÊ uìòË ÑŸÞFIçŒóÍyoÄ : :þÚK_´*É`$ 1ÉX€?!]%Œ>1ƒY†¶Æ–lq ¨O]Çô­ë­#ûQÒ+ùÞlBP’6ç ƒÓ¥R½äÅ8ÆÖŒuîy†•os}q䩨2 3p3Ž¿­vQø"å-åss¼²ãÓÚº¤Eeh+¾HÇ“ZP]#B 8$ŽÕw±—#{žao§ÞÙ^3:9¶Ú¹ü+RK¹ µ¹V‘L¥HXw#]~¡cº2ƒŸCõ¯-ñv›â4ÔÇdfI°¡ ùÇ_§~´6÷ˆr/´R21b¾S Ç«ƒßëEq÷SC å|¹ 1Ãc“ÖŠÎìv‰êíã :8jrEÆàsó|DZVÄV×HeKku²Cä–h‡\ƒÛ§\W™éúuÂè©Ü´{È@NÜžNsÏ5Óøqž T·š]»íle6—m§ëC÷ºžŒ*û8Ý#²ÒüUmyn÷QZJÍŒ4ª@oB @5ëI$76×K 'p‰òSséô®NÇREðý£%È;x»)€?ÏJæôè`Óm5a*ΰÈ$áluSÏN8üihžãúÃqWHõñ5½å¢Ü©XÀヌŸZ²ºý¾YZ0.:ž¯#³•5 me™.€ÆH5z./~uo²€ØFüm9É>øªN1ÒæR®æÓksÓ¿á4²c€’GÈ ž~¿…>ÇÆšuÌò@²åÓd‚N1Šò»û >ñX¥ž9âÜÑ‚F7vúÖU…ªÚêÉr²JˆñHì¿ÄAÜß…‰«/‡¡ïÆâÛ*beé¼ãø½éñê*4˜Œzò[]fI¯.•îDí„rB€™´€qÉ£PMÏ©¤€yÆõæ€3üÆ“yÏSøšCŸLR×?Ê€\ñͲNp n{åMÏ4À”Jã€HÆŠ‹8ïŠ(ÈŽFþ~•'“.y^*u+ ŒO¹¤ÜXœ±Í ,‹f݆d_ø¥òcéö„vÁ5W,r3‘B»Ëgñ  D?Œ°ÿeir Ê1ü@ªÅˆ$í?.ñÜŸ¥ %2*çld ÿzŸö¢À)QÙ‰#ùÕRägàä¯<z•¥vùvç<(¨ÆåÎ>Ô…”…$Òœ÷êA›‡pE+ØÒœ€AÇ­ &yÚ1@ µºæ›—Î)ÌI~T€r €Xç¿åMfã’­HYG^!ÄýE47SHXÁ§·Ê2þ;L9ìÃ4¡°OZ3ùR¼‚}é ’zŒP–äRgçò Ÿþ½5Æs‘õ¦çž¿¥)ÆzŠfÓÔ¨ÆhçÛ¤ ö¢“oãøQL €U²:QE íR”QC,@ ôÄ%‰Ïj(£ Å‹æ”ƒÈ¦ÿJ(£¨„wepâ’sÍSù9ü*@HÍT0|êKsÅ'H±ÅS¬4ÒJŽ=(¢˜‡g*)˜ ô¢Š@€Ã‘JüFäpEPj2ŠO&žÛš(¦@IïF(¢ÇmQEÿÙÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀY!ÿÄÿÄH !1A"Qaq‘¡#2BR±ÁÑ’áð3Tb‚ñ$rÂÒDSUVsƒ“¤²ÿÄÿÄ,!1A"Qa2Bq¡ðÁÑñÿÚ ?ûU ^—”ЀÔQO’w²šRB¨€BÒ@!’ ¥]PD¸ 9èÝÚE=’.ªŠ­Òئ$qš6[ži€§h KQQ¤ƒÊ.Ö4ÑYL€NýTh"—gœÒ¤QIÒJ‚–¬$" €B€E )"«u•M"TÃ|ÂÎkê³?MVeqê–¢zª‰SåÕûÊGz¢ŽñÔSÔJ)êL;u+µ•I¡bG Š@é:@Rt¢’)"‘E&R)¤½Ð"Z:„µŽˆ’‘ 5¢Ò™¦óUºfŽBÕNÇ–Ër1µd’w)Z¨-=AÌ›l¡¨ ,¦Xv‹QR´ÁQRÔ¬´Z‘©Ô¨­4Š[r:E(§H@"” )Š>ˆkU=UØ;¤û´Øa¤"­ev vU=Ž+Qš©Ð’£ðåolèƒFåV@èÒ›BÐï$hw’¢$ÑEiÚŠ-0Q¨`§k*)ÚŠQBv¢¶&´æ h@'H¢‘H E )Ò)tµ©%*BlÑ"‘4 $i;.-´´­²‰Ù0ÊèfhQ-¥eE/ÓuQŒù-m4;¢¢c!6º ž’¢Á¥:QL)(ÐB¡ElB®i":RQB Ò)Ò)6ºŠDy¢‘E""šZOš†Á¾”’²h·dTvVM"O¢EõúIDDÈkò•6û´­Hl»ÀîCuY“¥RºBÕ²q¾hPŠ²Ñ§j)Z-šŠÝHG0 -HPmEÎÒ/rŠ€ó)Ø*UšÑ„rèŠz‚,ù"hW¢}kB-1›¶ž©µÐ© L».= ç4IYŸ”βºÉ·;U;,žŠ%ã[˜±ä—Å¿È+™’Ó±¥ÅfK<Š ØMmk­mÌ(:•EdZ‰ŒÕ«³Hî’¬EE4ÔP’5Ò¤iFt4' &Í TÙ GžÊ:¯’,H ¹¤\ÌÛw@<Hª“I;aa y<Ö~×ik‰BN–ö ¤©[Y“´\vÙU­·ÍX—[M²Ct;Ζ}V½Æ9d‘ÖQÝ?ªï,‘ÂãmD±Ãô¨‚ë[ܬYbdi¢wôLïÊ=¨Ó']ÔétzœåKYýÒ¢Ÿx+pRÖ<ÊiNÁýH¯U•"’(´íE…„WV“Q[ú"‚H@vË5¨D´óG°Wi uýh»˜Cg¤ô †"îÐÑ»©Ve޶6’%¤Ò%h°9©kR!¨ÝRdšÞÔU> '#®ëvê1&êÒZÎCuD’¼ì YÆoÛVþ•†“¹%á¼ÊéíÏÒ³’Ð7mŸUSçÕ°hËs9ܶ¯Zmƒ²Ó+Dæ·I³Ô³¦¶ Íä <‰¥>½PkÊÔSÒ<²¨‘A"𠮍AwªÎ×@ú /Ô(šýä ÀæSÖ%*Á«Ô%¬ªmtƒ²I*§dHó·„-ÈÅCg~gZ“cŽ÷r[VH™|läRø¶ƒ²Ï­yH˜œ?¢fßÖ”ô¾Õ÷Dgê¢_§ªÖöδ¢I…þe_~ÑÎÊë1r¹"ì‘T6ùª%õ[˜é‹–Õ—¥Þ­1°S֢ĵ”ÁQb`ú©‡WU–ÏQ¾jAäuQRïÖTµ%h¥h¢Ñ©@jKR+xžâk÷ñ)±áÇËk\öé¤ûÀ6%ä ¹&ÓCV®‰Õn¦×Hù졵­m¸u@ÉÈw|º9½-]í5¤ ßIUÕú-JÍDŠê˜¥­¢æJª bP¹Xé)9Ç£‚¡âú­bÎJ Gš©ÂŠë+•ˆ V¥bÂ!F–¶Î‰;(¢¤³Z”ûÅ õÚAÊZ–Z0äõ(§©+E¨¢Ñh E¢¼îWsøoÌèÆ’A,ΆKk[¥ÇsÖ«ì¬á{`i•ùˆÚ ¸¨‹çüÂÇÙÞ7ùPܤùëeeïIc¸Ü]\‘º´Ì9ZÖ“h:KQ.*Æij)jU.P{öãøª'óTÉÈÉòæ›G ‘Ñ¥{…dŠ´µ6Æë[dÑvŠi6i )éWléÔ8Sº»4)ˆc™ ‚.º¨Ò1Ï„ép#Ïëýõ´u沩‘x ÜòE;F¡ujÑh®\@q¬˜.ÉÇ~€˜WþÒȨºo&I²)ŒkkMB·õFKØ!aª¾MþKäeŸwo·Çf±›jÀ•Žáx®yÎ…„ýÖ »}”ÓÇogLx·Q÷Y²ñ±~y1n¢/’³®öÍ|Îlæàá³%ýà–#e…Ç—¯ÈߺôX|?3+„Dè¢{D”ã(.ñ/—*ÛŸ¨^îKg§ b¬þ$ìt…¬† Ð åÒØu+_ÄoÊ“‡|£ï]Ý‘¦¶2¦wv|.^=KòÖp oŽ|lŒ‡:BíqÉ%´/•lv[¿ ãñLŒ5µn‚óß®ñËÂÍ®|_*ä ~²:ÛÈçî®ü="æÇ`Ó\úkSú†ÝŽjßLp¿2wÆø¢‰ð8îñ&íóÙl–)„%ѵ®5°.þ«Ýç)ö«›yýÙyÆ}0ÑÚïè«—5ÌÄÝ. Ôo§¿ÙosáÎãguÐáðdfá·&&‡Å'å:†ã’Å™Â8ž·hÅu§Ôz¬Üá1«`ÂâáÅØò‘B€mô@“ ÜÑy ôÿ¢yCU‰ÙrŒaª):Ží"·Ùs²øŒñÀ×jvÀ·¾JìÑMÅLPë6Ýœ|Íî¶ÇÅÚ0äqæÚ.>¤ê€‡Š„^òu‘¨Zè3-<‚²³bÝm.Òã¢nüÇÝi’MTDÄpôÍc9Mo’+¿Ãª•­<¦†èÝ5¹Ïð“È ?Ô©GÚs3î£ozÃUüW?'OööíÄ`cFíæ<Ôqxù’!Þ;ÄEýÔò<[ÇÃ]IÝë$ù(ÅÇXüŒmÿ0!ÞŸè+äx»,͉ì.V÷­Ñªö«Zaã²8ŒPv½¹õ˜äÿ/âï ¿|¬îJé&ßAƒ/ƒsšòXcsuX°w¯¡K3/F$†)™+­!ÖWÃÊY“íã.V]t׉ÆpŒ? »¸…GzÍ[ŽL—Ñïm^AvÇ–ïéá˪œÏˆ²ÛÌèª2'`áYdÐ"'oò*Î;K—O—ñ <ìì>24³H7»¶潯†hpáíÉaÙ(×0½ü˜]öá…Üévl¬“ñ½ÙÇM×’ÓFÈ!fáœB',2wÐI}1’ûÂ÷_„U@·k®8k)ýÜò¿œ¿Ù³#?¾ã°G X<’K¬o¿!·ü×;ŽñáÐÂø˜Ò©¼t@ˆ"ÍroÔ¾~?G99&=:òr\w/§¢…¬{IÆÑ(±Zd½óù¬™s7‡e»I" ·ÉÁ•ßÑyòþŸç<<½§Þ¸~R7ð¬X#ãeIN­¦÷\Íݩɟ‹†ÉØd’*qhò%},1ÞZ•rËXî–ÃY–c¯¾y!Ì4t{¯9ÆK#ÈÈŽ& u5½MÿÔ­ã;Î_^“…=ñðÈZ×µ…Äò· >ŠSqü(KŽKÄz[gS/7?&<“ 1ò¶×\x畺Œ?µ,ÎãŠI†#šs–iip»Üïo¢Ød{nNñìkÞú ¯ÌymüVþ§,øòûxÎõ/þϦÖ}ØÏÆ#|òEcÝ\ëØ_Käyoš¬q§>y®xþ9D'bë$c~^ ¸ñòóe—ÅèËŽcågNìcH%áÌ~ýbi¿ª©Ü7†=®á€áâÈÐÞžmä{XÌ8ppåÃÃ1HCÚžMP/¢ñ®íT¸¹]Ãpå›SZ5G imº-=W~,|®­r˧£‡#4DéáÅ{¤x³ ™†KúüÕ¼ ´ñN8Îü|˜åÝãœÀ!¶@¢wä¼ßMõ|_Såö®üïN¼¿OŸ¼æ¶õ®á‚¬:Jôe¬²ðÇ?»1f²L'ºé÷¿†~Ò³f./Ž´w>¾‹ÎeöoŒÉÅçÌÄ~;£’ È:½vKÏŽü~IÅ}¾G›^~~&HÓ>3Ü‚o•«`ËÁŠ_ÌÒùÿÂÍ”iÓø©] •ä†+‘®eM¬Íž¡Ž2Æ5ÅÖí‰þ‚¬úkâ=÷y ƒÀÑ?QY °âdÌüÈ#Œeîw¶Ý}¶VÂW¥¢,Gݨ4–‚<êÏýWW6MÌ„²¯!ºÔf¼GÉ ÊÑà poREƒÿ™Jð?}¿UÏ.ësÓƒÇ8ž&ÌÆ…ï— i¬ïŽ¡yôåÍlá¹Ù$s G åç· Íâƒ2hñ'q6o{ q;’Ó çˉ±M!uÐ õõLqÆ_+)lÔUž÷ÿ³f˜ÃHo„s]IJÆWpç8ƒ°<ÉW)2î¦?J§š6V±Ç–£KƒÅ;\Þ“ÞÆe ‡5°ÜùKW¼oòç¯Ê œ'´ü{?´9Yøø1É“N€h!»6ì’­½y/7mß—ÆæÊâo„$Òð[¤¼<. ySys¥ç˜Ü'”vë,¼k½‡ýªq,1ß.,NÔÍd€×7Qg„[€j¹.»¿´ŒÜI"—ñ]<22*É$Ùç[µ8ñ¾R¦å®·íÂð¸`§Ó@¹û =r] l‘3ûçZ¹é?˜oW÷]1ÃVÖrËrFèò\ØÚÖGø#ôÞÀ*¤ÆŽgÜñ[­Ž½ÇºcŒÆìË/,tÛ Ÿ0Š* V«"hsíÉ=IëÕcícå¿•óËZsel8Y?$ÓN#v¸£.Ù®¢ åäi9§ƒŠp¹C±Œn2DV yzóKÃo/ܦ<ž8øFÌ# ÒBÈ™-ìçÕ¼—„KŸ/â±·¹½/5OÚ¾D®øÙ„Ë/—O,üqøeÇ;mÃpx\’âN̬§Ê1ññÚð ¯;Xÿ‡žþ‹¥øq&9Ï1ê8Í•®-un6>{/7Þ«´³[xŽ-Á³gÁ~FNCÞçI}ß*$nEm}=Wˆ—€æž'—‹Y m7aÄŽCÈ/O›ïÕ•Ë-½$\e“ÊÈáÆÈva‘‘¸±Ã»&¨¸‹_EËá9Ù˜½­“/.f²2F1Œ‘²i~¤sÜ‹Ù|¯¡þ—~‡îgž[ܺÿoçù}þ®ý^Xqã5Ü{¨ûM±8”Ó·.sìk ri'm÷ëaí7©&ÈÐÂt›l‡ùy-NLgOW/Ð}FvY's÷qÌlì™`“úÛ¨D¥„’vu*;,ü#ŒŽ&%Èc¢€^­rëÔ+`B<Ô¸ÛŸ”gNðþ9›¿ü¾UÚL ÞØqÚ‘íÈ‘â'`“ËEÂÀá¹Òð|HÈP"Ü6]Ñzß-îx k2£ï±‰khb…Wª÷°p¬Wãò¥¹–ºgÇl|cÁ“ ƒÞdåºñíìÞd|ð1±¾¼#UO„‡ ìxBeÞ&3Yit\4³£"'@ç0‡DÁ¨4›ÑfwØÅ²HèíΈ¸6ïNÄöö\¯%ÇáÖpyw+ÆçäàÁ“ fILÂ+»$~÷Oä·÷Ü#ÿˆÿúîþ«’þ–á®¶ãö‹4ÒåK;Äíl/k#h§4pJ¨¸Ö&7ÆÀáPÅ”Â[&[`¹wgpw&üö ×É&6Ï–pÞRXÇ…Æwy’'Kälm6ùmç²÷ø\c=øxù‘½†`Óß½â0ðÞ…Üìß#æ˜jîkmg’]é· ÏÈÍ¡®$>œæ;P&ùßUêßÃèsX÷ ÈæÔÊÝöÞ8OÆ|fXéY) `?›˜[1d{¤ÖÐFÀ5-I…Û'àæfFø†§‰¾¼÷\./Ù.ú œ‰¥ox#°Ê%¤Ž®cÓª»Üc,5µ| 7†™ø¦`ñNdï\êahk9D° çÜS ¼C:6ãpÃä%³F'Q!Ú­¯ËËesÇ©ðù¯MÙ9ñ±^÷c4ÆÝãi;é;×­yõ^‚.ïØÐˆ1C¤”™f%ºhA tª]eÆI#c—º¢L)±¥0E oá’×m[o[ÿUÝáXÓbÍ£!Ü’0H;¹®ØÝ wlkZæ¶Ú,,eté„ßK<<‡Ù/vâÊÄ­\# ÐÅ+ªž)ä¹±eO“Å2q{ Ø`°·bH ÿPºïsn6j·2&9Žl€³MÅÎÍá˜ùxqὠㇺ2ÐCˆ=V¥ý¦S®œÌ®Ç`ÏÉ Ò“¸F¢tÙºöò£ºßÂ{!/ ~K£Ë/39¯/y%Ä‹ëåG’·,I1ÉèäÒÁÜHÂCŽôWŒpwäÀ!…ß×¹¦jç À.¢G/ºÄצ»x)¤ãü;# BDÒ˜Ä]Õ¾&§b\oíÉfìçãÓæðÎ÷kGK/z©¿:;z'%™[*ñùa«¶®ÝœÞÄ"“8šÃKâ‚ 4“áuº­?u‹…qnÑ.ÈóšÜ®’^t°‚ß‘-æ<×›“ú{1ææñ™y^“o»e«ˆNøû­™qº;ÒCê€ë¶½ýѸnoÌ“I\"…𗹯`°í¨ñ›ÓÏmTÎ&wvDî/ÒHph¡fº%Á{.Þ…’9Ð5Îs5 Å›¥ÚIÕjÉÇn/kMÕ4ƒ½“Ív±ß©—ÈÖëž^Ý0‰IOms3xtÎŒ|;ô¸89¾V:E¬lõYÊ_qæ3³³xl.fc^óݼ™ÚÓ@û{ý˳øÔ±¶S “ÆÇ¸Á½ïÜK9añZœ½2HÈóqÎd’G5Ρ½î(]ó>Ëaÿ¼ÍÿãÕs×éw·Ûx¶,x…¸Í–G4ŸR¼k»‘2g ïùK€ïM]WS`.÷¾ÝñÂïQÖÀì<¸±C6l2dju3»Ã\èžCýn´ÃÀrøŒySä1˜Ò \ca¢èë“hl>_tÛÂÝ;_£¹ãïÓ±Â87à³=Ó¿¾‡4‚ZGJpW[?)ñaHánmBç–~YjºãÃ'L\ ãÈ‘²d„×KLX¿ ;‹àË$Ð&Yêœ\>^ÚcâºMˆ=/ªæç²WH"Œ9­w;êð®ø*Íìþ>kZ5é±¥íÓ³‚¿²Ñc=“µÝäŒ4µ·5«œ¸ãÅmvc~€Z(CÕi¥€tòXòväâÓÎæá¿+‰6áïcŒî/cèµ7ïÌ“V’ðÊöh&è.ÞRGƒíÛZ£mao€ ªÚ_¥Ü¶\³½½jy.<{sGŽ> 3÷ Åþ“æ·iµ´5¯#ÅCš¾q¹Â¨cc»Q–&<¸Sƒ…‚¹-ìßÇâmËLj0Mcv ë²ynöÕÃÇ!ävw3:,‰€qv²¶ÏîºRˆà .q¥<Öði“*'Û]WEÒ¸X¹öÜàž;fÉÇfX§Û¸«”Î01ät¼5àÕž«[–8\.5Öcœ;²çÙw¢²|¸¢{b{©Îä¥Ë¶§ãÛ——=³FÇÄñ^`Uåø×ökÂxÎk2šÑŒÍW,Q°ý«o%¿(åxmÚÎÇåðvæ¿Æø"º¶;z¾«Äü ¼›õÿ%Ç,¼kŸÛ³Ûî7Œ6X¥ž66pÂà_&ÂÇ@˜íÜ?ˆA¸‘™§$†=—µ]Ÿ%¼îçO©Ã„Ü—åS¸ÿ9Ηˆ÷q»ñÑ¥£ÈWÍÚ\n $Ìsä—*Nî'0j2¼î>«Ž»~Yqa+w í<6'Ä•¯g-O/­yó蜙SçHöE‘¡šä£ùG?¢Mù³qã˜^_Û¹â ÚÑ!|ÀOò󿪿´ÍËÆ—¼a¿Ç§w4ÿ%¬ñ¹kLqåÇ&²øPüÞíж=BSdX¾_ä·cvƒ8A’ÝgNôhÝ.·®ž?9—%Ú·qFwÌñï~ëLݨ‡6G»»kh—†ÅÊlÆÉ½Å-í>D¡ýài—h_³ ŽA•ŠÙKÃl[ÈÝ)'FwwN‡z9h;ž½Vo $éö$•¬rqÏ ¸±™-yÔàsR—ˆ4½{Ú6Ó|”Êvß“·?ûÁÃeârð¨³sân·ÄØsç˨ÚÔLJv÷ÓDN—=¬/ÞvÛºK7‹8å<ãÅ»Q³œìxn³Iu“f¬•L]¢™¸’FZ$„´hunÞ|÷Sñ’ºçö:z{ª•‰3»ÀÙbgâ2@l6FÿÔ}V¦­sË“XôÉà ŽN=—•cñF‹·kà ½ÿI©YĸO ž|¦=²G?wøYÚ…8’Dß+p½‚׌›pœùe«=ã3æCÁZèr¢1‰™¦@(€(]O—’Û7í~ Ù<<순ì\à4K%Ó¹íw°XÂn½<œš»¿§g±¸™Ñ» …¼f HØé GoÕ]r¢µÅØNÔÿzþ>Liû¡¾²öUËó|–î§QÆå¹7^¡¼´gIÅ{þûvû®6G›…eÎ÷w„i{HÜ“}mqÏ+%¯;Ùn61ð30¡ o…óóæM_Ûuëò»C6k4‡—í®k¯—1ï²ãÅ—”íô~·ƒ[8ýhû+ ÂÂDâ|‰íïKºý¶?e—ŠfäKÚ)"‰ÕÝÆMl@iq+®§•x&Y^(Ít’ñvNöÄÈéÍs¹s½×WaË' |”²œÐây’óIÕ‘¬w–nGÂÈÌãcÉþÅ4½¤XÜ>æ×ŒááÇØøs›#ãÊïY~Ç~B]âûRÜÕ½¸e¼d×òÝ4y8ЉÍÒJ\bˆËdîãçÖ¯oEägâxÐünøwÄ况¯œŽ@.¶Ø]sú)áÇn™òå,ŸÇf$Ê=¦Â‘Ï:~úš÷Š­Á"½Û·=—³ã÷±aÁ(n·Î#&ÈÞÈùt6¸òð}¼µï§¯é¾§Ï‹õºÙ–$ÅqŽPÓm±RÙ|ÄÇ?jæf~¬Œ( k6 €Ür¹ðÉê¹ón•>?Á_ŒÌ¼ÜQ#*2èÙ±ð?QeÀy|ýŸ„êLê:‰:¯RÖXδám•›‰FÈd }h²IèkqõV~Í“÷çú­qã<{c.M6ö‡ðÓ6?cÛ!‘’2x\Kƒ|6ÚåÊþkV^ ‘ÙrCH!‘|4oxpi»~û_@/Ì©r{pÂx»ý˜ýžÎ>É$|Ñ3F–™eÜ’\+ÐEG¶™‡·ØNÇ|G¹ÃÌ^²+¡i¿—¢Þ:²WmÌÚòûC‰&fdžfáBçëkÈÔGOà’í\YÙ:fFæäàã‡ÈZ@pskìÙbå»Ó®2cÅãk¬8¼7‚å@a’A݉NBÝ.Ƈԯ7Øž#ðüAì8Úƒ£{hÜéºÖ^Wöç–ñãúwøƒ†_h¢ÎfC„P²+1‘fž/—@Z}Öixn\ÜBl¶²RÙ1N>ŸµÕ@ûVË-TäÂeóòî7‰ñaÁ±edAŽ-átFÞGì­vS2Þ;ÜIYAƒD¥Ï:†£¿-”Û¦so$îÜägdi¦•Ò0µ§ð¼m7|ì§ÍK„|w ÿ‘$˜™¿„w³ßF¸|Ö¥ý¸þ2ûnâÓϓƘÌilj 3Iðì,®î?Ãå1ïÉ|qKµ‡4^·|Ö¦S^ܹ5rµs%nÞü|¬WÄj򴂯]}Ô²\è°$É?VHãOˆì.‡-¬_>jÌäî$’ÝWw‚áåïä¤IjÞÃ.y».6lïÍ/SØ-Þijwšh-Nýâµ~ÒÉî :Àa‹º#O6êÔ7÷Z—HÃ#¯aq'A°:ZÁÆ0gÊh +}eM–6Ç¢ çH$r쀱Ô$ hR±Ý.œÐ:õKÝ´nƒ©/…¼/4ˆdÏÁ` Óõ,+˜ù÷—¸\l•Ó?…µãå²ZrXCÖ|Š5ŸT Yõ@q®N@ju#Y¤¸£Wª«Ùû 5W’ZÍôTâÿɳØNÈ“S¦…íü·»]mÒ~œ½V°Þúo %í~\8ØïØì,dñ¶mV’á¸ú¬ÝëFÔ³w¾Ó+7t;ÆžŠ=à¾HÈ2 ä—z<“@ï=ïGM ÝõÙKXÚͧ©@w„õú'¯Õ;£ˆO¿}ƒ­Äù ;Òyî¥Þ‘ʾŠ¿#oÑ.øò¦×² €ÍþïCº @wȤden ¼gª;Æt%P~“¬_¨ÿ^©—ÆÔ ݽšíM>Ôš{ìøÞŠ.”€m´šø–µÕh94Öž+¢3ß ,ú§ß×6‹õM&‹¿ˆ‘™¤×$ÐFXÇRº]ë+šº{+ªAÍêãôMº3ÔüŸ 02 Ô “éh²vÙ®GËèºqu–ÊÍ‚Ç8Áu8X ž[•qkŽÔIXËØNØpù"«Ý@ž©i=B€ª<“TCPî€áÏ’iF¡d‚O²eÕÈîS@×ÒÊeÀù¦®ª­1!äú¦‚/p;º5ÉAÀ3{Úù}’HºˆwÏë?4wϽØà>Jê&’ÔMÖÄ#[›Î¯è†\‡îºî¾êt¼•ÕÛmºÄ@Ø|Òw!CÝ;xO/4U›þÇ>¿"€âÝCQɳiÍ`y¡¦©º~`â›]‚ꕇþPih?ìÁ©´Ù8€$Å–›6zX Ôß¡AdDYÒ©6!¥£mÀôLFÂ7q¯P›ÆÛ á^i#s%žû«°63V’Û&ÎÿÕ=;cŸ àžÃÒþ`×±L Õß%.Ú×v¤^ÒH䯕RtîCî _[€¢UDNé´=ú„ôX"×P=Xym¾ü“` ïËÝ0ÐüÓb:k×ÕKaïƒîz‰@î¶ØüÒÚ®·PîzŸ$1έü'Èn¨wc™éíV ŸEòHïȺ±ºFÅßñTêü¨.ú(8l:nÆÞÈÖÔ~iX¾dú dÈsQعTJ‡R‘-Q !_É#Ë*ÞÉ6¹Às?túýQÞ†Fð@qZš—pEMÿŠ—râhãèàUoaŒYnŸ‘NÄFÛ€-Hòìë:_E`m±ù¦„‹ì Òƒ#‡QjhÉÁÙ2êçºhAî-Hªå¿[‡{^õ죬*$Ñ`“«Ÿ+A»ü‰°«ÚýÒÑA¯¢Z›ÊÀ#§$ Ý]Ø>HÜô D]ÿä6¨{ŽBÐl¤uAΚ)=Èñ ôJÀ?É»¹’# ¡é$m²4TŠŠ.Á±cÍ (" $6Ãè"úýÐ*#jÜõJún€ÔAòOW·Õ4&ZÂ,íÓcI€ßÔC­'jkAÔ̧¬†–ê:O“Šn‡Þµêw¾é÷Ì|`EùÕ">"IÒZ?ñ’MlN¢dsAåáä  my#[.öÿDþõ°iöpMãÈÝôõêªî÷ ¸‚‚D #ŸÍ*¯cåJlºNÆ‘¹èOÉ6XÞ‰ XEA~åPÜ}Ôè;qÜ‹Lóª@ˆD(ÑÜrˆA0ÛóòJ…ÐßÝ,ë¤=”H¡»¾…X ‡y{*ôÉ|©@€«·QAi«ýÕØ^+°Pu²l#gb((â?šÐH–š‘ìÕNØZH>WÕ+±°ûÒ¡ýÒ|Ð[M«¯²Õ›jŠzA'qò(-!£MüŠˆ^ hüc«O¢\Öº¯DÆ“e®$ûZ é×ÈrLE+A®Û ê ³àò…–Æúç¸RŒäÄß ˆõ"•ìMŽnöb¸tà?–ê26 ]wv7k.Ø«e¸m’ˆ™í®aÇú*žèKv×´t³h+k†ª<üÔäÐA uüíA 5µýN£m¯bïïÍ"lu$ˆ¼^àÚ €iÔZ¦€%c.Ài'Ý]h>~À÷HAî^«SéAó½éö´»Æ¶ËJhI¦Ç™IÀ‘¸mu´š4ªvn·@ˆ-;‘ÉGPæ>åPõmÊŠ´ùý; ¯T€ß÷@‹lll(Pýï¹Tnn;‰¨ÈR·àrÝÛþb”Äp ^mùš¤1aÓ¨å5µÐƒ¿Ñc1Âç.mïLÿ57?3B9^ßW!ŒŒzb óq%VršçPŠ6 ¿ÊOñS  ‰A¦ÓG›@ /šBâ÷>Bj¿7DßéP|n÷8zªéÔމ´ ç´sùÒ}–“×É@xK»z®H7̃ähQ"”ÇH'æ›ñ´ Ÿ%6ÈCO‡Oº¹ÅÃóòè® ’ ò%sÛÅ~ª²Ûå` ašEµàz®J6Ði-ÜÇ^a'9 Û˜ïM&BéÃÜ)š¾›r*…©¤md¨î ð»äIÛ4yû#P"¼¼Ó@W¸>èñ]šõPGQzÝIäw*€¾¶!-cÈoê‚M-­Ò°]ÍNÃ:6®~jþèTmvvCͺY³*û瓵úÚÙq»£ì•¹» ô¥5°ûçlP<é¼’ïÊKñ+â'É«vþa7Y6\ëô)¥p .÷(§ MuyíǪAå¡%°H;û&çÓArztc^*Ý~‰†4^ÀíÕNÅnhpÙÌk¹Q*!¢HuÍ¥6,7ÎÎÁ |`¼G„î‰5Íq ~É8Ñ©Y9Öãngª«ô†ôð­ Ñ«ôì‡é_%-Ûb\ͼ@¹6ÚFGóKQhoÑ=„Kˆ#»£wÌ$;ñ§Ì…t›7¨ùƒ@špù ¨»jçg¢o†ìýUa£N#Ñ"]µ¸íæax¬{%`Ý·æØÀ7êp<ÁµA¤ù·ª ;ƒAHWÎ’†¤Ÿ÷>ù®5{Ÿ0šP4Þí óØô@HÝ£þTû¦ž@ü–w ô8½A)[‡å G:'´ϘöQ€@$Ÿ5`a€:Ëì»ÂãB¹õÞÄý{¡¤Ø<ú’›ÐM ×Nh y®×¥»ý)D\ÿê$r¾j.k˼4Ñäi´[«K M¬,6¹Q’(¹Â+€>Cš^•5½kP»>µbsœý.¡^JzI—_•IzTškmV9k¢l8yÖé4"\k÷ê L}Xâêæ%C õ8)4‚*¡&‡Lhø¤ë¨¨ªõ0ìæî=Tšá^*ú+ ‹[ªû±E&ˆ·9§ÎÓ°iØx‰¥"ѹ¢våi´P±çiêûÆýXÀ«èž.‚U(üU{ì ð†“ä: Š‘qóA:Ý'ìòQP/q"ÉD{ 5Cª¢R1¡»%T.&B-'¤_’Æ‹ QµKwö½Ô‚Ný#вƒ,’I6šÐ± IZ·Ý&¬îwAc\{â,òA$4¤¬ þQmØ×EP•å®·¿T„^ö‚ò„`¸tªWà&ÞEѻ誑åÐªÉ Xç¦ÐJñnq*@J„VI×Ï¢SøKv ªÜtÝî¯p¿Óe^tïeDLh½•ž•2)ÄIƹ€¢Ú4:¨ÆØ\ág̓Z\l €À4ŠÝQ6uÌ JÊÊ?ÿÙbygfoot-2.3.2/support_files/mmedia/pics/match12.jpg0000644000175000017500000011520411225071373021200 0ustar eliaseliasÿØÿàJFIFHHÿá)^ExifII* † ˜¤¬(1 ´2Ài‡ÔTNIKON CORPORATIONNIKON D70sHHGIMP 2.4.52008:11:27 17:22:12&š‚¢‚ª"ˆ0220²Æ‘‘Ú’ â’ê’’ ’ ’ò†’,ú’233‘’90’’90 0100  Y  6¢£££&¤¤¤¤.¤Â¤¤¤ ¤ ¤ ¤ 8 2007:03:07 17:46:072007:03:07 17:46:072 ¸ ASCII R980100~Ø%ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ’Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?òñã]K1Ûç·ÈÆœÑIÚ'©õ'IGÛ$®í£“ýLy ݵìpNY>_™J/_±ï¯õ­ˆc¼‘m‘b¸äúS'ÕŠ1Ëeê¥õì–ò&b*Ρ¾aÔVnäã¨áiÕKU¹°“ÊŸ;]JéŒüÍRE¯´Q G7F¤þ¢¹‰5&œí`U@*H¬o¤Wd£ŒîqŒý+t»žiÆ~í.¦ÜÞ0¼NhSü+ë\¸º”ÎîôÈP¹…G©G œ‹l fF'<žß‡5Q¡†o¸>‚´Ñ­>3)û¯Pšù¦?ñõ,Mþù+Q‰µвHÓ!U‹UylÀfS! ☶·1$RcЩŶÅ:±›¼ãó_å·ä+ê—' ‘øŠûBcÝï‘WÙ¥’ n­Òàm“Ã~b þÌŽàn´f×Ë—ƒø”ù»’è¹WòÙýßäWkÙ€<€ßÞΟ «Si·H¤ŒŒöÇ5ØAÀãëTŽy&™ »œò$#éJ“ÌßòÙ¿:YHnÚç­[‚È*òܸÉÔZb>ûŸÆŠ¾#xÙúÑOAX«Н…A•’i¡ZkÕÎ:ÿZÕ61%‘hò®Ò”mä}ÜÕT‰LÒÜ„ª“ÎCYh΋ɤˆg€ud BO^üÕ¨îã]%á(ZYÊ_7ËqfÑXJJ rÇ©5§kjº¼šò%‘q°w<åEµÚG! Ø·b ˆéù×O¯iš|6)w ‘#à€¬NEeiu™.Ü,PÎ2pxvý*ä0$—†ÚâæHЪøÇ΢R²Ðè£åi;'ßb˜º2Çövù`\|„dŸÇëDJÎè†F*3…Îp;SfR'“j©1œ’­ÔØV–öF™MÌÒ$³mP?»ÛòÅe+ô=L<âæ£Qüü¿®…xZ1.zÆ uzï‰Eç‡ô­&Ú7Š;Hñ&Oäç5Ê][Cg¨<)p&Ulp0sé[Æ›-¤Ö¬íˆæÛø‘Y¸¾‡­O¥D¯un W…eu/»$œvÈ¥¸³–ööÓó?ÂjèÆ›g©jVÂÙÄа%ŠåNF3×ê*®¯nÚV­ZÅ$±Â¤¶¼}ÿ Òi\󱓄ê¥g˼Ȋ×ìÚ“¤ƒ¢òGOÖ˜u­F;GµùNÖ8“h$cW–ÓR¼µžä@âf'099ü*=H›Pµ™¢ŒÉ r$LãoÓÖ®)ïcί4¥e+'©ˆmî gpñ¼’y9§%£èøùÇ¡®¦ßG‘¯<”òÒH#ËeÉÁ—y6–û„’&âQøàÞüÿ:¤ßSŽPŽñÔ¡mo™ži2(*§’Ù©åU†0¨‰»<î犣e3#HåŽð¹R@nŸZÛ†mYlòzýy«¹6WK¤ –dÉKe€õö¨®ôÙ#̈±‹°GÌ+N{ ï„^tžk/ÊΜdúš†tºIÄÐ]$«!ÄDüª@ê0jÓº5UTýÚºùõÿ‚dªf%‘†@lR<áaÎÄ瀠cZÔK8/VUCäÎJ–L|¹öüë åö¾ÂOË‘‚:U©\U(¸ký1›½OëE#IÆÎ9ëEÞF|‹¹©c#ÍoÙ>éÉ#9nÃÊ¥Óô®í%•n:²FJäœãòy¡Õ¼9¯ÃÁo7Ë)¸Á—<°>•‰¨Å Ρ2”C <>k“€¦3DU´—RÊZXê¶Á§ G¶“2;¶ÐÀ)ïøRêš|úµ…»ÙËæÃnæbH8õç“QèGo}æê[i¼Ì¨çvyÇçEæ§ ¦§sak/›`Á\ó´òFGåONƒRî`OöдaÇW#õ¥Ê+ÝÑ‚™^Yzf´"„ê2Å!pŸ9ÏpéŸð­?[Oöh'eÄ{y{ Ùíô¨Š6©$Ýã¢fm½’f´Ï>Æßéߊ’ÑmÚÚóÍo‚A~:@?¥V….×l„ÎZ±l¿b¾V™%á™›#ƒÎq銋Ù3xAͨ¥oQu›†:“ÍpwûäŸçúÖ犵sªÇkoj ÝŒ’¥ck:‰Õ. ËtÒª° ˜ŒÕ{L‚Ænlæy„Ѓ&ã¸ãŒSåºo(©%Ô~‹®6}‹Ì¼J¤®ÎH'ÇéW®¼Cu{©FtÄ@Òº¯ïŽƒ#§s\Ô7VÞD«:3‰c![*ÃGâ+SÃ+4ïu%ËÛÆƒÊs޼ö¡AÜÑc³ä¿ÌëîêÜ^ArH›pÁ O9ç·5Âé:¤úv¦. FF' žüTO5ÍèˆJî²671Îyë[~ÑìîõYRâGÚ‡÷rGŒnõ5£8ã-î´"Òæa}y/’ó<±‚/^ÿJ¹oc-­•Ìëfe–UÇ+ecS÷ˆéÉéPë2.¯Ímbwâ%+ÎæëÒ£‡_¹’AhËæI"ä$ôü¨K¹wÑ)¦Y݉î"Ñçµ¼·ÆÛxÁ) ®<÷ÁíSê3ZGáô–}1RW`A\å‰8¬ý µ+§6’}šHÛzÈÏŒ ää÷Åtþ/ŽMLÁ 2$¥g\Œ:Ž8?^i¹Y\Ž]lbèÖO© «{5†-›Ò"Ka³ÅPÔm¯Æ¾·F×3o,èëˆþSžý©ö6Ú½Ž¦öðH±Ç—‘Œ€*ӓߥu÷7å®t«{‚²,ѳ4¡ƒ) zŠkÞJÂv‹flú®µ§É}¦B Ô˜‚Ö÷ p1ýßJå¯4á±i¡nñÄÈp¨ØË ô>‡ŠÛ”Á:ê7öZ‡–ïóE•#%OOÓ­I¦jBþÖ!«µ»]E.rÂxÁ`9ï/â =.f¼rýµ“ÈÛpêÛc¼ŽÙ8èj–«¦ Ë&$_õȧ9÷×ßi®ª·v­äI!;­ø,Êz•9ù‡~k“I™'2ùJC«Œdgœæ¢Kª:(Í5ìêlÿÜΚÛìî€=§} òJl„Ãå…éïïE ù‘*U#'Vwó]ØëÆm&ùmîIù‡NIúþu‡©CgᨧµŸI‰$hÀŠí"Cýãž3“Ò³.uÛýR‚â8£[|m‘T†Æq×Ó5¿mªi3Ø[èwWW¶×|’H˜t<ŒçÒ«ÌÎöv9û«t¸ÐÓW·„H±¨üÁy I#߸ƒLm>ÚiìãÙŸ pÇqøŠçµ]VÐͲâ{)cżÃî·®WûÜÓ¬ç1ËApÈápæCÇŒêr®]€†7™7ÊÑOJºšÊÉï-YJyøXIäŒõÇp:~5·c$ÞXßN<©[| \d󃞃šçüEo(Ô »…CÇ‚\Dq’QõÍK#Ân#š+Yí•Û?7Ó­9M.%GMëgce´Ëa}ö%B­ ™ŒÊ œc8ð5f{; ‹X5Yn§‰X-²Äa ÁyÉ'8éTà’è d¶‘–eÝm\á1úU­îÒãP··–<ؘÀXVSù<Ÿz˜Jú4ÔÝÞÇ-­iØZãÄ%3CÙM¸Ü"®ÙI»N¸w ’~nƒÛ•&°®Þ)¹žTy-Òa‚À€0ùG·øÖ¤ŒnÁ0˜ÛËb0rzëÓ&®VZ™'$®bËocm“Í(g8V0ç#¿µWºÔ´[‚Æp©ýknûOµ„Í5¹†_³1Þ„U¶ñQÒ²áÓä–ê%’æ"o\c9ä`zâˆEÇv7&ÑVÁaµÜÜy’$MœÆ;â·Çˆ-×_–+KH# Äé!À;½½ûb«ø‰%Óí¬,ì`Vµ‘^L·ÌÌW©#Úš`ÔáImä !EfLà²8ãПҭè‰M?"É$ÖuyµáEts¹#ä¹ü*ü«¹D͉\»È;@ëøQèÞm”SG ‹웕܀@Œþ5ºúðì)æ\¡†hðgúã˜'#ñ¢šæKݳ6…ãc 2³G¸ýã4TrÓgLqÕãôE½TIsuÄ«g,Ç:ë€E]µ¿°’ÞkfáË2³•Èö¹þf±îµfGÐwyFç<JéRõ%1M¥é–éGºBN@ä“ôªg:{\Ó½ñ6:ZMqÚ"“¢ëÛ“\„6«©jVÉaKe&ïÞçiSŽÇQù£w«C«IB’«ÕR>Sôì+kÃŒI® "“Ê—rH1œgµKJORéÕz›±Föt•¡WÄi`æ ¤FHA6>¢¢žâ{É^ùIˆLà œŒõéRjVqYk÷zjE<Í1’¬íïúR%ÄÖwE,&5çç|öéíøTµox9¶šÜ.nô{V»†B&”°ÔéV-cžÒïMšæÝ !‚1•0<çØÒj–æÇPˆ# #Œ z’cÀÈïUµ_ëÖm¶á¢OÞ6:†ƒV£Ë¹2©Îîºõ¾Ÿ¨ÚjÎÚåg‰ÁVwÈr$|f°lWPW¿Ó¡ó.Æ<’É’¹#8ôàšµ¤_êúÛ³Göyï˜D¼«z½ƦÑ5MIuÉ„å|ïõºàãžÄð@æ7b»µº-ÂZÛw =ÝÊù[‚íUÀÏ¿Jqònu{éµ 9M¼Ê¯w61‚qÐ~µÎjz•äw‰+¸>arYþl眅Î9­»k›á£™¬¥gšã(q´P;œzКkAz›Ú°´ÕZÊ;Œ›%P0Á?.•ÌxžÊî56k1c )Þàóù*]558n-ï%šEg\R¿ýj‚ï^Õ¯q)u·‹y€™°Å¾¹K]DôÓ¡N S·ˆ$óæÁþ§¯QÈ«Ðh7×Wð En$ÀXÎvóê{sWµ«[½H¶œê°]“Ëò< «´óÁü*KÙ]Z-¤÷²[É· aÝÉ §×Øñî)(+ÜÛë3tÝ>šõVH®DP‡çÀܧøÕËË7½ðå´CÊHâmÇË79ëÔõëÄi¨ZAk WS\FwbåO sÂB:cÖ«^ê÷?Ùö0Ť¨£y|“!Î:ç¥;$`äÙÑqwq¤6c3Å´ª’ØÃ qÐ|¢¶õ›HaÒLöÆçÏiEU$ç>¼×ö;Ø‚ßy{–Iȯ¡¿¸=9®ƒX†í¯ì—JòM¬äyËåÝŽá¸ã4£$Ó±¤¢ô3ïõ'¼×týÁá·¶g=0>•¥²ûSy‘ä3•FsÉ5âˆa_α³ÁÀ$¨õ÷©ìb›KÕ,ï&Š;øäçå$€‡¹ô4åw¡¿C©Ò¯mâÓ$¶”¤a·8˜9RO×µs}Êi}žîñ —ÀØÃ‘žãÓüjÏŠ[Fk(”2G0“vÓœì=â8®~}"-Vg+*Fñ¶7|wû¿ýzVi+”¥fÚÜí¾Ñ¥€^ÝÂ1÷#‘ýh¬+ H³ŒÜÆžc ó*¯¸4PÊäò*ë)kk©Í‹C½‚¼n*ùêGb9íé[þ²’ÓK–I.¢3½³ûõ¶OÎêvŸÙÚˆÑå˜ýbT•ÀÊ9Û#¥gÚ\ÝY\ÖæD·f`B·Þî=éì̯qb³¹‚a&ó#ÜgiN½}+§Ñ4»«}Ot ºHæe’I†;[§=Hµ®ƒ ¶©cæK=ž ù¸Æ0AÙÍd7‰oî.e»“åÓܰ&2csëÞ–Š×²º[üOÌSÚ^?YcÅHãÿZæõk¦š{{–yB7㈫ZOˆDzƒÛjäÝ[O„}ü„ôÅuøÞ[¨dŠc%°;ŒržHë€{ЇÊæ´æ¢¹e©ÂÆ×·:u.Þ~ É ð¤¯c£ËknÎÌBÉŽNsœõ¥ñ››mnÝ-£†1”Ï=xëUouOµx…Zá3¢’~PõëJ­.ebðøŽI\Ó†yurÎm@¡µ¶Œùq–³×üý)×ZªÿiE º¦ ¬>ÎS,Ç€{tÍr‘•›P…gÞ¨­‡ãæ ŸO\Weæ’–/ªy…fI¼°˜²àëKÙs+¶gQÅÍòì̘¬ Ü%œàE+Ä%p1”'ŽN=ë}ô„Ági~²ÜCÇîû’}¿Zå'¹–ïZ’t”H#*c qŒŽ½øÉ®ëIÐa’î]n{Æ<¨N¡éŽý+U©Ÿ;±ÍêZ¥¹¸†Ý¤Ì`áÎãÆ+GÇÑ-Ì7–²ÄPC“C¯û\qè*¦·áøN±con²Íg)ffÆ6œóÏ~™ªZ®û¸ôtY$’Î7˜Ø ÀÜ¥4Ú%­ in’ëO‚Ý^W¹Ff1ùI?SP\@`0c<Çæd‘×ð¨ÌUû@ FÐÀz °.䞇ËN ëŒôYŠèÒÑ5¡i+C2™ì¤!¥„óÈþ!èG­t7öqÜYi÷¶ï–Ï98@¥wch#±F—mÛ< í$éó1$äã Ç¥déW §]ÜEo.á‡VàaG?™5¡¡9лIÙ€”ðÑî·¡­]Ñ!Ò%Ñ®¼Ø•äùšF<”8##ùÖqsr±nÉ\ãï5M'Pº3F¥&_˜ŽG·[M–(bòKRÛ ’{~³á?éúµ¥ë]^ \+˜`úÖ?ØN¿‘.Q•€ØÜäg¿<U4­°ã9)s'©.¡q­spÑaž2Tc$` ܱ†ÂòÆìÍjñÍð1´;úž+>êÞÎÞýKFXÙ‘ÊõÀïÉúVæ¿z–ž?cnº•Y‘ò\c‘IYÜ©Ý[K3—Öí~Ǩ˜Ña•J+Ü9È¢œlcœgpuäQS§aÉÎû”õ›û=[ÄORu¢œåϧç]F— ^¯‚Ýä’Ö˜nfd•ÈÀf •?OƸñ§¡»ic¹òä ã;}+BÚûSº²ŠÞYã'ÉÆpà*ù­r# ÉshŸR-jÞïH´6åʤä0Úrc #‚:Ô×W6÷öÚB[ÂmbEÅĿøñ¸þF­[ÉgªÅý‘r'ŠcäNXgŽ{Çö*÷g–ÐÄÒ1ºà gŸÔÑvõ°êB0“Š•Îü'gm§Á©h«ÛAó6Ò3'#ç©Î:ÝÕüAygce-”"¸r˜¡œJâ5ÝF9´4¶’9A‡åÇ'¨«Æö;+¶ÞÅ$À^?,†dœôíMítfÝ™^êûþMq~ß"Y˜×j¶<äuéšÞÐllu |«ˆãyá‘·\!?*¯9ä“YV–º#éóÜÝÚ^K+e£‘%Û€¦rAü*χõ«mÎð—–Wˉ/×}©¦š»šz^áßß4—²<¼1“k`2ã ôþuæ÷:6rXÁl¡^RC7R£ þ\ÕØVöëí2[\ºÁ p‘ïÛ€O§Ò¦ƒÃ.–òMsu ù.¹vϦvþ£Ú¢U"Š”$­Ì&|¶1Ì“F7Ï1 ppó5vÚ »oµô·RµüÐ& ãšçg*Ëu0\K %ùà{ è5ÖI4k,e·†ÎáëŸ~*ÞŠìI9;E â&¹ð͕ɖ ›~Uãþ1Û¿¸ö®KG1jZ™ž÷Uû$.w°$±?N”ûÝhMa ’C¡!ËäÛœÔúe•–£{mR†GV_îƒÎ=(Z«ôv+|ËVRÄ ŽG³Áä Ö·ôÝ?ÃW(¶2C ¼P ’& œpzäw£]ÑþÍtVÅ™Ò@¬Å¾c’Þ½¹5§´ñê3ËäˆfvýìóêsøT'%'}½Ïf­¸Ûí&ÊÓUš+–K\CKŒ‰õïQhækæ;€dåþl󨡙fRâéå'ŒN}+¦Óí¢µÑŠg²Í<ãý,‚xÝÀ*“µÙ½o@º³–[˜‚•´º“÷ˆÇ#žxôªs_ŦÞjš5Š<°$G°ç8·×íVÕ­4ÿ´ÚüŒ¬7ãÓ Á³N±ç¼îRâR¬Aê7b›²NWkdS_>ßSTŠRnnÊp¬q1U’âæ)îf˜ ÉÜÎx'ú×{e¢i³GzD³Ù‡À-†?(9üÇë\ŒQÂu#x¼Ä“z‚Ç8ãCRÓij\Ѷê‡ØggŽÝP²È=1Æ}«wVÒBx8ÃñÈðJ$%pi$Z⬯­Ç˜®\‡dc8õ®¦ÛX°¼µC{Ë&õY“b¯sS––±¬ªJZ·s:ÃNó-¥q'‚ ?:*Þ¯©é³ß³iðN „%W#®¥nMtÈÑmy,…ÕÝØr@éï]W‚§³Ï–eFS!Â9ÆAÏáŠÂñ7‡õoYQ/³ã'ùÓ-¤“û>|åT±b«ÜW)7c›fTÔïa$žâÂ0Ѭ¤¨#ƒøU„ŸuÔEçófŠ@Á¿¼CIa¤_Þ§ÚP`¬y¨çµ»·Ô'·”ȸN*Ï}£¿ÄÉ.£ûr#I#3—*{àÈ ê¦ÿØW`Ó¤ßÉÇlV%µôvl”ŽJ’ëíúUèt©l58–[9.‘ˆPJКtßAJ-êeé¯sha,Èwß°ñ´çù`ž*c¼“ÍŒÙÛn8Ç<ì¼I ‚é%¨SÚ»iB0sŸJâ&·i®DÌâ5þIã?ãÍmN£…‘›15–䄬`•ËŽ3[V¢×PÓnEåÒÀ n$†`¥aAn ½Ã™UJãçqÏ•M¤$2\Ãmp…ƒ¶Cgÿ­ŠÆpI¹-Íç)¨F[ šÅ¢–U†U–<­Ú@éO°´’ÈKÂå¹U$?ãŽ•Òø^+h´ëUt·Ž"Å -žŸ­`Cy­Em œ (†Ç3³¡ïŸN+4ä¤[p?0]bâê#‘ÃÈIÁq¸dqúTk¦Í«_\Ïs cl+}sþq]g„m­g²ò5kv¸‰ÊoÀ>àfºk&+(¬âHãn$@£¥\bäìÌ\”Ï-: 펢g*~BX€ÀƒÈ#žkVömDÛ@:DØÌˆ0 œÕÒËgÅÇ(;†ÀéÅR¾Ó^îÖ>Û$—ÍuêÌ݆}+O«U½žÆ+O~§-ªÝÝ?™eö‰ß8`ŒžÕºý–-°¼áóÔûšß›Â—RÎïöÕÜÍÃl畽cá»Cl–òEçîbÄ€O®3ÅL¨U½Í¡_k]¶ÎCLÔä²¾{ͱ´² „·'cù ÎÛ¡p#ÊU‰äúŽkÔ'Ó´M2êÊ 4Èä’rv€…ÅoE¦Ù@»¡µŠ<óò ÔۥǧSÌïü4qÚA#‘ÝX¨oj­¨iÓéoXÌ«D}:W®€8àSÈVþi8ܸÍ$Õ–ñÚBJDpW»5•³1-m >¥¢Ÿ)<ÓÅ%äÖo•X «æ¨ ý*ç…µ[IÚyn­ã Ä dÒ¹o’þ,¼U.3ðÇ'¦â8Ô‰Nâ­Ž1QRV“FÑ£'%Ôô CP0Ý—¶—j8±qòžàÖ½áŠïD–øY6‡;8Ϩ¯#šæìˆ˜JÎëÀÉæº3ÄwÂÇìÌûWAQÞ¥ÔV¹¼0u%>Tuv§Ì±2Íy$L¯‚I$cµ\Öî÷éö³Ç"²ç‡ñÿÖ®6=Fî8$XyruÊŠYµƒb°’Fr£?ÎhsHqÁU•ÕŽ¦ÂÂÎëS–)15³ÅʱÏ<ÿŸJ½§hú*ª´Ú|p\®BÇoÃÄèz¿övª²ÝLV9qpIúJèõOÁi­A¥Ädi¼ÅR@ã$÷$Ö•õFUi{r{³r×NÒâÕ®#60¶‚€Ä8=ÇJ{µŒ2»Ãs+üœííŽÕÅk~$Ôb‡P’Ûf-®Ö,·ÍÆ:ÇÛHdמäKxÈ2?@ØÿëÕyë+½Îµk|žD0îNeÛÎ1ÛzÔš}Ø1-´ò¡•Ñ݈í^Gâ+Yl5Hå<7ÊÀàöïWï|C¨Xêi$¶ bEÏažœÕ(½Èö±qåhô[è;ï0M*,ª¨b z~TÍnW²ð½ÈiÛÌu \œã'W¦üAy„­y§Å¾ÌŠÊäíÀ#úÕ]wÆË®iékoi42 „¹ÿDäÜX©òÝ+~&e¾‡€P£!ÇQ‚?¥uú~¨6ýšän\`ü«„ðD’ØÞY2d·`ëž„?vë]…å®ìÉ ßNÈS·3±5副Ö&ä|z+\F%I1Tb¾q‚l‘ØúV–Ÿ{Êóʉߘ±À×íß&úœ?W^Óm-t‡•w™T ‘Œz¼°­¿îÇnþµ%Œ±IóBêð°Ê²œƒQ¡ó.ööSXN¬§¹ÝGMØÎÕÓ ÑÿyÆ? Þa´ã·jÂר kElÿËb?Jßv 0½EB$‡ð¤ƒÍ?#Ò¢,:S6Ôm•ˆ3 #¶h¬;ÈâReséEtª)«Üæ•v¬y¯ˆ ÿ„®è÷òÓÿAOØ[Ÿùiý(¢¼êÿ=Ü'ð¡êU?tÔèO–§<ÑEs³Õ§¹¡nIAɧ9;Ôg¹¢ŠGKØÏ7©žq*:ÚÒ@›Æw(ÞÊRÜ‘ô¢Šì¥ðŸ/þ?Ëõ!&ËXRr­rÛ‡cÓ­Kk,‘Gû¹>Uû¬Gj(­QÆÌûÆi¥Ì¤ÈAÈ,sU˜—|±,GžqEÀ™@ ô¦É÷MRWÂþ'Íÿ^íüÖ½t4Q@ÌÉÀó›â0‡¦p^?ýQE)l]=ΫCh–øù;}M-·úé>”QR¶F¿Ìdë¤ÿhéÿËÁþUÒG÷OÒŠ)­Îqƒî7Ö£j(ª@a_ÇÛÑEÝ…U>&ÿÙÿÛC    ("&#0$&*+-.-"251,5(,-,ÿÛC  ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ÿÀY!ÿÄÿÄL !1"AQa2q#B‘R¡3b’±ÁÑ$CSTráU‚“4ð%7Dcƒ”¢²ÂÒñÿÄÿÄ1!1AQ"aq‘2#¡ÁBRÑáð±ÿÚ ?BÿÄ VqÈ©? ÿ]I¸úÖŒÓÔdûõÐâ8œÏíا–§#Ø®½n?¶¢n4•þRÀöÿ´‡þ"ÛGj*ƒúM>Ðhãàªê5[d,??Ä·úuJGK|ÿÞ÷úsOånŸûã@¡îj®š™çøž9Œu[TçÿXÔ—ŽTž¶©‡ÿˆ?ÓTµù†i[áþ?÷,‡Œg›¬vY™sŒ‰3þZ”œ]X„°Nþûÿí¥7®p³U|mN«üHL®8zcÿ¯þÚ—ôÆäGKýóþšÔÿ¸šiãê¹>¸Ÿ/Ý|¸nOÝ¿Ó_N®àý~ŸÚoôÐýýDÑZjÔË£oþÿèøÚóR Å`óÀêÇ®µÃÄÜGW*Å’ÀùŸr¦«4Î[µË¢Ÿ»ÿ©9x†û l0Kn§ñŒ’¡¼?Ï[gºÖGÊV5 ;lÔ,gô•¶“tÃñ˜©KÇŠúö§†:] ã~Ãþº*×+ØaºZlw8þúЕ03‘¥Kj €Àþó4Á[XñnšD=?*ëm5âœGµíðHØù™ß?Èè6ç§õ ¦:š¿¤”(Ï@ßõ4ŸÿmQ'E!,–£úHþzÑJTìgQw<ÿ¼ÇSÇ ð•k-£ñm,5Ñ♤C°9É Ðjµ4ªó^Ðð<÷C4Ö7Qì\ÿ’BK•LëšzçGþ8Ъ›Þ¿¦¡}÷tÕiÛœ&^‰²¿[ÇwQþOÂz•G~® ¬Õs6b箯~ .ýZ£¯ÿztÄs’rM@®Ÿ™S_˜œýf:©®êOõrŸ¬§W‡æÔ$~öNüƒúÈuçÞHÇV:¼?0w‹‰ã\‚täGªÚèXdAí©Ì¦Æq‰s|ã•ÿÓ¯ Î_$ûº¼w`âGïJŒtØ?ôêKpªaóúj`•ºMkê¼å?¦¬ø™¿â·ï«Á+,‚zÐkÝÌÌ<Ï–‡Ü!I0­$˜l5äŽX…Çnš£Œrû’XgYÁïÓZá@µ(Òãjê&LÉ[µûYª§Á.Ø}|õC½B nÇšõÒM1å›íåÚ®g’Is¿{®|³ÛRûÂxâÚ²¶‹=t{ŒDÿQ©E°²t÷›Œ#lUr ïÐëbñ-Ýpt¤ ´höMz«ùšf+wÿÄ·úUwOþØÄû«“‹ï*˶¡OO5Ð:§FŸÿEæœ(ŸÿŒM)Ç—Èú b?X†·IÇwSO ð3°Ã!€dôÒm¡S“©·Gõ­]Q,õÿ†³Ý/³òÙš#LÄ 9TýUåòòôÓ|a)­Ñ¼õk$äãn1¬ø¨à-O#TŪsñŸùX·[SQ=Ȳä üÛ»ûëÛ…VÚW{lÎ}tGy-mIc×ÄS³ÛÅ -.ròÛG)äiQ”øqætüåÌòúz?J›e•ÑÃ*&üB5Š˜ê§«éµæs<Ž8ù•UVp*=uŠJ†/˜Ó¨ì=u œKÿwÔÉ3aò=µì•;Shï«‚[œ³;Ì ç=uê]f…pH‘un£Am2ÿ¼ÕãyÚž5¾ÞG±é?ibÉl¬Ç5™ÏšvýµëØe˜n£ž*‘ü ío祗µ[ù›õ<-6ޝ†á÷Uëöƒ*)ç¥b•CW+>Ùéëz •8’¤zãÓ » …é© ÍÇ»ËVr~¿¶‹fbksE-*|×'ZhíTïg’@ÙóM”8š´ôÆÁg4IlE—|(OÎs¬-º9ôŒhhäç¸^F‹KqÈõ/esÊ’c•=5R€ó’¤ucžº—zñ‡¹zÆ^¥ä‘| u8)™dQ™‡Aœ¸=GÒ»jZÇ3å Ó8 3{õÖf§Ðæ%Õzhëžf}Ppbx´1’6—Éýuã[Z&þ³õ—Q±ÓÜ£JÛw?c²E5HɬN|µ|ü7LÇ+FGð6¸Úšú´Ôpÿ‰ôŸô Éð¨Þ¸²vpÿáþ%)ÃQ+幬=5º+\pÄDtàé•Ï_×KÔò5/ƒ©¿ÄýÃñ²Ÿsòúþ'Dà {ZçrTÂNÄ ÇòÏ~úÅÓËMy’”aåö'ÑGX R–ó-Oûl·¿Þ/KZÉH$Ÿ,j¥®æî/àôë£Îq6ù¾f‘ö 5Ï”ûWi@rA=õô׿ ÷ÀÖšÑîxÔ)›2“2Ȳ‘$™ñt›Yþ+•+zùiÔg#ÈÔr6yfŠiëj’9Î2F´ÝÒ’ˆCI feÜd~þx…³lZšN–™k˜ÏS\¹cĈùåªe£Œ¾UˆþzlŃ„˜æ “òHŒ=Î5L¶ù„{À ÿIΦ`µÎ_‰éåB7+á×д±¾c޾GQÃÃ*—¶‹QGø†ÖïU1ÏÔÁثڬÒÙîÔ³QMéó/íßHŨäêwë©£úôõ±]C§ç÷˜«ìµTK¿–$„¼¨Õ¬¯á«2×ulXÉ8ÚÞ=ümF—$O¿k÷=:ë߇1¾GQé£Ï©—ožH›W?¦£¸œú \®¥ÑÑÌÇ"3úôÖèhÜ 4ˆƒÓ¾®C3P§Š1ƒ¹¿–¬Ûü5þz¹P?,¹¶7AmX_᱌mgµƒ›´4­|µ%SÍ"‘åŸ=y&OÊKt9ï©´õ!«ÏÝÎ=O®˜vGùÊy,n‘(`²3c©ÔÃ\»ìîõ ÖÛ^‚“šen¥O¾ÅøÕ‹¸·-Q\e‡}MÍ4ýÌÑ9žâaˆ3zêu:ØBUãFG‰qØê‹93Ô+iÓeÓ¼ÏhLF@œ6zmÆÜ,h´Ròûw½Òµ·Ôðti¯ã^ЉüJ8zº:™*(péç­Ò]ãÜyqô-ÓY5|kj_vp3½úgêÔñ¼SIǧ‰_Þƒ¸ÆƒZa«–A¹P)9Ît«èÙÝðÿP¿•fL™ß8jJ[?Ù,uõHQš2AwÝÔœ3Û\>óZjë%udegb$åí/Ÿ3§êVµ©Žçô¢ßW_U2nCÑüEŠ’êíãèO‘Ñ‹BŽ¢¦½—n6ÞZ>À& ›µ¬ê<ý¢Ë°yK 3ØkÇSØm§öÖºàÀÏ/¹P„íö¡] ʵˆ¡ßù‡°õ馛?Ú*ª…$r‡‘ºgBߺ“§¥àÛéšë“âB¶º 4ÓUÕ¬kRd0+?S¤Ê‰'ª©j“’Òx‰*LüÌf£­p¯8”£¹;FN|µ¾9¢ngCg®™™Îܦ¢ZvŒC?6{~š¡Qä¶‘…ë«ÈdP›)"•P¸-YžJʸáTŒÝÊ‚–^»±œæ57໓–—^G ar Û´0Ц¥G•ȧûõé¦a‰³÷dfêjÆ ^¼ 'D©#¶ÕH\SŠi˜uÛШғkº³¹¥¯_*¦†»÷üLw*K"ÌСÈ!XAÖ4TÞITlûgMó9Ú6ѳKq‰^¤Ûµ_á²os…éÓEcÌ”òHþÝÓ:Ö)ÝC¹(pF®Aõ33€Ø#8õÕ;‡®¦e¤Ìõ$XÊ ¯MZ3F ÇÕûuÇMgµ–jÓ×kÀL3<§=lh™¥z{^æˆCù×L°àš&åe[š­Zi Ê{¯-î^¯å.íÓh\â0°bÌ/{½GQD””á„‹„uÇ}¬£z6Œ±eÏMXàÜ»›ÖÕx!nL^…AF`ƒ¡ò }uÑ+iéå¤i'FÝ¥˜cù÷ÕÛÇÄ- ê­…39­=jSNå!P :ûëØ?Ú¥j†ñdœŸ-gL »Ìééêµt³·2ù™*fˆ©Û´`J–,núC©j×lîSÅÓÕ¹­œ™Âæ[#E‹|yke4ÊŠcݸÒÉÌôZÚ~C],1ÇÌ~â.?Jþ¡°ÓÂñrQDÌǾ;c\æFW Ìz-3ZÅìmè ixµð´+¹l¶ãóÔ®Hâx"%0Ìý>šÕ¾:ÉŒl…ñO Ñi¨™œ_?F–¢PÂã?û‚é­¦k¦ÏLõÑ+¥t0¢±Þ¬;c¶›ulbs|O§©©~þêS¢ÝiË·`éúèm5²ÚfŽž¢H²G„iºfßÞquµ·9¯ÐLÓ‰êæRwÈïØžäê䤪“d­½Tåsï¦n¯¹·Üg÷•ÒRM4ã`+ƒÜŽš”sRÍ(èwtlL‹‰eo@}3éd!±†c£ÓÑPP[©eA#¼Ý †èÇÏP8Ã*ÏÜØÜ`†A³BOŸ–³Û…Hº*´›HêvœéZU7,Žk^Þ»Ô²2RÃ÷aÔžÊ5– Gš_ÖèFµdê#j h¨ jœ¶ÓéÓæÑŒ“› |*óyc˜ÎÐç0¶¦¹ï9^ S|dáºd~º²®ÕTI5/û¿_¦”ý–ÉÔí˜ó´pÿ}œ@òÂ`—iϾ{çZQ¹ JùŸM;9Ã8Å1œúŸ-C,*°É°õÕ’ÌôÔ©4r+³x\†Š,Èfi$™™Ø~Úž=µRfhèç«™Õ#bê|Jmiš8£ž"vGOŸÛCn0šal¯ø™* âéoç?]1PS»j-îå‹mxÎ:/®¨·!ó&ÎÑêl“‡ÑjÅ2T¡ŽDÞç/·M.-,Vú‡jŒô$FËçî4<ŠAJµ-nˆÓeàú{•ÇKPÂi‘·òâê(è+ Š7wPwŸ1«NsMÅ,9Ö¦3I!…Yvß$i’çÄTÑEM›×bóWc¥YÚcænñÍÎìõÑ= ’ò‰*n[ޱeŠ37+ÀÝ2;gK¥÷õ7kh:I~ßâlxáZ %ÜÊÛ|O_®µÛáV9eRÍ*¹4•²¤êº–§ŽX„9ð¦þ­Q\b²ÛŽnÏ¥dü8UÓv3âÎN·Á ±[V¢5+4lwtüº«•8Œñík¹;%QÙê…-8‘fù×Fjí3QÜ u%‚Æd–FÆÕëþz»mÇ2UÔ>㌰âXjl·‘bÞËV#®U@$zh§ÄñM0n»rÚ †2M¶½­zÖÎyոº’ƒ†fZ•YžEÙc¹#Ï\vž»ñcÈÏAVÇso“­Z\®9Äná›ÄUÕôÊ:ŠiT`²•?ç§Ë•HŽÝ;°ìu:Bmñq©ã©dâKU¦H)æ§ZþT0¤m\õoòÑš[µ·YN è±dmØrIÿ.ºu¦çÜãyº®ºR½Öhâ ‘žÃ4M”)ÊÙýuÉþ!­« ”²òæî̧¯ÐèןOº¶½ûãÄ”5ü!šÃ%Tª¼ØÆp¾¹Ò¿ Óµ]õј¡ËmLæÙzm0©Zò³wÒTUVL´ÆUÁUçxñŽøÖ»|Ópì·n!’Wy&(¦ªµ-à UtÜcñ"Ü h¨´fß|Z‹«®õ‹fÔoìõê5–šÇ^‘ñÇða9®Tî ŽËûé <½‹UÇÌjµð•Šéoø½¯z†qv¯’ãé /ÂT×é­ñJi¢‰7õñ^ÉJœ> „³ÅÖ: $üâ6téH?¶œ.r[-ü:- ÜÉü*‹°nf,çÓVõ+;÷9Ús ¯hªÑ’XéצºUÄÏØiê¸fº9b|4‘ÊÞ4éÛBT°§¸Ü¦3ê']­Ôü9Y5e\â§áÉrƒwˆŸ”çÛY®*´¶tzZ––Žlª²øöa¡kœcÔŸPs“¹õŸ‡k`£7Nu8¦Á+Ìm»Ç®5ätÄTóc‘eC!æÈƒô¯¤._p´õ6bÇd%^)§žkk3"® “ݨÒumºj:£O"€àç>Dy¥×íZΗWWNžAï†MhŒðw …nÇPøsè¿¶‰É­Œu.vò-J,Du,:“êu𝛇žV‹e M½'hÏâ}4² ¾ì>ØS„/óÎÑÍÔŽYcÔôÔxŠ¢²ÑD%¥WŠ“ '} Œ8¸ðw±9zšìu+y¦¢ûáþ!¹År>P½µ8.iOv’ e-,¥]˜³<§Ï¶–…@ÜÆ›Ÿ·úN ‰bt|;iºVÒ±•ê ¨BóE(i<*u=ÇZï-QÇPÿP›Ú/ÌŸ]r˜õŠš›jä&h¨…%O88!Až£ÓM¸RðÜrIøÆ\`)KþUÁ•R^ï!²ËFFpËõÑ;+TpÕdUí8¥¥•Š"3õ#Ëw®—J5Âú޾ Ž=Ç+¤1‚ë!…êõxm¬Þ~óú#q'°´Ô54¦v¦müµL4};2weª¼“8àHÅ—Ë$–Ît±ˆ¤m©»zñÖs4SSSÛ§)Úí îN¦ì¡!W!úë¢UTH¼ù*~ª=N‡WRGr‚JU#â!þ©¼ÿé:ͨl¸“·á­£}÷‚èhb’×*˜ÃUŒ÷0G–†íøOûjÅœËÔ«‰dß¡£‘¤ænË£wÓLöî"¨—‡>t<¸bò뻆‹vÞt›9=Afª X3ÕÕ8Yvìõš5Çw$e´*8W˜›=€Ó@ÆI²¸”p´Ì/T±É$F3áÈÿ2ñ—‹M<·ªJ¤r¡d–¸ÎznÕ•þÒël[žH±O}ŽéICn©§PˆÅ÷7Qׯm ‘…Òç4G¼¤„‡b{ þƒJ±ÿS¥| O¸rŽê—«µÓ™Õ¶Æ2:£wé!¶Ù’;…<‚ïP ’IÄϯ§°ÑQ,9ƒzì´Kid‰XdẌ§‘ê-Ró¥,¤ø>zUçk.3Ä­cyÊCR"„e‡¦ˆÚÒdC nw×£iZ–CéxzÕm}GêâÕòढžH)¤Œd# Àùû+Éo&ùN6ZOëËwžŽ«ÀÌ63ÅN0ñ'ËiŽ §Å¬ð¹—`q¥T¨2ÕïVådàÛu«Ç1JïÝ Ø&¦‚çË®ØôõˆÐHqòƒÙ‡¦ƒVÑ­ mU:Ê$HȬ§9ÁÒñž£j£›?´eàûƾ7«Žd¥ÚŽFâOÓBo\Ú;ŒÆ¦©Þ²7Úþ§D©’V¦1…æƒp©HÔeܞ翾´R[þ"è”»„n͆fü¾º-ÁÃ3mÉ:UÙûÁ QW )¤êò0óöM«¨6Ž.–™–7øFf%{<„wÕ`2üÂu:1É=¢âZósGRß 3éŽç×D âh"–ªÚNé³w,ïßéôÎŽ®k†ÍóÓÜVÝy5{VWthäMä`žš0µ÷â: èSþФƞÿå¦ dCˆ¦–JY 2ÈR&eO}qTZ’±k‘VâçÁãúM@ t{s*†éUmHâŽI#9C«ŸOÓ]„oõ—5g©s™<¯ÊŠ;ywÑ—ÆÜ•¡l¯¨F¶çGŠ5pÅc9ý47-STÒSr!iD2n(¾„wÓE"«öÛž Ký ÖÉc ª†XbRîÝö3vÖ®âê‹ÜrGyIVjxò—(Sñ#_íκ‰Ã ¶ìiÖ–Ù&ë­£Jû¤þýí“V¼’~££³]ÁÃÉ;7pm'[^¶Ö"Kƒ¦õ`p“ßß\¤ÂmÕRHÌ•h§™¹{7ð€t»ãˆ½%}ÌÜ+ Η‰©jÒŠD 6é€T¿]­³×\.u7 Èev˜ïltÆ{ ~Ú5vàJmfRõ Kͧ¥ŠDh$YÈòS§\úklóq öÎmЫԊ୸·p‡N¨pþðqZ/0JY®–ú¶™QL(£vqßÉfVšá$JB›Ôdúúj9LISfÇ+m’¾ f{\´µ€Íøl2›}|úã¦ÓYÇÙÀ¾Ôš,˜¶àýµt­Œž¡ZõC3VZšà¦uÂ2žÀÙÔªCM¤G'°è k:åÁÔêSN¿ÓïNsÜ5CÃÐÜ­•ãšÑÔ¥?:0;d×@­”³Î®iÀ•ÎöüÍè5v©—ãkºJã?‰ŽªãRõR––F8²}µe‰¥kŠ´lt†á¸m3!Q˜›ªíàcOÅÄV¨(72LŽ9 &BùwòÒuâÜÔ÷XY^'è¬; jnË—©M¸;”ÖÓ´2Ç8$ÕsJ’ÝSQpX9d9ýõb0J§æ> Œv*0…ð”¨0£ó"ÏZ׊úŠŠ™Un£¿ Ó®•‰æÖV_ÃÔî•JcbñÆY”ÿžŒÃj­†èÕW( Q‘•ÈÀ>ùE‡”Ž¢`'G³µKЮإأr¿FýµÇo3NüM],Á·LìÊHêFtÃBf±ÊþeÕ;Bͱf#+Wo¢’ ÊiçŒ4E³…n½4;€Œ®­ÉÔÑ] -TœÑÀ®~uRÄŸ¦š¸{­\=kÚiÅ]\'lO³ Éè}5(«„âéB£WŸg¯æn¨ã8†ŒK¼.®w¯§ ÖÈ>©áRÀxد]gÕUÁ£]´Ìk·ÑÜø¦²çW o8Þ‘9èý:kMÊ9-t±E#òù‘ƒ¹WÈëVš3-‡.:™ê«iÏ5Ê›Å!‚RN?‘Ϧ±Ôܪ«x¦¦±«$4ÁVØØœtýôv²I§G9zš/ת´Ž¢×S¼®j¬’ѓȠpݾç¹ÓÏIÐÃs†‡ÛIU¶=MZ›ˆé³VÍYQ1Éo‘y’Ò¸&3“ùsØo¨CKkfáêu¨§ˆŸˆ·J2øóéçõ}y&k®rÅêÛMRÅ÷,Æ’ª¸ÐÌvÿw×KñÛê­· ©ëc !‰Iàzii´B¶r²¾«Y‘èªpÑH6¦‹ÿC_ÿ1Oîë-ìÑêz=?ó4©ƒ³‹#±ßii …~®Ç ß&;¼ðõ¿‹£§¸Ó4KY +¤¸ÊÊåmlqœO7†¼ú`1ǶۻR]©ãŒÄvÙ|@zçK7 ½=ËP˜ùd™°@fîØÖi¤ª©¸E—’›z’<#§]+ÊÆ%¶ˆFN­Hî´Ë-Áb› ­ù€ò:ÛÅ¥ãWª¡ª¨§ª§E`Êá1ßéí£­­Zär¶±5µU—ŠÚ %©[MëwáTÃáIû^‡ßZ®‘¥@´ñu#¹â:å]²~ÿ˜iŲrpĺx¶Ñ¦û>kxûÒ‚¨Ü-¤f7…K0ö`;hOÞÒúËýÝgÔ¦YÕð<×B˜ãMg¥ºÅ|ôxnñ¹×ô§ŒêøBéCF¨¯Q•©\cˆ€~½4ì*¬åÚõµB§QÞXlŸhVˆêá#âc—'gCü'Û\bõe¨³_ZÙ4r,«âºx>cßBüú‚X ã’=[¸¼VP½º6Ti„›Wié“ôÒ·×µ¾žxà“ˋȽCô9ÖmZí®Yé¿DÔ®§—ZÛ‘Œ-_Iz‡»’LÒ!Ž€UÛ„$ûƆa4 ¬±n>& ‘×÷ÔÑÖT&¯×?Gú5¶½\ç¿Äk¹Ër¬SSºID{yÞj=õ¶¶zæ¬aM顲[k~õÌj’9E/Œ¨c¥jX¥A÷(·ú™`›=mŠ Ë &À‡=3ÛÛVVÐ=2Û Áæ@E9É=Πn zŒx²üÁ”ô2=CÓĬ 6Öõ:?Ãv&¸WÌj|w\%êѨ/s<´–ûÕÇZ«v=;«w€USއÌéræ~!¯¸,M4tĶà2Ó¬`Cܳ.-næ[m·Or­’æ’,- VóQé;Ƶ7kJP·ÃTGM¿cÅŽƒL«üN9=KÒTÔ‘#[ |²Nº¢ÑðÇ2´ÒÅe~e“oR]SRÕITµ¨îzŠ—¾®¤¼ÔÛyÀÇ$á:õé­¶úÈŽ Tˆ\ òB¼TõÜÐZï¿Q·„ø2Ýpõ2)–­Øäþ¯¡ÏnçY®ÿ¹ª¥¦¯©SI'|×EjVõ,ZÛi2×B.zÊê5&†9|Äå³yŒ )Yãu®Q M<²^„jªpÔ’Ú†þ¹‡y„ÃU ±ä0Æ7ß] ²óîóGC[#üÛFœz]2f]ªYÜi¿RK´Fá2ÑTô§f F?ˆ-(ÑHÏwIˆÛÏüõUÓEOrËbÀzŒU\/]Qe©¸¤‹ºŸ¯&^ŒÊ{u¿†yU) ¶²Ô!W¥+Ðät“M¨†¥ÛÝ´¾Å$V˜¤Z%Ë€²¬<ÉÕòXm§‡æ®•påÌŒ1ódüº›Œ¾¡ŽÔsáxf®ÝE%¹RŠBá5³ß9üuå·‚Þ % du¨µØG„ùIÓk¶Â<5Ké¼qÿ0OS|=ÒŽ ¥vÓ„8ìYOR?}Fxéê‘ÆÙ‹¨!0×JÔ1¾ i¹,§,úÓÇ@’ÓÆÂ¯iMÁÀëê:÷Ñ œsÿ›\?s¥çR½À Û•„.KAAÅOmw2"ÅŠF)€|þº Ä4âûZ*¢1È”ýƒ×9ëõÓpÕ~#÷ÖÜQ†ãÁfºžßRçÍ 7Bz2ëžñ-„[ï #5€ÐH—¦‘¯Q®fßÓü›èj«ÉÓRÏUqžž‰2±€Bnñvë£ÖúZZÎ ­¸CÖtŽAËsÕ¶ûi~=ÙzÄíþ£ú‘¯âWMse爆ä–kµ4õTê$E 1Ä|õ+µTKÅó*ñP* '|÷S¤ºƒ‰æGýP´Â·a$ .Éq´ðî÷mዼö˜hÉēܟ÷:u>Ä?'SëRµ¾g³ÕÛo<]-]&/ˆc¡oÌØ=†«áÍ”ÜIË«¨ud<¥]¬§>§ZmŸS›d*~ãuÇ/U—¯‹—2Jhƒ¼kêt£ÄöÊë5דY"LÉẘÉíªµ/Ìo«ZÜ~%ºÛc¸EGg5, bg'êÔ“µ~š`™H f¿ˆ‹Á÷ Ç…'z¬ìÎѼϑþΊqmUeºi)㘴SV=¹*ºÆ$Ç&bÍØ„È F?]tŽ£ fç´é+‰W–¬ù!T`~Ù:F›‹$Ñ«ÍsþÑfªøšaW i³£ò’?ÓZøvÿ,i)á§jŠfRܱŒçÜzh¬ò|KñpÖÕ;fÚ{eu ¸QOÉÂäú iû׋òzï[\õ3îÇqR»7;ìsPÈZ¤Iáð€1×ß®²ÑÝ 3Å©f~Š{äê¯Ë‚82”×Y/.ïS;GNã–!²ª]´Ê°VÇ$r‰¢aË ªÈ€vƒr¼úŒÚcsWÜ^:§¦——U+nN½×J´U[P¢ç Õ4óªêvÉ z¡ÿ-ùê.˜Êœ0¯ ðdÔ©¤¸ÎÏBŠD5±¹cì@·]ª#^;ž*s²†(Ö6(~r{žžäêX n$ÓlÛkÌÅWY’JšWšQ  Ç„ùc×WÒRµ-©å¬˜<ÕYd‘ ²Û®ªš˜1Ž&}Dy{Ÿ%òÍ <Ç.®DnË€cǦ­¾§°ÍMmÀéßßIÕ æ=Ê­¾Ì>¤8cƒïVù®H 4¬9a³óþŸÃï«ë)ªx‰í¯p¦XA8ÇR;~ºÐÕÞ¦jÜj×Ü1v½\ªø„µÂXh@U†%b¥›`{èŸZ«.I\!ye¡eu:Eo áb%ÂÛZ¼cLyMDϱ†66tÏUÁµñÏ%Þh£TiI·²Œõ#¦«k´CQm3]î:Km ÑU4õlÒ¶Þá{ý¿ÇRKuMîØöèêR’XNÍ/vúè•Î U>ܤºÅ÷…®¢;t!¨dÌRH2Ct>Ú9AÅïAG˯¤“ðS¬˜Úât5¶ÎåÚ»¸©ŒJ¬6£<[HAQ#Êœ¾„lõÖN,·Ö­ö ªiŒÛ!§‡S×õÑßî¯zh[˜«CöS-ÝçWMn†Vc˜ÿXÝÂù~úÝU•T5_ 3QÒT°g«î܃Ìùm¦Ø9ê6šî™j‡ ӭЙ ¹ÒÌ…rêÖˆ×pÖʸQSFd…šSËVNýuTÑÚç3F¿™õ©Zc„/Ÿ^j(i_£ªT¶N‡rWM §õL `?×WjåÌÈ_hÎÉM öÕI`u‚'ü6a×>dhUÒÓKWPðB’%9|FÌ2PçöÎŒ¯ú•õÙ%— …ìPGÑŠ8ùiÎÀ$vë¦+mÒ–Çm¦·Îñ«‰›¢@ÏUE,±¶¨ég&ÞGŠ…Ê‚6ŽýIº-Ç—ÐîÏë¤JÉçû§áMÆ6ùrœÁƒô먉oÞ'91ñ3ðía³=F3ê­Ì]Ùôï­u×:™ª¡©¨ª¥vÚWvp1ü8:Šãi.¢}Ùj¨ÖœÅK3¿á•σ¾¶ÒÖÒ[Þ ¹ÑSÉÿ T…#ÐuÖjS\ÿ‰bª¼Êø†ïkâ …ñ#•@ëžÿM*W_è8væ±P‰±—¦1í§x–-Än¦ã'¨ç «š4•³*6Wö:Õý:ùë—îÚ!Œ-øÿóÿê›´ÓRÖÕVÓ¤õaÐ>A¡v[%7”k”ðJ¢S'á´¯×V›m“ÜSfÚxÎ#Eæ²Ëošške%78ÛP}=õ–ªýOpµ˜çŽž)Bá[hý´6æØÄeì2¹‰÷ª_Œì'p KÏëÛ^À³59J‡¨í×¾ziF+ÍÖãFòrQöôÚÁO^ýµ-ƒ¹+›p1‡+뢣1SÜ!…3’ƒ©ÇsŒù Wuã®eZZƒU*»Õp=ûi”wbîm¶`S}»^—d6ø*çŒni·œyèåÒ§Œ-öhn5´) n[EÌy··]R#ÇRG2Îâš9ªÑ™ër×#¤1¢)úޤi’²ÊÈ/Š6éûSÔÇ/2š zdüí¢áày” ÔX¤§â*½TWz™cæÊèÏI5×Ë…EDƹ1Ì8é2!Ôt§­¡ƒ‚¡¬hÍuBx$&B “æt³n¾*ÔÔÅUM¿šmÔ•'±ÇžŠî kˆE(g´ÓÉDTÍS€„ž±ã©ýôûÁQÑÝ8v¤Ûé ÖSHHäE.ãÛý4+šŽâjÔ©¦€/\gp³\¤¦‚ž˜ÓÙ†‹®â:çß[ø¶ŠŽ—…í•Â'Yª£Ä©œícB=4Þ-ÏÄCÄæ´ôÕV¬TѳÌOE]l’YªfåT£ï‹ €z¯®–‚å—VÁƒÜèü¼;~á÷³ªÈµ*»äyVëåüµïp…á*‡§/%];E.î’ó h*ð’oCžÛà‹î¹¦æn© 0½o®„\ì’ÔM=J?1ÍFù‡Ó×@ìÆY6ó Xjc¶Ô,± ÝÌ·žG¦ž¾&‹þrŸÿkWZã2ò$ç×jÙŠZ™^%9·¯mN–¸Ç5MQ]ÔøÀ2.qì<³«²–b©‡¸çCYo¸5 ¨¢‰eª’8ã‰giîmbûO³¥®²šž†5Ž–w¹È±ljñÚ÷ ¯DV†HîïK¬4Ï$¾ æýq­×™-ñREðѦþhÉÛÔúé*Žêá£dŒŸgŠ´wúãO xLJÃiÏLùè¯Ú•±«¬ÔW*ë"—–þ]þãNªã8™j¬oµÓµ=tajcw˜óÖ~(·ÑRQFÊŠ¡`o2}u…µLft,O'p¯]á–yYQØ1ߠЩ.×Ë®fØÑŽ í»Ú:Ø\¦“S•˜¾›©­[>ˆ¯uŽY/²EÎ52¹™Žú#n³CUM54p»U'$ôÒ­¨P2âjÓж¢àÌt²ðuŽê«jĉrŽs o•¼†4ë#–¡â®¥ø¨p]•F'§];qbgû«š[„™¡§Š‹ˆ«%š1232 PÛG.QRðÝ G1ߘÛX–Ù‚p±kêX¸UÆdP¡q^à©]-]#ĨÅ7JàîóºÄg†õ[9²†ß!Ï@4í4³ÏÌ ¶Ìn®kMÆæµÕ PG °ÂŒyþúò×j¡¢3H¬è¸n‹§¸X³uOÄ¥d ¥¯4*ªÕ59Mˆ™>!鬔ü? ÃWQv¥!L ¹èÙò:Ä¡9Y_ñJZkª$ª1ìhp•Ûä1¦*ãŠkN°76*œÅá‚GLœjíPg4§»KM AmŒž½;h…']íµÁKz”Øb‘w/×ÏK¨ÉÝiµ´üYi¹QÇ`ºI/Â2(Ž©ŽZ7ôoUÒýÛ„%µ^#¥”ƒ Iß‘õ1Ð)Ó&b¥5w¤¡”F³™¡ KÜê«-ºªù'™£M¥@lépæ?`ÜÄè”Ü)÷­+Žj™ ÄŒ=³¡TwGàZ§žµ&§ª÷A=CjièšXF2Úå²$Û÷e·‹k"â)s6ç‹ovÿšÅÇe+(i^yË/+b·NÇ®ûWá•‚ôàæ \>*ÓY…š:¢<^ A]3S^i¯V8­ñÒD+öíiV Œõ;µY1º2Ø£(³[!†­©mµ3THqQ°tíß®5eÚ²ãXòÛ ¹T(r@Àvóúêé¨csÔÓåxßE­2+Î>"Ý+SK9†2õ9VTÆwuê1ûi‚Ýp¯·&Ùéà†E*åf^‡½D©Ÿ™“J»œLßì1O[tj,Ç4¹XTã¼µ÷߃ÿ+ýÓ¤éÝç™¶ô(TÄ#Åu0½sSbVmÌmeÚ1þ:\½ÕÒN*i¨ct…ÊK´áT083-²L×ÚTÈåÁ\=q‹áë®Ô¯áì¦iiÛþºö“o®¨¸S”Ô» Ê*ãÏM³Žâ4ÌçFÕ&j•û¸#ËD©íPü--EMYX*KáÈLyhJŽm ~1Pæ3X$¸¥Úf¶F­tø‘¹`€»ºhõΞ¢íÂy?à·8dmYTM^Ãéîe}GëíN"EѼøVt@2³ÔûkÞ!–„I 9W¾|õƒ’âζž—ÖœAÔó5/Á‰Gã)Ú=ô6=l¿&i×Z+ÎG©“TtÐ;Ž»L ŵDQÔrÎ÷s«i¯´t´è '=€ ŽûuÎ×Ò¶¥Œ3¹àëÓGO71ùùƒî÷ÊÙ-sA@ÕŒù“hüƒßëàˆi¨ì|Xʦn¥zåF{ëE·šw8þUKkÙ:f›? ¸Â¢9()ì…˪£=Gï¥ õo'¥¦Ùé#˜¬iž€7p=´ZþUâbµv¸f—¨nRQÔïX¡*c†‹v8ú¶pET‹5E¶UÜÄîÝqéõÖŠ×6Û‰§pŸñ!|áy-õ42‡3I()ÁÜþÄãW—J[sFѬc yià–Ϩ›ØÚ ËXk¦ó CG Ÿ+&僧Ñ$PÏSXútÇ]Eå‚ PC Mc ß–Š@ ,ušBÒUÊFöôËwA—?‰xz––F†zéß„¸¡#§»Äá¨J’gñ)›24}JÄ==Æ‹‡oëV¨OšJ¸ÇYSÐãϦ–ø^Ö×zw’j±F±¼ÆÔ «—‚2·*çÙ/œ_r³^)m¶¨!øJH“k0ñN¾†q T÷ežªãYTNüµÆGóÒõu.µÿ©÷*áÛ™¶QSQ$O3JÄhsŒ÷c¬×ºõk= {yÛÆ|‰õÑ¡náÛÌÇÆ–JÚzŠtI2¡|‡] ´¥E¶©öÅÍÛó:‚Á}´.›³M@ÔÝm•R[jc­«(‰œ×¼]zèTÓýåv¹4ȘfðÍúj¬b„Ù¤šúÙ~%6 ˆíÜÌí–cþ`ziöÏOe¸Û’º@³Tè±õÑsÔÅo·’-×Ûž>©¹¤{×xP‘Œàç«}4§÷Gð?þÙÒþŒÓýVpc¨]n±ñ¬oAvÇx…3O[òó@üþG@e–j+¤ÅÌrI •_åÇ–›gÑÜÈ\TcM·þ*Jj«ÅdÎðøGsìmN÷r‚ÿx¦–„<$dÈ@ ÷ЪÕÌ`›€ê ¸ÓUKÄTôòSº 6"sAÃæ=´ùwáe5’¬Å (þ¸Œ*ç¾FŽ§Ø «Y5õ5%e²’f¨³TÂÑÅB7•êX†9Ö#ÇÇ ¸†šWð\ë«ÉSA»’¿ðÍe¶©‰>.ƒ»¢Ä„zý=Æ–êæ‚KR½5>¿Ywu>ÚÏpÇÛâê%Õx—ðÿ Ý/5Õ5j4äŒO¡új7ˆ#°ñ”÷8’³–ÛñŸM6´Â36¦«eÏq– {=w V_bABäï–Äãhÿ'¥M] Hm¨½J¨Îìk>¥v¢{›4SRˆöbi{³EM+Ä¡vuu›‰®SSRKsA,ʇo©-:dÃ/ÍÔÃ\w{MmMÈU%IåÔ(•Ûväœ.>ƒLV»u±Z¿”“L i|[1æ4á+b³VÕl÷«.†›Š%¸ÅPµO+o Ç8Ü;~šx¥¿T[8bJÕwRÃ&B 1ò*†æÑmÜcÔöqIJTÞkºTÒ…!‚î`sÐOûhuæ9ëø‚¢7™£¦RAU|uΆÎÓ$*Ü1FºšZ¬S»Sø@9õÒ.œK_?ÙÇÅÔ8zˆæU`h ùj>dj¹}ŸWUCpªF‚•!߀ÊMÇX)•’¿—èÄÄ;m¬ r‰¤cfÍÌ0?}W_n¨Š²yä9A¤^¿0΃b9ßš„\Æ#~Åóδ.6¥,h$–\e—9{jßÞTqó:7Ý«8I#§«²NdSþëÝs©VÙ…®¾ª Ô‡³V·ÄSÈŸ*¶~_cƒ£.5Qä‘£¸ÉĦº…o—k¢v”x ¨Õ7á=o1™ÄŒ/žß=sMF×7|ÍVœM4¼#uš *êz`Ï* Ÿ\ô'ÛH—¹ä–ûTûJÈ·…z–·•EYžö0%}»Õß-pKXêÏà`h•+)LÑÆí–bß3jl,«Tª0¢ÑV=|o&â¸P¹v#ùê6ØêãºÉ%Nä|–’§B®#ôÆ·Á­Vh.v…šg,Ñ@?×MV«*Ø86k…cÉEˆË:Øhª#˜½K Só âJ¹lU4)°SI“âèÞÚXøÉ¿â¾€³ó&­kÇÛ} Úá´Gl¨¤‰RBóDJ¯ÎªÞõÁƆQEKSfšJІ®4b‡;[ôÎq9ºí^X àçZ8êÌ{a•öÏÓ]€n–Ë}Iø¥Í2¡†rOøvÒñœB>Üÿ´è7ªêZ«`d0ŽtxvõèF¹Ÿ_ë¯ßý ÁHB¼ .rýñútÑê;LÉC{Ä¢Ó4¼0“(§ZƒSJé†o}.LVÅ. <‘‡þ\é"ØüÆãé¸zìÿŒ`KUtŸŒ"v?0þ1]ø*Õu ´)91±©,dÿӶItvÉø~ÒÌ‘™ž1Ó—×w¾¸÷JÕ—¢ä0r¹mãOá¬Bå_™¦Š¢x8B¦’•¹‘Ê…ªÍNzk] ÄLà±q°cËHL˜céb©‡‰–®©^²±•yi#1Uÿ-á:Ú;=s×UFò²ÆÁy}vjéöã®—Îï]GÜc¹|l@ÁOX2wÀ þºQ{£¨y-¥àŽ HÏŸ>Iþe“9ÄH;\¼D‹lhõ³ÆÒ©§®pqüôá`¶=uª™**ÊN³¼Y :`yès„rV¹2ú:.´[íbªÝI4¬Fí âJkME†¨šeZ¨¡cC†fnßÏL°AÏ/¶Ô£­Š!X]¬´çs'ÔjêdR¼=ÅŠë5ÒÖÏ-] ðB[hiëå¡F°µn2y» ÏË¥]Ú’±‰['ÅV,ÛK§„ùàcO¸ª/éhæx¡Cؼ¾ ã¦šjV¦+!¦ÙÈà!n¬t·Mnº zGðrüÁþ!¬ú]áw®°´µöšŽi#'™O¦‰1€œåf›ÅöjúZ¤X•”³G"áÁ#ËÛIÖZªjZÁ-d&h€98ÝõÔã©@÷®kÿ‚«)©-YB¡[¤™89ÒÛÇ:%SÈ]ve@$”ÏN¾š^£ƒˆý ¹2CÊÅ·PÇ(B_¨%{‘¦>ãj‹œÒR©0”²¾cÓC¡¨Þ©4yš&•Ì2ƒJÒEõVÖ,”3 s!9Øàw颳÷f6¦ÖÐ5˜f(ž0‘ßßNõÒ%ŠÈ’RTÈòÌÊ…˜|š=D*`—¥•æyg¯–xê¦S>Ìx±†õéë§+—š~ª4ѳ2SþÛëÓ:šy 'rj‡§©ËøVj¹Z¾C½éÒÌ£'ÅéüõMU9‡/Ä ùé¤Ù鈂¤O+ò〧´-FÜÊߊñ4=¾%áŠk•¥q3; Pà•Uózoª<éIɉ³Ó'KN˜uÔkŒG =þ¨è¡'aÈéúþº7=†{ ÍWu4̃Œ¯°Ó4…íà—ª‡8ìñð}UUœ43D7ä9,4—ðíÿ™ÔþÚšÁ»8ƒ¥e1Í;CQ-8 iºˆ£pÝ:êʩ޲ڰ˰uæW¯Mü{Y,uG^šc[™dl´)t –âÊûc>@ç[®6é¢àæ2"SÌÓìùNà«ßùãJÇYõ+ArÖ® kOU[d¤XæëO77p7=±ŸLhïYÒã|Ô7Zž¯kˆ„ž(Øù2ùiÀ$Bã"çó­«V.Á";êœu_]–š£ï8)$‚i£v›2nÞÞ¾Ú3ùä種åa½£Î`²+8cÞ ë¦\æ¶ÔòR=RMìÚ¹êziºuÝöæü;ˆŸ|¬-qøhg".Ø1#ÛG¢„ÃOD/àÊÂ’JO.3ëüµÒKý*ÿ˜úÚ¸nÅÊèkm•sGPU§is•9 × m_O]7Ä™«_>6‚rvO¦´ÔªWÔUu+[§¶ÍÒܦ’¯–Pcžƒ¶À-µ±Ò‘ݸ£+çüµ‡^ú”ÔúO^ç_OCJÞ+ªüöùi¤âYÞ¡ + :¤[hOSï¥~(½}ó3SºðnvôÒ´ë³[…IÊ®l¹é\½NXd(ÇQÓÓ[x_ˆæá¶ª¥¨…žšVǺ·¯í®¼±U®çÓt¦£¬…åd’FLÉØ>ZñRS;ËNËÙaHÿ]`ÓÔuW/í:ÞWŽxÅvœÌ4’¢6Tuô=F‹RÕLÔì¡ð1צ·S®gÝä/…êÖžÃÊU-‡9òï×Y¯PÃr½Ÿ ‚?+ƒ¡)»?÷ìF'\¬ô3Ycdy]0s&Á•>#ªìu4PÙÖµ·,ÔÒ.U6}´«f¼W¢ðœ¶sП]&Ô …§UrÃÕ¼'®›uMÂy§dÞQ\Ÿ 4¯l‘ª¸STË$tÑæI<^@hŠnCÔ•äî3Ý,6¨®i²àÍϱ¾v/ž•$¥¨’à`iW«œ¶vôÔÔ]¬û7‚¦Bë_R›ŽNH?åªh>¡WZÕ1žáöQY#0¡¹DˆÀnYõÇÓY¿ðºÿÿ;Cû·újm1Ü ÆrL|qÂôœ?I¤s¿abXä·]"SÏUñ(ŒzçuyG J˜Ü;g-𲳌eð}µŽóâ¸|4k‰=¼ô5@X«œØøre¥ø¯ÅtCãðôújûÕ¢¶lUkNëO8X¯ÐŠÛ>¦–\Á”i›l§%°G}¶Z檇ãi¡!À ¤‚®Â}æœÕ!,ÒVÞ¾JŸö‚Å2í•ýõ*úg´ÕšÉW¦7ž½²¦‚¶\÷©Zíê6ð…÷â­-4„D0SŸ!ë­·»•--«ê¡©P>cžßM=«Y”UÆ'4eŒÚ¦ª)±¢|*“Ÿ?M`ø.JÌó#Ç+x‘1Ð5¹q‡ßœú“Ž-òDQÄMž­ä4J÷møIyµ¼jû”xO·í£úµú­ˆ×ƽhWÌOPô°Ã4l7G&ìyk¤ð¼ÔµÉP†M¿qÁôÔÀÔfZäR⢷;¬q$²cÉß!#¾=;éFFŽ º§Š¤ÿ†2<µZjjüð}?ÌÌ«+H¤`|ˆéiŽI)*JÌãtxO\Ÿ1­>`µ2b"«^k5- L”Õ()Új]Ý÷Sí­­g–Žš˜é§å©Ë³y!ó×3BlÑÍ*¹ÎÚû¢º¾ãS÷]<•*;´c¸×Wà{n¤Yò²|Õ‡M<0eî)ãˆî±£("¶{8óÐkµ¸A(–2ÈåÜ hñжs7‘U¦OPTŠOÌÙRH…Ú;t×AÒ£Ù9UÖÔ:Y†áHõrÓÓÎÔÆE(Y;àèT'IOf{xêdêòãÄN…ѯ¢4òoŒ/0d| #‰ãøÙB¿–ˆYxB–ÕXµ[žISå$öÒ«ãÖ®cíåÝX‘om¡K“ÛÑjJ1Üþ&zè5šÐÀrÆxÅõöx‚­Ü]M[u¨£äh[fâ;é™@d gXûîl$`àw× ôÕB“VÀ×Ù:¹SÆû®¯N{Ç“,Wx”ÌFs–Ò46ÙïÐSTócŽFDÈF|_¦†ï2ñžXÅfáªiîµté|†óÑÚ³ë:C5D†ydÛóoëúig²0<U”6ä§Ž9Þ%;°Ì ?^š&l´Ak…³2D½£VÆÝ^Ä:ÝÝœ@5œ/f³ÉÊJ)dÜ7dÈzêÚ9(‘JCnïÔ®öc©Ù…âSÈrÍ‚Ú.q™-±G–ÚX“•ÑëÕ¶‚žßñ Iâ&ì.¨0ñ/rç=À7/m4a¿ÝÃS¬ÔKSx©¨·—+ Œ€?*6Œ‹íËMÀžšZ¢g˜œyèÕ¯ìÖïD¬qŽD#n×wOòÑñwQºšN˜*sÔÇ]öx–ùaJšÉUXíFH:×:4¿epNY«êT…ª0ýt£Nªç3¡m{SJˆýÿûš³kUC4P­LÈ’ÆUEÏí¦^áz J="R¼jFù g>úum€¨q0ßFµÏ<÷‰íÛ†ø~mÒ¦ Ê¿>N}ÐJ+7µÙé*mô®dÕ”tÝé¡m¶ÂFéiºšVq×P³pw‚6ÛáëÐhWX,Ô´ÉPm‚M­œÆ9Ö¬ÛU 3d¨¸—QÕSDAea¼nð¨íë£v¹¢®þ‰ô,pGÓC}ÓÞ_ÄšM¬g‘Ç÷Hc½ÃoÌs„;sŸo¦¡ÂQ¨·×Æ»•QòûÊ"§Ä}¨oLn´ÝM9LwÂ{gL- uT¤+oF¨ÑUÂ$RdF*TR5=KFÿ—¯×YØå°½µÙªXp/]«W¹S©ŽRÀëÍÇvGæÑ°|½[<õªžYÄÝŽþš]’¦_QºUob¡œÃS¤ÃÕRu¶1¶'cérovöYèÍ3KL©8:—Šn¡ÔÄκø|'ôÐ'SÉ1ßPòÕËŸvÔ”êI“¯24R§2ûDñ\)Î Ýg™ÒuòV–Ý4yÏ+náߦ†Á˜Cêàû¼Ôò<îí1S§±Ä{ÚvŒÀNÙ^¸:Al) ‡lW¬’(ëfŠžDtÎ@Ï\hß\•f–•Î7 áO–˜¹$ÇÝÄ)ʼn­œèÆ$‰Ï¶pû½=Ô>—U٠섪nˆêÜÍJL¹êJ÷:%[4uöZ>‚H‰'pò*E‹|T5²ó&À1àã®>žúßÃê‘ß!%ŸqlûèÎâ_ˆfèèoôu 1ÌX=:è»+3 ?3c ÑUÂãÜÝ©¦ßN‹À9¨£Š0¬Î8Ú‹ÒV5E˜Ê`ç¡í¢?¹‹³þ…sé˜hçš×$‘ÊŠÑ·PÊÃBZùA Âj¹ªó [bÈ\©÷Að|Gâruî{÷õ²ÅT,ˆC4NØfý5]OÂÊ>"2Âûà2’ÞÚ‰ž`è]ÀOd3Gw¡¨(‘±šB3ò“ÛÛZ+)ž¾ŽH…;°#¦ãµsôun˜OS®“[m±€â P•Ìѧ-£Œ` Ï^º`§U†#B"ôEã¡,ÝlÇkTÓ©¤uÜäüQY GÜ0°}¥±Û×özÍmÞš\ïæ,ƒ?˜ßY4×u³äÓ£óªâøyºvöÖËmÚJc±›O˜³Ä7Q7*`ý9ª;úè-"r 㮺>5Ö»_S—åP,X;…¨-´5”ªòG—]yq²ÓEA+Â…]FG]­rø^# ;içÈÐÚh¤£ŠSÜG^ºØÔÁ 1 ]'WRÖQxš¼}:Ó NY›#ÓZ¡]ðdôÒ ¿WûbWa8Òê¿ÛÓÜ«ž£¸Ô&I[¦@Õ}urçͨ†Úzêä”Ô\`§}²¾ÃåQ÷Íüq¢õ&?'ó97Ú«UEWAΨî‰ñ±vÔd{éVy%hc]ì{i^Gã©·Å®tì¼ÂÊ©ilU3ÆÛ][¾5\|Aqç.eVSý#æ _ ªºï3Ö-Cƒ„`²°q7ÃVÅ,ˆ%+ÐùgV[íÌm¼cêìÎ#}G¥MÄ)Œ`ÙÐ*[ÇÃU$¦&;=ô4ÔÍ~GéÖÒÆ-œÍ7‹ôw9£u€Ç´`õÖ¸8ˆGÂrdaMÙ–¾ õlá8€â)Ù"Š?¦zŸ®¶ðé©nó¼ÄÊ@ÙÑ}NI)àˆ¯,ê¦ÐÈauoŸÃ‚46[ÞˈH¼¶1TÏ]hÊLE+uÂàùfk·¥%š¦8ĘÂ1ñ?_-/Uqå¾ûQrꥑd呈ÛêuJ°V”Æ ³¿WÍw’]J;U;wô2;uÂ:©¨dŒ"b\'Íé×B/¨¥oËÄ\ºLD‘º/)ãr»Ç„;uÓo q ÌðÝkË#V b9®NÜ 8 ° £‘Ã%mãø¨.²ÔVAQÈ  ä õìtáGÇ6Ø×fGþ†)ÿmB»aêk:ˆ¾¡º!A¼ÔóC ™·[ ¤ýu³âWæÈoR;«àâ}ÎVp»Ò+Í#Æd3Nì}v–:ház©âãX9¤ª¤VM¿Áä©ÖM*"¿3g‘¨^µ©êtyàY¢1·Ôh,ðÉ`ùiø˜¦ª «@ÛXœkuk$ÀOè{éúÛrfòi»MüOhd1ÔDÀôÎÜ J˜Fs…=³ßLò,–ÉÜ›¶êf¥,ËaØ ]Xví9Àí¬Y^Y×µPÉ(AØœhÇË=5gPuøâsþ;xú棦[] 2u+2Ìç£òר¾Œ’xÊ7g?¦«8Z’AªhæU,¹Æ‚ü_ðÆ·è[œß(Íúˆ_jJÑÍjŸqHKÈ렑IJB¤¯a®W˜¥„ž§ôª-W™®’ZÝX“§MZa ô$¯¦±ïzš|­n‘žTD%E òç¾£Ã"¼rPsÓE[â¸c¯ãZú»ÇÕ=@Ïç­jˆ[p:]mµ=m­P$õ#Ç\çôÕ˜)€»_<@ñüGJÛ·L4‰QÜúê·¹Klç¤åó#þ% ¥U±WNš:VÃˤâZåû<Šåµ~%‰ËvÂã¿ï®ygº]nÜCB••U1s”²$wô×GâxÍͺs8¡–«í2̱#!@‡k/QÔãJ'¡ã?Œd(•.%öÈ=uâCó,éP/ÒÏ$$Iá‘C dc¦¤›â)™å§U8õë«©Žàœ›ŠiÌrÃ#)`Ä®ìtÈ:¾Ð³F'§¥S¾¥¶:·#NÝR¸š'–¸ª@7Gß¡ wÖ ¨kgPÑucÔçôÐÝÈs â«æKÂÖêhi 3C+)݇©ÖŠõa%¨Ultß¾•̳—™õE¼´˜}Ê<Çžœ8~xdâ;*EIa¤hä,~fêt½2Âîšu­GÒÕ³8ñ.«¨…e¶3ÀÓÓnƒ^Ã,‘‡ªžš‡H)“ ÝG1LŒßÅŽÚÏrûA¡¤¹`§ž¦¤Ìå.vUìÙËÄu4ÊÛiƒHñȨ˜7QÛVÝp<ó :šmbÚ•ÄËA–›'M2 ‡Pê/ÈMØ"Ê}¢WãÌ?™‹0øuufióW>š€‘\xF}O–ŽIï¨däçRH>ëÒœ ›ñ nñÿµ˜¼ƒî'=ûLê¶rzžKÿˆÐUè=¹žW÷OAúoö3uÿY¡ÎO^§¶°½³oŒðþóÑýY×Ð$ï¡gF5šçÖšbsÜèfÓû‰¹{jŠ‚DMÔ÷ÔöKÏr3PƒËBÀ MP{ëEgÉþïñ ^™—„èQX„`2 ô=tGY¢¶;Êq­¯©åtºyåÅݸ¾)‹.Ñã'Åòúê7VjЍLÄÊTo9Çï«:Œž¬²,ŠDŒÅ©’ª ‚ òýgV@{”7ˆŒõúê·hè4'rÉòµ;êB’ç¹Ô 7©ýõ%LÒ;nùï¢.Iâú’|Mÿí:’ÉÕÓSRp:êæ: 0zkæ¹&˜‰Ü½tPã[“`né×ÏIÖêlÐêuÚ?þ/ú³Wuq£õOï‘¡èõՄ管+[ûâ=¯ÿ¬ZïÓOñüɨDKfùF«‹¦ŠI A»}Óÿ…Ð\ëoý¬ÃäöOÿÙbygfoot-2.3.2/support_files/mmedia/pics/match11.jpg0000644000175000017500000006453611225071373021212 0ustar eliaseliasÿØÿàJFIFHHÿáExifMM*ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀY!ÿÄÿÄM !1"AQaq‘2¡#BR±ÁÑ’ð3STbrá$C‚“¢²ñ%4U5cds”ÂÒâÿÄÿÄ1!1A"Q2aq#‘¡±Áð3BáÑRÿÚ ?‹Qípµ*öz‹ÂÐÛ /qoûÙô­F‡úGÒWà,g‘[|)Þ\)à9ê<ðp}sӚƱ7çüÕmÉ-‘_úÍŒ:ÅŒÑ5ظU†49“‘ýxùš-kw¶¬™ íïÒ‰,ÊQX\%M ÓŒ´'z`aøÚÃÕO˜Îy«±ôÜqõ©à•L‡`¥ÙíG°;EØ)è€8¬¶i!6JöÁéRˤ.ÏjqQÇÊ©²Òe{eK% °b½°UY(öÁéK°c¥K.m•í£Ò¥’…Ú1Ò½´zUY(öÚöÚ–J"¹•m­f¿ h\ýkŠÞ_Ë:JòÌ¥‹'“šgÂÒ%¹±½¡½’ëNЛqsðDŒôvùVnmí,9:sAËõ/ ‹ˆÿ?îŽç(Œ5ç;ݦ¾pG!HóØ1ÓNku6­5´®C]JH‰¥Ã¶<+zŒ|ºäàRù7?w€øcŸ,'¦ö²ÞÀAqrêí*!XáÎì¶ B}óÇ©­v²ÖîúÚÞÞã ¦F‘Y ä÷sŽå?J‘É)&˜,Ø#r4ªêã*ÊÀó•™Ï=Špê*2Å#Äkت!ìS¼…QbWªv84˜¨CإǨ³Ø¯b¡C&c´®¼²©#íL´s-œKF¤çÜU_%“׈桮”ÁÙ=EÁÁî¶ýÈÖ¸TÆRŒYN1æ(9úCz_!‹©› uŽÎ?üÙÿUhVk¼D2‘óØqCo÷«øÑc!µt{k¯kwï§vVϺ£H#Œ0ë¹þ•¬³Õ¸¢Ékw—SY\>ý©¾6=p0üëZEжX(ɤ{ìVÌó¯Í]LRb¥”&)¤V“#CYx¨öÖ“0ц¸…%ˆ@FáüèV¥Ù/Q’ÝUÿ‰FÜQ*í1u-¼ ueF‰{â<óº6·.à¤`òTÒÜÇy-­†™wn³ØÅ3;K bPÊFyüYàyx eÁ»˜ŽéõJ[¬’i7öwVéq;H€¤O°ÜFý¿l{Ÿ‡óW‘ÑÇ…”ð<•¢‡È ùqT.uÍ:ÎI"žî’4ÞÊ\gÇOž>õM ¤:†R# :\T²…ê¢ÏRŠ„BR⡸ۆ .Iô¨l­šÖÕagß´œ61Á9ÿ•QeŒRâ¡ ÇogX{+:³:F>ùþ•Èî" l—Ô>†ôˆÈÒï¿ui1’£ò›5ïw*„&V_½sÝaö­´[¶ ñßjÚvÆô'g4Øœ´¯9PsíVŠ+\Y,ÑCëœ`ƒÇ§"³:拪Ë,sÆ¿dDiåcŽAú¾hp©r‚ãšRM®€½œÓo4íE»F–o*[Ìb’1!8ÉIÆ#Ý<¨µäÖzô g}-œS÷fq0UNíÎqÎFFG#Þ—”jJú„­on²ð=·{yLGy* ôbGîÊ<ùÉ«’]ÝÜ_Ê;Ä‚;sÝÈQ†e%ÚÃ× Ÿ<ùu¥]G‹½]Q…íÎ…z,šãöÓwQ°îFÈð g=3€=Éç¥Fý¨Ô-îgkg‚h¡võ,Àx€Æß}¹\ô­Ë$·†Ê-±¶õôÉÊ÷Q\ŸÙ;Œ&d;€ÎÜõÇö«÷kÍ=°7 jರbNsŒŽF7`ù úVã•Æ\ðÃ%Î}<¥Óû¤ï] É*½ê‘’'‘Ð`gŸ*ðÕÖ[¬ÅuvÄa|öàdò<³žµ·•>Ç×îEïÖöArn€3Ï@|êh¯í&‰dŽæ&F8æ§«rÇ8«’àxº·?öñÿŒRüDŽú?ñ ¿R í4g0[J.®Ë7& ¬:n8ÇN1Š"omG[ˆ¿Ä*<^Q7/$o¨Z`¯HÇ<Ôvz”rØÃ$ì©)AÞ( Øä}ë>¶?’oÉ'ëK/õãìi?[Øãÿ˜_±þÕ^¾?’½Hü˜Ò^«m&‰i2ooˆÝ€’Ÿï\ÆiäkcÁéÉ¡e”gMiÂÐÛHKí;ºÓ/?e} I¡¾Ã—­åfAâÆéçZmoQQÓ´k~ï›{@“œäíR3Ûkä׺$Œfµí{û>ø­Ûë÷bqwÊ–ËþõŸ^Pö£Ÿ«Êã’‘ã¬Þ…Ék߬5b¸Ç¢íYõó1_VrèF»¾?ö’ý4ɨ€×êjnÎþJÝ7ò{º¿Ä— óÍ5¬o_°“ëUée—h›füUë w}E5ô[â§Œùx…ii²ôdü  üª­µTœ¯Ñ›ïXÿÆjÿf™kò~`o•=IÆk¸Ÿ …ǃ>õ&Ê­& #çVà_f]»+v®%‡³m,@#-Æì¨Ç=ß_ÈUM:ÒßPÒí®&Rò:XœóõãÊ–Æ­±©¶’£Ï F ¼SH”Î2=8Çò¡²ê:uû<{®Ø\ÉòÏçŽy¡åÃÒ DÒù_jWº¹½e¸·i€%1´Iá9ägQû´sKk9t‡WšÍo¤˜¹ˆ§Uà`ÇÇžsB–)]¾é³·¥ÙnÖQ·[˜Þ0“&Ò"ažð¶T £ç§Nhå•·ëXnbj§,P8fÜK Œù`tò‚ƒ&ã{±þöÕ¤‹ºë ½:öy"2@êÁ9ç!OØ~gð3[³תcä¿xÌ}òdª‘â\ûœxÀ>|Ö8Ý€Äýý {è#ï#ŽpÎÒxÈØ@FO\ñçõ©Z_ÕÌÒKlFÛB®0yO|ûòú–;½²óà–Öin–âî7F„Ó¦Yó]¬Fsè8ÅM]ÛÚEqpê-ÐxØrãÔsëÿ”õÍkbby4É´Ãw#ÜʉûXâ åÓ*N3Œú‚>Ÿf6 °án‘ qË«õPIûôú} gÓµÀ7¢ûòW†öñ„e98PÜÊm¶¤œ·ˆ)óGÿÄUÙ‚«.7º¹QMÒ²=GUµÓ¤ŠÑ%Yd”~éé“€?kз­.О:þéZÉE xå½Ù¥ì…Ó¦¥4É-´Acå§\®3Ÿ¿µ¢{«Ó«èµ8;´!RˆEè@õçœç÷x>•Ò$±FR¶‰.;E$3Ž©!”ä:är~xójÛ´7pY<í s‘"îîœ`©g'§Cœ#ó­z²³/OÁ1í~æ;¹ ãÈ9ä„qÖ§‹´ÂXÉÖPeÆIÈç?*Q5Íû*®É[´R26äz~¢’>ÐK(Ö8Â7Ìîù•¦]QŸÙ¸»"¸×ïC¨†Þ=Õ‰$¨ç’Ëó¨ï5»Û›kˆ!o€˜‚©pñUÿ{ž>õ~¼®Úà¿Ùá·‡È&Ûµ7:-´6·—cQ—¼*ò” T{íàþUþÛþVþÕ#–ip¬ÒÒ)6®¨âzoé;Y¶Qä6÷±ž #»sõ~U­²ý%h·8[˜î,›ÿÄ]ë÷^!NÇ+]œÜšÿ&–ÏW°ÔacgyügȘê(’@Å1)t(âãÆ9÷jKÔl´v¦=Ý“»?»¹÷­ì¤ïfíIò½-¶3?¥zf¥Š$îA* •ïòıììߨ¦©"ŨlÖÌî³iIfŽB Œtç•ó T—Vpµ×‚éüa®FÅ’L  ù€=Æ~U˜ÕÛ5)4’@í8˜ï!F[˜ÜÆÍ‚T†TÀðúƒéÉ󢺾ýby"¼ ñD±vÝžO$ä:r1ךÖò«ÉY ¶ÛðRÄ— Ȥí`À\gÂÜò`=€cò«Zeíµ•Û<`L¹‘Vfc†[Û*=TSm²K#qÚúàE.Ò¶»‹ãVWyãáCgvóÈ÷9둚M6kH!6s´p$±±y’ÄIè䟱ò«Yö[O˜µÌ@]±º•»3RÛÁfAÝ´l2ç'äcŸ_*ÆEÿ˱oN*d}®OYÂÄ3ž|U%Ái'GEÅa¾MW¹ô3úÎ @¨+†+òæŠw«æ´_¬l?ØgûVÞG‹éòHážfÛ•~O˜RêÚN¬ûñWRD#*AúÓO$Ӝӱ‚*‹¨.À€AQÇÞ„_éáŽH†DL$QûÈÃTÿNŸ.´9Æù‡+Ç$ÁqÛ•¿–KÛ[_…%JI{B¾p7œŸ.¸êG5hh“YÍ ³Õ5—k;ˆ¥-„’z|ºÒÊ^Y£ÂÝóýܵiÚ»9¤ŽöInh ‚Š­`劻®8ç­²{=Jé'µ‰7‰Ð,˜È$ðAùàñD‹¾¾m?¦žHp€¶º=ͨ-ÎÐlÄ}¼¾uôwl¤=„2mÕFI_2:ãÌŒã=:V2iûÚ:¥Ç‚+«[kÄßsÿ¢–áI 0Þ¹ÉlsåÏ §h¤´‚@M¼#×&R@lîó9ó¯•)µÂ*?jKw|Ð{XŽ-N¶¹ieyRV’H÷äï ùŸSõÀÏQFo&ž¥˜I ; FÕ)çÔç$úp}…KmÊúwÅ|˜¾î9!Ž%e» ½á"EÃ`P©>çÈäg‹(g¸šk¸d¦çÜUH8ÈÎæÀcž: ×€þ¦û“|ƒûcþªŽeœO¹Ù NÕÚ=Ož3Óúç.„ˆˆjåàúIìäU\ygš“L aöoÁ$ì;†Aæ§>›wuiðS7]‘µ ä1í¼Ck•ç8ÛÏLç­haŠìw–²\H³B oPxm úäç8à|«mÜU‚MrŸ`‡YµIÀ·‘åI“»a‚«•î>. oSƒW­>)5h&‰°éë9æUp (2zŒzÔM®z/"SðˆÆßj†êB†]È‚øwÆFH>㯯U%¼¶¹¸T‚Ý3°$ ÇÍyÎ8ãçìjÜÜ£lܺOÅ4ëûhå™^É»çS —¾âO P@Ïßy¡³5Õ¹šæô{T“Çd»HNÆ2qCŠÔ\% ¯‡àŽHeMóHšƒÏ­9 °]È"ˆ9o1Çs×Ë$M[»³žb;À·«‚øA´œÁ9àzŸ<ü«4®ßÜo„»=¨iš§wË)LÀÃá mØ’ÉÁ>˜¡Ÿª#ÿòßâûVrCmPL”ãgÎënƒ5b8 ¶K‘ÿ §›9IÅÁN {×–ýAÁzÖjÍî¢ÂÞÃŒ÷£ï^ø“s"Ž )$c8ò¨[¦h¬5Û« f†ÎöòÕpcI‹Fîž(†ÛMSB„Ãn¶²Ä͹„‘Iùƒý*)4íx·p¶ý,J­‹½XgñCqŒ} ÿZ=§þ”´@³Ç{nI'/`?ÂMÕ`^ºÛöÓ³wÈR-fÑK 3÷_úñGbž„ Ñȧ÷‘ƒ¸­)¦ Á®Çô«ÿ þ”¾f´QZKUš(Û@ÈüÁ‚= ˜\ÙÜ KxÕp7\’H·ž9<•q}¡í.x¯lú-¦¥ªîɶ¬NèäžØîof ´cë‘E;Ûfìó‹vb…{²\å²x9÷©ï™ñF0Ýñçå1äÛÄORƒ?°Ä{¿A¸ÔÂ2͸P›äed%F:Ó­Ó'‘TdÒhsÛÛO/{ÞíhŠ\’Ï ÷¢B[«K˜¤†OØ\Ü ,êY¹$œç¨ùyVöѬw¶\]„f†KˆX"î ”ËÄàœdr:` y5 —S÷èñ?w …¥Ü”ÀyÏæ:œy‹›ƒlRq[¾][]Í-ÕͨI#YÙ–ôe×hñü<FzçÚšýôöN¦ÕX…RÄùÎN8úñëíZ]§ÙJ{ ¼Q6¶Qµ×~»§,QÝÔå#òÚǨŽ£íRK}’Ç/w˜å”ªnäpwluÆ<ð=ª›Ü¨½¼[à«uh̦àÈ‘˜Û(©) ž§$`ÈÈ#4é›P½Ñ>å×yyLæ<ypysåWÓUäÞJ’Mª¯ðJ—}a%ÊÛ0šÞD¸weÌc¸ä~}8 }åÏûÿàËÿõ­Z’¹:ñÚûüŽn€à`ÓåØúS” ä0Éž¦¼ 5eÇ~‚®Go³“!Ï 8MšŠ=-ÜP[s%äÕVÕî7 „*"3QFû#tLºäêÞ(ãaõa5Øã…‡ü'5N¬¿(´º½›+óSV`½µW Ê#ùm­Yi£iÁ†l»O¯ZÝkw›sáS1pɲ(õ§é#´–çsor=&€ýj']x“ Ûþ–®#*—Z"H^í@Éãß4'+Ÿ`óëô£¿¯;)þ¨ÿá-icyd#äíÔ»©±aê3V*òyªf‘æ¼Dàx ¨$»–AÛG ¨‘ˆ˜øÍ&jÌŠÝG¸ìÔ ây*ðnEY¬ÒDÇ»‘”ÿºqSG©]¡ðÜ?ÔçùÕ4™jMtËqkx™[æµn-jAøâܲ¿%Èõ¨OâGcVcÕ­CŽSzà©ûÖZfÔâÂÖý©Õ ÛðÚåÒú/ij±8£6¿¤nÒÛฮ¤°©üתÚ-⌃6ߥ›ô#ã4›yOLÅ#GüÃQ›oÒ®‘!gy{*¸þ`þU¥‘–Ÿà5kÛÞÌÝTŽ6ô™1õ#µÔôûâ>úÚãû•ÿ‘­ïLÇ%Ú3½²ìôIhu»8Õ.UF7ѾcÏþU}I£·Ê¶N8¥3ª•ü<÷c¯ƒ-,ä³y'5-¿ŽÜ{PßA‘|q €~Ý)ê@L“ŽM Ó$‰Bg.*•ÈUõùÕ£ ð ÔæËÁçÀëBé? θô<š¶­ž—GPÓFΩú/U}&öp¼´Ê¥ÿ‹ Ó_ηdêùÓ¸±?õ9^®lžÂÚÚ5•Ò•ð eP ÉúUøàˆ¼‹·<`ã¨Í“ìV/«µ»r2:úR¼kÜ+®@Ê“U´»Ö±‰ œç uëšñ³‰Ý•Ô€ùéU´»¶¨b]ÜíòÀÁô§|,?¿á6¢Yðº‚Ý)àêÚ¶PàÝ2zô©À S,Nê?àï‡øj­’„6èOSIð£øÈ©¸”#[6p1L6ò ~µvUh¤ãÃåM(Ã÷M]FžµåüUIò©”Õ2NÍQhvr*hÝוb¿#ŠŒÚà» ÷_¸ïsýêÚ݈×ö÷+òQ“Bix?,µfcÊ3ÅynÚV ·ñ(þ¦¦Ú&ëð^Ö^i¶Ínºµê£)V€JX0>Es½^ÓuU¾@|œt¡å‹« ŠQRÚˆ.ò’{·k"˜Šƒ€zПAâ›E ¹r¯J•À[<¹E¥Ê%\ž‹€=j9e䑎3Z]}µ “©–"D±œ2“ÓcÚ…\@—¿TñÅU;=8©aP—hßþŽ;Ge¤XÝ&£yÜE#]Ó·>mCé[ØûeÙéF©ÿ‰Y˜§qIF4Ï)¯ƒžyJ+€†ŸÚ ¥+úÚÏ`þÔQH5Ý%®]JÑœªî *žzzü«{â+Jº'][ONó7qœðÙò¦þ´°„¨ðóô©¾?&¶HWÕôò#o‹‹¨óÿ>”Ö×t¤˜fþÜ©êGä›%ðDý¥Ñb~©h¼ùʿޣÿ¥ÿX³ÿÆ_ïTòGä¿N_Êú—f-´­ ݵÊÈò\G N œóÎ úUíg±KÏs¦]ÆöX­Çy;…fa´8 Ôx˜`{õ¬z¿#OÚ^ äºJ¥ŠÜ£9Ú™e8브n)ot‹7O±¿œ©[Õ.Š¿º¯¿9ùë[S°2Ç]›+’7,24{3…$(Î2O >uk0v£}Àã§åVš)Á®Æ™sž)L„3 t«25æÊôó§w¼œJ òàuùRnÅQ !Øy U”0…€)A« àiÀÕ‡‡EêiEØ_À£æjUšºu$Z}¶¹¨Ïrmc6Ð]Å*Ç"åLf2¥Tza#ØúUiìâŽI,®¬ƒfÕ`ÃpOÕ+.Íi^MnñKj²By’ø¸gg''γ ’]åÓÇ$áÚDZÇèêÒ Xèγ4€DÑ,± ãÜÝGr=F=òïÙ›"ëRŽî$i¡) giüE•ƒ(#<€p}é••>,åÏ×Ñ$=–k‹{ÔîYîžHźX•™ÆÛ§²ì2:w÷³ü,K Ë*ºsµH#äOÛ?J¿R>è¹|sýGMضK’ ÀÖ¦3(’?Ý܈Ê<€7ŒŸ@ÇʯÝþŽté-;ý>þB ³®“s\ð¸ïr|ë3‹-â„¡× ;~ÄO&žš‹6Ëy¥dˆ*—;6Xà !@I=(¯¥9ÒÙ•@ï<9CÅ9mÐ aJ-”í,./®ã¶‹Ý•wàn }¹5ž‘yuv–ñBÎ\°z£ssì9¢9$ cluÆ™sj̲ÛÈ6‚yRSòàýª ·“ŽUqœ‘åÇ÷¨¤Ÿ%84èY­&€¨uêô4çµx9”É^˜Æ˜«Ü‰±®ÄR‹×'åSwˆ1¥S²†|JùgíIñ#¼à¸üêQCÊ9¦‹¤8òÈ©´–°;íÃà`Š#—8Q“ì))÷G³ÑóŽ,=mÙûÎán¡D'¬ãqú %5¼vVë<ŽYò9òó¡¼~FV¢?Jü»­P„@”9RÜÐéõ™ o £¶æ§üЏ¦ViA.Q5†»Fð`ûÇ<¯ÊŠZ%–£!·ºEËþ 1‚†­ÜX ’õñI/Ïò3 ï¬µi-$;Ú61‘ŒƒùÐÁ4Ýv“Î)ØÅ$yÒsÈÚ$™£Ý·ÓçéIn³Ü]E! ’ÁlàqÍk„k&†Îþ[e¸H\À_»Ž3Eã솼ЬŸ UKÆN ãqÏ–Aû{ŠË`ŸÉÙ]Q¯"¶Œ.¡‹á\ïëôCõâ®ÀjëÜÎØîF×Fî+»i\äzdÕ<ñFÖ–Aú;yo|b5žr÷<Àç®|¾µ/ÿeíköÿZÅѸé¢Ð[eøšÒö,ÂD"8Ò\pH¨9ÀxÍQ].XïoD‘̤åYH+áëò÷ªxÜU´1êFRi1lµYa¸ºEšFŽÞ?Ù<ªíàœð 8ó£Z$±-¶«*ÝIysß³"nÃ’=ò~œT–5M¿!1fjÒüè—ûošÑd–k¤‘#Š_ î OR 18õ=G•]FæÖçRÔžêìÀ ¬ŠøÝ»@¸ûPåŽ\J»Ž¢Í9/‚ÓÝ^ÚÛZ‹‹c,rÇÜÈ¥<( 2msè*1ÉôäôÒ%ÄѼMwLè2ñò@Ï9Æz{šËWȬ”míè m©Ä·w‹²Ä¦H^8úíbçpvŸ.|X* «øúêÙ%Ùg:¯ìäŒH6mÆîž`TªjØÖŸ”åÿ ÚŽ•ñ[âK™£%£!œ)Q psÁ>] E¨éÏ©=ÖŸe,¶ªÐFÏeÕ…ôÇ 8ÆIç‘R6'’ ¾VŸ’Ï@¾‚îæCÌqÀ‰”r¨ä–’ .ŸEëÅÔ4«]W:Z:žúyÄñà ùÉç#׃ϭjM¹pJJ ?÷¢4K{›VŽ(ÕšvîÚL2žnÑÈUW‡Ò‰þ¨°…ÚÚÚ`Ê–1±ÖGÁ }pgtš¶ÉK„#UÓc– l&wŠííef>Îñ€~G9Áü=6æ³öýŒÓ5hÖAÞ#³àE|™©îÿGVðÃ%íÓ5¼jcE.ô@±ø·>W½OJ߮Ֆ•FRÝàuú?‘nm\¸‘cVh”:†i ø¿d¥Î=½sUÓôypl ¼–î(c(e–6OiƒâÆy#o+î'8'¬’BëO¹º)éà,+ºÖwT„ÙÆæ=2O–sZ[]DÁoK ¨¬¤Cäã|þ”'Ýž‡“‚„jˆWU•g2Pá2q埥X½í^þd’²…o÷@>T5mð97IJn—ûÑŸ}BÎc• ÿÅ:Þŵ„Vè\ž¤tÔÔI®ÌeÏŽQrL¯{a.›pÈÀâ5Æx±W%ä6äÓ5XÓïµ–tŽ{¹UIYâVL®F|ˆ ñÎGŸJ-¨ö'NŽÑeµ`Äì 8B«¹À'<7V€0$g;9z?§7ñc4ïÑ´rÙGŽ¢â|^?f¡Ï‹qψáWÌ3ÉŹ»¦$öê±5¼ÑJvàŒ,wœ°èqÔñÓUÊsì!t‚šŽ‘¦Ijf6q-ÈÃÙ‘‡$gŒóÏ©ÈâŠOzÄMj·E"{`áÔ€Gˆp1€¤úŒŠÄgK’å@eÕ’-å»é°­(ŽE_»· ôÀ9=:“D¬Ú³‘. ØŠ‰g<îÊîçŽ'¡öëC”=Û¼sRŠŠøÿ$be¹i-ãŽUŒÊU_Á#r}qѽO ³ßXÿ³ËûÖã=¼´˜e‡zJQÂm¯âžì¹™ã`C§ŸíçZ‹HîeBÂ~üÈ£ wåq‚3õ¦r&£G;R•ž±®ÓÙâM«Â>¯9çɸƒƒŠµ£]Nau™DW*ÀÚŠ¸Â댞zqZÚ¤VåÙ%εuk{ÿV‘„‘÷›XG™ó?Lzó@N¦åei.Ä’mÎå_Â@À9 tã½6Ò:zu‹dä×&ÚÿÝœŠö-fßâ7Ëo‡l2 –Áðôèk;}«Üj1ÚÍÂ(ƪí‡#88ǰlôü^ôIÁFUðs!)åOoeY..Öiî;ØÄÓ¹,$`ç, ÆOË©ãÖ§•~xíunôwcÅ2ň܂ÛÞ'~¸â©Â5À\zŒžÿ$–÷·6PZH“Ïæò?tÈ„c‘Â…Èõ<ÑS¹ºí,ww2¤“L¢&–Qþyä`€:ÐdÚmŒz\zŒ>¬—»ÝÄ·7÷¬ÊÖèÑÆ’LØ$²+R03ò¦%õ亜¦$ké d¤¬Äç%¹å‡—\{Ô»–su8£µm¾+ýþ„Z­üšvæ½0$0¡Xã„nÚ]\qÆþ‡áëŠofõ»K™'ŽI.î{›Žý ˆðè#æUI&âÚè.-nvØ~Þ[4Èäšv†æò@òLž)dpz )Ô7S´´´ÑßVu$ŠY2èr‡/’F>¹éо³L©®?ÔYŽÎ{ÎÑO}s [)£ lªÀw‡j¹ Ðõ'ì=ªùÔɵ²Ã n.å° íQ˜aôªSJFTwUóö×G77rêÉ$\‰p¡IpÁWdãÅÓEºšÞIÃjz\r·Ä÷6òHªŒ›'žwcn*¥©Sì·•É×Ç w}iÚíLv0¦Ø»¨û°îÀ¬3‚UF 9è}@¦½òë+!^êC;dpãÄq±›Ïªü·Îã5¹6Ø"E·¹¹ŽÆ·’xäk{H2Ò¤h6ÂGïg>¿Z=¥èþ¹½†á$¶¶Ú0%†QøF|;zñǶÚoÁ¸æXàã7ÒŽwÚMkOÒuK‹[FŠ;t'l*»¶6OüÉùgÚ²·}°Ô/-`³µMBÅ£èOSGØÛç óÕÃ8ÆËû ûé3s;áŽHÍ´Ó-b„¯p‘Õ«š\DNç‘îÈíµ-*[Be‡!|ÀéZ®Â]gs¹6Àd \š”S5 µÐ~æÊ«¥%U• XýcK:]߇ý Ÿ >GÒ„Ÿ47¥É¶Kîh; bo§žéágŽß0Ïâ ñÓÐ/ZéVº­Í¹‡L·òæU*9E ð|ŽãÐ{ŸJ¨äÙ;fuÉåRŠ|ÚЖmNÕ.í`†Á·L»{ˆ¢ËÂð?ÝâÇCÒŸ&œqÄò7tÒ*¢•Ȩðàžyçž1Ôp*¤Ûé Æn6›²mZÌÛ<“ÇÝKd@Û˺ç#ǯJ†òk«H¢»ciTm.Ê `Œ®Oïd.µM{Ú‰Q—µI•&\]H÷P˜Ê(f‘AhRØ>äIcÅžr*„¶…eI&%îbŒ9mþLÀœ{ñžž”9[áÿ½‹Ú’ˆ>ÖÒìéËngŒÎ¢HV8÷ÈL¢óÎT`rO¥7õn«üøŸûÖÛ‚| ñÏ– †|ó…Ê)“ƒÓ"·ÝŽžæ2a U;­Å[‘…8/:èåúNVÔ˜Zbýñ¸†O²Ì\Œý*X¬ìí§7QK"\Ëá1³‘ÑŽ:óMjqcÅâ«=.§6yÉMÝ:þ>ªöšµÒ²«[ÎBHÌŠØPAÊ’#Þ„Ü“k-ɇ»|!Ú ÏØñ\õMDîmÙSílMÄÚ"ÛËfbHd)©cvñ¤±!pdŸ•LÓŒy°Z5‘dt¼€ÍÃÁ2Q{Œ´ƒ˜z¸òþÙ£—‘ÞÝX­ YÂÜ£½ÆÅg,[oãËåÅj8ã(¶ûð nqÛµqÊ=e¦hºM¼ &—7Ǿ½˜a£>^™éWobXôë‹éOtŠ0 <°=~»©<Òn\ÏÓeéàÜßqÕdýaKßCj!=ó1äž0à~tZó´:rÙÙ‘%; lÈŒª 鞀°ëáöú–0^yÔe–I&¸Cµ»Ю£¿Óß¾¹‘Ô-ƒ¸ÉäÜ8s?¸s+<`cÑsŸsó¡84Ý 'tåäÑjZ¤6V1÷»f…‰g„¡@-1»'#ȸç25Ë S\ï X…¸»kˆÌH *E ±ènF:V¢½¬×Ãoý²ÕÐ]uÞ)çŸÂ÷ÄH(„¨Q¸`䌾zÕ£¾ŸƵ$ª4ç‚>â''ÂùÁ8ã@Îk*.ÂT`©ôÙvÎâÂÊÁ,í¡³ ©….§í \ãq qì:TúŽ¡t¨ñCzà°?°—qÇR}ÀqÈò,œP ¸¼œSµý˜‡LÖ;Å™œÊI’'!š6Ï ‘×Öª[YG`íÁ4Idn(‹ŒŸ’õ¥¸cœ`{Ñxm»Çhõ¥äù \ÚÂ7]A¨ vÒ]¤ÆUˆÀEUÈ.lÒZI,J ˜ãœƒROah¤ŽÅ¥îVFÊ;=ñöûÖn¹6´«kŽËiÒÛÃn‘A&A<ªßÜ€ã=>Ø÷­D"/ƒ»øAÞNÈðÅ„ê둌z†öJŠsR\³Uº>{‹«ûn$Ê謣(öa˜ÉÝ\а—M%‘ŽÝÂ*±Œ³;I äéVœ•_DiJ-ÇáþJºsH±Ë—l÷ÑwmlFÀJ)Ü8äóÔóëɦÛÚÉtbÔgEÃ#|<Íâ-¸€Ûry>jP|´f†Ö¤¿ô3s,»cÎG!ËHÌË {ɪº¡,,j>;ÇÚ9$z`}k¦Ò&ªiöUï%K¤ø`4 €y$êrÜI5g¹²ÿfÒ¿Ä?µfqQtÈâ¼£çC¦™îŸK¸øcʃŸõ"µ]Ÿ… Ó/µ;фϒòk¡’V»Œ`£J4ûþ®ËüTŠÔòø®a- ‹U .œŽ€ä}¢êqÅF×ØÎ–r–E“o6¥ :¢A2ÚÉmon¬%ÆÞdaµèIÀ'¥As®iíª¼7c޲ݱд~2|ƒ|É84;¨ŽJ—qšÝ–—£=­”ˆ™-FBžsÏC×ÔÒèñÜ,ûŤrO*‚gŠ`CeØÿ…Ÿ,â¥:¯Û¶ÆŸñÿ‰&š)·w·MÞ¯ì“nv6·ž=­#²És§¦š‚$…Ù^2€ã Nsæ2Ê£ÌnùÔUNÊ”„dŸÈõýcʨ–1*¬ÛÅ Û}O¯ÚkÅ¢ˆ? sh\žhoºe(8;r a¦ýcl–ÍmåÖ?fD’4Vcžxàžƒ«uª¿¬mÿúgç'÷¢ä¶í"ñãŒ×ÿÓœ,0ɤ†îE"åLóÅguývÔBÊÏa1\¡'+çÉùÓ1[ å’Œ —xæ‰Ý¶zÅX²…PK1 ²Œ4ç]ë²dÿJáF<@м…#”¶ÜÈzA=)[4zkJuh¯îZ-Ò#,j¹ðQù֪ɇwçðŽ)\¯”ì#¶ÿ!#ØÞ²bÎÎ{imdÇ<O$Ä ¶H9ê•M–ÁeÆò4OQ¸Ò¬îßQ´´HÑUßöhC´o@‚}²|¨V›Úóq«Z„°x’CˆänYÈèG‘Æ=ëM<’rEBKQ—ñ ]ÝËÖ¥y,mu£Æä`•Û€!Å^·Ó®%‰z/@¼YÏ-é0úh,.Q_’ä1Hãf ¡O :W>šêÖ[ùìûÇ·´‡~ð $™,GàÏJÎ4낳4ÚL%§ß÷–¼Ò¬HYopn,ȃËå⎃$ÖÓV·›Rì!Ñâ’åÉ ·2g+ Wq?îŸAÇ•Ь±Æ¬Æè×7]¹…íãYmîÎ׎uåÔ x gžœùâŸc«êºõÔFFXt›1Ü[‰"Ë4@¶rH Ôç{ór•Gs2±\©tC5Ì×½®´ØéÜDÏ! Ž~¸ûfŠÛjÝÔtðÁK'%}¼Gò¥òF—Wôì—9‰­ë2ÞO&¨ÎÝûK•n„ `~@Q '´ëºÓ.R¯£lÅ0‰s"±úòÜûçʘKv/6s²­š‘èE’à_½”LÉÏ—‹ˆÿêj[»¦˜™fU[ì×v8íùRîÒêKƒ/ÚÙ$¹½ŽY&.ç‚‹0Àsþx¡‘0u$u©'i•6‹ö‰È £w‚=‰“€}è³^VÛ7#9ô¬ôÚu÷ë×¹‚8™Pà;œsL⚊v-’ø.öÊ]S´ZÔš¸Ó‚4A‰%Œ88ééD»n–‘ßÞjóÄm䄜¾À·ƒœðÀúQç‘d.ÀG„Ólèò>—fäîd…µUîãT° 2ÆO˜žµÎ®%º¹íż÷.Ùmwœ®Òí· ¹nyõömqð6ÔÛr—È*óPøû«™ç™q· $’kC ë`YK¥˜£`ä6óÎìr8ôù{й°ÑÛiK ÔZÔkYÂÃ+žv WBrû#ŒuçÈñÖ´:k«L“ÜË@¾òœ“’q€IaBQwDË$—´Èjº¬v§¸–Õ!Idnáƒib|!Aù‘DuýwO•-“â.d¸T40ÆÁP9v e—‘Ó×ØÑž?{ ÙóBq„~=¼6Ú*^ÊäJé€Ò®Ãð8àýè_ì¿„„ÿjêM>ËÒú:G2¶£"x¤)´ o%‰Æß\õ ý§Ñŵ’›kw å—’Î3“ÏþÔÎ6·P†[Øè4˹-ã•".1 9l’Äz{Ôö¬l^éÜD¢'@|`ÔS[’ƒ¾G]ÃðÄlKÆÔzU•dyFe‚̽@Ȭ>U›µ´klµ_IH<&T  9£úL½ô!½M'$ΜŸ!›ù 6ÜuÅsènšçV¼ÉÂo#œ‘QtËÃ’[Pº„ú…©ïl¤s¹LREÔ:Ÿ,yü¨^©5儺RÂ{»˜ ŽEe” ¶È4Ö)'€þ§§xsKášÎÉë‰y§Viö™XxI<Ž}kkÐì-Šç MT™¼SÝTº¹Ã+äÞ†°Ý•ŠÞç^Õïnl`¹øU{ˆ{ßï-±C/B<[°†·‡Ë¨í æ™­IßÚÐj¥ª1Ä0[C/ Üª ƒÇŸÛ­i5ÍVv³K—µHì •>Äá†x냌OÛêw¿tF'§x²¨Oƒ¯^)²‡!Êáa\ù󟹡T[K)­-£ËÎýê碃×ûV`œ×&²mƒmxÿ!+MOS½Ñ¯– rrí*E–Ùá"IÏΗIyt+ëx} DJHÊå€$ŽAã#ê>•©ÁSHΟ*„Ô¼.?™>©(KGeQ¸u>ÆŠö_NHm~8òd³èµQ•`¯–i­Ùܾ$«%ÃÞ£qsîzÿ>*ÊÊÉlù8ÈêyÅ´RÄä¾_÷2úŒR¥÷w4ÂVñ€GËÊ£…B¾à¸¬ÈuÕðµ(£‚A«ûƒBp?:’™1ÆOQSCâŸ8ôEÐ/!HÕW¥Oos‰ tÞC÷ª¸óÆ7uòòó¢ãuɉAͤf.õöKýFÛNÓdKyÑc{—‚«“Ž„HØö«z›>e=º^Gyr s©Èç‡Ï¨úŠ›U$ÿÞ†œÛ‹J~N)Õ¤)Y˜)ò8¬·ê{¨{Cr-ÝÖ0s¸ð¯œ½FylùôéXÇ*MvòA¯ ½z–ß º[…^øcaã?Έék¡hò"L·Ö×ÃjÚ¼Û‚``²ã¡Ï˜ô«Åº+®Ô3ãÔJüÄ ÚH÷i¶â0ÛÑ÷îó¡³iòéú„¶÷(UüX9ëÏZ>PG+PÿxÍ?cîe±ÖsiñQ,2Qå‘•?âÚ±«ÚÖm%Ü!Ëï Er‘ør=²hyå²V»ÐáõžÇÐ Q·K‰ÒÉä¹ÜXóóÍí&¨4­ àm6ÆÎ½Ò’Æ3ÿµ ·CZŒK5“åû=nך¢Ü+‚ÝQdÎ9ëõûÑígQX'{x&Þüp ûqDqsÉB°ÛLðšYʵÁ øèLùU»pÄñ´/abÛVËÈŒyÈa0¹ Ï~nµbܶAš"誒@>•bÚQmhó´jùvŒdy•ÿž~•¸+5 %*ìf5{$°y­ÃDa$”Váùä}yZÍ›ÿŽÓ˜Ä’Dñm.@A^rz‡zg$î‹Q5‹Ò’k4i"\V‹³°¨Õn‘¡fþ_Ö“—ab3HÕ4û={SºÚ ãïîØàsÏû`}~Ur>Ю èPÆRÜ/øIßœrjä¥m³N1GÔ¦‡X½¸–[‚ ±ÂÙØÇð‚ ñZžÊhÖúß}l—ɱ&䈂Dœ`“ÏÈÖ¥ä8åQ‹o’üí¤öÎäéz¼—7­ÆPøÎq† ÎOšçÿ¬5ïö¶ûSË>×ɯٲ8©ÏÛ?žÕj±Üê[ñ¾8Ê.>\ŸÌš¨ßÞv³Wî£QŒåU2Mm7&â¼± QŠ“ð2vÊïB›N7¾VYDûxö^Où¬dzš=äË{©,JÅzma‚2ŸZÞU±RŽNs¶S³™£œ¿EE gÏ5 ´Ó~ ‹È@Y$O 9Á>ÕÎÔËb³¥ mãr~¬±U…T9.ËúÔR!¹"/ †!}†i-#æF£Ã.k¤%”íŸÁÏÚ³÷¦ŸmeP±‡lñŽ)Ö­ èÚõ#%%Ô"{è”TJ»ž3ÎþfŠê–k£™&1ÉrÆ&U•v¶9ûŒ^(Ê5]¨õ5áp`¤fšIT*ÈNIj[;‰"½‰‹1]Ã94ÕqG!?uCLq$J©«*EwHĘ˜óÇ =x5ÏIø:’‹¹«ý;õ•Ô·/u² C/ qÅh4½>Þ-}NXƒ‰¶YXîýÐæ™Ú@??ZfãøB¹a¶kîÐX¼òF½;“ƒæ(×km…íæ<€ïd†gÎ2I$dyEJ °S–GDŸ²’ÄKwpãh^yùÿ:©ww$—ûä=eùãšO<÷Èî~“†”¥öþâYÀ·ÐÍ+²4¬yá?Ò²úì×wªÃ*6ð4_2æjiåûƃ~©‰þɯt OGÒ›UÉ>¬zšÏwÛu‹™÷ÈVvPñÐíšÚ“¶þNvÈmIø?t×ò4k„=*ÄnŒQBŸfPJ(‚¹æaáÛÖ°‹g‹#¥Y´BÉïëD]}…Q3zP«íi-YtÉ $©*‘æToÝ?CëGÃØœÒ,e~áÜ@Pޏâ¹ý½´ `es:© ªTg+ž¹àóÈò¦g×qÎ1\öÓUmÖ8¤ä ÚX{V«L·†H¥tRà8$œ×;þÿJ)ÿÑ)µ ^ylí¥øxTâႃ(|Ï—¯L㥟¹Ó­MŒQ¹| €y?1ÏÖ88òOUM%ðˆíYì–ÙçI$7eùQôª«um§JÓBHd`Áܱ9Såêj¡»o·É1Ï œe7Â(Ùj²jº¢ÛÄqmÉÃãùQ¿‰‹ÚªXöºA²jå¨{ŸðÁ¡jìÖðÛA"Á#„k†\ ççÏ•¸³ìŒ=Ÿ ¦÷Ñ«8. Ë>ÏO/­5‰¸$ß‘ ˜½K]?é¯'Óuð«ÝZˆñ#ÀÅ”0'¨¹ó¬¿iõ‰®dnõ¼l…éµ}1S.MíEÇ‚X“”—Fu¦X s“FôÞÑAi «lʯŸô¥óéÞXÒǪ„qÊ·FGÕ?ZZ¼¥;­§É³D4%!¼ÈÍ#‹§9D&9nVIÚ,¶|øŒ/üsXï.%‰"ÚˆI8Qó§¡â êV n‘f=$ügzÏ¿ÅÀ'z-­Þ\\éB;¿Ú,jV0ÄøOÏè(»¸£“[’y×Va¢v23ôà=iVIVb¯ø†0=è§EC@˜_†YÖ­mîm•®‰·N9úyRK‰ptjÒL¥<©…Æ­ueÕ¬#Fù ìÙ 8Îh—s#É<€F$cŒc¢¯AåFëû›Ô»ÔFþ¨½½VnõqÞÇ®*U¹ßø€ç ÷¥7Êìô8tøã‡c]öRÕ{f†&´´O27#éA—]šY‘GâÏÒÀ¤­œúƒÁ)CÓýÍf‡~’Û¹`VBˆsš|Ëg>³ Ó¢“‡~:{Ò4ᑞ‰(êt‹î¿¨[\¼HìŒhøavùœVwO·g–IdF2/ïøG÷>´Âèó$ÔÔ|³Çh•ØzÕ¸q€H¬O³H!˜@¥d?‰ycÒ†X€ç>bè:c_¬»\„u|qÝÀ ’ÛÈZMíÚ¢LzèköÊ;+[Ó¯e·Ee\«dƒùS8ñÉ:`'•5iò³»Ó¡œÜÚ@ÏÄ`”“É >ž™¬%æ¯âž8íÀGv%\çn|¾ž´xeŽÝ¨­N“&)©ÍÝòjtåÌ`ùZ­-ïtÀ®gý†ßF‡Rí=ž‰¡Åq#ôD¸ŒÔùŸl× Õ»E6¥zn.'ŒG#n#oå])} îs«’DÔâ1-°§i烞9öª¶œ.l`Š!™VvÜ®2G#'È`þFƒU£YTcJ<‘öGM2k©å e ç¸ÀûV«þˆÜ®‹ó«áÉò1éÅn]†axôM:;Kh#žò7Uhß%ÁbCôP úœÐ {AÚ GY0ïëwhªIîÔÄN|±õ5NT˜ü!»,cøÿðÑÞÜéý•Òdø ~(‚ï8ÙòÇßé\“U×.5 ömFf ±…cž¤ã©5xáI ëµ^¤å^@Í0ñ5{Ål†¢œÐî‹{f¹¹ͳÚh£³MýжÑï,æNHã98çž´oHâæ;Þ› 1äŽ<þÕ¸K”…u:X¸O+ú«‚¥æ—w¦Îcºˆ©'ñÃ{ƒLƒ€Ï5©¦›8p’jÐM@ ¯åçR‚<üÅ ÐÀ§¼ëšÓö>M—wXP~tÆ© fúY´:x@oq\÷ôik¨µ„ÆÛÆò„c¦k¤ºg=rÖz„6ò;À@$xGAö¬Õõ¤¶ÚѶ“'öƒ ž(KŒ[C9õO4âŸIË6Ú£´z3æiz§ùþuÎò7à8º¼Ôt»©\ÆdB’0»TcƒŸ*È# y> C5ı»+„LªóÆtÚ¼iœ¶ýí`†ˆLœ ÉãΤ·¹šmQ­ÆÇ€G½”ªþ<0CÈääÿœRüÆn^(Þ8§4˜/S3é—èmîÕ]6ÓÕO\ñV?éεþÓoÿ†kP«ÖÉ<­EÚ]¸×/uMj Ò[ö‡HÚ-ǰë× Í2mR=5‹é³H³Ë?“ùúçŠÍ;Iò]Ëù5 NïS®ne2?@ áG ô?¼V=©Î3F”œ±ðÛ™äƒõ󭾉Øè¥·Ií¡e›Šà.{Ÿ![3O³X£#ï ~ <ëI§Ø•-6Øä"¢‡]sV$F¯6x%˜Š¥ÑÈýW„™qcEM­ÂŽséYsY†áZÝm£›a#½nzúQq+vrôxÜònøÃp‘°tK"(Ä:†Õ[¾êÞaÃE 8?*aÁ7gv3¤Ñ¦ìÙT·‹oá##œõ­Só'/¬z?Béq‹Ýbê9†-íYGF9ƒóÁûT=¡’Ý5Hn®eTY 1Ë8È!NC Ø!“S/Z¾+Oí²-í®"X,r¿|ùóÇËíE;IØÝcH·ÿ¬[çýt^(ÉõÈéõÅfpqI®‘¨fŽç pÙ”Ò­’÷V†ÎâS ¹ ·˜ ½t-Üè¨ëß»G ݱ” \ÐsÉÞѽ.$Öï%Iöfš ²¾gÒ©4RÆvL˜qž¸¥ý6ß'§Óê#7±t¨”ȶvBtwáºäã¡*)Ù²öžÇ»w<ïEPJHK>i8儎£=Œ7¶ûf$\r¤g5œºìU”Ò‡´w·sÑO‰½3—‘æñäq)7eu TeðH ýÖþõF]:îCÛIÐí$RRÇ(Ç,dCÜÊ"7Çü4W³íqoªÄR&(ùY8×5¼6¤ŒfiÅ›•‹w!ŠœuÏHeÖïJ¹Ì™#þíu#Ó9ìçZÓ¶Øæ2H韮Gõ­HìÕ´½—·í$òî”ùxÉ;q™=1Ò„Û­¿%Å{“ZÍ–À5¤ÑfÅæšþ~ÕÎ}O;Ûko×Z¬ï5À·‰ q!P¤–S8?„}«7,C¨Ißng”oØ säH§o÷"xáyúà©|o#†X´ô"4Èðx›œÐ& ø®H0—”8,Ö=Hì¦Æ%¡Î²\béôRšòYn$C$¥°=I4ÞîãýžOµo…äQÆM¾·²K*Å%¤]žÏÊ­kÖKŽÞ"Ìgtß(Ï=äk[ìeÍÒF{i¶2@üéIRqÔùã «2[²‘Òe(9Ž+ªÇÕ¶d‰Üe˜þïüè«‹ÓÛ°$[D˜»ÇÚI&y?ZØY B>T¶GÈÔ!.Žü«;©-¶û+ˆZ5yW‰\d2ägoQÐÑ¡ƒûÏÔ£» ´7¿ dKw“ªÇ&±£s° ¸ ÐQ0ªˆècXïäÕišm½¥œrÍhnn%ÉHÀ™=1ëW[Iýc¼‘[ÛÀÁ÷2áéXr§gj8ímH¿§À¶ò4H¤*9}zV–2š úƒÕ$Œ_hõfÓn$·³ÓÜF­3‚Ab±Ï—§¹¬‰bÙ,ùf9$óOEûQÍš÷3_Øë(\½Ë0)‘ÿ 0ÞÄWwÒu:çE‰à“u´Pí%Î| s’zôë[Æí´U‰íŒÑÂûQ§é×WéyhÉ œ™L õ@鎟AQ½ìcNŽ4Ï|ÜÏ$yR¹Zr¤w±i^›NžGî~> ÆÇ ´‚#'=Mj-»+w-Ý„·„˜.{°ýÞžÆ5¹ÐL:……¶þ+¶º`Ò»H-ã]–΋4j:c?˜4GôiÞêÓܰðÇÀ} ùÛï”HäÞŽyr:tJÑðN>U#ª²ïQÏ^)†pÐå"DÎF<ê'Fç€G­UB!«;.p8ªi 䱯}Íi#,0£ òõÍsÒ­Ñ´M5€ÉgÓðÑcäË9î¯ê6Ï,p§ÄZÜq=»®õqî>üõ¶»Œ[vÆÊÞã½¶’vxùÉU9;O¡?Η”‚ã^äf¬Ø¤¬¬pA­“(ÑŸ ò4Œ»:ë·pÙ[5ôèÊðcÂdPH+Ÿcž>u·[þÐj­yð˳±#€¿#ÖIÊ_À>lËÓÇŠ?–}:â&D•lp»#ÐúлÙdF{€ áE,“ÝLíÇ$ ƒ´‘@ÙKS·¸³–DU3qæ<øéýùó£? 7ú“þaÝ$y­®2m>̽լÚMê‚Jã•eò©5ýf]]âiSj*¤ø±žOÜÓq•ÄBQ©‹ »VÚƒ©õ©;ÈÔA–éš…´éþî»pÜùà×^³Ô Ô,’]øÞ<¼¨× Ži9mo IB€ƒŸ©£Ög0uò¥ãì†í°¦°zŽ›{e©‹ù,fŽÙ¤NTí`Þý<ø¦pôÎ~±\hÚICj¦IÛüóÿ*¬ƒæ|èÐ^Ä#¦UŽ&úÎk˜"í±‡$2=>TPØ¡µ[¿t…ÙÁÇ·§Î•磷 \ƒO1.H9Ï_Z°¤µhwÉ„í“Ä/àɲ‘çÔcúÖwŒçž1OCéG;'ÖÍ×cÒÚm"h»Ñß1ý¢ç¦:qG¤ŠàYµ­”–ßSœ|ý1š¤âÛgKM±%'щԬßO¾ø{çdÇ‹» ŠbÉÖœ0,8AéY‹Ý×F³fYfÚ|ty‘nCÌ¡¢SПÄÕÔû)¨_‡Šê¶½"-׎Gò­ôÓ^2/m°gé—J²¾<µ¬Í Ÿ=¬2?5ÇÖ½ú6 &Ÿ{.?~ÃþtYG÷Ö2ò'¢qÿ{7±“"-¶AÐúÒ÷›[dŠQ½Gå Ý6âñÈ3æ:f› Ï€ÞÍUD+Ü«•§¯'œšP¡ˆ JÒ)„ Œw±m5Ê¿K*’ͦÆec!äs =3>LwfGq¬  ¹]HàV‡R»f‘m£O ɸ¶q“O¯ZJ|Iþpý+ò ’#Ëí%²hŽ#žòPŒ1·‘ÔŸ*aÛ£%ÚZmBæÞÝˬPG…BNIþTþÌêZ”7hÞâ!ÉÈ}|©©«…HN2~§´é–rÚÏlÎ¥‘Ø`©à«z\ÿU³Õ.5;ˆ!Ó.D‰i6“Ÿ> bƒ)v>µ2à $»àßvÁt>ÍÇL\^Èwgª¢ðדõ­ë÷©üU«9yé¶q®ÑF²Ä®G‰Mdn2G½/ ™•HƒÈéFû1¦Ã©êÄü¨MÀg9òÎ~•©¶¢è¬QRšLÒÉáÝ+“»„<õ=3òûÑ›+d°ï!BBîܧŒò9*gB–9Z ’aúͲxØ+Mc8îsÎ+/ ^ÊsÔ Ö›Oh®ôHà•HÞŒ­ÐŒcÖŸ˜³Ÿ«ðp}nâ‹Ä–,U6·äW,4(n¬#¹ïd‘äêˆ@9ûV›p‚¤ÅklƒšµÌ½²hÐä; `*ØÛÀ2zÐ$íÚ:0UI`äY}_[hîRÖчzä.}3ÅT!ºTfsÛ0ºÝµõž³s£¼\£`çÏÐjö™o ù–cŸh1oáXùŒùS…ÀŒ=ÒäÙi–ú,ĦÃ+ ÜÁ·=3þ|ªÍþ°D,‘>Òz°4›m»gJ)B;LÀ7Ó»´ŽÒã’Nj;}6YWqbqDßµQZM/­‘¥Ò5™Ó¢[³ïFðdƒÓž+¶[Æ‚ÊR  ‡{ §/ÝJ_c©áŽEGà ©$^\Ù\ ’ ÐB:çÏî W쮺-œ¶¨Å”Î΄õÁÆåNÒiHæú•D§QÒ¦Ü&]¬ üë È¿ipC§\¢¼]f]Ê“ê:TD!'»Ý# Ý劀‘!äá±VŠeÕ”$@+²øy2+—~’­¤½’Â+H?n®û‚œ§#Ú·iE¶RMºCt+{dI‘ZáGú@0F|³çK¤:Î'ŒorG_µsß<Áíö²ƒ[8Ç_C†?І&BÑ«œãùâ‡l&wQ3¤Í []Gª@¤,§dª<Ž85“ìö©w¦ßþÀ·w6@p#åŠw"N<ˆáÜæ¶«gA7 Ü‹`ŒíèFߨÀ¡w½ ¼K&ërƒ¶ +§’ÜŽž«I–8œ¥Fƒ±ºÚêZs[ÝL;àÄ(cè#îhÿÂCê>õÐL㣘êñºä Ö6æ7_klÎ7cŒÒøØÆ¡{¬ƒ¯iö·2Û\$ÐÈÑʇ†SŒQ@¦×(×iݶ»OØÝÅ ž]áðýñG{’{“2©ðä),ÐŒz:³<Š™EnƒjR3tÀnÞõb9'¯åC’è67b]jPÊÁC Ö«³Î±è¶×ÍÆ/Á>AØJsL1cVŽVý—»›Q–X’3!PÎøÏz•Ò{Ör#MªÉÜÇŸ©ëóÀ¢I=¶÷#M¢ZøBà Žâñb^´’äéIñF{SÕ›º—»8…˜úóÅgû-i.µÚ›TfÎ_¼fAyþ€}i¬+‘-DŸ车ìt]«µWiV×S·R›ØxdYöóÈõ5ɵNÌë:ÜÜÛliIî™0|c$ó}h’T-|x% §w,ªŒª}èmÓ9¥6×GEKÃ&Ó´Ù–æPÈbD‘Ô1À4F(ÐGµhm·&¾ïé1¦ä‚}A.»gëÞ€k­Ú¸‹Kw~ œýGJ¼2_aÖ¿äàÊvUŽÚêÚá3¹Sk|ºÏùÑ}án, ¸ç ßzq?bG…˜ SÇ­9FáEd¡_-Ϊ°îß(|>•8°{UÜbSåå[EÕ‚<´nSþâ¹—kn¯ÛµIn1hU0ü''“ùâ¤ÚØì¸^äÐV7Ü<ª9µH…äV©–”‚XœSHÇÈüˆî£DÒB¹n¥G쥧w§ütÈD³ò©è£§õ­cÉÏ/eûa%¥ÖœWâP˹1«éÁÇO­c h#vR2ÃŒŽùTÕ'iŸÐébmü…PØŠE8‹ørç@µ=ò‘îcr®¹Ve |ùëK㸻GK^ã(zmó.‡è‘ˆdPB«¨$uBz–xúÖ÷õ™þû×ESVx©'O³[Ãq$a¦VTaŽNj…ÜtWRÌ;´`ËÐg¨4¯“.‡Š“aaT–òŽ"7$òqœcšØhZ›®›µüHƒ4ѸŒ`u!и,\õ'5$²HCÜyPäm> ö¶óÜÌQ$Oï!ýMj­v[ZEhŽå#A“îiì*•ˆfmʉ H¨crJÆNqò5i5 ¨®Íâ'çZŸ(Ì{"»Öƒ´ýk?u~óI±gÌŸ*J(uÈK(–xwÓ ÜŒù~u&ÙÛ»]Aä¶¾N::1,ÊyÆ8ãçLia''(ŠksFŠskúåt;?úýô׎|H€Xú{½bõ}rãYºOµQF¢ëDÕ5µvBœÖù.op Ôš‚¸¼Wh"©Ð7BiHqØöNzì1ÙÛ{Á4–—’—y­Þ(Ô¶v2?ôЍ·EóC›RÊÚûoÒ$á_Óu_Õ-ïq‘‚G¨£ZÇéiáø{Tœø‰ç“LbKkLSõ|ªyUx2ê·±i$,~uÛt8ûÆ'È+)Ïü"Šqì/#\~é¥@7öª,Yœ1«L„9«![yCçô©Ã£¨Î ­D¦)1*ÌTÁaÁJæÝ½Öìâ½³²µÚY[¼”¯¾Íi¤âÊMØý5­DÏ“ž@Ï• ³’q«1òF%ä#€=s—”·4™¡šò xÚIxUšçÆ£5ÕÜê·S=¹?³Ví åÒ§m[@µIpE¥Ý4Ùœ)?ÅKs#[< µ“ó<в󓓷 ¨iS_Ÿêjû)¨[Û”vŠ9n$ý ÈEÎ:zœWBImukµ¸DeeÁ_íFÄ’UG#[šsÌç}tsM_I¿µ[ø\‚½!u?G·øhëÝOÐÑc±¡}VHæÊ漆µ(Å»…Jpì3)ÛÉóò @o7F):QMFY²eà÷Ê>çÌ{9¬Ñö‡³Þ\ ›=¦V H™>õšré6P[™æ|³•ïÿ*¢è&r2SHÀ/4»\Ž_ÈôýÖ )G.ì– ž—ZÙfDXîÇ…ó•aó¦ñ?m e\Ž»Ç Á< Bã:rN>ßûÖä ¬¬çkÞ3Cÿ³_ÆßÛùѹ¡Òa³iÊ5Ž5þíž´l:h(7GQªÉ<ª8Ý$Ö­b >8ÈèæW$æ¨dí¡8 ¸tls@ŽUè\ËN²ÅzŽØ"çR’æS$®d‘¼ÍDdb¹~¥/&äíŒÆ¢¶Ç¤B¡îäÇáŒu# £‘]¥½ºÄ€*(à Ì•ð\%ÍQ¢™'‰¶¼lqRßKky*ÝÛ᪠Ä8ØÞO:ı½É ¸µ/my(ÜKàÉ;P~t8ɽ³ž)˜ô%99;dÀîuÄkè›hŒ0ÄÊì7Ò´Œ#R‡kr¤ði{’­¹3J…’Ù¨¤(‡<Ô!NU-âf˜VýkH¦E;“¼G2ÄßêÝrW:ígg–ü6§h›n~ÑW÷×ûЬލÖ8Úd=Õ[åØ˜£I4YÝ´R2âCøùŠk hm¤2qá,ÜùyW77¤#9€iœ_H®£™"xQ$‰v–ÜrYU <ʮި’Þ)ªÝØT#'éœþTÆågWO—n%åØ]\ÅqÞF AÃå]+@¼ž{hæ`QqÁ>u´é#Ÿž-ä’'×ÿj™=ч˜øUþL'b-mtʳÍÙE%æ»Ý1/lÎU›þI aV9©— Y‚­ÔªŸ„9åš¹¤`êÖcwéŸñ <{gEžå{áà/âjÍês4º“’zVN‚bበšžÒÜÞ]ÎybzP#| ÊT¹ ´2*új³§Ü«Hlää0,¹öê?¯Þ‹8Ê™ŒJ6jq@’G¯f-åu¸VJ©ëŽ4o"’i.CqÞ~öxÏSÔŸj¡­êg mžž&ç û:c4ë¡->;ÌŸÀÎ G$ªG&¹§bÆÂ’9ýŒR;áRi×Q]ÆMÆ@ÃÿœÖãÀK2\Y·Ïlª†=¼p*¹¿’CŽEi@­ö¸ ÛØdf¹™•ØePsǽB&É!xQYòiñVTšc,ŸîŽ”Õ8ý«FKVĵÌC;€ÇÖ¾’³” TŽa˜ñá?ÃíVŠ-Fê™Câ^õã(+ÿµBË) œŸ1çUD»Ž\P²u Øõ¦4A\±=+ieÐÑÃ$ÍÀœþ” (9ÝP| Ó1ºÖ”t½T\À¡mæ$œtVóäÔ$#jµ/>ì>7\º„ÞÛ‘Õ°2˜ŠÕté4û¬0dt扊^ —^7/$úÈ­q±Ô´®á¨â–öéfAt±”ÐL«nFþKæ97[Ê@Ž@Të@¿RݶGL`’Q¦!¨‹ÝhÎ\0D4C¿\\H£;‘Óp¬áà½Gt‘ƒLåIÚXžkYÙM1{—Ô¥çl þmý>ôTå“-#zšx Ë¼yŠ©ò‚G†ViÊ  5Ù÷3ÙÊÀí,çkyŒ?­VÉ2ËŠ ÀÆIY¶L½W÷[ûUèÑ]ÒR¸’3çÎ>½hýƒEµXæeY„0 @çPKXïæ[yCÀ­àÏô5qúf‹p´º"­Ö@ÍÁÇ<¥dä{‹é䜣–L‚Üu<J¼ÊÒHž[[“&¶Ó¤{ŽêRÊçtz-"ÞÒà‘Oï7'Õ¬8#܊Ϩ“öÄ'’Í—i-rªTí%¡Ô4×–,‰b^õqÁuoéGÌ“¸›SMœå¥wrÎÌÌz’rjÕŠw·(§ ä×9·Ù×H9<¬T)<ª‡?îšÂèÛì­­íŠz®GÊ´d±hÛ/b#œ2‘ô5ôŒ.$cpÉö5Óé’¿ÈÓLÅ/Èõ¨Bxš)Žâ¶a¡ˆôZ´Šlá€|¯•'‚$2JÙô¢ElÊö“RÝ'tÊUÎ9Ê„Ã&Ö4®¢W!ܨþI¯àP±xŽ¡õ¬-kpÑÈe8 Ðß(¾™$ڧ´lƒÎêî—“††BÊÜ…?º}+Xã\‘Í·³ä^ͬ‚ìÌF# c® OÚ)á’ïláTŸêÕ¹yf´Ž­¬g6בJ?tæº6–¢[4BpOCèkî‚jøJH!o£â–MØ`@ô«ÿð-0£Ÿ<ŽLä×D°pNx?ʆh\M9ÿpUb/7`AÖºEìôK5^r§>ME)˜á¹õªsœçåQôXwbʤðzŠ×ö|·`8«ÇÙS,Ýx_¼^8Áú 5åO™^kE ‰/>Ò€ê(©,¬ª=O¯‰¿½Wý‘·ÿ ÿ€¥tbˆkm°ÇWÑÎt•ÕT\‚gåDå$ÃÏðQ¢¸}¡-Xˆ¤à`³mâ.Ñ2}&g#¸P—2ªŒröÍÓáŒiqϱ{Ü•Ý,×-•à|߀ü©ƒý oèh~X´å>/¥h¢ÆŸÿÞ¿þªÿ:úKMPö,‚jÑLó°J€*°äf¨Ñª!u1øs×J-$äÕĦ+1ÃóBÚm@¬„²¯@|¨¾ .Úx5àÝ©þt:oZKQõ B-[HåycÖ±±‘âÖAŠîŒ3U‹’³ñÑŸ{‰^2ÉøFØò:‚ \. ÒÅJM°µ³ NïúfÎ<ù¡—ìLç'ÌÔ}䬤æºFŠìÚ4lN[ƒšÌ{ ªÿhI1†Ï‹jLS(å#ÿÙbygfoot-2.3.2/Makefile.in0000644000175000017500000027067011225071373014225 0ustar eliaselias# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ TODO acconfig.h depcomp install-sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GST_CFLAGS = @GST_CFLAGS@ GST_LIBS = @GST_LIBS@ HAVE_GSTREAMER = @HAVE_GSTREAMER@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALEDIR = @LOCALEDIR@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -Wall #-fprofile-arcs -ftest-coverage -pg SUBDIRS = src po EXTRA_DIST = \ autogen.sh \ bygfoot.glade \ bygfoot.gladep SUPPORT_DIRS = support_files support_files/lg_commentary \ support_files/pixmaps support_files/pixmaps/live_game \ support_files/pixmaps/symbols support_files/pixmaps/history \ support_files/strategy support_files/names support_files/hints \ support_files/definitions support_files/definitions/europe \ support_files/definitions/europe/israel \ support_files/definitions/europe/norway \ support_files/definitions/europe/turkey \ support_files/definitions/europe/belgium \ support_files/definitions/europe/andorra \ support_files/definitions/europe/bulgaria \ support_files/definitions/europe/romania \ support_files/definitions/europe/albania \ support_files/definitions/europe/luxembourg \ support_files/definitions/europe/greece \ support_files/definitions/europe/n_ireland \ support_files/definitions/europe/belarus \ support_files/definitions/europe/fyr_macedonia \ support_files/definitions/europe/moldova \ support_files/definitions/europe/estonia \ support_files/definitions/europe/russia \ support_files/definitions/europe/azerbaijan \ support_files/definitions/europe/scotland \ support_files/definitions/europe/netherlands \ support_files/definitions/europe/england \ support_files/definitions/europe/slovakia \ support_files/definitions/europe/wales \ support_files/definitions/europe/bosnia_herzegovina \ support_files/definitions/europe/armenia \ support_files/definitions/europe/montenegro \ support_files/definitions/europe/georgia \ support_files/definitions/europe/ireland \ support_files/definitions/europe/lithuania \ support_files/definitions/europe/slovenia \ support_files/definitions/europe/latvia \ support_files/definitions/europe/denmark \ support_files/definitions/europe/italy \ support_files/definitions/europe/croatia \ support_files/definitions/europe/cyprus \ support_files/definitions/europe/sweden \ support_files/definitions/europe/san_marino \ support_files/definitions/europe/czech \ support_files/definitions/europe/portugal \ support_files/definitions/europe/malta \ support_files/definitions/europe/france \ support_files/definitions/europe/ukraine \ support_files/definitions/europe/kazakhstan \ support_files/definitions/europe/iceland \ support_files/definitions/europe/germany \ support_files/definitions/europe/serbia \ support_files/definitions/europe/switzerland \ support_files/definitions/europe/austria \ support_files/definitions/europe/faroe_islands \ support_files/definitions/europe/spain \ support_files/definitions/europe/finland \ support_files/definitions/europe/hungary \ support_files/definitions/europe/poland \ support_files/definitions/miscellaneous \ support_files/definitions/miscellaneous/europe \ support_files/definitions/miscellaneous/wc06 \ support_files/definitions/miscellaneous/euro08 \ support_files/definitions/miscellaneous/fifa \ support_files/definitions/miscellaneous/eu \ support_files/definitions/miscellaneous/misc \ support_files/definitions/south_america \ support_files/definitions/south_america/uruguay \ support_files/definitions/south_america/ecuador \ support_files/definitions/south_america/brazil \ support_files/definitions/south_america/americas \ support_files/definitions/south_america/chile \ support_files/definitions/south_america/bolivia \ support_files/definitions/south_america/colombia \ support_files/definitions/south_america/argentina \ support_files/definitions/south_america/paraguay \ support_files/definitions/south_america/peru \ support_files/definitions/south_america/venezuela \ support_files/definitions/australia \ support_files/definitions/australia/australia \ support_files/definitions/australia/aus_victoria \ support_files/definitions/north_america \ support_files/definitions/north_america/mexico \ support_files/definitions/north_america/usa \ support_files/definitions/north_america/short_leagues_north_and_central_america \ support_files/definitions/asia \ support_files/definitions/asia/japan support_files/mmedia \ support_files/mmedia/pics support_files/news SUPPORT_FILES = support_files/lg_commentary/lg_commentary_el.xml \ support_files/lg_commentary/lg_commentary_ro.xml \ support_files/lg_commentary/lg_commentary_en.xml \ support_files/lg_commentary/lg_commentary_pt.xml \ support_files/lg_commentary/lg_commentary_tr.xml \ support_files/lg_commentary/lg_commentary_fr.xml \ support_files/lg_commentary/lg_commentary_bg.xml \ support_files/lg_commentary/lg_commentary_de.xml \ support_files/lg_commentary/lg_commentary_sv.xml \ support_files/lg_commentary/lg_commentary_nl.xml \ support_files/lg_commentary/lg_commentary_pl.xml \ support_files/lg_commentary/lg_commentary_it.xml \ support_files/pixmaps/live_game/goal_own.png \ support_files/pixmaps/live_game/save.png \ support_files/pixmaps/live_game/structure_change.png \ support_files/pixmaps/live_game/stadium_riot.png \ support_files/pixmaps/live_game/foul.png \ support_files/pixmaps/live_game/scoring_chance.png \ support_files/pixmaps/live_game/injury_temp.png \ support_files/pixmaps/live_game/lost_possession.png \ support_files/pixmaps/live_game/red.png \ support_files/pixmaps/live_game/yellow.png \ support_files/pixmaps/live_game/miss.png \ support_files/pixmaps/live_game/stadium_fire.png \ support_files/pixmaps/live_game/penalty.png \ support_files/pixmaps/live_game/cross_bar.png \ support_files/pixmaps/live_game/whistle.png \ support_files/pixmaps/live_game/injury.png \ support_files/pixmaps/live_game/stadium_brkn.png \ support_files/pixmaps/live_game/goal.png \ support_files/pixmaps/live_game/post.png \ support_files/pixmaps/live_game/header.png \ support_files/pixmaps/live_game/sub.png \ support_files/pixmaps/symbols/flag_netherlands.png \ support_files/pixmaps/symbols/flag_zambia.png \ support_files/pixmaps/symbols/flag_algeria.png \ support_files/pixmaps/symbols/flag_bahrain.png \ support_files/pixmaps/symbols/flag_botswana.png \ support_files/pixmaps/symbols/flag_canada.png \ support_files/pixmaps/symbols/flag_uae.png \ support_files/pixmaps/symbols/flag_euro08.png \ support_files/pixmaps/symbols/flag_sm.png \ support_files/pixmaps/symbols/flag_australia.png \ support_files/pixmaps/symbols/flag_tahiti.png \ support_files/pixmaps/symbols/flag_brazil.png \ support_files/pixmaps/symbols/flag_turkey.png \ support_files/pixmaps/symbols/flag_rsa.png \ support_files/pixmaps/symbols/flag_azerbaijan.png \ support_files/pixmaps/symbols/flag_greece.png \ support_files/pixmaps/symbols/flag_malta.png \ support_files/pixmaps/symbols/flag_germany.png \ support_files/pixmaps/symbols/flag_vietnam.png \ support_files/pixmaps/symbols/flag_bosnia_herzegovina.png \ support_files/pixmaps/symbols/flag_saudi_arabia.png \ support_files/pixmaps/symbols/flag_russia.png \ support_files/pixmaps/symbols/flag_kittsnev.png \ support_files/pixmaps/symbols/flag_slovakia.png \ support_files/pixmaps/symbols/flag_colombia.png \ support_files/pixmaps/symbols/flag_ghana.png \ support_files/pixmaps/symbols/flag_ecuador.png \ support_files/pixmaps/symbols/flag_china.png \ support_files/pixmaps/symbols/flag_vanuatu.png \ support_files/pixmaps/symbols/flag_bolivia.png \ support_files/pixmaps/symbols/flag_portugal.png \ support_files/pixmaps/symbols/flag_romania.png \ support_files/pixmaps/symbols/flag_egypt.png \ support_files/pixmaps/symbols/flag_oman.png \ support_files/pixmaps/symbols/flag_iraq.png \ support_files/pixmaps/symbols/flag_cameroon.png \ support_files/pixmaps/symbols/flag_france.png \ support_files/pixmaps/symbols/flag_morocco.png \ support_files/pixmaps/symbols/flag_fyr_macedonia.png \ support_files/pixmaps/symbols/flag_angola.png \ support_files/pixmaps/symbols/flag_lithuania.png \ support_files/pixmaps/symbols/flag_kenya.png \ support_files/pixmaps/symbols/flag_es.png \ support_files/pixmaps/symbols/flag_england.png \ support_files/pixmaps/symbols/flag_lie.png \ support_files/pixmaps/symbols/flag_eu.png \ support_files/pixmaps/symbols/flag_sudan.png \ support_files/pixmaps/symbols/flag_peru.png \ support_files/pixmaps/symbols/flag_tunisia.png \ support_files/pixmaps/symbols/flag_turkmenistan.png \ support_files/pixmaps/symbols/flag_macedonia.png \ support_files/pixmaps/symbols/flag_croatia.png \ support_files/pixmaps/symbols/flag_el_salvador.png \ support_files/pixmaps/symbols/flag_solomon.png \ support_files/pixmaps/symbols/flag_usa.png \ support_files/pixmaps/symbols/flag_switzerland.png \ support_files/pixmaps/symbols/flag_panama.png \ support_files/pixmaps/symbols/flag_cdi.png \ support_files/pixmaps/symbols/flag_costa_rica.png \ support_files/pixmaps/symbols/flag_liberia.png \ support_files/pixmaps/symbols/flag_austria.png \ support_files/pixmaps/symbols/flag_lux.png \ support_files/pixmaps/symbols/flag_paraguay.png \ support_files/pixmaps/symbols/flag_togo.png \ support_files/pixmaps/symbols/flag_faroe_islands.png \ support_files/pixmaps/symbols/flag_rwanda.png \ support_files/pixmaps/symbols/flag_jordan.png \ support_files/pixmaps/symbols/flag_latvia.png \ support_files/pixmaps/symbols/flag_fiji.png \ support_files/pixmaps/symbols/map_ireland.png \ support_files/pixmaps/symbols/flag_honduras.png \ support_files/pixmaps/symbols/wc_samerica.png \ support_files/pixmaps/symbols/flag_thailand.png \ support_files/pixmaps/symbols/wc_africa.png \ support_files/pixmaps/symbols/flag_cyprus.png \ support_files/pixmaps/symbols/flag_kyrgyzstan.png \ support_files/pixmaps/symbols/flag_albania.png \ support_files/pixmaps/symbols/flag_nz.png \ support_files/pixmaps/symbols/flag_cpv.png \ support_files/pixmaps/symbols/flag_ch.png \ support_files/pixmaps/symbols/flag_n_ireland.png \ support_files/pixmaps/symbols/flag_belarus.png \ support_files/pixmaps/symbols/flag_liechtenstein.png \ support_files/pixmaps/symbols/flag_korea.png \ support_files/pixmaps/symbols/flag_moldova.png \ support_files/pixmaps/symbols/flag_sri_lanka.png \ support_files/pixmaps/symbols/flag_maldives.png \ support_files/pixmaps/symbols/flag_serbia.png \ support_files/pixmaps/symbols/flag_argentina.png \ support_files/pixmaps/symbols/flag_hongkong.png \ support_files/pixmaps/symbols/flag_malawi.png \ support_files/pixmaps/symbols/flag_cz.png \ support_files/pixmaps/symbols/flag_yemen.png \ support_files/pixmaps/symbols/wc_namerica.png \ support_files/pixmaps/symbols/flag_israel.png \ support_files/pixmaps/symbols/flag_italy.png \ support_files/pixmaps/symbols/flag_india.png \ support_files/pixmaps/symbols/flag_mexico.png \ support_files/pixmaps/symbols/flag_luxembourg.png \ support_files/pixmaps/symbols/flag_czech.png \ support_files/pixmaps/symbols/flag_venezuela.png \ support_files/pixmaps/symbols/flag_dk.png \ support_files/pixmaps/symbols/wc_oceania.png \ support_files/pixmaps/symbols/flag_guatemala.png \ support_files/pixmaps/symbols/flag_tajikistan.png \ support_files/pixmaps/symbols/flag_tritob.png \ support_files/pixmaps/symbols/flag_burkina_faso.png \ support_files/pixmaps/symbols/flag_scotland.png \ support_files/pixmaps/symbols/flag_guinea.png \ support_files/pixmaps/symbols/flag_royal_league.png \ support_files/pixmaps/symbols/flag_spain.png \ support_files/pixmaps/symbols/wc_asia.png \ support_files/pixmaps/symbols/flag_hungary.png \ support_files/pixmaps/symbols/flag_lebanon.png \ support_files/pixmaps/symbols/flag_wc06.png \ support_files/pixmaps/symbols/flag_sweden.png \ support_files/pixmaps/symbols/flag_andorra.png \ support_files/pixmaps/symbols/flag_san_marino.png \ support_files/pixmaps/symbols/flag_singapore.png \ support_files/pixmaps/symbols/flag_aus_victoria.png \ support_files/pixmaps/symbols/flag_iran.png \ support_files/pixmaps/symbols/flag_japan.png \ support_files/pixmaps/symbols/flag_benin.png \ support_files/pixmaps/symbols/wc_europe.png \ support_files/pixmaps/symbols/flag_uganda.png \ support_files/pixmaps/symbols/flag_zimbabwe.png \ support_files/pixmaps/symbols/flag_libya.png \ support_files/pixmaps/symbols/flag_malaysia.png \ support_files/pixmaps/symbols/flag_estonia.png \ support_files/pixmaps/symbols/flag_kuwait.png \ support_files/pixmaps/symbols/flag_congo.png \ support_files/pixmaps/symbols/flag_korea_dpr.png \ support_files/pixmaps/symbols/flag_qatar.png \ support_files/pixmaps/symbols/flag_vingren.png \ support_files/pixmaps/symbols/flag_indonesia.png \ support_files/pixmaps/symbols/flag_wales.png \ support_files/pixmaps/symbols/flag_scg.png \ support_files/pixmaps/symbols/flag_armenia.png \ support_files/pixmaps/symbols/flag_poland.png \ support_files/pixmaps/symbols/flag_georgia.png \ support_files/pixmaps/symbols/flag_ireland.png \ support_files/pixmaps/symbols/flag_norway.png \ support_files/pixmaps/symbols/flag_uzbekistan.png \ support_files/pixmaps/symbols/flag_denmark.png \ support_files/pixmaps/symbols/flag_mali.png \ support_files/pixmaps/symbols/flag_jamaica.png \ support_files/pixmaps/symbols/flag_bulgaria.png \ support_files/pixmaps/symbols/flag_syria.png \ support_files/pixmaps/symbols/flag_bh.png \ support_files/pixmaps/symbols/flag_congodr.png \ support_files/pixmaps/symbols/flag_laos.png \ support_files/pixmaps/symbols/flag_fi.png \ support_files/pixmaps/symbols/flag_ukraine.png \ support_files/pixmaps/symbols/flag_iceland.png \ support_files/pixmaps/symbols/flag_fifa.png \ support_files/pixmaps/symbols/flag_finland.png \ support_files/pixmaps/symbols/flag_montenegro.png \ support_files/pixmaps/symbols/flag_senegal.png \ support_files/pixmaps/symbols/flag_nigeria.png \ support_files/pixmaps/symbols/flag_slovenia.png \ support_files/pixmaps/symbols/flag_palestine.png \ support_files/pixmaps/symbols/flag_chile.png \ support_files/pixmaps/symbols/flag_belgium.png \ support_files/pixmaps/symbols/flag_chtaipei.png \ support_files/pixmaps/symbols/flag_gabon.png \ support_files/pixmaps/symbols/flag_kazakhstan.png \ support_files/pixmaps/symbols/flag_uruguay.png \ support_files/pixmaps/history/reach_cup_round.png \ support_files/pixmaps/history/fire_failure.png \ support_files/pixmaps/history/relegated.png \ support_files/pixmaps/history/champion.png \ support_files/pixmaps/history/end_season.png \ support_files/pixmaps/history/start_game.png \ support_files/pixmaps/history/win_final.png \ support_files/pixmaps/history/fire_finance.png \ support_files/pixmaps/history/promoted.png \ support_files/pixmaps/history/job_offer.png \ support_files/pixmaps/history/lose_final.png \ support_files/pixmaps/menu_league_results.png \ support_files/pixmaps/menu_fixtures.png \ support_files/pixmaps/menu_match_stats.png \ support_files/pixmaps/bygfoot_splash2.png \ support_files/pixmaps/menu_player_move_to_ya.png \ support_files/pixmaps/menu_browse_tms.png \ support_files/pixmaps/transfers.png \ support_files/pixmaps/menu_player_put_transfer.png \ support_files/pixmaps/menu_fixtures_comp.png \ support_files/pixmaps/menu_player_remove_transfer.png \ support_files/pixmaps/menu_player_move_to_team.png \ support_files/pixmaps/table_down.png \ support_files/pixmaps/player_status_ban.png \ support_files/pixmaps/boost_off.png \ support_files/pixmaps/preview.png \ support_files/pixmaps/boost_on.png \ support_files/pixmaps/bygfoot_splash.png \ support_files/pixmaps/menu_structure.png \ support_files/pixmaps/menu_season_res.png \ support_files/pixmaps/menu_mmatches.png \ support_files/pixmaps/style_all_atk.png \ support_files/pixmaps/menu_stadium.png \ support_files/pixmaps/menu_rearrange.png \ support_files/pixmaps/menu_player_info.png \ support_files/pixmaps/menu_save_geometry.png \ support_files/pixmaps/style_atk.png \ support_files/pixmaps/player_status_injury.png \ support_files/pixmaps/menu_physio.png \ support_files/pixmaps/player_status_cold.png \ support_files/pixmaps/boost_anti.png \ support_files/pixmaps/menu_player_browse.png \ support_files/pixmaps/menu_league_stats.png \ support_files/pixmaps/menu_last_match.png \ support_files/pixmaps/decrease_red.png \ support_files/pixmaps/new_week.png \ support_files/pixmaps/player_status_hot.png \ support_files/pixmaps/style_all_def.png \ support_files/pixmaps/increase_green.png \ support_files/pixmaps/menu_finances.png \ support_files/pixmaps/menu_boost.png \ support_files/pixmaps/menu_player_fire.png \ support_files/pixmaps/menu_table.png \ support_files/pixmaps/style_bal.png \ support_files/pixmaps/menu_player_contract.png \ support_files/pixmaps/style_def.png \ support_files/pixmaps/bygfoot_icon.png \ support_files/pixmaps/menu_player_shoots.png \ support_files/pixmaps/menu_youth_academy.png \ support_files/pixmaps/menu_scout.png \ support_files/pixmaps/menu_style.png \ support_files/pixmaps/menu_history.png \ support_files/pixmaps/table_stay.png \ support_files/pixmaps/table_up.png \ support_files/pixmaps/player_status_yellow.png \ support_files/strategy/strategy_defend.xml \ support_files/strategy/strategy_gy.xml \ support_files/strategy/strategy_gy2.xml \ support_files/strategy/strategy_fit.xml \ support_files/strategy/strategy_attack1.xml \ support_files/strategy/strategy_attack2.xml \ support_files/strategy/strategy_defence.xml \ support_files/strategy/strategy_normal2.xml \ support_files/names/player_names_portugal.xml \ support_files/names/player_names_belgium.xml \ support_files/names/player_names_sweden.xml \ support_files/names/player_names_romania.xml \ support_files/names/player_names_japan.xml \ support_files/names/player_names_netherlands.xml \ support_files/names/player_names_france.xml \ support_files/names/player_names_serbia.xml \ support_files/names/player_names_latinoamerica.xml \ support_files/names/player_names_argentina.xml \ support_files/names/player_names_england.xml \ support_files/names/player_names_peru.xml \ support_files/names/player_names_poland.xml \ support_files/names/player_names_norway.xml \ support_files/names/player_names_israel.xml \ support_files/names/player_names_denmark.xml \ support_files/names/player_names_italy.xml \ support_files/names/player_names_brazil.xml \ support_files/names/player_names_turkey.xml \ support_files/names/player_names_australia.xml \ support_files/names/player_names_bulgaria.xml \ support_files/names/player_names_usa.xml \ support_files/names/player_names_greece.xml \ support_files/names/player_names_czech.xml \ support_files/names/player_names_ukraine.xml \ support_files/names/player_names_germany.xml \ support_files/names/player_names_russia.xml \ support_files/names/player_names_scotland.xml \ support_files/names/player_names_spain.xml \ support_files/names/player_names_finland.xml \ support_files/names/player_names_hungary.xml \ support_files/names/player_names_general.xml \ support_files/names/player_names_latvia.xml \ support_files/hints/bygfoot_hints_zh \ support_files/hints/bygfoot_hints_en \ support_files/hints/bygfoot_hints_da \ support_files/hints/bygfoot_hints_tr \ support_files/hints/bygfoot_hints_es \ support_files/hints/bygfoot_hints_fr \ support_files/hints/bygfoot_hints_bg \ support_files/hints/bygfoot_hints_de \ support_files/hints/bygfoot_hints_sv \ support_files/hints/bygfoot_hints_nl \ support_files/hints/bygfoot_hints_it \ support_files/hints/bygfoot_hints_el \ support_files/hints/bygfoot_hints_ro \ support_files/definitions/europe/israel/cup_israel_prom_games1.xml \ support_files/definitions/europe/israel/country_israel.xml \ support_files/definitions/europe/israel/league_israel1.xml \ support_files/definitions/europe/israel/league_israel2.xml \ support_files/definitions/europe/israel/league_israel3.xml \ support_files/definitions/europe/israel/league_israel4a.xml \ support_files/definitions/europe/israel/league_israel4b.xml \ support_files/definitions/europe/israel/cup_israel_cup.xml \ support_files/definitions/europe/norway/cup_norway_kvalik.xml \ support_files/definitions/europe/norway/cup_norway_nm.xml \ support_files/definitions/europe/norway/country_norway.xml \ support_files/definitions/europe/norway/league_norway1.xml \ support_files/definitions/europe/norway/league_norway2.xml \ support_files/definitions/europe/norway/league_norway3a.xml \ support_files/definitions/europe/norway/league_norway3b.xml \ support_files/definitions/europe/norway/league_norway3c.xml \ support_files/definitions/europe/norway/league_norway3d.xml \ support_files/definitions/europe/turkey/cup_turkey_prom_games1.xml \ support_files/definitions/europe/turkey/cup_turkey_supercup.xml \ support_files/definitions/europe/turkey/cup_turkey_kupasi.xml \ support_files/definitions/europe/turkey/country_turkey.xml \ support_files/definitions/europe/turkey/league_turkey1.xml \ support_files/definitions/europe/turkey/league_turkey2.xml \ support_files/definitions/europe/turkey/league_turkey3a.xml \ support_files/definitions/europe/turkey/league_turkey3b.xml \ support_files/definitions/europe/turkey/league_turkey3c.xml \ support_files/definitions/europe/turkey/league_turkey3d.xml \ support_files/definitions/europe/turkey/league_turkey3e.xml \ support_files/definitions/europe/belgium/cup_belgium_eindronde2.xml \ support_files/definitions/europe/belgium/cup_belgium_supercup.xml \ support_files/definitions/europe/belgium/cup_belgium_beker.xml \ support_files/definitions/europe/belgium/cup_belgium_eindronde3.xml \ support_files/definitions/europe/belgium/cup_belgium_eindronde4.xml \ support_files/definitions/europe/belgium/country_belgium.xml \ support_files/definitions/europe/belgium/league_belgium1.xml \ support_files/definitions/europe/belgium/league_belgium2.xml \ support_files/definitions/europe/belgium/league_belgium3a.xml \ support_files/definitions/europe/belgium/cup_belgium.xml \ support_files/definitions/europe/belgium/league_belgium3b.xml \ support_files/definitions/europe/belgium/league_belgium4a.xml \ support_files/definitions/europe/belgium/league_belgium4b.xml \ support_files/definitions/europe/belgium/league_belgium4c.xml \ support_files/definitions/europe/belgium/league_belgium4d.xml \ support_files/definitions/europe/andorra/cup_andorra_prom_games1.xml \ support_files/definitions/europe/andorra/cup_andorra_supercup.xml \ support_files/definitions/europe/andorra/cup_andorra_cup.xml \ support_files/definitions/europe/andorra/country_andorra.xml \ support_files/definitions/europe/andorra/league_andorra1.xml \ support_files/definitions/europe/andorra/league_andorra2.xml \ support_files/definitions/europe/bulgaria/cup_bulgaria_national.xml \ support_files/definitions/europe/bulgaria/cup_supercup_bulgaria.xml \ support_files/definitions/europe/bulgaria/cup_bulgaria_prom_games2.xml \ support_files/definitions/europe/bulgaria/country_bulgaria.xml \ support_files/definitions/europe/bulgaria/league_bulgaria1.xml \ support_files/definitions/europe/bulgaria/league_bulgaria2a.xml \ support_files/definitions/europe/bulgaria/league_bulgaria2b.xml \ support_files/definitions/europe/bulgaria/league_bulgaria3a.xml \ support_files/definitions/europe/bulgaria/league_bulgaria3b.xml \ support_files/definitions/europe/bulgaria/league_bulgaria3c.xml \ support_files/definitions/europe/bulgaria/league_bulgaria3d.xml \ support_files/definitions/europe/romania/cup_romania_supercup.xml \ support_files/definitions/europe/romania/league_romania3e.xml \ support_files/definitions/europe/romania/league_romania3f.xml \ support_files/definitions/europe/romania/cup_romania_prom_games3.xml \ support_files/definitions/europe/romania/cup_romania_coupe.xml \ support_files/definitions/europe/romania/country_romania.xml \ support_files/definitions/europe/romania/league_romania1.xml \ support_files/definitions/europe/romania/league_romania2a.xml \ support_files/definitions/europe/romania/cup_romania_prom_games4.xml \ support_files/definitions/europe/romania/league_romania2b.xml \ support_files/definitions/europe/romania/league_romania3a.xml \ support_files/definitions/europe/romania/league_romania3b.xml \ support_files/definitions/europe/romania/league_romania3c.xml \ support_files/definitions/europe/romania/league_romania3d.xml \ support_files/definitions/europe/albania/cup_albania_prom_games1.xml \ support_files/definitions/europe/albania/cup_albania_supercup.xml \ support_files/definitions/europe/albania/cup_albania_cup.xml \ support_files/definitions/europe/albania/country_albania.xml \ support_files/definitions/europe/albania/league_albania1.xml \ support_files/definitions/europe/albania/league_albania2.xml \ support_files/definitions/europe/albania/league_albania3a.xml \ support_files/definitions/europe/albania/league_albania3b.xml \ support_files/definitions/europe/luxembourg/league_luxembourg3b.xml \ support_files/definitions/europe/luxembourg/cup_luxembourg_cup.xml \ support_files/definitions/europe/luxembourg/country_luxembourg.xml \ support_files/definitions/europe/luxembourg/league_luxembourg1.xml \ support_files/definitions/europe/luxembourg/league_luxembourg2.xml \ support_files/definitions/europe/luxembourg/league_luxembourg3a.xml \ support_files/definitions/europe/greece/cup_greece_supercup.xml \ support_files/definitions/europe/greece/league_greece3a.xml \ support_files/definitions/europe/greece/league_greece3b.xml \ support_files/definitions/europe/greece/cup_greece_cup.xml \ support_files/definitions/europe/greece/country_greece.xml \ support_files/definitions/europe/greece/cup_greece_prom_games2.xml \ support_files/definitions/europe/greece/league_greece1.xml \ support_files/definitions/europe/greece/league_greece2.xml \ support_files/definitions/europe/n_ireland/cup_n_ireland_setanta.xml \ support_files/definitions/europe/n_ireland/league_n_ireland3.xml \ support_files/definitions/europe/n_ireland/cup_n_ireland_cup.xml \ support_files/definitions/europe/n_ireland/country_n_ireland.xml \ support_files/definitions/europe/n_ireland/cup_n_ireland_prom_games1.xml \ support_files/definitions/europe/n_ireland/league_n_ireland1.xml \ support_files/definitions/europe/n_ireland/league_n_ireland2.xml \ support_files/definitions/europe/belarus/country_belarus.xml \ support_files/definitions/europe/belarus/league_belarus1.xml \ support_files/definitions/europe/belarus/league_belarus2.xml \ support_files/definitions/europe/belarus/cup_belarus_cup.xml \ support_files/definitions/europe/fyr_macedonia/cup_fyr_macedonia_prom_games1.xml \ support_files/definitions/europe/fyr_macedonia/country_fyr_macedonia.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia1.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia2.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3a.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3b.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3c.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3d.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3e.xml \ support_files/definitions/europe/fyr_macedonia/league_fyr_macedonia3f.xml \ support_files/definitions/europe/fyr_macedonia/cup_fyr_macedonia_cup.xml \ support_files/definitions/europe/moldova/country_moldova.xml \ support_files/definitions/europe/moldova/league_moldova1.xml \ support_files/definitions/europe/moldova/league_moldova2.xml \ support_files/definitions/europe/moldova/league_moldova3a.xml \ support_files/definitions/europe/moldova/league_moldova3b.xml \ support_files/definitions/europe/moldova/cup_moldova_cup.xml \ support_files/definitions/europe/estonia/cup_estonia_supercup.xml \ support_files/definitions/europe/estonia/cup_estonia_cup.xml \ support_files/definitions/europe/estonia/country_estonia.xml \ support_files/definitions/europe/estonia/cup_estonia_prom_games1.xml \ support_files/definitions/europe/estonia/league_estonia1.xml \ support_files/definitions/europe/estonia/league_estonia2.xml \ support_files/definitions/europe/estonia/league_estonia3a.xml \ support_files/definitions/europe/estonia/league_estonia3b.xml \ support_files/definitions/europe/estonia/league_estonia4a.xml \ support_files/definitions/europe/estonia/league_estonia4b.xml \ support_files/definitions/europe/estonia/league_estonia4c.xml \ support_files/definitions/europe/estonia/league_estonia4d.xml \ support_files/definitions/europe/russia/cup_russia_supercup.xml \ support_files/definitions/europe/russia/league_russia3e.xml \ support_files/definitions/europe/russia/cup_russia_cup.xml \ support_files/definitions/europe/russia/country_russia.xml \ support_files/definitions/europe/russia/league_russia1.xml \ support_files/definitions/europe/russia/league_russia2.xml \ support_files/definitions/europe/russia/league_russia3a.xml \ support_files/definitions/europe/russia/league_russia3b.xml \ support_files/definitions/europe/russia/league_russia3c.xml \ support_files/definitions/europe/russia/league_russia3d.xml \ support_files/definitions/europe/azerbaijan/cup_azerbaijan_cup.xml \ support_files/definitions/europe/azerbaijan/country_azerbaijan.xml \ support_files/definitions/europe/azerbaijan/league_azerbaijan1.xml \ support_files/definitions/europe/azerbaijan/league_azerbaijan2.xml \ support_files/definitions/europe/scotland/cup_scotland_prom_games2.xml \ support_files/definitions/europe/scotland/cup_scotland_league.xml \ support_files/definitions/europe/scotland/cup_scotland_fa.xml \ support_files/definitions/europe/scotland/country_scotland.xml \ support_files/definitions/europe/scotland/league_scotland1.xml \ support_files/definitions/europe/scotland/cup_scotland_prom_games3.xml \ support_files/definitions/europe/scotland/league_scotland2.xml \ support_files/definitions/europe/scotland/league_scotland3.xml \ support_files/definitions/europe/scotland/league_scotland4.xml \ support_files/definitions/europe/netherlands/cup_netherlands_supercup.xml \ support_files/definitions/europe/netherlands/league_netherlands3d.xml \ support_files/definitions/europe/netherlands/league_netherlands3e.xml \ support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie2.xml \ support_files/definitions/europe/netherlands/league_netherlands3f.xml \ support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie4.xml \ support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie5.xml \ support_files/definitions/europe/netherlands/cup_netherlands_cup.xml \ support_files/definitions/europe/netherlands/cup_netherlands_nacompetitie6.xml \ support_files/definitions/europe/netherlands/country_netherlands.xml \ support_files/definitions/europe/netherlands/league_netherlands1.xml \ support_files/definitions/europe/netherlands/league_netherlands2.xml \ support_files/definitions/europe/netherlands/league_netherlands3a.xml \ support_files/definitions/europe/netherlands/league_netherlands3b.xml \ support_files/definitions/europe/netherlands/league_netherlands3c.xml \ support_files/definitions/europe/england/cup_england_league_vs_cup.xml \ support_files/definitions/europe/england/cup_england_league.xml \ support_files/definitions/europe/england/cup_england_fa.xml \ support_files/definitions/europe/england/cup_england_prom_games2.xml \ support_files/definitions/europe/england/country_england.xml \ support_files/definitions/europe/england/cup_england_prom_games3.xml \ support_files/definitions/europe/england/league_england1.xml \ support_files/definitions/europe/england/cup_england_prom_games4.xml \ support_files/definitions/europe/england/league_england2.xml \ support_files/definitions/europe/england/cup_england_prom_games5.xml \ support_files/definitions/europe/england/league_england3.xml \ support_files/definitions/europe/england/league_england4.xml \ support_files/definitions/europe/england/league_england5.xml \ support_files/definitions/europe/slovakia/league_slovakia3b.xml \ support_files/definitions/europe/slovakia/cup_slovakia_cup.xml \ support_files/definitions/europe/slovakia/country_slovakia.xml \ support_files/definitions/europe/slovakia/league_slovakia1.xml \ support_files/definitions/europe/slovakia/league_slovakia2.xml \ support_files/definitions/europe/slovakia/league_slovakia3a.xml \ support_files/definitions/europe/wales/cup_wales_challenge.xml \ support_files/definitions/europe/wales/league_wales2a.xml \ support_files/definitions/europe/wales/league_wales2b.xml \ support_files/definitions/europe/wales/cup_wales_premier.xml \ support_files/definitions/europe/wales/cup_wales_welsh.xml \ support_files/definitions/europe/wales/league_wales_english.xml \ support_files/definitions/europe/wales/country_wales.xml \ support_files/definitions/europe/wales/league_wales1.xml \ support_files/definitions/europe/bosnia_herzegovina/league_bosnia_herzegovina2a.xml \ support_files/definitions/europe/bosnia_herzegovina/league_bosnia_herzegovina2b.xml \ support_files/definitions/europe/bosnia_herzegovina/cup_bosnia_herzegovina_cup.xml \ support_files/definitions/europe/bosnia_herzegovina/country_bosnia_herzegovina.xml \ support_files/definitions/europe/bosnia_herzegovina/league_bosnia_herzegovina1.xml \ support_files/definitions/europe/armenia/league_armenia2.xml \ support_files/definitions/europe/armenia/cup_armenia_cup.xml \ support_files/definitions/europe/armenia/country_armenia.xml \ support_files/definitions/europe/armenia/league_armenia1.xml \ support_files/definitions/europe/montenegro/country_montenegro.xml \ support_files/definitions/europe/montenegro/league_montenegro1.xml \ support_files/definitions/europe/montenegro/league_montenegro2.xml \ support_files/definitions/europe/montenegro/cup_montenegro_cup.xml \ support_files/definitions/europe/montenegro/cup_montenegro_prom_games1.xml \ support_files/definitions/europe/georgia/country_georgia.xml \ support_files/definitions/europe/georgia/league_georgia1.xml \ support_files/definitions/europe/georgia/league_georgia2a.xml \ support_files/definitions/europe/georgia/league_georgia2b.xml \ support_files/definitions/europe/georgia/cup_georgia_cup.xml \ support_files/definitions/europe/georgia/cup_georgia_prom_games1.xml \ support_files/definitions/europe/ireland/cup_ireland_prom_games2.xml \ support_files/definitions/europe/ireland/country_ireland.xml \ support_files/definitions/europe/ireland/league_ireland1.xml \ support_files/definitions/europe/ireland/league_ireland2.xml \ support_files/definitions/europe/ireland/cup_ireland_setanta.xml \ support_files/definitions/europe/ireland/league_ireland3a.xml \ support_files/definitions/europe/ireland/league_ireland3b.xml \ support_files/definitions/europe/ireland/cup_ireland_league.xml \ support_files/definitions/europe/ireland/cup_ireland_cup.xml \ support_files/definitions/europe/ireland/cup_ireland_prom_games.xml \ support_files/definitions/europe/lithuania/country_lithuania.xml \ support_files/definitions/europe/lithuania/league_lithuania1.xml \ support_files/definitions/europe/lithuania/league_lithuania2.xml \ support_files/definitions/europe/lithuania/cup_lithuania_cup.xml \ support_files/definitions/europe/lithuania/cup_lithuania_prom_games1.xml \ support_files/definitions/europe/slovenia/cup_slovenia_prom_games1.xml \ support_files/definitions/europe/slovenia/country_slovenia.xml \ support_files/definitions/europe/slovenia/league_slovenia1.xml \ support_files/definitions/europe/slovenia/league_slovenia2.xml \ support_files/definitions/europe/slovenia/league_slovenia3a.xml \ support_files/definitions/europe/slovenia/league_slovenia3b.xml \ support_files/definitions/europe/slovenia/cup_slovenia_supercup.xml \ support_files/definitions/europe/slovenia/cup_slovenia_cup.xml \ support_files/definitions/europe/latvia/country_latvia.xml \ support_files/definitions/europe/latvia/league_latvia1.xml \ support_files/definitions/europe/latvia/league_latvia2.xml \ support_files/definitions/europe/latvia/league_latvia3a.xml \ support_files/definitions/europe/latvia/league_latvia3b.xml \ support_files/definitions/europe/latvia/league_latvia3c.xml \ support_files/definitions/europe/latvia/league_latvia3d.xml \ support_files/definitions/europe/latvia/league_latvia3e.xml \ support_files/definitions/europe/latvia/cup_latvia_cup.xml \ support_files/definitions/europe/latvia/cup_latvia_promotion1.xml \ support_files/definitions/europe/denmark/cup_denmark_prom_games2.xml \ support_files/definitions/europe/denmark/country_denmark.xml \ support_files/definitions/europe/denmark/league_denmark1.xml \ support_files/definitions/europe/denmark/league_denmark2.xml \ support_files/definitions/europe/denmark/league_denmark3a.xml \ support_files/definitions/europe/denmark/league_denmark3b.xml \ support_files/definitions/europe/denmark/league_denmark4a.xml \ support_files/definitions/europe/denmark/league_denmark4b.xml \ support_files/definitions/europe/denmark/league_denmark4c.xml \ support_files/definitions/europe/denmark/cup_denmark_cup.xml \ support_files/definitions/europe/italy/cup_italy_supercoppa.xml \ support_files/definitions/europe/italy/league_italy1.xml \ support_files/definitions/europe/italy/league_italy2.xml \ support_files/definitions/europe/italy/league_italy3a.xml \ support_files/definitions/europe/italy/league_italy4a.xml \ support_files/definitions/europe/italy/league_italy3b.xml \ support_files/definitions/europe/italy/league_italy4b.xml \ support_files/definitions/europe/italy/league_italy4c.xml \ support_files/definitions/europe/italy/country_italy.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_2_1.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_3a_2.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_2_3.xml \ support_files/definitions/europe/italy/cup_italy_coppa.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_3b_2.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_3a_4.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_4a_3.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_4b_3.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_3b_4.xml \ support_files/definitions/europe/italy/cup_italy_prom_games_4c_3.xml \ support_files/definitions/europe/croatia/cup_croatia_supercup.xml \ support_files/definitions/europe/croatia/cup_croatia_cup.xml \ support_files/definitions/europe/croatia/country_croatia.xml \ support_files/definitions/europe/croatia/cup_croatia_prom_games1.xml \ support_files/definitions/europe/croatia/league_croatia1.xml \ support_files/definitions/europe/croatia/league_croatia2.xml \ support_files/definitions/europe/croatia/league_croatia3a.xml \ support_files/definitions/europe/croatia/league_croatia3b.xml \ support_files/definitions/europe/croatia/league_croatia3c.xml \ support_files/definitions/europe/cyprus/cup_cyprus_supercup.xml \ support_files/definitions/europe/cyprus/cup_cyprus_cup.xml \ support_files/definitions/europe/cyprus/country_cyprus.xml \ support_files/definitions/europe/cyprus/league_cyprus1.xml \ support_files/definitions/europe/cyprus/league_cyprus2.xml \ support_files/definitions/europe/sweden/league_sweden_allsvenskan.xml \ support_files/definitions/europe/sweden/league_sweden_superettan.xml \ support_files/definitions/europe/sweden/cup_sweden_cupen.xml \ support_files/definitions/europe/sweden/cup_sweden_fa.xml \ support_files/definitions/europe/sweden/league_sweden_division_2_ostrasvealand.xml \ support_files/definitions/europe/sweden/league_sweden_division_1_sodra.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_sodranorrland.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_sydostragotaland.xml \ support_files/definitions/europe/sweden/league_sweden_division_2_vastragotaland.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_vastrasvealand.xml \ support_files/definitions/europe/sweden/league_sweden_division_2_norrland.xml \ support_files/definitions/europe/sweden/league_sweden_division_1_norra.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_norranorrland.xml \ support_files/definitions/europe/sweden/league_sweden_division_2_sodragotaland.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_nordostragotaland.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_sodragotaland.xml \ support_files/definitions/europe/sweden/cup_sweden_supercupen.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_sodrasvealand.xml \ support_files/definitions/europe/sweden/country_sweden.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_mellerstanorrland.xml \ support_files/definitions/europe/sweden/cup_sweden_prom_games_allsvenskan.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_sydvastragotaland.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_nordvastragotaland.xml \ support_files/definitions/europe/sweden/league_sweden_division_2_norrasvealand.xml \ support_files/definitions/europe/sweden/cup_sweden_prom_games_div3_2.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_norrasvealand.xml \ support_files/definitions/europe/sweden/league_sweden_division_2_mellerstagotaland.xml \ support_files/definitions/europe/sweden/cup_sweden_prom_games_superettan.xml \ support_files/definitions/europe/sweden/league_sweden_division_3_mellerstagotaland.xml \ support_files/definitions/europe/san_marino/league_san_marino_group_a.xml \ support_files/definitions/europe/san_marino/cup_san_marino_playoffs.xml \ support_files/definitions/europe/san_marino/league_san_marino_group_b.xml \ support_files/definitions/europe/san_marino/country_san_marino.xml \ support_files/definitions/europe/san_marino/cup_san_marino_supercoppa.xml \ support_files/definitions/europe/san_marino/cup_san_marino_coppa.xml \ support_files/definitions/europe/czech/league_czech2.xml \ support_files/definitions/europe/czech/league_czech3a.xml \ support_files/definitions/europe/czech/league_czech3b.xml \ support_files/definitions/europe/czech/cup_czech_cup.xml \ support_files/definitions/europe/czech/country_czech.xml \ support_files/definitions/europe/czech/league_czech1.xml \ support_files/definitions/europe/portugal/league_portugal3a.xml \ support_files/definitions/europe/portugal/country_portugal.xml \ support_files/definitions/europe/portugal/league_portugal1.xml \ support_files/definitions/europe/portugal/cup_portugal_supercup.xml \ support_files/definitions/europe/portugal/cup_portugal_leaguecup.xml \ support_files/definitions/europe/portugal/cup_portugal_prom_games2.xml \ support_files/definitions/europe/portugal/cup_portugal_prom_games3.xml \ support_files/definitions/europe/portugal/league_portugal2.xml \ support_files/definitions/europe/portugal/league_portugal3b.xml \ support_files/definitions/europe/portugal/league_portugal4a.xml \ support_files/definitions/europe/portugal/league_portugal3c.xml \ support_files/definitions/europe/portugal/league_portugal4b.xml \ support_files/definitions/europe/portugal/league_portugal3d.xml \ support_files/definitions/europe/portugal/league_portugal4c.xml \ support_files/definitions/europe/portugal/league_portugal4d.xml \ support_files/definitions/europe/portugal/league_portugal4ac.xml \ support_files/definitions/europe/portugal/league_portugal4e.xml \ support_files/definitions/europe/portugal/league_portugal4f.xml \ support_files/definitions/europe/portugal/cup_portugal_cup.xml \ support_files/definitions/europe/malta/cup_malta_supercup.xml \ support_files/definitions/europe/malta/country_malta.xml \ support_files/definitions/europe/malta/league_malta1.xml \ support_files/definitions/europe/malta/league_malta2.xml \ support_files/definitions/europe/malta/cup_malta_cup.xml \ support_files/definitions/europe/france/cup_france_supercup.xml \ support_files/definitions/europe/france/country_france.xml \ support_files/definitions/europe/france/cup_france_ligue.xml \ support_files/definitions/europe/france/cup_france_coupe.xml \ support_files/definitions/europe/france/league_france1.xml \ support_files/definitions/europe/france/league_france2.xml \ support_files/definitions/europe/france/league_france3.xml \ support_files/definitions/europe/france/league_france4a.xml \ support_files/definitions/europe/france/league_france4b.xml \ support_files/definitions/europe/france/league_france5a.xml \ support_files/definitions/europe/france/league_france4c.xml \ support_files/definitions/europe/france/league_france5b.xml \ support_files/definitions/europe/france/league_france4d.xml \ support_files/definitions/europe/france/league_france5c.xml \ support_files/definitions/europe/france/league_france5d.xml \ support_files/definitions/europe/france/league_france5e.xml \ support_files/definitions/europe/france/league_france5f.xml \ support_files/definitions/europe/france/league_france5g.xml \ support_files/definitions/europe/france/league_france5h.xml \ support_files/definitions/europe/ukraine/cup_ukraine_supercup.xml \ support_files/definitions/europe/ukraine/country_ukraine.xml \ support_files/definitions/europe/ukraine/league_ukraine1.xml \ support_files/definitions/europe/ukraine/league_ukraine2.xml \ support_files/definitions/europe/ukraine/league_ukraine3a.xml \ support_files/definitions/europe/ukraine/league_ukraine3b.xml \ support_files/definitions/europe/ukraine/cup_ukraine_cup.xml \ support_files/definitions/europe/kazakhstan/cup_kazakhstan_supercup.xml \ support_files/definitions/europe/kazakhstan/country_kazakhstan.xml \ support_files/definitions/europe/kazakhstan/league_kazakhstan1.xml \ support_files/definitions/europe/kazakhstan/league_kazakhstan2.xml \ support_files/definitions/europe/kazakhstan/cup_kazakhstan_cup.xml \ support_files/definitions/europe/iceland/country_iceland.xml \ support_files/definitions/europe/iceland/league_iceland1.xml \ support_files/definitions/europe/iceland/league_iceland2.xml \ support_files/definitions/europe/iceland/league_iceland3.xml \ support_files/definitions/europe/iceland/cup_iceland_cup.xml \ support_files/definitions/europe/germany/league_germany5_1.xml \ support_files/definitions/europe/germany/cup_germany_dfb.xml \ support_files/definitions/europe/germany/country_germany.xml \ support_files/definitions/europe/germany/cup_germany_prom_games1.xml \ support_files/definitions/europe/germany/league_germany5_2.xml \ support_files/definitions/europe/germany/league_germany5_3.xml \ support_files/definitions/europe/germany/league_germany5_4.xml \ support_files/definitions/europe/germany/league_germany5_5.xml \ support_files/definitions/europe/germany/league_germany5_6.xml \ support_files/definitions/europe/germany/league_germany5_7.xml \ support_files/definitions/europe/germany/cup_germany_supercup.xml \ support_files/definitions/europe/germany/league_germany5_8.xml \ support_files/definitions/europe/germany/league_germany5_9.xml \ support_files/definitions/europe/germany/cup_germany_prom_games2.xml \ support_files/definitions/europe/germany/league_germany1.xml \ support_files/definitions/europe/germany/league_germany2.xml \ support_files/definitions/europe/germany/league_germany3.xml \ support_files/definitions/europe/germany/league_germany5_10.xml \ support_files/definitions/europe/germany/league_germany4a.xml \ support_files/definitions/europe/germany/league_germany5_11.xml \ support_files/definitions/europe/germany/league_germany4b.xml \ support_files/definitions/europe/germany/league_germany5_12.xml \ support_files/definitions/europe/germany/league_germany4c.xml \ support_files/definitions/europe/serbia/cup_serbia_cup.xml \ support_files/definitions/europe/serbia/country_serbia.xml \ support_files/definitions/europe/serbia/cup_serbia_prom_games1.xml \ support_files/definitions/europe/serbia/league_serbia1.xml \ support_files/definitions/europe/serbia/league_serbia2.xml \ support_files/definitions/europe/serbia/league_serbia3a.xml \ support_files/definitions/europe/serbia/league_serbia3b.xml \ support_files/definitions/europe/serbia/league_serbia3c.xml \ support_files/definitions/europe/serbia/league_serbia3d.xml \ support_files/definitions/europe/switzerland/cup_switzerland_cup.xml \ support_files/definitions/europe/switzerland/country_switzerland.xml \ support_files/definitions/europe/switzerland/cup_switzerland_prom_games1.xml \ support_files/definitions/europe/switzerland/cup_switzerland_prom_games2.xml \ support_files/definitions/europe/switzerland/league_switzerland1.xml \ support_files/definitions/europe/switzerland/league_switzerland2.xml \ support_files/definitions/europe/switzerland/league_switzerland3a.xml \ support_files/definitions/europe/switzerland/league_switzerland3b.xml \ support_files/definitions/europe/switzerland/league_switzerland3c.xml \ support_files/definitions/europe/austria/league_austria3c.xml \ support_files/definitions/europe/austria/league_austria4b.xml \ support_files/definitions/europe/austria/league_austria4c.xml \ support_files/definitions/europe/austria/league_austria4d.xml \ support_files/definitions/europe/austria/league_austria4e.xml \ support_files/definitions/europe/austria/league_austria4f.xml \ support_files/definitions/europe/austria/league_austria4g.xml \ support_files/definitions/europe/austria/cup_austria_cup.xml \ support_files/definitions/europe/austria/league_austria4h.xml \ support_files/definitions/europe/austria/league_austria4i.xml \ support_files/definitions/europe/austria/country_austria.xml \ support_files/definitions/europe/austria/league_austria1.xml \ support_files/definitions/europe/austria/league_austria2.xml \ support_files/definitions/europe/austria/league_austria3a.xml \ support_files/definitions/europe/austria/league_austria3b.xml \ support_files/definitions/europe/austria/league_austria4a.xml \ support_files/definitions/europe/faroe_islands/cup_faroe_islands_cup.xml \ support_files/definitions/europe/faroe_islands/country_faroe_islands.xml \ support_files/definitions/europe/faroe_islands/league_faroe_islands1.xml \ support_files/definitions/europe/faroe_islands/league_faroe_islands2.xml \ support_files/definitions/europe/faroe_islands/league_faroe_islands3.xml \ support_files/definitions/europe/spain/cup_spain_supercopa.xml \ support_files/definitions/europe/spain/league_spain3a.xml \ support_files/definitions/europe/spain/league_spain3b.xml \ support_files/definitions/europe/spain/league_spain3c.xml \ support_files/definitions/europe/spain/cup_spain_rfef.xml \ support_files/definitions/europe/spain/league_spain3d.xml \ support_files/definitions/europe/spain/cup_spain_cdr.xml \ support_files/definitions/europe/spain/country_spain.xml \ support_files/definitions/europe/spain/cup_spain_prom_games_1.xml \ support_files/definitions/europe/spain/cup_spain_prom_games_2.xml \ support_files/definitions/europe/spain/cup_spain_prom_games_3.xml \ support_files/definitions/europe/spain/league_spain1.xml \ support_files/definitions/europe/spain/cup_spain_prom_games_4.xml \ support_files/definitions/europe/spain/league_spain2.xml \ support_files/definitions/europe/finland/league_finland3a.xml \ support_files/definitions/europe/finland/league_finland3b.xml \ support_files/definitions/europe/finland/league_finland3c.xml \ support_files/definitions/europe/finland/country_finland.xml \ support_files/definitions/europe/finland/cup_finland_prom_games1.xml \ support_files/definitions/europe/finland/league_finland1.xml \ support_files/definitions/europe/finland/league_finland2.xml \ support_files/definitions/europe/finland/cup_finland_suomen_cup.xml \ support_files/definitions/europe/hungary/cup_hungary_supercup.xml \ support_files/definitions/europe/hungary/country_hungary.xml \ support_files/definitions/europe/hungary/league_hungary1.xml \ support_files/definitions/europe/hungary/league_hungary2a.xml \ support_files/definitions/europe/hungary/league_hungary2b.xml \ support_files/definitions/europe/hungary/league_hungary3a.xml \ support_files/definitions/europe/hungary/league_hungary3b.xml \ support_files/definitions/europe/hungary/league_hungary3c.xml \ support_files/definitions/europe/hungary/league_hungary3d.xml \ support_files/definitions/europe/hungary/league_hungary3e.xml \ support_files/definitions/europe/hungary/league_hungary3f.xml \ support_files/definitions/europe/hungary/cup_hungary_cup.xml \ support_files/definitions/europe/poland/cup_poland_puchar.xml \ support_files/definitions/europe/poland/country_poland.xml \ support_files/definitions/europe/poland/league_poland1.xml \ support_files/definitions/europe/poland/league_poland2.xml \ support_files/definitions/europe/poland/league_poland3a.xml \ support_files/definitions/europe/poland/league_poland3b.xml \ support_files/definitions/europe/poland/cup_poland_superpuchar.xml \ support_files/definitions/europe/poland/cup_poland_prom_games1.xml \ support_files/definitions/europe/poland/cup_poland_prom_games2.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league1a.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league2.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league1b.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league2a.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league3.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league4.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa1.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa2a.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa4.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3a.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3b.xml \ support_files/definitions/miscellaneous/europe/cup_supercup_europe_uefa.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3d.xml \ support_files/definitions/miscellaneous/europe/cup_supercup_europe_intercontinental.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3e.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa2g.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3f.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3g.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa3i.xml \ support_files/definitions/miscellaneous/europe/cup_europe_champ_league2s.xml \ support_files/definitions/miscellaneous/europe/cup_europe_uefa.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_ncamerica.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_asia.xml \ support_files/definitions/miscellaneous/wc06/league_wc06_ncamerica_teams.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_asia_ncamerica.xml \ support_files/definitions/miscellaneous/wc06/league_wc06_asia_teams.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_samerica.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_africa.xml \ support_files/definitions/miscellaneous/wc06/league_wc06_samerica_teams.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_final.xml \ support_files/definitions/miscellaneous/wc06/league_wc06_africa_teams.xml \ support_files/definitions/miscellaneous/wc06/country_wc06.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_asia_playoff.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_europe.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_oceania.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_europe_playoffs.xml \ support_files/definitions/miscellaneous/wc06/league_wc06_europe_teams.xml \ support_files/definitions/miscellaneous/wc06/cup_wc06_oceania_samerica.xml \ support_files/definitions/miscellaneous/wc06/league_wc06_oceania_teams.xml \ support_files/definitions/miscellaneous/euro08/cup_euro08_cup.xml \ support_files/definitions/miscellaneous/euro08/country_euro08.xml \ support_files/definitions/miscellaneous/euro08/league_euro08_europe_teams.xml \ support_files/definitions/miscellaneous/fifa/cup_confederations_cup.xml \ support_files/definitions/miscellaneous/fifa/cup_copa_america_34.xml \ support_files/definitions/miscellaneous/fifa/league_conmebol.xml \ support_files/definitions/miscellaneous/fifa/cup_confederations_cup_qualifier.xml \ support_files/definitions/miscellaneous/fifa/cup_cup_of_nations_34.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_samerica.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_africa.xml \ support_files/definitions/miscellaneous/fifa/country_fifa.xml \ support_files/definitions/miscellaneous/fifa/league_ofc.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_asia_playoff.xml \ support_files/definitions/miscellaneous/fifa/cup_asian_cup_qualifiers.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_oceania.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_final_34.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_europe.xml \ support_files/definitions/miscellaneous/fifa/cup_nations_cup_34.xml \ support_files/definitions/miscellaneous/fifa/cup_eurocup_34.xml \ support_files/definitions/miscellaneous/fifa/league_uefa.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_europe_playoffs.xml \ support_files/definitions/miscellaneous/fifa/cup_gold_cup.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_oceania_samerica.xml \ support_files/definitions/miscellaneous/fifa/league_caf.xml \ support_files/definitions/miscellaneous/fifa/cup_cup_of_nations.xml \ support_files/definitions/miscellaneous/fifa/league_concacaf.xml \ support_files/definitions/miscellaneous/fifa/cup_asian_cup_34.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_ncamerica.xml \ support_files/definitions/miscellaneous/fifa/cup_confederations_cup_34.xml \ support_files/definitions/miscellaneous/fifa/cup_eurocup.xml \ support_files/definitions/miscellaneous/fifa/cup_nations_cup.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_final.xml \ support_files/definitions/miscellaneous/fifa/cup_cup_of_nations_qualifiers.xml \ support_files/definitions/miscellaneous/fifa/cup_asian_cup.xml \ support_files/definitions/miscellaneous/fifa/cup_gold_cup_34.xml \ support_files/definitions/miscellaneous/fifa/cup_copa_america.xml \ support_files/definitions/miscellaneous/fifa/league_afc.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_asia.xml \ support_files/definitions/miscellaneous/fifa/cup_eurocup_qualifiers.xml \ support_files/definitions/miscellaneous/fifa/cup_wc_asia_ncamerica.xml \ support_files/definitions/miscellaneous/eu/league_eu.xml \ support_files/definitions/miscellaneous/eu/country_eu.xml \ support_files/definitions/miscellaneous/misc/cup_supercup_league_vs_cup.xml \ support_files/definitions/south_america/uruguay/cup_campeonato_nacional_uruguay1.xml \ support_files/definitions/south_america/uruguay/country_uruguay.xml \ support_files/definitions/south_america/uruguay/cup_campeonato_nacional_uruguay2.xml \ support_files/definitions/south_america/uruguay/league_uruguay1.xml \ support_files/definitions/south_america/uruguay/cup_campeonato_nacional_uruguay3.xml \ support_files/definitions/south_america/uruguay/league_uruguay2.xml \ support_files/definitions/south_america/uruguay/league_uruguay3.xml \ support_files/definitions/south_america/ecuador/country_ecuador.xml \ support_files/definitions/south_america/ecuador/league_ecuador1.xml \ support_files/definitions/south_america/ecuador/cup_ecuador_serie_a_dos_a.xml \ support_files/definitions/south_america/ecuador/league_ecuador2.xml \ support_files/definitions/south_america/ecuador/cup_ecuador_serie_a_dos_b.xml \ support_files/definitions/south_america/ecuador/cup_ecuador_serie_b_final.xml \ support_files/definitions/south_america/ecuador/cup_ecuador_serie_a_tres.xml \ support_files/definitions/south_america/brazil/cup_serie_c_fase2.xml \ support_files/definitions/south_america/brazil/cup_serie_c_fase3.xml \ support_files/definitions/south_america/brazil/country_brazil.xml \ support_files/definitions/south_america/brazil/league_brazil1.xml \ support_files/definitions/south_america/brazil/cup_copa_do_brasil.xml \ support_files/definitions/south_america/brazil/league_brazil2.xml \ support_files/definitions/south_america/brazil/league_brazil3.xml \ support_files/definitions/south_america/brazil/cup_serie_c_final.xml \ support_files/definitions/south_america/brazil/cup_serie_c_fase1.xml \ support_files/definitions/south_america/americas/cup_recopa_ab.xml \ support_files/definitions/south_america/americas/cup_recopa.xml \ support_files/definitions/south_america/americas/cup_sudamericana_ab.xml \ support_files/definitions/south_america/americas/cup_sudamericana.xml \ support_files/definitions/south_america/americas/cup_libertadores_ab.xml \ support_files/definitions/south_america/americas/cup_libertadores.xml \ support_files/definitions/south_america/americas/cup_mundial_clubes_ab.xml \ support_files/definitions/south_america/americas/cup_mundial_clubes.xml \ support_files/definitions/south_america/chile/country_chile.xml \ support_files/definitions/south_america/chile/league_chile1.xml \ support_files/definitions/south_america/chile/league_chile2.xml \ support_files/definitions/south_america/chile/cup_copa_chile.xml \ support_files/definitions/south_america/bolivia/cup_clausura_grupo_a.xml \ support_files/definitions/south_america/bolivia/cup_clausura_grupo_b.xml \ support_files/definitions/south_america/bolivia/country_bolivia.xml \ support_files/definitions/south_america/bolivia/league_bolivia1.xml \ support_files/definitions/south_america/bolivia/cup_clausura_final.xml \ support_files/definitions/south_america/colombia/cup_copa_premier_final.xml \ support_files/definitions/south_america/colombia/cup_mustang1.xml \ support_files/definitions/south_america/colombia/cup_mustang1a.xml \ support_files/definitions/south_america/colombia/cup_mustang2.xml \ support_files/definitions/south_america/colombia/country_colombia.xml \ support_files/definitions/south_america/colombia/cup_mustang1b.xml \ support_files/definitions/south_america/colombia/cup_mustang2a.xml \ support_files/definitions/south_america/colombia/league_colombia1.xml \ support_files/definitions/south_america/colombia/cup_mustang2b.xml \ support_files/definitions/south_america/colombia/league_colombia2.xml \ support_files/definitions/south_america/colombia/cup_copa_premier_fase1.xml \ support_files/definitions/south_america/colombia/cup_copa_premier_fase2.xml \ support_files/definitions/south_america/colombia/cup_copa_colombia.xml \ support_files/definitions/south_america/argentina/cup_argentino_a_descenso.xml \ support_files/definitions/south_america/argentina/league_argentina4b.xml \ support_files/definitions/south_america/argentina/cup_reducido_1c.xml \ support_files/definitions/south_america/argentina/country_argentina.xml \ support_files/definitions/south_america/argentina/cup_reducido.xml \ support_files/definitions/south_america/argentina/cup_argentino_a_final.xml \ support_files/definitions/south_america/argentina/cup_argentino_b_final.xml \ support_files/definitions/south_america/argentina/league_argentina1.xml \ support_files/definitions/south_america/argentina/cup_argentino_a_fase1.xml \ support_files/definitions/south_america/argentina/league_argentina2.xml \ support_files/definitions/south_america/argentina/cup_argentino_a_fase2.xml \ support_files/definitions/south_america/argentina/cup_argentino_b_fase1.xml \ support_files/definitions/south_america/argentina/cup_argentino_b_fase2.xml \ support_files/definitions/south_america/argentina/league_argentina3a.xml \ support_files/definitions/south_america/argentina/league_argentina3b.xml \ support_files/definitions/south_america/argentina/league_argentina4a.xml \ support_files/definitions/south_america/paraguay/cup_campeonato_nacional_paraguay1.xml \ support_files/definitions/south_america/paraguay/country_paraguay.xml \ support_files/definitions/south_america/paraguay/league_paraguay1.xml \ support_files/definitions/south_america/paraguay/league_paraguay2.xml \ support_files/definitions/south_america/peru/cup_peru_elim.xml \ support_files/definitions/south_america/peru/league_peru3.xml \ support_files/definitions/south_america/peru/cup_peru.xml \ support_files/definitions/south_america/peru/cup_peru_final.xml \ support_files/definitions/south_america/peru/cup_cable_magico.xml \ support_files/definitions/south_america/peru/country_peru.xml \ support_files/definitions/south_america/peru/league_peru1.xml \ support_files/definitions/south_america/peru/league_peru2.xml \ support_files/definitions/south_america/venezuela/cup_campeonato_nacional_venezuela1.xml \ support_files/definitions/south_america/venezuela/country_venezuela.xml \ support_files/definitions/south_america/venezuela/cup_campeonato_nacional_venezuela2.xml \ support_files/definitions/south_america/venezuela/league_venezuela1.xml \ support_files/definitions/south_america/venezuela/league_venezuela2.xml \ support_files/definitions/south_america/venezuela/cup_copa_venezuela.xml \ support_files/definitions/australia/australia/cup_australia_a_league.xml \ support_files/definitions/australia/australia/country_australia.xml \ support_files/definitions/australia/australia/league_australia1.xml \ support_files/definitions/australia/australia/cup_australia_playoffs.xml \ support_files/definitions/australia/aus_victoria/cup_aus_vic_league.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic2se.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic3se.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic4se.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic5se.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic6se.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic1.xml \ support_files/definitions/australia/aus_victoria/league_aus_vicprem.xml \ support_files/definitions/australia/aus_victoria/cup_aus_vic_playoff1.xml \ support_files/definitions/australia/aus_victoria/cup_aus_vic_playoff2.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic2nw.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic3nw.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic4nw.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic5nw.xml \ support_files/definitions/australia/aus_victoria/league_aus_vic6nw.xml \ support_files/definitions/australia/aus_victoria/country_aus_victoria.xml \ support_files/definitions/north_america/mexico/cup_mexico1_clausadura.xml \ support_files/definitions/north_america/mexico/cup_mexico2_apertura.xml \ support_files/definitions/north_america/mexico/cup_mexico3_apertura.xml \ support_files/definitions/north_america/mexico/cup_prom_games_mexico1.xml \ support_files/definitions/north_america/mexico/cup_prom_games_mexico2.xml \ support_files/definitions/north_america/mexico/league_mexico3-1.xml \ support_files/definitions/north_america/mexico/league_mexico1.xml \ support_files/definitions/north_america/mexico/league_mexico3-2.xml \ support_files/definitions/north_america/mexico/league_mexico2.xml \ support_files/definitions/north_america/mexico/league_mexico3-3.xml \ support_files/definitions/north_america/mexico/league_mexico3-4.xml \ support_files/definitions/north_america/mexico/cup_apertura.xml \ support_files/definitions/north_america/mexico/cup_mexico_libertadores.xml \ support_files/definitions/north_america/mexico/league_mexico3-5.xml \ support_files/definitions/north_america/mexico/cup_mexico_superliga.xml \ support_files/definitions/north_america/mexico/country_mexico.xml \ support_files/definitions/north_america/mexico/cup_mexico_concacaf.xml \ support_files/definitions/north_america/mexico/cup_mexico1_clausura.xml \ support_files/definitions/north_america/mexico/cup_mexico2_clausura.xml \ support_files/definitions/north_america/mexico/cup_mexico3_clausura.xml \ support_files/definitions/north_america/mexico/cup_mexico1_apertura.xml \ support_files/definitions/north_america/usa/league_usa_pdl_sw.xml \ support_files/definitions/north_america/usa/cup_usa_mls_cup.xml \ support_files/definitions/north_america/usa/league_usa_first.xml \ support_files/definitions/north_america/usa/cup_usa_pdl_southern.xml \ support_files/definitions/north_america/usa/cup_usa_eplayoff.xml \ support_files/definitions/north_america/usa/league_usa_econf.xml \ support_files/definitions/north_america/usa/league_usa_mls.xml \ support_files/definitions/north_america/usa/league_usa_pdl_ma.xml \ support_files/definitions/north_america/usa/cup_usa_open_cup.xml \ support_files/definitions/north_america/usa/league_usa_pdl_ne.xml \ support_files/definitions/north_america/usa/league_usa_pdl_gl.xml \ support_files/definitions/north_america/usa/league_usa_pdl_sa.xml \ support_files/definitions/north_america/usa/league_usa_pdl_hl.xml \ support_files/definitions/north_america/usa/league_usa_pdl_se.xml \ support_files/definitions/north_america/usa/cup_usa_second_cup.xml \ support_files/definitions/north_america/usa/cup_usa_pdl_western.xml \ support_files/definitions/north_america/usa/cup_usa_pdl_cup.xml \ support_files/definitions/north_america/usa/league_usa_pdl_no.xml \ support_files/definitions/north_america/usa/league_usa_second.xml \ support_files/definitions/north_america/usa/cup_usa_wplayoff.xml \ support_files/definitions/north_america/usa/cup_usa_pdl_central.xml \ support_files/definitions/north_america/usa/league_usa_wconf.xml \ support_files/definitions/north_america/usa/league_usa_pdl_ms.xml \ support_files/definitions/north_america/usa/cup_usa_superliga.xml \ support_files/definitions/north_america/usa/country_usa.xml \ support_files/definitions/north_america/usa/cup_usa_concacaf.xml \ support_files/definitions/north_america/usa/cup_usa_first_cup.xml \ support_files/definitions/north_america/usa/league_usa_pdl_nw.xml \ support_files/definitions/north_america/usa/cup_usa_pdl_eastern.xml \ support_files/definitions/north_america/short_leagues_north_and_central_america/league_honduras1_short.xml \ support_files/definitions/north_america/short_leagues_north_and_central_america/league_jamaica1_short.xml \ support_files/definitions/north_america/short_leagues_north_and_central_america/league_costa_rica1_short.xml \ support_files/definitions/asia/japan/cup_japan_prom5-4.xml \ support_files/definitions/asia/japan/cup_japan_prom4.xml \ support_files/definitions/asia/japan/cup_japan_prom5-5.xml \ support_files/definitions/asia/japan/cup_japan_prom5-6.xml \ support_files/definitions/asia/japan/cup_japan_supercup.xml \ support_files/definitions/asia/japan/cup_japan_emperor.xml \ support_files/definitions/asia/japan/league_japan1.xml \ support_files/definitions/asia/japan/league_japan2.xml \ support_files/definitions/asia/japan/league_japan4-1.xml \ support_files/definitions/asia/japan/league_japan5-1.xml \ support_files/definitions/asia/japan/cup_japan_nabisco.xml \ support_files/definitions/asia/japan/league_japan3.xml \ support_files/definitions/asia/japan/league_japan4-2.xml \ support_files/definitions/asia/japan/league_japan4-3.xml \ support_files/definitions/asia/japan/league_japan5-3.xml \ support_files/definitions/asia/japan/league_japan4-4.xml \ support_files/definitions/asia/japan/league_japan4-5.xml \ support_files/definitions/asia/japan/league_japan4-6.xml \ support_files/definitions/asia/japan/league_japan5-4a.xml \ support_files/definitions/asia/japan/league_japan4-7.xml \ support_files/definitions/asia/japan/league_japan5-4b.xml \ support_files/definitions/asia/japan/league_japan5-5a.xml \ support_files/definitions/asia/japan/league_japan5-6.xml \ support_files/definitions/asia/japan/league_japan4-8.xml \ support_files/definitions/asia/japan/league_japan5-4c.xml \ support_files/definitions/asia/japan/league_japan5-5b.xml \ support_files/definitions/asia/japan/league_japan5-7.xml \ support_files/definitions/asia/japan/league_japan4-9.xml \ support_files/definitions/asia/japan/league_japan5-4d.xml \ support_files/definitions/asia/japan/country_japan.xml \ support_files/definitions/asia/japan/cup_japan_prom2.xml \ support_files/mmedia/pics/match13.jpg \ support_files/mmedia/pics/match4.jpg \ support_files/mmedia/pics/match14.jpg \ support_files/mmedia/pics/match5.jpg \ support_files/mmedia/pics/match15.jpg \ support_files/mmedia/pics/match6.jpg \ support_files/mmedia/pics/match7.jpg \ support_files/mmedia/pics/match8.jpg \ support_files/mmedia/pics/match9.jpg \ support_files/mmedia/pics/match1.jpg \ support_files/mmedia/pics/match10.jpg \ support_files/mmedia/pics/match11.jpg \ support_files/mmedia/pics/match2.jpg \ support_files/mmedia/pics/match12.jpg \ support_files/mmedia/pics/match3.jpg \ support_files/news/news_da.xml support_files/news/news_tr.xml \ support_files/news/news_de.xml support_files/news/news_sv.xml \ support_files/news/news_nl.xml support_files/news/news_el.xml \ support_files/news/news_ro.xml support_files/news/news_en.xml \ support_files/bygfoot_tokens support_files/bygfoot_help \ support_files/bygfoot_app support_files/bygfoot_constants \ support_files/bygfoot_user.conf support_files/bygfoot.conf all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(top_srcdir)/acconfig.h cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-hook dist-lzma dist-shar dist-tarZ dist-zip distcheck \ distclean distclean-generic distclean-hdr distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am install-data-local: @$(NORMAL_INSTALL) for dir in $(SUPPORT_DIRS); do $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/$$dir; done for file in $(SUPPORT_FILES); do $(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/$$file; done dist-hook: for dir in $(SUPPORT_DIRS); do mkdir $(distdir)/$$dir; done for file in $(SUPPORT_FILES); do cp -p $$file $(distdir)/$$file; done uninstall: rm -rf $(DESTDIR)$(pkgdatadir) rm -rf $(prefix)/bin/bygfoot* rm -rf $(prefix)/man/man6/bygfoot.6 for dir in $(prefix)/share/locale/*; do rm -rf $$dir/LC_MESSAGES/bygfoot*; done doc: doxygen Doxyfile 1> /dev/null doc-verbose: doxygen Doxyfile doc-clean: rm -rf docs/* # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: